Активное стерео и объёмное стереовидение
Введение
В классическом стереовидении мы пытаемся определить положение трёхмерной точки в пространстве, используя соответствующие точки на двух изображениях. Главная сложность здесь — решить проблему соответствия: как понять, что точка на одном изображении соответствует точке на другом?
Эта проблема усложняется тем, что в сцене присутствует множество трёхмерных точек, и нам нужно обработать их все. Сегодня мы рассмотрим альтернативный подход к реконструкции трехмерной сцены.
1. Активное стерео
Чтобы решить проблему поиска соответствующих точек, была разработана концепция активного стерео. Её суть состоит в том, что вместо одной из камер используется специальный проектор, который взаимодействует с трёхмерной сценой. Проектор создаёт на объекте специальный узор или проецирует определённую точку, а вторая камера наблюдает за тем, как этот узор отображается на объекте. Поскольку мы точно знаем, что и куда проецируем (положение точки, цвет, яркость), нам легко найти соответствующую точку на изображении второй камеры
Главное преимущество активного стерео состоит в том, что оно значительно упрощает решение проблему поиска соответствующих точек. Проектор и камера работают как единая система, создавая особую геометрию, похожую на обычную стереосистему, но с виртуальной проекционной плоскостью вместо второй камеры.
Этот метод особенно эффективен, когда нужно точно определить положение объектов в пространстве, так как мы контролируем проецируемый узор и можем легко отследить его отображение на второй камере.
Рисунок 1: Система активного стерео
На рисунке 1 показано, как проектор используется для проецирования точки $p$ из виртуальной плоскости на объект в трёхмерном пространстве, создавая точку в трёхмерном пространстве $P$. Эта трёхмерная точка $P$ должна наблюдаться второй камерой как точка $p'$.
Поскольку мы знаем, что именно проецируем (например, положение точки $p$ в виртуальной плоскости, цвет и интенсивность проекции и так далее), мы можем легко обнаружить соответствующее наблюдение во второй камере $p'$.
Распространённый прием в активном стерео — проецировать из виртуальной плоскости вертикальную полосу $s$ вместо одиночной точки. Этот случай очень похож на случай с точкой, когда линия $s$ проецируется в виде полосы в трёхмерное пространство $S$ и наблюдается камерой как линия $s'$.
Рисунок 2: Проецирование отрезка
Если проектор и камера расположены параллельно или откалиброваны, мы можем легко обнаружить соответствующие точки, просто пересекая $s'$ с горизонтальными эпиполярными линиями. На основе этих соответствий мы можем использовать методы триангуляции, рассмотренных в предыдущих материалах курса, чтобы восстановить все трёхмерные точки на полосе $S$.
Перемещая линию по сцене и повторяя процесс, мы можем восстановить полную форму всех видимых объектов в сцене.
Обратите внимание, что одно из требований для работы этого алгоритма заключается в том, что проектор и камера должны быть откалиброваны. Активная стереосистема может быть откалибрована с использованием аналогичных техник, как описано в предыдущих заметках.
Сначала мы калибруем камеру с помощью калибровочного устройства. Затем, проецируя известные полосы на калибровочное устройство и используя соответствующие наблюдения в недавно откалиброванной камере, мы можем установить ограничения для оценки внутренних и внешних параметров проектора.
После калибровки эта активная стереоустановка может давать очень точные результаты. В 2000 году Марк Левой и его студенты из Стэнфорда продемонстрировали, что, используя точно настроенный лазерный сканер, они могли восстановить форму скульптуры «Пьета» Микеланджело с субмиллиметровой точностью.
Однако в некоторых случаях наличие точно настроенного проектора может быть слишком дорогим или неудобным. Альтернативный подход, который использует гораздо более дешёвую установку, использует тени для создания активных паттернов на объекте, который мы хотим восстановить.
Размещая палочку между объектом и источником света в известном положении, мы можем эффективно проецировать полосу на объект, как и раньше. Перемещение палочки позволяет нам проецировать различные теневые полосы на объект и восстанавливать объект аналогичным образом, как и раньше.
Этот метод, хотя и намного дешевле, имеет тенденцию давать менее точные результаты, поскольку требует очень хорошей калибровки между палочкой, камерой и источником света, при этом необходимо поддерживать компромисс между длиной и тонкостью тени палочки.
Одно из ограничений проецирования единственной полосы на объекты заключается в том, что этот метод довольно медленный, поскольку проектору необходимо охватить весь объект с разных ракурсов. Более того, это означает, что данный метод не может фиксировать деформации в режиме реального времени.
Естественное развитие этой идеи — попытка восстановить объект путём проецирования одного кадра или изображения вместо последовательного сканирования. Суть заключается в проецировании известного узора из различных полос на весь видимый участок объекта, а не одной полосы.
Цвета этих полос разработаны таким образом, чтобы их можно было однозначно идентифицировать на изображении. Рисунок 3 иллюстрирует этот метод с использованием множества цветных полос. Эта концепция легла в основу многих современных датчиков глубины, например, оригинальной версии Microsoft Kinect.
На практике такие датчики используют инфракрасные лазерные проекторы, которые позволяют захватывать трёхмерные видеоданные при любых условиях внешней освещённости.
### 2. Методы объёмного стереовидения
Альтернативой как традиционному стереовидению, так и активному стерео является объёмное стереовидение, которое переворачивает проблему использования соответствующих точек для восстановления трёхмерной структуры.
Рисунок 4: Основная идея объемного стереовидения - поиск точки в известном объеме
В объёмном стереовидении мы предполагаем, что трёхмерная точка, которую мы пытаемся оценить, находится в некотором ограниченном, известном объёме. Затем мы проецируем гипотетическую трёхмерную точку обратно в откалиброванные камеры и проверяем, согласуются ли эти проекции в нескольких видах. Рисунок 4 иллюстрирует общую схему задачи объёмного стереовидения.
Поскольку мы предполагаем, что точки, которые мы хотим восстановить, содержатся в ограниченном объёме, этот метод пригоден для восстановления трёхмерных моделей конкретных объектов. Это главное отличие от более общей задачи восстановления моделей сцены, в которой расположение объектов может быть неограниченным.
Основной принцип любого метода объёмного стереовидения заключается в том, чтобы сначала определить способ для определения согласованности точки, которая проецируется на несколько ракурсов изображений. Известно множество различных методов определения того, что мы будем считать согласованными наблюдениями. Мы кратко опишем три основных метода:
- пространственное вырезание (Space carving),
- теневое вырезание (shadow carving),
- раскраска вокселей (voxel coloring).
2.1 Space carving
Идея пространственного вырезания (space carving) в основном основана на наблюдении, что контуры объекта предоставляют богатый источник геометрической информации об этом объекте.
Рисунок 5: Силуэт объекта и визуальный конус
В контексте множественных видов сначала рассмотрим задачу, проиллюстрированную на рисунке 5. Каждая камера наблюдает некоторую видимую часть объекта, по которой можно определить контур. При проецировании в плоскость изображения этот контур охватывает набор пикселей, известный как силуэт объекта в плоскости изображения. Пространственное вырезание в конечном итоге использует силуэты объектов с разных видов для обеспечения согласованности.
Однако если у нас нет информации о трёхмерной сцене, а есть только её изображения, то как мы можем получить информацию о силуэтах? К счастью, одно из практических преимуществ работы с силуэтами заключается в том, что их можно легко обнаружить на изображениях, если мы контролируем фон за объектом, который хотим восстановить. Например, мы можем использовать «зелёный экран» за объектом или использовать специальные алгоритмы отделения объекта от фона.
Теперь, когда у нас есть силуэты, как мы можем их использовать? Напомним, что в объёмном стереовидении у нас есть оценка некоторого объёма, в котором, как мы гарантируем, может находиться объект. Теперь введём понятие визуального конуса — это охватывающая поверхность, определяемая центром камеры и контуром объекта в плоскости изображения. По построению сцены гарантируется, что объект будет полностью находиться как в начальном объёме, так и в визуальном конусе.
Рисунок 6: Построение визуальной оболочки
Если у нас есть множество видов с разных ракурсов, мы можем вычислить визуальные конусы для каждого вида. Поскольку, по определению, объект находится в каждом из этих визуальных конусов, он должен лежать в их пересечении, как показано на рисунке 6. Такое пересечение часто называют визуальной оболочкой (visual hull).
На практике мы сначала начинаем с определения рабочего объёма, в котором, как мы знаем, находится объект. Например, если наши камеры окружают объект, мы можем просто сказать, что рабочий объём — это всё внутреннее пространство, ограниченное камерами. Мы разделяем этот объём на маленькие единицы, известные как воксели, создавая то, что называется воксельной сеткой. Мы берём каждый воксель из воксельной сетки и проецируем его на каждый из видов. Если воксель не содержится в силуэте на каком-либо виде, он отбрасывается. Следовательно, в конце алгоритма пространственного вырезания у нас остаются воксели, содержащиеся внутри визуальной оболочки.
Хотя метод пространственного вырезания позволяет избежать проблемы соответствий и является относительно простым, у него всё ещё есть множество ограничений. Одно из ограничений пространственного вырезания заключается в том, что он масштабируется линейно с количеством вокселей в сетке. По мере уменьшения размера каждого вокселя, количество вокселей в сетке увеличивается кубически. Поэтому получение более точных результатов реконструкции приводит к значительному увеличению времени обработки. Однако некоторые методы, такие как использование октетных деревьев (octrees), могут помочь решить эту проблему. Продвинутые методы включают выполнение итеративной адаптации для уменьшения размера начальной воксельной сетки в тех областях изображений, где это необходимо.
На рисунке 7 показан результат пространственного вырезания при работе с воксельной сеткой. Область представляет собой реконструированный объект после вырезания с использованием двух видов, в то время как затенённая часть внутри — это фактический объект.
Ограничение метода заключается в том, что эффективность пространственного вырезания зависит от количества видов, точности силуэта и даже формы объекта, который мы пытаемся восстановить. Если количество видов слишком мало, мы получаем очень приблизительную оценку визуальной оболочки объекта. По мере увеличения количества видов можно удалить больше лишних вокселей с помощью проверки согласованности.
Кроме того, достоверность проверки согласованности поддерживается только тем фактом, что мы считаем силуэты правильными и гладкими. Если силуэт слишком сложен и содержит больше пикселей, чем мы имеем в распоряжении, наша реконструкция может оказаться неточной. В потенциально ещё худшем случае силуэт пропускает части фактического объекта, что приводит к чрезмерному вырезанию при реконструкции.
Наконец, основным недостатком пространственного вырезания является то, что оно не способно моделировать определённые вогнутости объекта, как показано на рисунке 8.
Рисунок 8: Недостаток пространственного вырезания при наличии вогнутостей на объекте
2.2 Shadow carving
Чтобы обойти проблему вогнутостей, возникающую при пространственном вырезании, нам нужно обратиться к другим формам проверок согласованности.
Одним из важных признаков для определения трёхмерной формы объекта является наличие самотеней — теней, которые объект отбрасывает на себя. Для вогнутых объектов характерно то, что они часто отбрасывают самотени в вогнутых областях.
Рисунок 9: Вырезание с учетом теней
По своей сути теневое вырезание дополняет пространственное вырезание идеей использования самотеней для более точной оценки вогнутостей. Как показано на рисунке 9, общая установка теневого вырезания очень похожа на пространственное вырезание. Объект помещается на поворотный стол, который просматривается откалиброванной камерой. Однако вокруг камеры располагается массив источников света в известных позициях, состояние которых можно соответствующим образом включать и выключать. Эти источники света будут использоваться для того, чтобы заставить объект отбрасывать самотени.
Рисунок 10: Источник света как дополнительный инструмент для построения визуальной оболочки
Как показано на рисунке 10, процесс теневого вырезания начинается с начальной воксельной сетки, которая обрезается с помощью того же подхода, что и при пространственном вырезании. Однако в каждом виде мы можем включать и выключать каждый источник света в массиве, окружающем камеру. Каждый источник света будет создавать различную самотень на объекте. После определения тени в плоскости изображения мы можем найти воксели на поверхности нашей обрезанной воксельной сетки, которые находятся в визуальном конусе тени. Эти поверхностные воксели позволяют нам затем создать новый визуальный конус с источником изображения. Затем мы используем полезный факт, что воксель, являющийся частью обоих визуальных конусов, не может быть частью объекта, чтобы исключить воксели в вогнутости.
Как и в случае с пространственным вырезанием, время работы теневого вырезания зависит от разрешения воксельной сетки. Время работы масштабируется кубически с разрешением воксельной сетки. Однако если имеется N источников света, то теневое вырезание занимает примерно в N + 1 раз больше времени, чем пространственное вырезание, поскольку каждый воксель необходимо проецировать в камеру и на каждый из N источников света.
Подводя итог, теневое вырезание всегда даёт консервативную оценку объёма, которая лучше восстанавливает трёхмерные формы с вогнутостями. Качество результатов зависит как от количества видов, так и от количества источников света. Некоторые недостатки этого подхода заключаются в том, что он не может обрабатывать случаи, когда объект содержит отражающие области или области с низким альбедо. Это связано с тем, что в таких условиях невозможно точно определить тени.
2.3 Раскраска вокселей (Voxel coloring)
И напоследок рассмотрим еще одну технику объёмного стереовидения — раскраска вокселей. Эта техника основана на пространственном вырезании, но для согласованности контуров дополнительно использует согласованность цветов.
Рисунок 11: Раскраска вокселей
Предположим, что нам даны изображения объекта с нескольких точек зрения, который мы хотим восстановить (рисунок 11). Для каждого вокселя мы смотрим на его соответствующие проекции на каждом из изображений и сравниваем цвет каждой из этих проекций. Если цвета этих проекций достаточно совпадают, мы отмечаем воксель как часть объекта.
Одно из преимуществ раскраски вокселей, которого нет в пространственном вырезании, заключается в том, что цвет, связанный с проекциями, может быть перенесён на воксель, что даёт цветную реконструкцию.
В целом существует множество методов, которые можно использовать для проверки согласованности цветов. Один из примеров — установка порога между сходством цветов проекций. Однако существует критическое предположение для любой используемой проверки согласованности цветов: реконструируемый объект должен быть ламбертовским. Это означает, что воспринимаемая яркость любой части объекта не должна меняться с изменением положения точки обзора или позы.
Для неламбертовских объектов, например, сделанных из высокоотражающих материалов, легко представить, что проверка согласованности цветов может дать сбой на вокселях, которые фактически являются частью объекта.
Рисунок 12: Частный случай неоднозначности раскраски вокселей
Одним из недостатков простой раскраски вокселей является то, что она даёт решение, которое не обязательно является уникальным (рисунок 12). Поиск истинного, уникального решения усложняет задачу реконструкции с помощью раскраски вокселей.
Можно устранить неоднозначность в реконструкции, введя ограничение видимости на воксель, которое требует, чтобы воксели проходили в определённом порядке. В частности, мы хотим проходить воксели слой за слоем, начиная с вокселей, расположенных ближе к камерам, а затем переходить к более удалённым вокселям.
При использовании такого порядка мы выполняем проверку согласованности цветов. Затем проверяем, виден ли воксель как минимум двум камерам, что создаёт наше ограничение видимости. Если воксель не виден как минимум двум камерам, он должен быть закрыт и, следовательно, не является частью объекта.
Обратите внимание, что наш порядок обработки ближайших вокселей позволяет нам убедиться, что мы сохраняем воксели, которые могут закрывать более поздние обработанные воксели, чтобы обеспечить это ограничение видимости.
В заключение отметим, что раскраска вокселей имеет преимущество одновременного захвата формы и текстуры объекта. Некоторые из недостатков включают предположение о том, что объект является ламбертовским, и то, что камеры не могут находиться в определённых местах, поскольку воксели должны обрабатываться в определённом порядке из-за ограничения видимости.
Резюме
Мы рассмотрели современные подходы к решению задачи трёхмерной реконструкции объектов, которые позволяют обойти сложности классического стереовидения, связанные с поиском соответствующих точек на разных изображениях.
Основное внимание уделяется двум ключевым направлениям. Первое — активное стерео, где вместо второй камеры применяется специальный проектор, создающий определённые узоры на объекте. Этот метод значительно упрощает определение соответствий между точками. В рамках активного стерео описаны различные техники: от проецирования отдельных точек и полос до создания сложных цветных узоров, подобных тем, что используются в датчиках глубины типа Microsoft Kinect. Также рассматривается вариант с применением теневых проекций, который является более экономичным, хотя и менее точным решением.
Второе направление — объёмное стереовидение, основанное на проверке согласованности проекций точек в ограниченном объёме. Этот подход включает несколько методов реконструкции: пространственное вырезание (space carving), использующее силуэты объекта и воксельные сетки; теневое вырезание (shadow carving), улучшающее реконструкцию вогнутых поверхностей за счёт анализа самотеней; и раскраска вокселей (voxel coloring), позволяющая получать цветные трёхмерные модели благодаря анализу цветовой согласованности.
Описанные методы обладают рядом преимуществ: они существенно упрощают поиск соответствий между точками, обеспечивают возможность создания детальных трёхмерных моделей и могут применяться в различных условиях съёмки. Однако существуют и определённые ограничения: необходимость тщательной калибровки оборудования, требование ламбертовского характера объектов, значительные временные затраты на обработку данных, а также проблемы при работе с отражающими поверхностями.