1 / 23

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

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

sian
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. DEV211 Эксперт по разработке информационных систем Microsoft Создание приложений, управляемых жестами и голосом, для Windows с использованием Kinect Андреев Дмитрий

  2. Содержание • Сенсор Kinect • Использование Камеры • Данные глубины • Отслеживание скелета • Аудио

  3. 3D Сенсор глубины RGB Камера Моторизованная платформа Мультимикрофон

  4. Демонстрация Отображение данных видео, датчика глубиныи управление вертикальной позицией

  5. Данные датчика глубины • Дистанция от Kinectдля каждого пикселя • Опционально включается информация о Игроке

  6. Как устроены данные глубины • ImageFrame.ImageBits • Массив байтов public byte [] Bits; • Массив • Начинается с верхнего левого угла • С лева на право, с верху в низ • Отображает дистацию до пикселя

  7. Вычисление дистанции • Два байта на пиксель (16 бит) • Depth – дистанция до пикселя • Ротируем второй байт на 8 • Distance (0,0) = (int)(Bits[0] | Bits[1] << 8); • DepthAndPlayer Index – включает номер Игрока • Ротируем 3 первых байта (индекс игрока), 5 следующий байт • Distance (0,0) =(int)(Bits[0] >> 3 | Bits[1] << 5);

  8. Глубина: как измерять • Границы дистанции: от 850мм до 4000мм • Значение 0: Unknow • Тень, низкая освещенность, высокий уровень отражений,… • Индекс игрока • 0: нет игрока • 1: скелет 1 • 2: скелет 2 • 3: игрок 3 • 4:…

  9. Демонстрация Работа с данными глубины

  10. Данные скелета

  11. Сочленения (Joints) • Отслеживается максимум два игрока одновременно • Каждый игрок является набором <x,y,z> сочленений, измерение в метрах • Каждое сочленение имеет состояние Tracked, NotTracked, Inferred • Inferred – закрыто, не наблюдается, низкая уверенность в предсказании • Not Tracked состояние бывает редко но вы все равно должны проверять его в коде

  12. Сглаживаниеданных оскелете • Используйте чтобы снизить «дрожание» данных о скелете (jitter) • Высокочастотный шум в небольших границах • Время от времени бывают случайные всплески • nui.SkeletonEngine.TransformSmooth = true; • Тонкая настройка с помощьюTransformSmoothParameters • Correction, JitterRadius, MaxDeviationRadius, Prediction, Smoothing

  13. Демонстрация Работа с данными о скелете

  14. Аудио • Kinectкак микрофон • Kinectи распознавание голоса

  15. Мульти-модальная обратная связь • Модель Взаимодействия • Индикатор микрофона для меню с голосом • Ожидаемое ключевое слово • Обратная связьи подтверждение

  16. Распознавание голоса • Набор грамматик доступен для загрузки • Грамматика – то что мы ожидаем услышать • Код – GrammarBuilder, Choises • Спецификация (Speech Recognition Grammar Specification, SRGS) • C:\Program Files (x86)\Microsoft Speech Platform SDK\Samples\Sample Grammars\

  17. Грамматика <!-- Confirmation_YesNo._value: string ["Yes", "No"] --> <ruleid="Confirmation_YesNo"scope="public"> <example> yes </example> <example> no </example> <one-of> <item> <rulerefuri="#Confirmation_Yes"/> </item> <item> <rulerefuri="#Confirmation_No"/> </item> </one-of> <tag> out = rules.latest() </tag> </rule> </rule> <!-- Confirmation_Yes._value: string ["Yes"] --> <ruleid="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> <itemrepeat="0-1"> please </item> <tag>out._value = "Yes";</tag>

  18. Демонстрация Аудио

  19. Ресурсы • Загрузка • http://research.microsoft.com/kinectsdk • Примеры • http://research.microsoft.com/kinectsdk/ • Coding4Fun Kinect Toolkit • http://c4fkinect.codeplex.com • Быстрй старт с Kinect SDK • http://channel9.msdn.com/series/KinectSDKQuickstarts

  20. Обратная связь Уважаемые участники! Ваше мнение очень важно для нас! В блокноте, который находится в инфопаке участника, вы найдете анкету для оценки докладов Пожалуйста, оцените доклад и сдайте анкету при выходе из зала модератору Для участия в конкурсе заполненных анкет, отметьте в анкете номер, который указан на вашем бейдже Спасибо!

  21. Вопросы • DEV211 • Дмитрий Андреев • Эксперт по разработке информационных систем • dmitryan@microsoft.com • Twitter: @dmandreev • http://blogs.msdn.com/dmandreev • Вы сможете задать вопросы докладчику в зоне Microsoft в зале №17 в течение часа после завершения этой сессии

More Related