Новый Kinect SDK приносит с собой несколько интересных новых высокоуровневых функций и, наконец, поддержку HTML.
Kinect SDK был обновлен в марте этого года, что является довольно быстрым темпом текучести. Хорошей новостью является то, что компоненты среды выполнения по-прежнему обратно совместимы.
Большинство новых функций — это расширения для высокоуровневых средств, таких как Kinect Fusion, который был представлен в последней версии SDK. Возможно, самым далеко идущим изменением является добавление поддержки HTML и JavaScript.
Веб-сервер Kinect Data Streams Новые веб-компоненты предоставляют приложениям HTML5 доступ к данным Kinect. Это предназначено для того, чтобы приложения HTML5, работающие в браузере, могли подключаться к датчику через сервер, работающий на локальном компьютере. Это открывает новые возможности, включая приложения WinRT JavaScript, использующие Kinect. Очевидно, что поскольку данные предоставляются веб-сервером, вы можете использовать любой язык, который вам нравится на клиенте. Взаимодействие осуществляется через API на основе REST. Компонент веб-сервера — это шаблон, который можно использовать как есть или изменять по мере необходимости. Также включен пример, демонстрирующий реализацию кнопок с поддержкой Kinect, простое взаимодействие с пользователем и использование потока удаления фона в HTML5.
Новое удаление фона. API удаляет фон за активным пользователем, чтобы его можно было заменить искусственным фоном. Это приложение, которое обычно требуется для того, чтобы сделать снимок на зеленом или другом известном цветном экране, а затем использовать его для фильтрации фона. Однако для камеры с глубиной резкости очень легко определить, что находится на переднем плане — все дело в глубине.
Реалистичный захват цвета с помощью Kinect Fusion. Kinect Fusion — это приложение для извлечения 3D-моделей, представленное как часть предыдущего API. Вы можете использовать его для создания 3D-модели сцены, просто отсканировав ее с помощью Kinect. Новый Kinect Fusion API сканирует цвет сцены вместе с информацией о глубине, чтобы он мог уловить цвет объекта вместе с его трехмерной (3D) моделью. API также создает карту текстуры для сетки, созданной в результате сканирования. Эта функция обеспечивает полную 3D-модель отсканированного изображения, а не только чистый каркас.
Полноцветная текстурированная 3D-модель (из блога Extreme Windows)
Повышенная надежность отслеживания с Kinect Fusion. Этот алгоритм упрощает сканирование сцены. Благодаря этому обновлению Kinect Fusion может лучше сохранять блокировку сцены при перемещении камеры, что обеспечивает более надежное и последовательное сканирование.
Также есть два очень интересных новых образца:
Пример многосенсорного Kinect Fusion. Здесь показано, как использовать два датчика одновременно для сканирования человека или объекта с обеих сторон, что позволяет построить 3D-модель без необходимости перемещать датчик или объект.
Пример адаптивного пользовательского интерфейса. В этом образце показано, как создать приложение, которое адаптируется в зависимости от расстояния между пользователем и экраном — от жестов на расстоянии до касания сенсорного экрана. Алгоритм в этом примере использует физические размеры и положения экрана и датчика для определения наилучшего эргономичного положения на экране для сенсорных элементов управления, а также способы адаптации пользовательского интерфейса, когда пользователь приближается к экрану или удаляется от него. В результате сенсорный интерфейс и визуальный дисплей адаптируются к положению и росту пользователя, что позволяет пользователям комфортно взаимодействовать с большими сенсорными экранами. Дисплей также может быть адаптирован для более чем одного пользователя.
Мы все ждем основных улучшений производительности Kinect в версии Kinect для ПК для Xbox One. Те же функции, которые предоставляет его SDK, дадут Kinect шанс создать приложение, где качество также является проблемой.
Одна из больших проблем будущего Kinect и, в частности, Kinect SDK, — это переход Microsoft от ядра .NET к WinRT. Самый простой способ работать с Kinect — использовать C # или Visual Basic с WPF. К сожалению, подход WPF к 3D зашел так далеко, и без другой версии WPF на горизонте трудно чувствовать себя в безопасности, используя его для сложного приложения. Kinect SDK — один из немногих Microsoft SDK, который все еще поддерживает и в значительной степени полагается на использование WPF.