Домой Сделай сам! Microsoft MirageTable: осязаемое 3D-чудо

Microsoft MirageTable: осязаемое 3D-чудо

“Для вас “Звездный путь” – сериал, а для меня – реальность.”

©Говард Воловиц, “Теория большого взрыва”

Попытки приблизить реальность и виртуальность предпринимаются много десятилетий, но все эти системы дополненной реальности (Augmented Reality, AR) – все эти шлемы, надеваемые 3D-дисплеи, сенсорные панели и виртуальные поверхности, лишь недавно стали похожи на что-то удобоваримое для повседневной практики использования. Об одном из таких примеров мы расскажем сегодня.

Основная идея дополненной реальности – наложение на картину реального (или виртуального) мира дополнительной информации. Несмотря на преимущества, серьезным недостатком современных решений дополненной реальности являются трудности и проблемы со вводом информации. Сегодня для этой цели используются очки, шлемы, датчики, полупрозрачные дисплеи. Более того, многим устройствам недостает способности быстро и эффективно реагировать на изменения в окружающем мире. Другими словами, нет желаемого уровня взаимодействия.

Недавно инженеры Microsoft Research рассказали о разработке “волшебного стола” – MirageTable для одновременного управления настоящими и виртуальными 3D-объектами в режиме реального времени, без перчаток и сложного надеваемого оборудования.

Представьте себе следующую ситуацию. Вы ставите на стол небольшую кеглю. После указания необходимых параметров, система создает несколько виртуальных 3D-копий объекта. Теперь – самое интересное. Попробуем сыграть виртуальным шариком и виртуальными кеглями в мини-боулинг. Камера отслеживает положение головы игрока, поэтому кегли отображаются в стерео 3D на столе с правильной перспективой. Пользователь берет виртуальный шарик в руку и бросает его, пытаясь сбить кегли.

Страйк! Но это ещё цветочки, MirageTable способен на гораздо большее.

MirageTable: что это такое

MirageTable представляет собой проекционную систему дополненной реальности, которая позволяет пользователю не только видеть виртуальные 3D-объекты, но и взаимодействовать с ними. Возможность использования этой функции напрямую зависит от того, насколько точную и правильную перспективу для отображаемых объектов демонстрирует проектор. Также нужно учитывать формируемые на пути светового потока препятствия (руки пользователя, к примеру).

Комплект MirageTable включает:

  • 120-Гц DLP-проектор Acer H5360 (разрешение 1280×720 точек),
  • систему Kinect
  • пару затворных очков NVIDIA 3D Vision
  • изогнутый экран (90х60х80 см)
  • компьютер
MirageTable: общий вид
Рис. 2

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

Сенсор Kinect закреплен над экраном и направлен таким образом, чтобы сканировать поверхность стола перед пользователем. 120-Гц стереоскопический проектор устанавливается на потолке, а картинка проецируется на поверхность изогнутого стола. Затворные очки обеспечивают просмотр проецируемой проектором сцены в стерео 3D. Очки – единственный компонент системы, который пользователь вынужден на себя надевать. Если очки не использовать, все виртуальные объекты будут отображаться без «объема».

MirageTable позволяет реализовать следующие возможности:

  • Мгновенный захват (съемка) в 3D физических объектов и пользователя
  • Рендеринг на основе отснятого материала и 3D-окружения с учетом правил стерео и перспективы
  • Проекцию изображения в перспективе на поверхность, которая не является плоской и параметры которой могут изменяться с течением времени
  • Отслеживание положения головы пользователя без необходимости использования надеваемых датчиков и дополнительных устройств
  • Полную свободу действий – взаимодействие с виртуальными объектами без перчаток и датчиков. Виртуальные объекты по физическим и визуальным характеристикам практически не отличаются от реальных предметов-аналогов

Многие методики и принципы, на основе которых построена работа MirageTable, по отдельности демонстрировались и были описаны  ранее. Объединив преимущества технологий в единую систему, инженерам «стола» удалось выйти на новый уровень реализации дополненной реальности.

