Microsoft Research на SIGGRAPH продемонстировал очень интересную разработку — KinectFusion. Софт позволяет в _реальном_ времени восстанавливать 3D сцену на основе данных с Kinect-а, а также выполнять сегментацию и трекинг объектов.
Технология впечатлила, думаю, что теперь становятся реальными игры, в которые можно будет передавать предметы и окружение из реальности. Кстати можно ведь и наоборот, сейчас наблюдается бум развития технологии 3D печати, вполне возможно, что скоро это будет доступно. Имея такое доступное сканирование и печать, получаем возможность электронной передачи реальных объектов. Но это конечно только один из вариантов использования.
Под катом небольшой разбор видео:
- Построение 3D модели (треугольной сетки)
- Текстурирование модели
- Дополненная реальность – бросаем шарики в сцену
- Дополненная реальность – бросаем шарики в сцену, сцена изменяемая
- Сегментация – веделяется предмет, который убираем
- Трекинг – отслеживаем выделенный объект
- Сегментация и трекинг – рисуем пальцами на предметах
Построение 3D модели (треугольной сетки)
Отмечают, что Kinect можно перемещать в пространстве довольно небрежно, дрожание и резкие перемещения не страшны, в реальном времени происходит совмещение текущего 3D облака точек с существующей сценой и выполняется модификация/достраивание сцены. На этом этапе нужны только данные по глубине. Триангуляция несколько замылена, т.к. сетка лучей – 640x480, поэтому надо подходить ближе для уточнения деталей. Думаю в будущем они смогут увеличить разрешение и тогда устройство станет намного более серьезным. Еще вариант — поставить оптику, чтобы сблизи можно было детально сканировать предметы, сейчас минимальное расстояние сканирования довольно большое — 1.2 м.
Текстурирование модели
На Kinect есть обычная камера, оттуда берется цвет и строятся текстуры. На картинке справа – текстурированная модель, вокруг которой летает источник света.
Дополненная реальность – бросаем шарики в сцену
Бросаем кучу шариков в сцену, на GPU в реальном времени они рассыпаются по трианглулированной 3D сцене, а на обычном видео с Kinect-а рисуем эти самые шарики с учетом отсечения невидимых участков.
Дополненная реальность – бросаем шарики в сцену, сцена изменяемая
Снова кидаем шарики на сцену, человек в кадре стряхивает полотенце и шарики взаимодействуют с изменяющейся 3D сценой.
Сегментация – веделяется предмет, который убираем.
На столе чайник, сцена статична. Берем чайник и выносим со сцены, он распознается как отдельный объект.
Трекинг – отслеживаем выделенный объект
Далее возвращаем чайник на его место, программа понимает, что он вернулся, далее его двигаем и софт его отслеживает его перемещение совмещая с прототипом.
Сегментация и трекинг – рисуем пальцами на предметах
Рука выделяется на фоне статичной сцены, она отслеживается и определяется multi-touch прикосновения к поверхностям предметов.