32
Введение в разработку под Kinect

Введение в разработку под Kinect

  • Upload
    kyran

  • View
    101

  • Download
    0

Embed Size (px)

DESCRIPTION

Введение в разработку под Kinect. WTF?!. Версии. Kinect for Windows Коммерческая лицензия Оптимизирован для использования с компьютерами под управлением Windows Оптимизирован для работы на близких дистанциях Kinect for Xbox 360 Может использоваться только для девелоперских целей - PowerPoint PPT Presentation

Citation preview

Page 1: Введение в разработку  под  Kinect

Введение в разработку под Kinect

Page 2: Введение в разработку  под  Kinect

WTF?!

Page 3: Введение в разработку  под  Kinect

ВерсииKinect for Windows• Коммерческая лицензия• Оптимизирован для использования с компьютерами под

управлением Windows• Оптимизирован для работы на близких дистанциях

Kinect for Xbox 360• Может использоваться только для девелоперских целей• Оптимизирован для использования в Xbox 360

Page 4: Введение в разработку  под  Kinect

Устройство Kinect• RGB камера• 3D камера глубины

(+ определение пользователя)• Массив из 4х микрофонов• Мотор изменения наклона девайса

Page 5: Введение в разработку  под  Kinect

Kinect SDKs• OpenKinect SDK (Community)• OpenNI Kinect SDK (PrimeSense)• Kinect For Windows SDK (Microsoft)

Page 6: Введение в разработку  под  Kinect

Инициализация девайса• Доступ к устройству осуществляется через коллекцию

KinectSensor.KinectSensors. Пример получения доступа к первому устройству:var kinect = KinectSensor.KinectSensors[0];

• Запуск устройства:kinect.Start();

Page 7: Введение в разработку  под  Kinect

RGB-камера

RGB камера ИК-сенсор ИК-проектор

Page 8: Введение в разработку  под  Kinect

RGB-камера• Поддерживаемые разрешения

• RGB 640x480 (30 FPS)• RGB 1280x960 (12 FPS)• YUV 640x480 (15 FPS)

• Данные с камеры поступают в виде одномерного байтового массива, содержащего по 4 элемента на каждый пиксель

• Данные в массиве хранятся в формате BGRA

Page 9: Введение в разработку  под  Kinect

RGB-камера

Демонстрация

Page 10: Введение в разработку  под  Kinect

Камера глубины

Page 11: Введение в разработку  под  Kinect

Камера глубины• Датчик глубины состоит из инфракрасного проектора, объединенного с

монохромной КМОП-матрицей (CMOS APS Matrix), что позволяет датчику Kinect получать трёхмерное изображение при любом естественном освещении.

• Поддерживаемые разрешения• 640x480 (30 FPS)• 320x240 (30 FPS)• 80x60 (30 FPS)

• Поддерживаемые дистанции• 80см – 4м (DepthRange.Default - Kinect for xBox 360)• 40см – 3м (DepthRange.Near - Kinect for PC, Kinect SDK v1.5)

• Данные с камеры глубины поступают в виде одномерного массива типа short[]

Page 12: Введение в разработку  под  Kinect

Дистанции

0.4 0.8 3 4 8

DefaultMode

Near Mode

Meters

Page 13: Введение в разработку  под  Kinect
Page 14: Введение в разработку  под  Kinect

Черные тени – что это?

ИК Сенсор ИК проектор

Препятствие 2

Препятствие 1

Тень вызвана препятствием 1таким образом, что нет проекциина эту часть препятствия 2

Page 15: Введение в разработку  под  Kinect

Индекс игрока • Массив данных глубины содержит информацию как по

удаленности каждой точки, так и индекс игрока

• Получение индекса игрока:var player = depthMatrix[i] & DepthImageFrame.PlayerIndexBitmask;//7

• Получение глубины:var realDepth = depthMatrix[i] >> DepthImageFrame.PlayerIndexBitmaskWidth; //3

0 0 0 0 1 0 1 1 1 0 1 1 1 0 1 1

0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1

0 0 0 0 0 0 0 1 0 1 1 1 0 1 1 1

3003

7

375

Page 16: Введение в разработку  под  Kinect

Камера глубины

Демонстрация

Page 17: Введение в разработку  под  Kinect

