Аннотация
Представляю вашему вниманию материалы одноименного доклада, сделанного мной на конференции ADD-2010 осенью прошлого года.В докладе после краткого экскурса в историю рассматривается текущее1) состояние дел в освоении дополненной реальности:
- использование датчиков: акселерометры, гироскопы, магнитные компасы, GPS
(различные мобильные телефоны, Wii, Sony Move, XSens)
- использование маркеров: с инфракрасной подстветкой, в видимом диапазоне
(Sony Move, OptiTrack, Vicon)
- использование структурированной подсветки
(на примере Microsoft Surface)
- Z-камеры, выдающие картику + расстояние до объекта
(Microsoft Kinect, её предшественники и аналоги)
- безмаркерный захват движений
(OrganicMotion, iPi Soft Desktop Motion Capture)
- сканирование 3d-поверхности по набору изображений:
(стереокамеры, 3d-сканеры, воссоздание 3d-сцены с движущейся камеры)
За каждой из технологий стоят определенные алгоритмы и области Computer Science. Чтобы создавать успешные приложения такого класса, надо в них если и не досконально разбираться, то хотя бы ориентироваться. Для примера в докладе достаточно подробно рассмотрены вопросы обработки данных, поступающих с гироскопов и акселерометров. Несмотря на кажущуюся простоту, даже здесь есть трудности и место не совсем банальной математике. Остальные алгоритмы рассмотрены поверхностно и сильно упрощенно.
Материалы
Стенограмма
Стенограмму по видео записал belonesox.2)
WTF?
Здравствуйте, меня зовут Андрей, я вам хочу немножко рассказать про дополненную реальность. Доклад слегка перемешанный, отчасти популистский, отчасти в нем есть элементы чего-то серьезного, но в целом легковесный доклад.
Собственно говоря, сейчас дополненная реальность или Augumented Reality это такой вот buzz-word, его всюду слышите, «А-а-а, дополненная реальность, дополненная реальность», возникает вопрос — «Что это?».

Самое банальное объяснение — это Терминатор, где он смотрит на наш мир своими глазами, и ему, к информации, которая просто картинка нашего мира, добавляется некоторая дополнительная, весьма содержательная — «Subject Unknown»… Мда, это та самая фаза, в которой Augumented Reality на данный момент и находится. Пока, зачастую такая вот «полезная» информация и добавляется.
То есть это то, когда вы, нашему окружающему миру хотите добавить какую-нибудь дополнительную информацию.

Мы все под впечатлением от недавнего чемпионата по футболу. Дополненная реальность уже применяется и на телевидении: например, когда вдруг начинают проводить как в офсайде мяч улетел. А хоккей даже невозможно смотреть: там шайбу подсвечивают, чтобы приковать к телевизору.

Есть на самом деле значительно более интересные приложения, это развитие навигационных систем, всем уже надоело смотреть на карту и пытаться сообразить, куда же и как поворачивать.
Лучше показывать изображение улицы, и прямо поверх изображения показывать маршрут, чтобы вы очень легко сопоставляли то, что вы видите, с тем, что вам подсказывает компьютер.
Пока конечно, все это работает поверх Street View, но это в общем и целом достаточно неплохо, хоть это и не живая картинка с вашей камеры.
Здесь пример видео, когда ребенок подносит коробку, камера снимает коробку и с��бственно говоря, ребенок видит на экране поверх этой коробки картинку, модельку, которую предлагается ему собрать, и купить. Достаточно интересное применение.

Если вы загуглите дополненную реальность, вы найдете какие-нибудь такие картинки, когда есть какая-то метка, и поверх нее какую-нибудь трехмерная картинка, зачастую это какие-то бестолковые демонстрации. Непонятно, зачем это в жизни, в отличие от коробки с конструктором, но вот, в основном все вот этим балуются.

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

Например, какой-нибудь крупный градоначальник («казалось бы причем тут Лужков» ©), хочет посмотреть, как будет выглядеть какая-нибудь будущая гостиница или еще что-нибудь. Наводит на это место города свое устройство, и ему прямо там, поверх этой картинки отрендеривается. Вот, что например, можно придумать и дорого продать московским властям.

