![](https://habrastorage.org/files/7bb/da5/1b8/7bbda51b819a477289b61b2a6a904233.jpg)
Видео проецируется на движущийся лист бумаги (слева) и на деформирующуюся ткань майки
Все видели обычный цифровой проектор, который проецирует видео на плоскую белую поверхность — на экран. Желательно в темноте. Требования к экрану очень строгие: от его качества во многом зависит красота картинки. Но представьте, что проектор может проецировать видео не только на ровную поверхность, но на ткань любой формы, да ещё и движущуюся! Такую невероятную технологию разработали сотрудники лаборатории Исикава Ватанабе из Токийского университета.
По мнению японских инженеров, технологическое совершенствование проекторов замерло на месте. А ведь это важная технология, которая расширяет, дополняет реальный мир. Теоретически, проецируемые картинки и видеоролики могут быть очень полезны в разных сферах дополненной реальности: от индустрии развлечений до информационных цифровых помощников, которые отображают контекстную информацию в удобном месте, на стекле очков, шлеме или просто на шторе в комнате.
Большинство современных технологий проецирования изображений ограничены статичными поверхностями. Это значительно сужает область их применения.
Инженеры из лаборатории Исикава Ватанабе решили снять это ограничение, сделав проекторы более приспособленными к динамичному окружающему миру, в котором реальность постоянно меняет форму и трансформируется. В дополненной реальности будущего виртуальные объекты и реальный мир сольются в единую органичную форму, отлично приспособленную для человеческого зрения. В идеале, мы не должны различать между собой надписи краской и цифровые проекции. В более отдалённом будущем и трёхмерные динамичные «живые» объекты не должны сильно отличаться от настоящих предметов реального физического мира.
Что нужно для того, чтобы воплотить эту идею в жизнь? В первую очередь, требуется высокоскоростной проектор с исключительно высоким показателем количества кадров в секунду и низкой задержкой. Именно с такими требованиями в уме был разработан проектор DynaFlash, который проецирует 8-битные изображения с частотой кадров 1000 кадров/с и задержкой всего 3 миллисекунды.
![](https://habrastorage.org/files/e82/a0f/be3/e82a0fbe3e864dac9d1ac907f15fe9f4.png)
Цифровой проектор DynaFlash
Японцы не ищут лёгких путей. Они не остановились на создании высокоскоростного проектора, а пошли дальше — и придумали, как заставить его искажать изображение в соответствии с деформациями гибкой ткани практически в реальном времени. Зачем? Например, чтобы проектор мог проецировать видеоролики без искажений на движущиеся объекты. Например, на майку человека в движении.
Как несложно догадаться, высокоскоростное проецирование осуществляется через специальный трекинг, то есть отслеживание поверхности. Это тоже неординарная задача в области компьютерного зрения. Задача отслеживания мнущихся поверхностей осложняется тем, что поверхность может частично закрывать сама себя, не говоря уже о частичном закрытии посторонними объектами.
Разумеется, отслеживание поверхности должно происходить с той же высокой скоростью, с какой работает проектор. Поэтому у технологии Deformable Dot Cluster Marker такие же технические характеристики: 1000 кадров/с и задержка 3 миллисекунды.
Как отслеживать форму поверхности с такой точностью и скоростью? В принципе, тут тоже вариантов немного. Японцы сделали это через маркерную сетку, которая наносится на объект. Дизайн маркерной сетки показан на анимированной графике.
![](https://habrastorage.org/files/1d7/2b1/248/1d72b12480a640d08247d7629cb3a5d6.gif)
![](https://habrastorage.org/files/a2c/c71/1b2/a2cc711b226f48789f54956e76a8ef6b.gif)
Трекинг на высокой скорости происходит на сильно распаралеленной задаче во множестве независимых тредов. Тем не менее, даже на CPU достигается производительность 1000 кадров в секунду.
![](https://habrastorage.org/files/8e1/ca5/0d7/8e1ca50d71224422baacc420af2a399e.jpg)
Конвейер распознавания маркерной сетки
После распознавания маркерной сетки программа быстро вычисляет необходимые векторы деформации кадров в видеоролике — и проецирует результат в реальном времени с помощью проектора DynaFlash.
![](https://habrastorage.org/files/289/10b/fa5/28910bfa571745bca4268acb72a7adbb.png)
Вычисление векторов в программе
В общем, по описанию система работает довольно логично и просто. Вопрос в технической реализации — как им удалось оптимизировать эту задачу машинного зрения для такой высокой производительности?
Ответ на этот вопрос можно узнать из статьи "Dynamic Projection Mapping onto Deforming Non-rigid Surface using Deformable Dot Cluster Marker", которую авторы опубликовали в журнале по машинному зрению IEEE Transactions on Visualization and Computer Graphics (doi: 10.1109/TVCG.2016.2592910, pdf). Там подробно описаны алгоритмы вычисления векторов для маркерной сетки, обновления позиций отслеженных точечных кластеров, выявления ложных срабатываний, интерполяции потерянных кластеров и т.д. Авторы пишут, что для параллелизации вычислений использовали пакет OpenMP. Распознавание программой маркерной сети и покадровое отслеживание требовали менее 2 мс и 1 мс, соответственно, в зависимости от формы искажений. В таблице результат сравнивается с другой системой DRDM, которую коллеги представили на симпозиуме IEEE в 2011 году.
![](https://habrastorage.org/files/822/8a0/5bc/8228a05bcbf14f4cb5b05c013d5d9cdd.png)
Авторы уверены, что органичность дополненной реальности на объектах реального мира — важное условие для цельности впечатлений от синтетической реальности такого рода. Здесь не должно быть высокой задержки в проецировании видео и геометрических искажений.
Ребята из лаборатории Исикава Ватанабе давно известны своими необычными и интересными изобретениями. Например, в 2013 году они изобрели высокоскоростной проектор Lumipen, который проецирует видео на движущиеся объекты.
Такая технология может найти применение в играх дополненной реальности, где человек в реальности взаимодействует с виртуальными объектами, будь то покеболл или футбольный мяч.
Проецирование виртуальной реальности на объекты реального мира широко используется в парках аттракционов по всему миру. Его можно применять в компьютерных интерфейсах, прототипировании, в обучении с учителем (например, в обучении вождению автомобиля) и многих других областях.