В компьютерном зрении, что делает MVS, что SFM не может?
Я dev с около десяти лет разработки программного обеспечения предприятия под его поясом, и мои хобби интересы направили меня в обширную и страшную область компьютерного зрения (CV).
одна вещь, которая мне не сразу ясна, - это разделение труда между структура от движения (SFM) инструменты и Multi View Stereo (MVS) инструменты.
в частности, CMVS кажется, лучший в шоу инструмент MVS, и упаковщик кажется, один из лучших инструментов SFM с открытым исходным кодом.
взято из собственной домашней страницы CMVS:
вы всегда должны использовать CMVS после Bundler и до PMVS2
меня интересует: Почему?!? мой понимание инструментов SFM является то, что они выполняют 3D-реконструкцию для вас, так зачем нам нужны инструменты MVS в первую очередь? Какую ценность / обработку / функции они добавляют в инструменты SFM как Бандлер не может обратиться? Почему предлагаемый трубопровод:
Bundler -> CMVS -> PMVS2
?
1 ответов
быстро поставленный, структура от движения (SfM) и методы MultiView Stereo (MVS) комплементарны, поскольку они не имеют дело с теми же предположениями. Они также немного отличаются своими входами, MVS, требующими запуска параметров камеры, которые оцениваются (выводятся) SfM. SfM дает только грубый 3D-выход, тогда как PMVS2 дает более плотный выход, и, наконец, CMVS существует, чтобы обойти некоторые ограничения PMVS2.
остальная часть ответа предоставляет обзор высокого уровня о том, как каждый метод работает, объясняя, почему это так.
структура из движения
первый шаг трубопровода 3D-реконструкции, который вы выделили, - это алгоритм SfM, который можно сделать с помощью упаковщик, VisualSFM, OpenMVG или тому подобное. Этот алгоритм принимает на вход некоторые изображения и выводит параметры камеры каждого изображения (подробнее об этом позже), а также грубой 3D форма сцены, часто называют разреженной реконструкцией.
Почему SfM выводит только грубую 3D-форму? В принципе, методы УЛП начинаются с обнаружения 2D-объектов в каждом входном изображении и сопоставления этих объектов между парами изображений. Цель состоит, например, в том, чтобы сказать: "этот угол таблицы расположен в тех местах пикселей на этих изображениях."Эти функции описываются тем, что мы называем дескрипторами (например, SIFT или ORB). Эти дескрипторы построены для представления небольшой области (т. е. куча соседние пиксели) в изображениях. Они могут представлять надежно сильно текстурированную или грубую геометрию (например, края), но эти особенности сцены должны быть уникальными (в смысле различения) во всей сцене, чтобы быть полезными. Например (возможно, упрощенный), стена с повторяющимися узорами не будет очень полезна для реконструкции, потому что, хотя она сильно текстурирована, каждая область стены потенциально может соответствовать почти везде на стене. Поскольку SfM выполняет 3D реконструкция используя эти функции, вершины реконструкции 3D-сцены будут расположены на этих уникальных текстурах или краях, давая грубую сетку в качестве выхода. SfM обычно не создает вершину в середине поверхности без точной и отличительной текстуры. Но, когда между изображениями найдено много совпадений, можно вычислить матрицу 3D-преобразования между изображениями, эффективно давая относительное 3D-положение между двумя позами камеры.
MultiView Стерео
после этого алгоритм MVS используется для уточнения сетки, полученной методом SfM, что приводит к тому, что называется плотная реконструкции. Этот алгоритм требует, чтобы параметры камеры каждого изображения работали, что выводится алгоритмом SfM. Поскольку он работает над более ограниченной проблемой (поскольку у них уже есть параметры камеры каждого изображения, такие как положение, вращение, фокусное и т. д.), MVS вычислит 3D-вершины в областях, которые не были (или не может быть) правильно обнаружен дескрипторами или сопоставлен. Это PMVS2 делает.
Как PMVS могут работать в регионах, где 2D-дескриптор будет трудно соответствовать? Поскольку вы знаете параметры камеры, вы знаете, что данный пиксель на изображении является проекцией линии на другом изображении. Этот подход называется epipolar геометрия. В то время как SfM пришлось искать через все 2D-изображение для каждого дескриптора, чтобы найти потенциальное совпадение, MVS будет работать одна строка 1D, чтобы найти совпадения, упрощая проблему довольно много. Как таковой, MVS обычно учитывает материалы освещения и объекта в своей оптимизации, чего SfM не делает.
есть одна проблема: PMVS2 выполняет довольно сложную оптимизацию, которая может быть ужасно медленной или занимать астрономический объем памяти на больших последовательностях изображений. Вот где CMVS приходит в игру, кластеризуя грубый выход 3D SfM в регионы. Затем PMVS2 будет вызывается (потенциально параллельно) на каждом кластере, упрощая его выполнение. Затем CMVS объединит каждый вывод PMVS2 в единую подробную модель.
вывод
большая часть информации, представленной в этом ответе, и многое другое можно найти в этом уроке из Матиас Фурукава, автор CMVS и PMVS2: http://www.cse.wustl.edu / ~Фурукава / документы / fnt_mvs.pdf
в сущности, оба метода вытекают из два разных подхода: SfM стремится выполнить 3D-реконструкцию с использованием структурированной (но известной) последовательности изображений, в то время как MVS-это обобщение стереовидения с двумя видами, основанного на стереопсисе человека.