MirageTable: как это работает

MirageTable под силу оцифровывать настоящие объекты и проецировать их виртуальные копии на поверхность стола. При этом, пользователь может свободно манипулировать полученными копиями. Таким образом, в стерео 3D-сцене происходит “смешение” настоящих и виртуальных элементов.

MirageTable: зеркальное отражение
Рис. 1

Преимущества проекторов давно используются для реализации систем дополненной и виртуальной реальности. Среди существующих на базе этих технологий проектов можно выделить следующие:

  • Преобразование 2D-поверхности в интерактивную
  • Симуляция текстур и параметров отражающей способности поверхности
  • Наложение теней и формирование потоков света
  • Анимация управляемой пользователем поверхности

Существует множество технологий для захвата сцены в 3D: стерео, использование структурированного света (structured light), формы из силуэта (shape from silhouette), камера для вычисления времени пролета (time of flight, ToF camera). Основные преимущества современных моделей датчиков или камер глубины – возможность функционировать в режиме реального времени и небольшая стоимость.

Смотри в оба: отслеживание положения головы и стерео 3D

В текущей версии MirageTable пользователь вынужден использовать затворные 3D-очки. Таким образом, для корректного отображения трехмерных объектов система следит за расположением именно очков, а не глаз.

В текущей версии MirageTable пользователь вынужден использовать затворные 3D-очки
Рис. 3

Для обнаружения очков на карте глубины головы пользователя, система использует показатели отражательной способности линз-стекляшек. На картинке, генерируемой сенсором Kinect, в районе лица отчетливо видны «отверстия» рядом с переносицей. Расчет положения глаз человека MirageTable производится с использованием данных об изменении координат «дыр» от очков на карте.

Проекция и текстурирование

Проецируемая на поверхность стола картинка создается с помощью техники проекционной текстуры (projective texture approach), которая предусматривает использование двух этапов рендеринга. Нужно это, в первую очередь, для обеспечения корректной перспективы при визуализации. Сначала сцена рендерится с учетом перспективы для каждого глаза. Во внимание берется не только формируемый виртуальный контент, но и оцифрованные в режиме реального времени реальные объекты (руки пользователя, к примеру). Полученные рендеры используются как источник текстурированного света и проецируются на геометрию.

В результате пользователь видит правильно сгенерированную 3D-картинку (с точки положения глаз в текущий момент) с учетом физических особенностей поверхности, на которую проецируется изображение.

В результате, пользователь видит правильно сгенерированную 3D-картинку (с точки положения глаз в текущий момент) с учетом физических особенностей поверхности, на которую проецируется изображение
Рис. 4

К примеру, виртуальный мячик корректно отображается в руке пользователя на Рис. 5, несмотря на то, что проецируется на несколько различных поверхностей одновременно (рука и стол).

виртуальный мячик корректно отображается в руке пользователя, несмотря на то, что проецируется на несколько различных поверхностей одновременно (рука и стол)
Рис. 5

Из реального мира в виртуальный

Реализовать эту возможность в режиме реального времени сегодня в определенной мере позволяют сенсоры глубины типа Kinect. Для достижения максимальной эффективности работы системы, разработчики  задействовали специально разработанный вершинный шейдер. Его задача – расчет геометрии силами графического акселератора класса NVIDIA GeForce GTX 580 и выше.

Физические объекты оцифровываются путем захвата и последующего обсчёта 3D-геометрии и текстур в режиме реального времени. В случае с MirageTable, подобно многим системам на базе одного сенсора/камеры, важным этапом является зеркалирование захваченной сенсором геометрии. Пользователю не нужно поворачивать или двигать объект/камеру с целью захвата всех видимых сторон предмета, благодаря зеркалированию система демонстрирует только видимую сторону виртуальных объектов.

Взаимодействие с реальными и виртуальными объектами на физическом уровне

