Как человек стал контроллером (ч.1)

Автор: Topol Четверг, Май 3rd, 2012 Нет комментариев

Рубрика: Операционные системы

«Вы — это контроллер». Если вы внимательно следили за всем тем ворохом новостей, которые окружали Kinect, то вы, вероятно уже слышали эту фразу. Начиная с игры в Kinect Adventures! до смены песен в Zune, Kinect открывает новый способ для естественного взаимодействия с игровой приставкой.

Однако, как только вы освоите магию открытия лотка дискового привода одним движениям руки в стиле джедая, вы, вероятно, зададитесь вопросом, а как это все работает. В этой статье я, Рон Форбс (Ron Forbes), сосредоточусь на том, что стоит за системой отслеживания движений человека, и на том, как разработчики игр могут использовать эту систему в своих играх. Во второй части Арджун Дайал (Arjun Dayal), программный менеджер команды Kinect, покажет вам, как Kinect позволяет использовать жесты для навигации по главному меню Xbox и хабу Kinect. Но, пока мы до этого не дошли, давайте начнем с основных концепций, которые сопровождали разработку Kinect.

Аналоговый мир, в котором мы живем
Традиционное программирование основано на наборе правил и эвристике: причина и следствие, ноль и один, истина и ложь. К счастью, этот подход работает хорошо для моделирования простых систем с ограниченным количеством входов и выходов. Возьмем для примера Halo (по многим признакам это не простая система, но она подходит для того, чтобы доказать описанную точку зрения): нажатие кнопки A заставляет Мастера Чифа подпрыгнуть; перемещение одного стика заставляет его идти вперед; перемещение другого указывает ему осмотреться. Если A, то B. К сожалению, реальный мир является не цифровым, а аналоговым.

В аналоговом мире существуют не только «да» и «нет», а еще и «может быть». Есть не только «истина» и «ложь», но еще и вероятности. Задумайтесь ненадолго о всех возможных положениях человека, машущего рукой: диапазон физических пропорций тела, глобального разнообразия условий окружающей среды, различия в свойствах одежды, культурные особенности для выражения даже простого жеста. Вы быстро придете к области поиска порядка 10^23 — нереальная предметная область для решения с помощью условного программирования.

Мы сразу поняли, что нам необходимо изобрести новый метод решения этой проблемы, который работает подобно человеческому мозгу. Когда вы сталкиваетесь с чем-то в мире, ваш мозг немедленно сосредотачивается на этом и распознает его, основываясь на годах предшествующего обучения. Он не проходит вглубь дерева решений на тысячи уровней, чтобы отличить одного человека от другого. Он просто знает. Если ребенку пришлось бы с трудом описать различие между двумя людьми, то вы научились делать это за доли секунды. Фактически, вы, вероятно, могли бы высказать разумные предположения об их возрасте, поле, этническое принадлежности, настроении или даже их личности (но это уже тема для другой статьи). Это одно из тех свойств, что делает нас людьми.

Kinect был создан таким же образом. Он видит мир вокруг себя. Он сосредотачивается на вас. И даже при том, что он никогда ранее не видел, как вы машете руками, он мгновенно сопоставляет ваши движения с терабайтами информации, которые он уже изучил.

Сенсор Kinect
В основе конвейера отслеживания движения скелета лежит инфракрасный датчик CMOS, который позволяет Kinect чувствовать мир, независимо от условий окружающего освещения. Думайте об этом, как о наблюдении за окружающей средой в монохромном черно-белом спектре: черный представляет собой бесконечно далекую точку, а белый — бесконечно близкую. Оттенки серого между этими двумя экстремумами соответствуют физическому расстоянию до датчика. Датчик фиксирует каждую точку в пределах его поля зрения и собирает их в объемное изображение, которое представляет реальным мир. Поток этих объемных изображений формируется с частотой 30 кадров в секунду, создавая 3D-представление окружающей среды в реальном времени. Это очень похоже на игрушку «Pinpoint impression«, которая используется для всего изображения. Поднимая ваши руки (или другую часть тела, в зависимости от того, на что у вас хватило воображения), вы могли бы создать простую 3D-модель этой части вашего тела.