Этот подход устроен на немного другом механизме, здесь вам скорее всего о картинке знать ничего и не надо, главное, чтобы она была и поступала, здесь вы анализируете, как у вас расположена и ориентирована камера относительно нашей матушки-Земли.
AR vs. VR
Возникает резонный вопрос: как это соотносится с виртуальной реальностью, которой уже двадцать лет в обед?

Если «классика» дополненной реальности — это «Терминатор», то классика виртуальной реальности, — фильм «Газонокосильщик». Ему очень много лет уже, помню в школе смотрел, и там качество рендеринга примерно такое.

У нас всех виртуальная реальность ассоциируется с какими-то шлемами безумными, такая вот штука. Если говорить серьезнее, у нас ведь такая, почти научная конференция, обязательно нужны диаграммы…



И если виртуальная реальность — это в основном какой-то генерированный контент, и немножко берется из нашего мира — они вот перчатки приспособили на руки, еще что-то, но основной упор был именно на генерацию. То дополненная реальность — это все-таки наоборот, когда мы берем что-то из нашего реального мира и пытаемся его чем-то полезным дополнить из нашего цифрового мира.

Но намного интересней другое различие. Вот у нас есть компьютер, есть какие-то устройства ввода, и обработки этого ввода. Есть устройства вывода и соответственно рендеринг и подготовка данных для них.
Виртуальная реальность и все инновации в ней касались в основном рендеринга и устройств вывода. Собственно они сейчас продолжаются, сейчас всплеск 3D. То дополненная реальность, так получилось, она больше об устройствах ввода, и о том, как его обрабатывать, про новые устройства ввода и алгоритмы обработки.
A LA HISTORY
Давайте быстро пробежимся по краткой истории.
Везде здесь даты, когда это пошло в массы. Очень многие разработки придуманы раньше, намного раньше, чем это действительно стало использоваться.


Клавиатура, именно электрическая, — начало семидесятых годов. Тачскрин немногим позже разработали, и применили, это тоже начало семидесятых годов, достаточно древняя вещь.

Дальше великая инновация — это, собственно, мышка. И первым, ее не Apple применил в массовом производстве, а собственно сам Xerox, в 1981 году у них вышел Star Mouse. Вот слева, собственно, она, а справа — современная. Т.е. вы видите, что прогресс за это время не очень сильно ушел.
Прошло целых десять лет, в процессе которых ничего не происходило, стали появлятся вебкамеры, на мышке появился скролл, который упростил нам жизнь в интернете, это очень существенная инновация в устройствах ввода.


Прошло еще десять лет, и сейчас мы наблюдаем бум. Сначала пошли в ширпотреб мультитачи с яблокофонами. Потом в 2007 появился WiiMote, в который воткнули акселерометр, и попытались приспособить к играм. Получилось, что только акселерометр — это плохо, приделали к нему добавочку, к низу подключается, и туда встроили еще гироскоп (WiiMotion+).



Прямо сейчас выходит куча смартфонов, куда все это встроено сразу — гироскоп, акселерометр, GPS, видеокамера. Вот здесь для примера яблокофон последний, но куча телефонов на базе Андроида, они упичканы совершенно так же.


И что происходит прямо сейчас? Выходит Sony Move, вот прямо сейчас его уже можно начинать покупать.
Интересное устройство. Некоторые считают, что Sony Move, это такой вот Wiimote, только в высоком качестве, но у него есть несколько забавных, полезных фич, о которых мы поговорим. Он рвет многое.


Вот, собственно говоря, презентация Sony Move, давайте посмотрим чуть-чуть отрывок. Это гаджет к плейстешну, но даже сами разработчики говорят, что они его используют на PC, чтобы 3D MAXе в пространстве двигать объекты.
Это устройство, которое снабжено акселерометром, гироскопами, и магнитным компасом, и плюс еще светящимся шариком, по которому можно отслеживать его положение в пространстве. Получается очень хорошее отслеживание вашей кисти руки, так что у вас вполне работоспособный User Experience получается. Мощная штука, хоть кажется и простой.

