Технология, лежащая в основе пользовательского интерфейса для всего тела Microsoft Kinect (проект Natal), доступна для всех — вы даже можете реализовать ее, используя только программное обеспечение.
Microsoft переименовала свой новый игровой интерфейс project Natal в Kinect — и не думаете ли вы, что большинство кодовых имен Microsoft лучше, чем окончательное прозвище, которое они применяют для законченной или почти готовой вещи.
Несмотря на то, что новый человеческий интерфейс вызывает много преувеличений и постановок, интересно знать, что та же технология уже общедоступна.
Кажется, что Natal / Kinect — это следующий шаг на пути к интерфейсу жестов, но обратите внимание, что этот шаг в основном мягкий, а не жесткий. Новое дополнение Kinect XBOX 360 — это в основном инновация в программном обеспечении.
Это коробка с некоторыми камерами, в которой используется ИК-подсветка для получения данных о глубине, цветных изображений и звука. ИК-датчик используется в качестве дальномера примерно так же, как работает автофокус камеры. Утверждается, что система может измерять расстояние с точностью до 1 см на расстоянии 2 м и имеет разрешение 3 мм на расстоянии 2 м. Изображение с глубиной также составляет 640×480, то есть стандартное разрешение VGA. Цветное изображение — 1600х1200.
Пользовательский чип обрабатывает данные, чтобы обеспечить глубину поля, которое коррелирует с цветным изображением. То есть программа может сопоставить каждый пиксель с его приблизительной глубиной. Предварительно обработанные данные поступают в машину через интерфейс USB в виде карты глубины резкости и цветного изображения.
Эталонная реализация PrimeSense
На этом этапе вам может быть интересно, почему карта глубины так важна. Ответ заключается в том, что многие задачи визуального распознавания намного проще с информацией о глубине. Если вы попытаетесь обработать плоское 2D-изображение, пиксели схожего цвета, расположенные рядом друг с другом, могут не принадлежать одному и тому же объекту. Если у вас есть 3D-информация, то пиксели, которые соответствуют местам, физически близким друг к другу, как правило, принадлежат одному и тому же объекту, независимо от их цвета! Часто говорят, что распознавание образов было искусственно затруднено, потому что большинство систем полагаются на 2D-данные.
Microsoft приобрела базовое оборудование для Kinect у другой компании PrimeSense, и это означает, что та же технология доступна в готовом виде. Пока что компания не приобрела, а только технологию, на которой будет основано собственное устройство ввода.
Microsoft разработала собственное программное обеспечение распознавания для работы с импортированным оборудованием, но PrimeSense также имеет некоторое промежуточное программное обеспечение — Nite, которое уже выполняет распознавание жестов и даже позволяет пользователям управлять устройствами и играть в игры.
«Фреймворк NITE также предлагает набор инструментов разработчика для настройки элементов управления игрой и добавления новых функций — и все это без необходимости писать ни одной строчки кода обработки глубины».
Таким образом, у вас тоже может быть устройство ввода, подобное Kinect, в комплекте с фреймворком, работающим с вашим приложением. Вот и все, что Microsoft смогла начать в новом мире полнофункциональных пользовательских интерфейсов. Конечно, Microsoft контролирует технологию и доступ к ней на платформе XBOX, но на других платформах, включая ПК, она гораздо более открыта, чем вы могли подозревать.
Если пойти немного дальше, вам не нужно быть экспертом в области искусственного интеллекта, чтобы понять, что даже аппаратные аспекты устройства PrimeSense на самом деле не нужны. Вы можете выполнить анализ глубины сцены, используя всего две стандартные видеокамеры и некоторый код обработки параллакса. Не так хорошо иметь карту глубины, сгенерированную оборудованием, но этого может быть достаточно.
Другими словами, для ввода всего тела может вообще не потребоваться какое-либо специальное оборудование.
Хотя похоже, что Microsoft все это зашито для пользовательских интерфейсов всего тела, пока какая-то другая крупная компания не догонит, это не так. Эта технология предназначена для использования небольшими компаниями, и если вы хотите поэкспериментировать с созданием собственных карт глубины, возможно, вы даже можете создать эквивалент с открытым исходным кодом.