Что такое окклюзия в AR
В отличие от виртуальной реальности, в системе дополненной реальности пользователи могут видеть 3D-объекты и реальный мир одновременно. Цель AR — наложить виртуальные модели на реальный мир, чтобы улучшить его. При этом, нужно сделать это с максимально натурально. Окклюзия — это метод, который помогает сделать AR-опыт еще более реалистичным для пользователя. Сегодня мы поговорим о том, что такое окклюзия и как она работает в приложениях.
Что такое окклюзия?
Поскольку система понимает только пиксели, видимые камерой, она не интерпретирует мир, как люди. Окклюзия является примером ограничения AR. Это означает, что устройство не может автоматически интерпретировать глубину мира. Термин «Окклюзия» в AR означает, что виртуальные объекты могут перекрываться объектами реального мира и наоборот. Цель окклюзии — сохранить правила прямой видимости при создании AR-сцен. Приведем пример: если человек будет стоять между камерой AR-устройства и, допустим, виртуальным столом, то человек перекроет его. Если же человек зайдет за стол, он перекроет человека, как вполне реальный объект.
Раньше такое было невозможно, только с появлением окклюзии в фреймворке ARKit3, дополненная реальность стала немного более приближенной к физическому миру. С точки зрения улучшения погружения и интерактивности, окклюзия дает широкие возможности для инновационных AR-приложений. Хоть сейчас эта технология еще не доведена до идеала, в следующие пару лет можно ждать впечатляющих результатов.
Способы реализации окклюзии в приложениях
Есть несколько методов для внедрения окклюзии в приложения. Все они используются в тандеме. На самом деле создать реалистичную окклюзию не так просто, ведь это довольно новая фича.
Карта глубины (Depth map)
В компьютерной графике и 3D-иллюстрации карта глубины — это способ учета удаленности элементов изображения на 3D-сцене с точки зрения пользователя. Представляет собой один из вариантов решения «проблемы видимости». Карту глубины можно получить с помощью снимка специальной камеры глубины или же вычислить по виду с нескольких камер. Необходимо как минимум две камеры, так как использование одной дает большие погрешности и изображение в низком разрешении.
Получив карту, нужно просчитать все расстояния, а после — наложить их на 3D-сцену. Так удается выяснить, какие объекты будут перекрыты. Карты глубины в дальнейшем помогут в реализации более сложных методов.
Dense 3D Reconstruction
В предыдущей статье мы рассказывали о создании плотной (Dense) карты мира для трекинга и предсказания освещения. Сейчас они и пригодятся для создания окклюзии. Для этого необходима подробная реконструкция пространства.
Для подробного 3D-объекта нужно собрать данные с нескольких карт глубины, идеально по трем измерениям. После, достаточно пару раз в секунду выгружать ключевые кадры из SLAM в отдельный поток. Именно благодаря SLAM нам известно положение камеры, а благодаря картам глубины — глубина каждого пикселя.
Также используется метод многоплановой 3D-реконструкции. Его цель — вывести геометрическую структуру сцены, благодаря набору разноплановых изображений объекта. Используя несколько изображений, 3D-информацию можно частично восстановить путем решения проблемы соответствия по пикселям. Если говорить проще, с этим методом вершины простого объекта как бы «притягиваются» к соответствующим местам на картах глубины.
Такой метод довольно популярен, ведь SLAM дает нам точки для выстраивания 3D-объекта и может использовать их для трекинга. Полученная модель покрывается треугольниками, сглаживается фильтрами и готова к использованию в пространстве.
Фотограмметрия
Это научно-техническая дисциплина, которая занимается определением формы, размеров, положения и других характеристик объектов по их фотоизображениям. В киноиндустрии и видеоиграх этот метод используется для создания трехмерных пространств и объектов. Так, стоит отрисовать только основные части пространства, а остальное просто отсканировать в 3D. Фотограмметрия также работает и для текстур.
Имея точную карту местности, рендер определяет, какая часть объекта перекрыта и начинает обрезать ее. На выходе может получиться шумная и неточная модель, однако все это можно поправить с помощью сглаживания.
Как распознаются люди
Окклюзия людей позволяет людям и виртуальным объектам взаимодействовать в одной AR-сцене, достигая реалистичного эффекта погружения. Мы уже говорили, что окклюзия пока не доведена до идеала. Особенно резко это проявляется на движущихся объектах и, в частности, людях. Конечно, мы хотим активно участвовать и взаимодействовать с элементами дополненной реальности. Поэтому невозможность качественной визуализации перекрытия человека предметами и наоборот становится проблемой.
Даже взять предмет в руку довольно проблематично. Взяв 3D-объект в руку, пальцы должны лечь поверх предмета, а не быть за ним. Это совсем не похоже на настоящий AR-опыт, верно? 3D-реконструкция в этом случае бессильна, а карт глубины будет недостаточно для обеспечения правильной окклюзии. Для этого можно использовать специальный софт для распознавания поз человека, например, PoseNet или Detectron2, но им нужны свои улучшения.
В реальности разработчики комбинируют все вышеперечисленные методы: сначала рассчитывают 3D-карту, используют карты глубины, и уточняют модель с помощью сторонних программ-детектеров. На деле же необходимы камеры глубины с действительно высоким разрешением, чтобы не проходить столько этапов и не придумывать выходы из проблемы.
Вывод
Окклюзия сейчас — неидеальная технология. Она требует больших доработок, умений разработчиков и оборудования. Окклюзия по-прежнему оставляет открытыми такие проблемы, как эффективное присутствие рук, соответствующее освещение, тени. Однако, это большой шаг к созданию по-настоящему реалистичного и захватывающего пользовательского опыта. Окклюзия обладает большим потенциалом для изучения и создания новых методов реализации.