Pull to refresh

KinectFusion — построение 3D сцены в реальном времени

Reading time2 min
Views11K


Microsoft Research на SIGGRAPH продемонстировал очень интересную разработку — KinectFusion. Софт позволяет в _реальном_ времени восстанавливать 3D сцену на основе данных с Kinect-а, а также выполнять сегментацию и трекинг объектов.

Технология впечатлила, думаю, что теперь становятся реальными игры, в которые можно будет передавать предметы и окружение из реальности. Кстати можно ведь и наоборот, сейчас наблюдается бум развития технологии 3D печати, вполне возможно, что скоро это будет доступно. Имея такое доступное сканирование и печать, получаем возможность электронной передачи реальных объектов. Но это конечно только один из вариантов использования.

Под катом небольшой разбор видео:
  • Построение 3D модели (треугольной сетки)
  • Текстурирование модели
  • Дополненная реальность – бросаем шарики в сцену
  • Дополненная реальность – бросаем шарики в сцену, сцена изменяемая
  • Сегментация – веделяется предмет, который убираем
  • Трекинг – отслеживаем выделенный объект
  • Сегментация и трекинг – рисуем пальцами на предметах


Построение 3D модели (треугольной сетки)

Отмечают, что Kinect можно перемещать в пространстве довольно небрежно, дрожание и резкие перемещения не страшны, в реальном времени происходит совмещение текущего 3D облака точек с существующей сценой и выполняется модификация/достраивание сцены. На этом этапе нужны только данные по глубине. Триангуляция несколько замылена, т.к. сетка лучей – 640x480, поэтому надо подходить ближе для уточнения деталей. Думаю в будущем они смогут увеличить разрешение и тогда устройство станет намного более серьезным. Еще вариант — поставить оптику, чтобы сблизи можно было детально сканировать предметы, сейчас минимальное расстояние сканирования довольно большое — 1.2 м.





Текстурирование модели

На Kinect есть обычная камера, оттуда берется цвет и строятся текстуры. На картинке справа – текстурированная модель, вокруг которой летает источник света.



Дополненная реальность – бросаем шарики в сцену

Бросаем кучу шариков в сцену, на GPU в реальном времени они рассыпаются по трианглулированной 3D сцене, а на обычном видео с Kinect-а рисуем эти самые шарики с учетом отсечения невидимых участков.



Дополненная реальность – бросаем шарики в сцену, сцена изменяемая

Снова кидаем шарики на сцену, человек в кадре стряхивает полотенце и шарики взаимодействуют с изменяющейся 3D сценой.



Сегментация – веделяется предмет, который убираем.
На столе чайник, сцена статична. Берем чайник и выносим со сцены, он распознается как отдельный объект.





Трекинг – отслеживаем выделенный объект

Далее возвращаем чайник на его место, программа понимает, что он вернулся, далее его двигаем и софт его отслеживает его перемещение совмещая с прототипом.





Сегментация и трекинг – рисуем пальцами на предметах

Рука выделяется на фоне статичной сцены, она отслеживается и определяется multi-touch прикосновения к поверхностям предметов.




Tags:
Hubs:
+61
Comments46

Articles