Взаимодействие с реальными и виртуальными объектами на физическом уровнеПользователь может держать виртуальный объект в руке, передвигать его с места на место, толкать и бросать. Все виртуальные и реальные предметы в режиме реального времени участвуют в физической симуляции сцены. Реализована симуляция с помощью решения NVIDIA PhysX.

В идеале, симуляция должна «приспосабливаться» к деформируемой геометрии участвующих в сцене объектов. К сожалению, воплотить в жизнь эту задумку ученым пока не удалось, так как относительно доступные современные движки не обладают поддержкой необходимых технологий. В MirageTable расчет захваченной сенсором геометрии осуществляется с помощью так называемых “прокси-частиц”. Внешне частицы напоминают расположенные близко друг другу шарики.

Методика использования прокси-частиц уже демонстрировалась в проектах с интерактивными 2D-дисплеями. Создатели MirageTable решили расширить границы применения этой технологии и реализовали ее в 3D-системе.

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

Прокси-частицы
Рис. 6
При создании прокси-частиц, компьютер разделяет поверхность стола с данными о глубине сцены на отдельные сегменты
Рис. 7

Затем происходит подвыборка геометрии и назначение сферичесих прокси-частиц. Одна частица имеет радиус 1 см и назначается каждому 2-см кусочку геометрии. Частицы располагаются в 3D-сцене точно по координатам соответствующих кусков геометрии (Рис. 8). В итоге, частицы участвуют в физической симуляции вместе со всеми виртуальными объектами. При этом частицы не сталкиваются между собой.

К частицам применяется также вектор силы и вектор движения. Он позволяет реализовать корректное в плане физики столкновение между объектами (игра в боулинг), а также дает возможность перемещать виртуальные объекты в пространстве. Если человек держит в руке виртуальный мяч, то при движении рукой мяч также должен следовать за ней. Все по-настоящему, другими словами.

Интерактивные сценарии в MirageTable

MirageTable делает возможным создание сложных виртуальных стерео 3D-сцен из виртуальных копий настоящих предметов. К примеру, с помощью «стола» можно построить виртуальный замок из всего одного настоящего кирпичика, или, как было отмечено выше, создать полную коллекцию кеглей для игры в боулинг из одного реального объекта.

MirageTable: боулинг
Рис. 8

Возможность взаимодействия с виртуальными объектами, их копиями и физической симуляцией, делают MirageTable пригодным для развлечений, таких как домино и боулинг. Для этого виртуальные копии должны иметь такие же “относительно физические” параметры, как и их оригинальные исходники. К примеру, у кегли должно быть дно и форма, чтобы она могла стоять на поверхности, а не заваливаться набок.

Пока что система хорошо справляется с несложными геометрическими фигурами симметричной формы. Эффективно работать с предметами со сложной геометрией «стол» сможет лишь тогда, когда камер-сенсоров будет несколько.

Геометрией и виртуальными 3D-сценами можно делиться с другими пользователями для совместной игры или дистанционной работы
Рис. 9

Геометрией и виртуальными 3D-сценами можно делиться с другими пользователями для совместной игры или дистанционной работы. В случае с MirageTable уже имеется опыт объединения двух находящихся на расстоянии столов в одну связанную систему.

Как система покажет себя на деле и насколько эффективным является набор используемых в MirageTable технических решений и технологий? Ответ на этот вопрос получим с помощью двух экспериментов.

Эксперимент 1: зависимость качества изображения от поверхности проецирования

Эксперимент 1: зависимость качества изображения от поверхности проецированияЦель этого эксперимента – определить влияние неоднородностей поверхности на качество проекции. Камеру разместили в фиксированном положении и направили на виртуальный 3D-мячик. Сам мячик расположили на высоте 10 см от поверхности стола. Инженеры принудительно отключили функцию отслеживания положения головы и режим стерео 3D.

