Создание приложений, управляемых жестами и голосом,...
DESCRIPTION
DEV211. Эксперт по разработке информационных систем. Microsoft. Создание приложений, управляемых жестами и голосом, для Windows с использованием Kinect. Андреев Дмитрий. Содержание. Сенсор Kinect Использование Камеры Данные глубины Отслеживание скелета Аудио. 3D Сенсор глубины. - PowerPoint PPT PresentationTRANSCRIPT
DEV211
Создание приложений, управляемых жестами и голосом, для Windows с использованием KinectАндреев ДмитрийЭксперт по разработке информационных системMicrosoft
Содержание
Сенсор KinectИспользование КамерыДанные глубиныОтслеживание скелетаАудио
RGB Камера
Мультимикрофон Моторизованная платформа
3D Сенсор глубины
Демонстрация
Отображение данных видео, датчика глубины и управление вертикальной позицией
Данные датчика глубины
Дистанция от Kinect для каждого пикселяОпционально включается информация о Игроке
Как устроены данные глубины
ImageFrame.ImageBitsМассив байтов public byte [] Bits;Массив
Начинается с верхнего левого углаС лева на право, с верху в низОтображает дистацию до пикселя
Вычисление дистанции
Два байта на пиксель (16 бит)Depth – дистанция до пикселя
Ротируем второй байт на 8Distance (0,0) = (int)(Bits[0] | Bits[1] << 8);
DepthAndPlayer Index – включает номер ИгрокаРотируем 3 первых байта (индекс игрока), 5 следующий байтDistance (0,0) =(int)(Bits[0] >> 3 | Bits[1] << 5);
Глубина: как измерять
Границы дистанции: от 850мм до 4000ммЗначение 0: Unknow
Тень, низкая освещенность, высокий уровень отражений,…Индекс игрока
0: нет игрока1: скелет 12: скелет 23: игрок 34:…
Демонстрация
Работа с данными глубины
Данные скелета
Сочленения (Joints)
Отслеживается максимум два игрока одновременноКаждый игрок является набором <x,y,z> сочленений, измерение в метрахКаждое сочленение имеет состояние Tracked, NotTracked, InferredInferred – закрыто, не наблюдается, низкая уверенность в предсказанииNot Tracked состояние бывает редко но вы все равно должны проверять его в коде
Сглаживание данных оскелете
Используйте чтобы снизить «дрожание» данных о скелете (jitter)
Высокочастотный шум в небольших границахВремя от времени бывают случайные всплески
nui.SkeletonEngine.TransformSmooth = true;Тонкая настройка с помощью TransformSmoothParameters
Correction, JitterRadius, MaxDeviationRadius, Prediction, Smoothing
Демонстрация
Работа с данными о скелете
Аудио
Kinect как микрофонKinect и распознавание голоса
Мульти-модальная обратная связь
Модель ВзаимодействияИндикатор микрофона для меню с голосомОжидаемое ключевое слово
Обратная связьи подтверждение
Распознавание голоса
Набор грамматик доступен для загрузкиГрамматика – то что мы ожидаем услышать
Код – GrammarBuilder, ChoisesСпецификация (Speech Recognition Grammar Specification, SRGS)
C:\Program Files (x86)\Microsoft Speech Platform SDK\Samples\Sample Grammars\
Грамматика
<!-- Confirmation_YesNo._value: string ["Yes", "No"] --><rule id="Confirmation_YesNo" scope="public"> <example> yes </example> <example> no </example> <one-of> <item> <ruleref uri="#Confirmation_Yes" /> </item> <item> <ruleref uri="#Confirmation_No" /> </item> </one-of> <tag> out = rules.latest() </tag></rule></rule>
<!-- Confirmation_Yes._value: string ["Yes"] --><rule id="Confirmation_Yes" scope="public"> <example> yes </example> <example> yes please </example> <one-of> <item> yes </item> <item> yeah </item> <item> yep </item> <item> ok </item> </one-of> <item repeat="0-1"> please </item> <tag> out._value = "Yes";</tag>
Демонстрация
Аудио
Ресурсы
Загрузкаhttp://research.microsoft.com/kinectsdk
Примерыhttp://research.microsoft.com/kinectsdk/
Coding4Fun Kinect Toolkithttp://c4fkinect.codeplex.com
Быстрй старт с Kinect SDKhttp://channel9.msdn.com/series/KinectSDKQuickstarts
Обратная связь
Уважаемые участники!Ваше мнение очень важно для нас!В блокноте, который находится в инфопаке участника, вы найдете анкету для оценки докладовПожалуйста, оцените доклад и сдайте анкету при выходе из зала модераторуДля участия в конкурсе заполненных анкет, отметьте в анкете номер, который указан на вашем бейдже
Спасибо!
Вопросы
DEV211Дмитрий Андреев
Эксперт по разработке информационных систем[email protected]: @dmandreevhttp://blogs.msdn.com/dmandreev
Вы сможете задать вопросы докладчику в зоне Microsoft в зале №17 в течение часа после завершения этой сессии