Получение разреженного облака точек и позиций камер из набора изображений с помощью алгоримов SfM и уплотнение облака точек с помощью алгоритма MVS
В рамках сотрудничества лаборатории видеоаналитики и интеллектуальных сенсоров ЮФУ с Научно-Конструкторским Бюро Вычислительные Системы (НКБ ВС) решается задача построения трёхмерной сцены из видеопотока камера на движущемся транспортном средстве. Подобная технология позволяет водителю иметь дополнительную информацию об окружении вокруг. Это может помочь, когда есть препятствия для обзора, например, разбито стекло, или когда необходимо оценить расстояние от транспортного средства до объекта, например, при парковке.
Среди задач получения трёхмерной сцены из набора изображений можно выделить две группы, различаемые по характеристикам входных параметров:
3D-сканирование - фотографии делаются для объекта или набора объектов со всех сторон для получения полной модели этого объекта;
восстановление из видеопотока - фотографии берутся из видео, что позволяет предполагать небольшие смещения камеры на соседних фотографиях.
Для задач первого типа важна точность и менее важна скорость, а также есть возможность настроить освещение и позицию объекта. Задачи второго типа, как правило, характеризуются гораздо большей вариативностью условий, из-за чего алгоритмы, использующиеся для их решения, выдают гораздо менее точный результат.
Стандартной последовательностью подалгоритмов для восстановления трёхмерной сцены включает в себя:
Получение плотного облака точек из набора кадров
Получение разреженного облака точек и позиций камер
Уплотнение облака точек
Генерация меша на основе облака точек
Текстурирование меша
Кроме этих базовых шагов, также могут применяться различные алгоритмы уменьшения размерности облаков точек, пространственно-временной фильтрации, проверки фотоконсистентности и другие.
Получение разреженного облака точек производится с помощью алгоритма Structure from Motion (SfM) и включает в себя несколько этапов. Изначально находятся характерные точки на каждом изображении с помощью классических алгоритмов компьютерного зрения SIFT или SURF (применяются также более редкие, например, AKAZE). Этими точками зачастую являются углы зданий, границы трёх цветов или маленькие светящиеся объекты. Далее производится триангуляция с одновременной оптимизацией для сопоставления характерных точек на разных изображениях и вычисления относительных смещений камер. Результат работы алгоритма SfM - позиции камер и разреженное облако точек.
Рисунок 1. SfM. Источник:http://gsp.humboldt.edu/OLM/Courses/GSP_216_Online/lesson8-2/SfM.html
Для того, чтобы уплотнить облако точек, используют алгоритм Multi-View-Stereo. Он может включать в себя много различных улучшений, но его базовая идея заключается в оптимизации положения пикселя по линии проекции этого же пикселя на другом изображении (рис. 2). Как правило, этому предшествует проверка видимости для выбора изображений, участвующих в оптимизации, по критерию видимости пикселя для позиций их камер. Зачастую также используют для оптимизации не один пиксель, а регион пикселей под каким-то отображением, например, средней яркостью.
Рисунок 2. MVS. Линия, вдоль которой ищется оптимальное положение трёхмерной точки.
Мы в лаборатории использовали реализации OpenSfM, OpenMVG и mve для шага SfM, а также OpenMVS и mve для шага MVS. Некоторые результаты представлены на рисунках 3-5.
Рисунок 3. Результат запуска SfM в реализации OpenSfM. 29 изображений.