Для вычисления параметра снижения качества картинки пришлось посчитать среднеквадратическое отклонение показателей изображения на белом фоне (базовый показатель) и на восьми различных поверхностях со сложной геометрией и формой. Положение проектора, камеры, интенсивность света, координаты изображения в ходе эксперимента оставались неизменными.

Стол позволяет подстраиваться под поверхность с помощью функции проекционной текстуры. Учитывая то, что в MirageTable нет активной компенсации по цвету, в ходе опыта решено было использовать фоны разных расцветок. Выбранные цвета – белый, белый+красный, красный, черный.

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

Варианты поверхностей

В то же время, человеческий глаз в какой-то мере способен компенсировать различия по цвету. Таким образом, поверхности со сложной геометрией в визуальном плане оказывают большее влияние на восприятие картинки, нежели цветовые пятна (Рис. 13).

Второй эксперимент посвящен оценке влияния формы поверхности на восприятие. В частности, речь идет об объеме и глубине картинки, которую видит пользователь в 3D. В ходе данного группа респондентов давала оценку параметров виртуального мячика, который парит над столом. Всего было задействовано 10 человек в возрасте от 25 до 52 лет, и шесть типов поверхностей.

Каждый участник садился за «стол» и с помощью 3D-очков наблюдал за мячиком, который парил над разными поверхностями. Прикасаться к мячу не разрешалось, то есть акцент был сделан на визуальное восприятие. Задачей респондентов было определить глубину мячика с помощью набора меток на поверхности.

На рис. 10 изображена линейка меток (1-12,2 см):

Линейка меток
Рис. 10

В ходе теста представлены мячики-сферы с четырьмя разными параметрами глубины, каждый на расстоянии 6 см. Каждая из них привязана к маркеру: 2, 5, 8 и 11. В ходе каждого этапа эксперимента высота расположения и размеры мячика изменялись в случайном порядке (10-15 см и 6-10 см соответственно). Делалось это во избежание некорректной визуальной оценки глубины лишь на основе параметров проекции или размера сферы.

“Показания” участников эксперимента оказались на удивление точными, со средним значением расчетной ошибки 1,2 маркера (2,4 см). С учетом коррекции на каждого участника получаем еще более низкое значение расчетной ошибки – 1,3 см. Эти данные подтверждают, что даже со сложной геометрией и яркими цветами, технология проекционной текстуры отрабатывает достаточно эффективно. Другими словами, даже в сложных условиях для проецирования, пользователь видит качественное изображение с хорошей глубиной в стерео 3D.

Используя при расчете методику дисперсионного анализа, удалось установить что наибольшее количество ошибок было допущено с волнообразной поверхностью (wave) и коробкой из-под какой-то железки PNY (drop). Это подтверждает гипотезу, выдвинутую в первом эксперименте.

Результаты эксперимента
Рис. 11

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

MirageTable: отзеркаливание объектов
Рис. 12

Результаты обоих опытов показывают, что пользователь способен видеть относительно качественную стерео 3D-картинку даже в случае, если изображение проецируется на искривленную поверхность со сложной геометрией. Впрочем, не все находят работу с виртуальными объектами на поверхности с искривленной геометрией комфортной. На вопрос о том, какой фон выбрать – фактурный с волнами и резкими переходами, или плоский с яркими цветами, многие предпочитают последний вариант. Впрочем, наши читатели сами могут выбрать вариант по душе.

Есть к чему стремиться, или что потом?

Несмотря на внушительный набор возможностей и инноваций, создателям MirageTable еще предстоит решить множество проблем и задач. Улучшить работу системы можно с использованием более совершенных сенсоров. Пока что «стол» способен демонстрировать изображение в 3D лишь одному пользователю. Увеличение количества «зрителей» позволит реализовать в рамках MirageTable новые возможности для работы и развлечений, создавать новые приложения.

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

Кто знает, быть может, проект MirageTable однажды вырастет в аналог Голодека из «Звездного пути». Первый шаг навстречу фантастическому будущему уже сделан, а завтра будет еще интереснее.