- [Kinect for Windows SDK. Часть 1. Сенсор]
- Kinect for Windows SDK. Часть 2. Потоки данных
- Kinect for Windows SDK. Часть 3. Функциональные возможности
- Играем в кубики с Kinect
- Программа, апорт!
Три части обзорной статьи можно считать вводными к двум другим: «Играем в кубики с Kinect» и «Программа, апорт!». Хотя хронологически они идут последними. Более того, за время их написания Microsoft успел выпустить новую версию SDK – 1.5. Какой удар со стороны корпорации!
Как вам должно быть известно, Kinect – это бесконтактный контроллер, т.е. скажем в играх, вместо того, чтобы яростно стучать по клавиатуре или терзать gamepad, вы размахиваете руками и ногами и время от времени голосом даете какие-то команды. Самое время спрятать дорогие китайские вазы X века подальше!
Начинать знакомство с Kinect лучше со знакомства с самим сенсором. Это небольшая черная коробочка с тремя камерами, длиной чуть более 20 см и высотой около 5 см (не считая ножки). Один нюанс – в Kinect две камеры. И это изображение (взято из MSDN) тому подтверждение.
- IR Emitter – Инфракрасный излучатель. Да, это не камера. Его назначение испускать инфракрасные лучи, которые, отражаясь от предметов, попадают назад в сенсор, где их принимает:
- IR Depth Sensor – Инфракрасный приёмник. Собирает отраженные лучи, преобразуя их в расстояние от сенсора до объекта(ов). И таким образом строится, можно сказать, матрица расстояний — целый кадр. Максимальное разрешение 640x480 (30 fps). Если говорить о переводе мне кажется, «ИК приёмник» лучше отражает суть, чем дословный «ИК датчик глубины».
- Color Sensor – Цветная камера. Захват видео с максимальным разрешением 1280x960 (12fps). Угол обзора камеры: 43° по вертикали и 57° по горизонтали (угол обзора дальномера идентичный). Можно выбрать формат картинки: RGB или YUV.
- Microphone Array – набор микрофонов. 4 встроенных микрофона позволяют определить местоположение источника звука и направление звуковых волн. Встроенный обработчик звукового сигнала включает подавление эха и уменьшение шума.
- Tilt Motor – Коррекция наклона. Позволяет программно настраивать наклон сенсора в диапазоне ±27° по вертикали.
Сенсор подключается к компьютеру через USB, хотя, строго говоря, USB устройством не является, т.к. имеет несколько отличную прошивку, нежели стандартное USB устройство. Найти какие-либо комментарии по этому поводу не получилось, но можно предположить, что сделано это исключительно в целях повышения производительности. Вы можете подключить до четырех сенсоров одновременно.
Другой важный аспект аппаратной части – диапазон «рабочих» расстояний, т.е. на каком расстоянии сенсор способен видеть объекты (данные дальномера). И снова картинка помогает продемонстрировать возможности Kinect.
Режим Default Range доступен как для Kinect for Windows, так и для Kinect for XBox, но Near Range доступен только для сенсора Kinect for Windows. Простой пример: для всех объектов в кадре находящихся в пределах Normal Values сенсор вернёт измеренное расстояние, но для объектов, выходящих за этот диапазон, сенсор вернёт либо ноль, либо определенную для каждого диапазона константу (зависит от заданных вами настроек). Одно из существенных отличий SDK 1.5 от 1.0 в том, что теперь в режиме Near Range можно получить информацию о сидящем человеке, это так называемый трекинг сидящей фигуры (seated skeletal tracking). Kinect отслеживает 10 точек: голову, шею и руки. Но об этом чуть позже.
Хочется обратить внимание на различия двух Kinect (XBox и Windows). Первый разрабатывался и тестировался с одним устройством – XBox. Второй же, напротив, должен работать с широким диапазоном устройств (компьютеров), поэтому его кабель короче, а специальное устройство призвано не позволить Kinect подраться с остальной USB периферией. Лицензионное соглашение позволяет использовать Kinect for Windows в коммерческих целях, а Kinect for XBox нет.
Перейдем теперь к установке SDK. В версии 1.5 Microsoft разделил SDK на два пакета. Скачать их можно с официальной страницы:
- Kinect for Windows SDK. Включает APIs и драйверы сенсора.
- Kinect for Windows Developer Toolkit. Включает Kinect Studio (полезный для отладки инструмент), Face Tracking SDK, примеры кода и документация.
Не будем останавливаться на установке SDK, в этом нет ничего сложного или интересного. А вот что действительно интересно так это то, что же разработчик может получить от Kinect? Взглянем на следующие возможности:
- Skeletal Tracking (трекинг человеческой фигуры)
- Face Tracking (трекинг лица)
- Speech Recognition (распознавание речи)
Обзор этих функций вы найдете в следующих частях статьи.
Полезные ссылки:
- Kinect for Windows SDK
- Руководство разработчика. Можно найти примеры на C# (managed code) и на C/C++ (unmanaged code)
- Kinect for Windows Quickstart Series. Серия видео-уроков о возможностях Kinect (весьма полезная для знакомства с устройством).
- Near Mode: What it is (and isn’t). Статья о near mode, хотя написана в преддверии SDK 1.0, но полезна в плане разоблачения некоторых мифов.
- Форумы Kinect for Windows SDK. Здесь можно обратиться за советом к экспертам.
Автор: Lardite