Магистр
НАУЧНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ТОМСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Студент
Кизеев Вениамин Михайлов, старший преподаватель, Национальный исследовательский Томский политехнический университет
УДК 681.3.014
Введение
Kinect устройство для считывания движений человека во время игрового процесса. В настоящее время стал очень популярным в различных областях науки. Применяется как прибор с техническим зрением в медицине, робототехнике, автоматизации и других аспектах науки.
Актуальность работы с контроллером Kinect
Технология виртуальной реальности день за днем соприкосается с жизнью человека. Появляются огромные возможности для их применения: хиррургия, игры, промышленные объекты и т.д. Самым совершенным методом распознавания образа объекта из реальности является трехмерное сканирование.
Статья посвящена актуальной научной задаче: на основе трехмерного сканирования, совмещение виртуальной и дополненной реальностей. Где для трехмерного сканнирование берется игровой контроллер Kinect, а програмными средствами выступят Visual Studio 2010, Kinect for Windows SDK.
Цель и задачи исследования
Целью данной работы является создание нового способа трехмерного сканирования для совмещения виртуальной и дополнительной реальности по средством игрового контроллера Kinect, разработанного компанией Microsoft для игровой приставки xBox360.
Основные задачи исследования:
Анализ существующих систем и методов трехмерного сканирования и совмещения виртуальной и дополненной реальностей.
Разработать метод совмещения виртуальной и дополненной реальностей.
Продемонстрировать разработанный метод на реальной компьютерной системе.
Объект исследования: метод сканирования и совмещения виртуальной и дополненной реальностей.
Предмет исследования: существующие способы позволяющие совмещать элементы виртуальной и дополненной реальностей в реальном времени с помощью системы трехмерного сканирования Kinect.
Для того, чтобы отобразить результаты данного исследования, необходимо создать программу демонстрации совмещения виртуальной и дополненной реальностей в реальном времени с применением предложенного метода.
Kinect - бесконтактный сенсорный игровой контроллер, созданный компанией Microsoft (Рис. 1).
Рисунок 1. Kinect
Позволяет взаимодействовать пользователю с ним с помощью голосового управления, жестов тела и т.д.[1].
Kinect имеет 2 сенсора, RGB-камеру и множество микрофонов в основании конструкции (Рис. 2). Первый инфракрасный сенсор служит для распознавания пространства вокруг игрока, второй монохромный CMOS-сенсор предназначен для перенесения полученных данных в игровое пространство. Камера служит для распознавания лиц, съемки видео и фотографий. Так же устройство оснащено механической подставкой, при необходимости механический привод автоматически наклоняет сенсор вверх и вниз. Дальность распознавания 3-5 метров.
Наклон вниз позволяет обнаружить пол, а наклон вверх позволяет «увидеть» игроков в их игровом пространстве.
Еще в достаточно небольшом корпусе расположены "органы восприятия" устройства, можно сказать "глаза и уши", а так же необходимые микросхемы для того что бы "глаза и уши" правильно функционировали[2].
Рис 2. Kinect изнутри.
VGA‑камера «видит» и записывает ваши движения в цвете, с частотой 30 кадров в секунду.
Рядом расположен сенсор глубины положения игроков в помещении, состоящий из инфракрасного излучателя и монохромной CMOS‑камеры. Датчик глубины помогает отделить игрока, от предметов вашего интерьера и других предметов, которые в игре не участвуют.
Микрофоны позволяющие считывать речь и механическая подставка, которая поворачивает контроллер, это позволяет устройству видеть вас полностью, даже если вы случайно вышли из поля зрения Kinect.
Игрок движется перед экраном, Kinect считывает информацию, а Xbox 360 обрабатывает ее.
Но что же передается с контроллера на консоль?
Это конечно же RGB-видео потоковое видео с разрешением VGA (640х480 пикселей) и частотой 30 кадров в секунду. Затем - с таким же разрешением монохромный видеопоток, следящий за глубиной изображения.
И, в конце, 16-битное аудио с частотой дискретизации 16 кГц.
С микрофоном и монохромным датчиком разработчики придумали несколько хитростей.
В конструкцию Kinect встроено 4 микрофона, что позволяет определять кто говорит и в какой части комнаты этот человек находится. Но раньше для того что бы распознать речь человека оптимальное расстояние от микрофона было 2 см, а что если игрок стоит за 3-4 метра от микрофона? Шум из окна, домашние животные, а так же другие люди в комнате мешали бы распознавать устройству речь играющего, плюс динамики от самой приставки Xbox 360, ведь игроки часто ставят громкость на максимум. То есть перед разработчиками стояло две задачи: отделить шум динамиков от речи человека и второе это уменьшить реверберации и шум. Только в этом случае в "распознаватель речи" будет поступать разборчивый звук относительно высокого качества. Поэтому разработчикам пришлось ввести несколько технологий. Первая это технология направленных микрофонов. Четыре микрофона позволяют системе захвата определить, откуда идет звук, и отсечь шумы и реверберацию. Вторая технология – эхоподавление. Это одна из старых разработок, она давно применяется в спикерфонах (телефонах с громкоговорителем). Но в спикерфонах уровень громкости приближен к уровню человеческого голоса, а в приставке Xbox 360 громкость динамиков намного выше человеческого голоса. Так же сигнал от динамиков является не монофоническим, а стереофоническим. Разработчики нашли выход – это алгоритм стереоакустического эхоподавления. Создать такой алгоритм было непростой исследовательской задачей и такая технология впервые применялась в Kinect, более того устройство теперь могло распознавать речь с расстояния 3-4 метров. Так же важно что в Kinect в отличии от других речераспознающих устройств нет кнопки Push-to-talk ("Нажми и говори"), то есть пользователю не нужно выполнять каких либо действий что бы подать знак о том что он говорит.А чтобы распознать положение тела игрока используется такая же технология как и в дальномерах (Рис.3), Инфракрасный проектор накладывает на пространство перед Kinect сетку из точек. 30 раз в секунду инфракрасная камера считывает картинку и передает данные на консоль, где для каждой из этих точек определяется пространство от нее до камеры. Что бы определять положение игрока использован алгоритм Kinect Fusion. На основе анализа кадров глубины, получаемых с сенсора Kinect формируется детализированное 3D-представление обозреваемой сцены(пол, стены). Данные обрабатываются в реальном режиме. Высокая детализация и скорость достигается за счет использования для всех расчетов GPU.
Рис. 3. Персонаж на экране полностью повторяет движения человека.
Алгоритм Kinect Fusion
Основной цикл работы алгоритма Kinect Fusion включает в себя следующие шаги:
Очевидное ограничение на размер сцены присутствует в модуле KinFu. Расширение алгоритма Kinect Fusion – Kintinuous предлагает по мере приближения камеры к границам куба – выгружать часть сцены из памяти видеокарты во внутренее представление модели “всего мира”. Эта идея нашла свое отражение в модуле KinFu Large Scale.
Существующие ограничения KinFu Large Scale: не терпит резких перемещений камеры, не всегда корректно производится вычисление нового положения камеры во время сдвига куба, работает не стабильно. Зато уже сейчас есть масса информации для экспериментов.
Рис. 4. Пример работы алгоритма Kinect Fusion.
Инфракрасная камера была выбрана неслучайно, инфракрасные-лучи не заметны невооруженным глазом и не помешают человеку наслаждаться игрой.
Результаты работы
На сегодняшний день разработан тестовый образец подсистемы взаимодействия человека с виртуальной и дополненной реальностями. Основной целью было обеспечение интуитивно понятных и комфортных передвижений для управления виртуальным персонажем на экране. Основной проблемой при разработке подсистемы было преобразование данных, которые поступали с трехмерного сенсора Kinect для управления персонажем игре. На рисунке 5 воспроизведена работа подсистемы.
Рис. 5. Структура работы подсистем
Трехмерный сенсор Kinect каждый раз при перемещении пользователя генерирует новый файл состояния с текущими координатами положения всех частей тела. Подсистема сопоставляет значения положения частей тела в реальном времени с положениями тела в предыдущем состоянии или анализирует пространство на предмет определенных движений тел. Система является комфортной для любого человека, так как она имеет настройку пороговых значений срабатывания движений.
Когда программа запускается, она переходит в режим прослушки движений в пространстве. И, смотря какой тип события произошел, в систему посылаются нужные команды посредством метода SendInput (). Таким образом этот метод является очень эластичным и универсальным, так как команды передаются в любое активное приложение. То есть наша система будет подходить для управления любого приложения путем изменения положения тела юзера.
Вывод
Kinect очень интересное приспособление и имеет большой потенциал использования помимо игр. Недавно была представлена система с использованием алгоритма Kinect Fusion: планшет с закрепленным на нем сенсором Kinect создает модель головы пациента, что позволяет нейрохирургам определить оптимальное место для начала операции. Преемущества данной система относительно других устройств трехмерного сканирования можно выделить несколько. Во-первых это цена, даже любительские устройства данного типа стоят на порядок дороже, а функции выполняет те же самые, но в некоторых случаях у системы Kinect есть больший функционал. Во-вторых это специльное приложение от Microsoft: "Microsoft kinnect for windows" - данное приложение бесплатно доступно на официальном сайте Microsoft, что делает эту хорошим вариантом для обучения. То есть если необходимо научиться работать с техническим зрением и трехмерным сканированием не выходя из дома и потратить на это минимум денежных вложений и времени, тогда данная система подходит как можно лучше.
Данный концепт очередной раз демонстрирует, что Kinect давно вышел за рамки индустрии развлечений и в скором времени сможет найти применение в самых различных областях нашей жизни.
Рецензии:
23.05.2017, 19:32 Лобанов Игорь Евгеньевич
Рецензия: Автору следует уделить внимание на то, чем используемый аппарат предпочтительнее других аппаратов трёхмерного сканирования. Это следует отразить в выводах. После чего статью можно будет рекомендовать к публикации.