Аннотация
Представляю вашему вниманию материалы одноименного доклада, сделанного мной на конференции 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, частично доступна бесплатно онлайн).