Обнаружение движущихся частей
Далее Kinect фокусируется на движущихся объектах, которыми, вероятнее всего, являются люди на изображении, что очень похоже на то, как человеческий глаз подсознательно сосредотачивается на движущихся объектах, которые он видит в реальном мире. Далее по конвейеру Kinect выполняет попиксельную обработку объемного изображения для распознавания частей человеческого тела; однако, для поддержания достаточной частоты обновления, эта обработка должна быть заранее оптимизирована.

Сегментация — это стратегия, которую Kinect использует для отделения человеческих объектов от фона, сигнал от шума. Kinect может активно отслеживать полные скелеты до двух игроков, а также пассивно отслеживать форму и позицию четырех пассивных игроков одновременно. На этом этапе конвейера мы создаем то, что называется маской сегментации для каждого отслеживаемого игрока на объемном изображении. Это модифицированная версия объемного изображения, из которого вычли фоновые объекты, такие как стулья или домашние животные. Посылая в оставшуюся часть конвейера только маску сегментации, мы уменьшаем объем вычислительной работы, которая должна быть проделана для идентификации частей тела.

Мозг внутри Kinect
Вот где происходит настоящая магия. Каждый пиксель сегментации игрока передается в обучающую систему устройства, которая обучена распознавать части человеческого тела. Она вычисляет распределение вероятности того, что данный пиксель принадлежит данной части тела. Например, один пиксель может иметь 80% вероятности того, что он принадлежит стопе, 60% — ноге, и 40% — груди. На этом этапе можно было бы оставить самое вероятное предположение и отбросить все остальные, однако это немного преждевременно. Вместо этого мы отсылаем все эти предположения (называемые множественными центроидными предположениями) дальше по конвейеру и откладываем это решение до самого конца.

У вас может возникнуть вопрос, как мы научили этот мозг распознавать части тела. Обучение этого искусственного интеллекта, носящей название системы Exemplar (англ. образец) было настоящим подвигом: терабайты данных были переданы на машинный кластер, чтобы обучить Kinect попиксельной методике идентификации рук, ног и других частей тела, которые он видит. Похожие на клоунов фигуры, которые вы видите ниже, являются некоторыми кусками данных, которые мы использовали для обучения и тестирования системы Exemplar.

Настройка модели: создание скелета
Последним шагом в конвейере является использование центроидных предположений из предыдущей фазы для создания скелета из двадцати отслеживаемых соединений. Для каждого соединения Kinect рассматривает каждый пиксель, который Exemplar предложила как вероятное соответствие. Таким образом, у него есть полный объем информации, позволяющий сделать самую точную оценку того, где фактически находится человек. Мы также делаем некоторую дополнительную фильтрацию выходного результата на стадии настройки модели для его выравнивания и обработки особых случаев, таких как перекрытые соединения.

Одна из целей использования системы отслеживания скелета состояла в том, чтобы обеспечить «заказной» интерфейс для различных выходных данных конвейера. Разработчики игр могут использовать любое количество этих компонентов, необходимое для получения требуемого результата. Например, можно использовать только карту сегментации для создания невероятных эстетических эффектов (прекрасным примером этому является Your Shape: Fitness Evolved).

Здесь у вас есть полноценная система отслеживания человека в реальном времени для управления вашими играми и другими развлечениями. Мы надеемся, что этот взгляд на Kinect изнутри покажет вам, каким образом мы позволили разработчикам игр составить цифровое представление аналогового мира, в котором мы живем. Во второй части статьи Арджун представит вам улучшенное главное меню Xbox и хаб Kinect. Он покажет, как главное меню и хаб Kinect используют поток объемных изображений и 20-узловой скелет для создания интуитивного, основанного на жестах способа взаимодействия с вашими играми, фильмами, музыкой и другим контентом.

Источник: thevista.ru

Оставить комментарий

Чтобы оставлять комментарии Вы должны быть авторизованы.

Похожие посты