Массив микрофонов

Page 18: Введение в разработку  под  Kinect

Массив микрофонов• Микрофонная решетка позволяет производить

локализацию источника звука и подавление шумов, что дает возможность говорить без наушников и микрофона.

• Поддерживается 16-битный звук с частотой дискретизации 16 kHz

• Sound Source Angle – угол и степень уверенности того, где находится источник звука

• Beam Angle – угол, использующийся при записи аудио, можно трактовать как направленный микрофон

• Максимальный угол определения звука ±50

-50 0 +50

Page 19: Введение в разработку  под  Kinect

Массив микрофонов

Демонстрация

Page 20: Введение в разработку  под  Kinect

Мотор изменения угла наклона Kinect

Page 21: Введение в разработку  под  Kinect

Мотор изменения угла наклона Kinect

• Служит для изменения градуса наклона устройства• Минимальный угол наклона -27 градусов;

максимальный +27• Не существует прямого доступа к мотору через

методы. Угол наклона можно изменить только через свойство kinect.ElevationAngle типа int

Page 22: Введение в разработку  под  Kinect

Мотор изменения угла наклона Kinect

Демонстрация

Page 23: Введение в разработку  под  Kinect

SkeletonFrame – собери меня полностью

Page 24: Введение в разработку  под  Kinect

Скелет человека и Kinect• Скелет состоит из:

• 20 суставов (Joint) для обычного режима• 10 суставов для сидячего режима

• Возможна поддержка одновременно 2х активных игроков

• Может следить одновременно за 6 игроками• Данные, полученные из SkeletonFrame

являются массивом типа Skeleton[], каждый элемент которого содержит коллекцию суставов Joints с 3D-координатами своего положения в прост-ве

Page 25: Введение в разработку  под  Kinect

Параметры сглаживания скелета• Smoothing(сглаживание) – default 0.5• Correction(коррекция) – default 0.5• Prediction(прогнозирование) – default 0.5• JitterRadius(радиус дрожания) – default 0.05• MaxDeviationRadius(максимальный радиус отклонения) – default 0.05

Page 26: Введение в разработку  под  Kinect

Позиционирование• Класс DepthImageFrame содержит:• DepthImagePoint MapFromSkeletonPoint(SkeletonPoint skeletonPoint) – позволяет получить координаты пикселя глубины из сустава скелета

• ColorImagePoint MapToColorImagePoint(int depthX, int depthY, ColorImageFormat colorImageFormat) – позволяет получить координаты пикселя цвета из координат пикселя глубины

• SkeletonPoint MapToSkeletonPoint (int depthX, int depthY) – позволяет получить координаты сустава скелета из координат пикселя глубины

• Актуально для преобразований координат между разными системами координат.

Page 27: Введение в разработку  под  Kinect

SkeletonFrame

Демонстрация

Page 28: Введение в разработку  под  Kinect

FaceTracking API• В основе алгоритма распознавания лежит алгоритм

Active appearance model (AAM – активная модель внешности/активная видовая модель)

• При работе с Face Tracking API, разработчик посылает структуру данных, содержащую информацию с RGBA-изображением и массив данных глубин. В результате обработки этих данных, разработчик получает на выходе коллекцию 2D-координат точек элементов лица

• При сопоставлении лица и распознанных точек лица, используется Candide-3 маска

Page 29: Введение в разработку  под  Kinect

FaceTracking API

Демонстрация

Page 30: Введение в разработку  под  Kinect

Цена вопроса

Kinect for Xbox 360 – $150 (~6 тыс. р.)Kinect for PC – $250 (undefined тыс. р.)

Комплект поставки:• девайс• кабель питания• руководство пользователя• игра (Kinect Adventures)

Page 31: Введение в разработку  под  Kinect

Источники• http://kinectforwindows.org – портал для Kinect-

разработчиков• http://channel9.msdn.com/coding4fun/kinect – канал,

посвященный Kinect• http://channel9.msdn.com/Series/KinectQuickstart –

краткое видео руководство• http://blogs.msdn.com/b/kinectforwindows/ – блог

разработчиков Kinect• http://msdn.microsoft.com/en-us/library/hh855348 –

Kinect for Windows Programming Guide

Page 32: Введение в разработку  под  Kinect

???

Вопросы