Ну и конечно, самое нашумевшее, это микрософтовский Kinect. Это такой сенсор, который меряет еще глубину, т.е. не только RGB-картинку, но и расстояние до объекта. Он должен выйти в ноябре (2010). И собственно говоря, эта штука она тоже для игр, но на другом принципе.
Она, плюс к тому, что получает RGB-картинку, она еще получает матрицу глубин для объекта, т.е. расстояний. Грубо говоря, лазерный дальноме��, только на других принципах. За счет этого, им удалось сделать отслеживание людей.
Вот такой интересный ролик, это ролик достаточно содержательный, в отличие от тех игр, которые они показывают. Ибо игры они показывают совершенно примитивные и ужасные, где на стену надо накидывать какие-то краски, когда можно на более примитивных устройствах и алгоритмах тоже самое сделать3).

Собственно говоря, все это происходит сейчас, прямо на наших глазах, а первая такая истинная, дополненная реальность, была, опять таки, все это разработано раньше, в массовое производство все эти вертолеты Apache пошли в 1984 году, там был применен шлем с очень интересной штукой. На один глаз, за счет такого полупрозрачного дисплейчика проецировалась картинка, дополненная — т.е. какая-то разметка, куда ты целишься, какие-то высоты, куча каких-то данных, причем сам шлем был снабжен гироскопом, в нем стояли гироскопы, чуть ли не настоящие, да и до сих пор стоят — все это летает. За счет этого было понятно, куда пилот смотрит, и ему проецировалась информация ровно по его взгляду.
Это достаточно адовая штука, ибо пилоты жалуются, что после его применения у них начинает дико болеть голова, раскалываться и тому подобное4). А жаловаться нельзя, потому что тебя сразу уволят из армии по профнепригодности, а в Америке много платят в армии. Поэтому они все терпят, и через несколько месяцев голова проходит, но через год-два снова начинает дико болеть… Один из пилотов решил пронаблюдать за своим зрением, во время использования этого шлема, оказалось, что у него глаза двигаются независимо, как у хамелеона.

Все дело в том, что проецирование происходит на один глаз, а другой глаз этого не видит, из-за этого болит мозг, он не может скоррелировать эти картинки. Через некоторое время (человек животное приспосабливаемое, люди не свиньи — все сожрут), они приспосабливаются, голова вроде как проходит, но к таким вот последствиям все это приводит. Поэтому когда я вижу, что сейчас пытаются выпустить такое устройство в ширпотреб — не покупайте. Я думаю, у них ничего не получится, ибо головные боли и ничего хорошего… Ну если немножко, и если очень хочется как пилоту…
How does it work?

Давайте перейдем к самой содержательной части доклада, как это, собственно говоря, работает, и как всем этим можно пользоваться. Напомню эти две картинки, что есть два разных принципа:
- Анализ изображений.
- Когда мы знаем, положение нашей камеры, и куда она смотрит, а само изображение нас толком не волнует: нам главное его показать пользователю, и поверх что-то там нарисовать.
Так можно это изобразить, что либо мы используем камеру, как основное устройство ввода, либо мы специальный сенсор используем.

С точки зрения, что делать с камерой, как анализировать ее изображение, тут есть целый взрыв всяких разных подходов, и вообще, направлений.
С точки зрения сенсоров, все значительно проще, их набор достаточно стабильный, о нем для начала и поговорим.
To be continued
Примечания
1) За полгода, прошедших с момента доклада, кое-что успело измениться. Соответствующие сноски об этом присутствуют в надлежащих местах стенограммы.
2) Здесь стенограмма доклада приводится в несколько урезанном виде. Полную версию можно найти по ссылке.
3) Умеренный скепсис автора не оправдался. Kinect вошел в книгу рекордов Гинесса как самый быстропродаваемый гаджет. А дети, и даже взрослые очень любят те нехитрые игры, которые идут с ним в комплекте.
4) Cм. например заметку об адаптации пилотов вертолета Apache к dual-view шлему (Сама книга знаменитого вертолетчика — Apache: Inside the Cockpit of the World’s Most Deadly Fighting Machine — Ed Macy, частично доступна бесплатно онлайн).
