Создание приложений, управляемых жестами и голосом,...

Post on 08-Feb-2016

86 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

DEV211. Эксперт по разработке информационных систем. Microsoft. Создание приложений, управляемых жестами и голосом, для Windows с использованием Kinect. Андреев Дмитрий. Содержание. Сенсор Kinect Использование Камеры Данные глубины Отслеживание скелета Аудио. 3D Сенсор глубины. - PowerPoint PPT Presentation

TRANSCRIPT

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Дмитрий Андреев

Эксперт по разработке информационных системdmitryan@microsoft.comTwitter: @dmandreevhttp://blogs.msdn.com/dmandreev

Вы сможете задать вопросы докладчику в зоне Microsoft в зале №17 в течение часа после завершения этой сессии

top related