KinectFusion - Программа трехмерной реконструкции сцены по изображениям и данным сканирования глубины

Алгоритм KinectFusion разработан Microsoft Research и опубликован в 2011 году, вскоре после появления Kinect [4]. В опубликованной статье описан алгоритм для трехмерной реконструкции сцены по потоку снимков глубины и использовании реконструкции для проектирования взаимодействия модели с пользователем. Алгоритм представляет сканируемое пространство как воксельный объем, внутри которого проводится реконструкция. Качество геометрической реконструкции зависит от разрешения воксельной сетки, разбивающей объем на отдельные воксели. После инициализации на первом снимке глубины проводится отслеживание смещения камеры относительно реконструируемой модели. KinectFusion не использует для геометрической реконструкции цветные снимки и обрабатывает только данные глубины. Алгоритм обновляет реконструируемую модель по потоку снимков глубины в реальном времени с помощью параллельных вычислений на графическом процессоре (GPU).

KinectFusion реализован в составе Kinect SDK и несовместим с другими RGB-D камерами. После публикации алгоритма появилось несколько отдельных реализаций, наиболее известной из которых является KinFu. KinFu [8] входит в состав Point Cloud Library - многофункциональной кроссплатформенной библиотеки для работы с облаками точек. KinFu позволяет использовать для реконструкции сцены другие устройства, такие как Asus Xtion Pro Live и PrimeSense Carmine. Данная реализация алгоритма используется в различных исследованиях и проектах, например в HouseScan [3] - полуавтоматической системе сканирования многокомнатных помещений.

В PCL имеется пользовательский интерфейс для KinFu (рис.3), но он обладает множеством недостатков. Во-первых, интерфейс разделен на 4 окна, которые могут перекрываться, если разрешение экрана недостаточно высокое. Во-вторых, управлять можно только вводом с клавиатуры, который действует не во всех окнах. В-третьих, в получаемой полигональной модели вершины дублируются для каждого полигона, что приводит к увеличению списка вершин в 3-4 раза. Пользователь также не может поменять в интерфейсе разрешение камеры или отключить автоматическое изменение баланса белого и экспозиции, из-за которых возникает дополнительная разница между изображениями. И, наконец, параметры запуска, такие как размер пространства, интеграция цвета, необходимо указывать при запуске в командной строке.

интерфейс pcl kinfu

Рисунок 3. Интерфейс PCL KinFu.

В PCL есть расширение KinFu - KinFu Large Scale, которое позволяет расширить область сканирования путем сдвига воксельного объема. Но дополнительные вычисления замедляют скорость обработки снимков глубины, а для получения полигональной модели и ее текстурирования необходимо запускать две дополнительные программы kinfu_largeScale_mesh_output и kinfu_largeScale_texture_output.

Похожие статьи




KinectFusion - Программа трехмерной реконструкции сцены по изображениям и данным сканирования глубины

Предыдущая | Следующая