Довбня Д. В., асс. Козаченко А. А.
Национальный горный университет, Украина
Основы
стереозрения. Построение карты глубины
Стереозрение в робототехнике и компьютерных
системах – это одно из направлений компьютерного зрения, которое используется
при составлении трехмерной модели окружающего мира, позволяет получить
представление о глубине изображения, формах, размерах и расстояниях до объектов
на нем, с использованием нескольких камер (зачастую двух). Области применения
стереозрения различны: автоматизированное управление движением роботов, включая
наземные машины и беспилотные летательные аппараты; контроль передвижения
объектов в охраняемой зоне; контроль качества промышленных изделий; построение
3D-модели окружающего мира для компьютерных игр и киноиндустрии и прочее.
Одним из основных этапов применения стереозрения
является построение карты глубины.
Карта глубины (depth map)
— это изображение, на котором для каждого пикселя, вместо цвета, хранится его
расстояние до камеры. Карта глубины может быть получена с помощью специальной
камеры глубины, либо может быть построена по стереопаре изображений.[1]
Чтобы построить карту глубины по стереопаре,
необходимо для каждой точки на одном изображении выполняется поиск парной ей
точки на другом изображении. По паре соответствующих точек можно выполнить
триангуляцию, а затем определить координаты их прообраза в трехмерном
пространстве. Зная трехмерные координаты прообраза, глубина вычисляется, как
расстояние до плоскости камеры.[1]
Триангуляция точек (в стереозрении) – это
определение трехмерных координат точек по координатам их проекций. [4]
Парную точку нужно искать на эпиполярной линии.
Соответственно, для упрощения поиска, изображения выравнивают так, что бы все
эпиполярные линии были параллельны сторонам изображения (обычно горизонтальны).
Более того, изображения выравнивают так, что бы для точки с координатами (x0, y0) соответствующая ей
эпиполярная линия задавалась уравнением x = x0, тогда для каждой точки соответствующую
ей парную точку нужно искать в той-же строчке на изображении со второй камеры.
Такой процесс выравнивания изображений называют ректификацией (rectification).
Обычно ректификацию совершают путем ремапинга изображения и ее совмещают с
избавлением от искривлений.[1][2] На Рис. 3 пример ректифицированных
изображений, которые взяты из базы изображений сравнения различных методов
построения карты глубины. [3]
Рис.
1: Ректифицированные изображения, и соответствующая disparity map .
После того как изображения ректифицированы,
выполняют поиск соответствующих пар точек. Самый простой способ
проиллюстрирован на Рис. 2 и состоит в следующем. Для каждого пикселя левой
картинки с координатами (x0, y0) выполняется поиск пикселя на правой картинке.
При этом предполагается, что пиксель на правой картинке должен иметь координаты
(x0 — d, y0), где d — величина называемая
несоответствие/смещение (disparity). Поиск
соответствующего пикселя выполняется путем вычисления максимума функции
отклика, в качестве которой может выступать, например, корреляция окрестностей
пикселей. В результате получается карта смещений (disparity map),
пример которой приведен на Рис. 1.[1]
Рис.
2: Вычисление карты глубины.
Значения глубины обратно пропорциональны
величине смещения пикселей. Зависимость между смещением и глубиной можно
выразить следующим способом:
Из-за обратной зависимости глубины и смещения,
разрешающая способность систем стерео зрения, которые работают на основе
данного метода, лучше на близких расстояниях, и хуже на далеких.
Вывод
Карта глубины — это один из ключевых элементов стереозрения,
представляющий собой изображение, на котором для каждого пикселя, вместо цвета,
хранится его расстояние до камеры. Карты глубины строится по стереопаре
изображений, на которых производится поиск парных точек, на основе которых
можно определить положение объектов в пространстве.
Имея карту глубины, и зная положение камер
относительно друг-друга, можно определять расстояние до объектов, определять
форму и размеры объектов, восстанавливать 3D модель помещения.
Список
литературы:
1.
«Learning OpenCV.
Computer Vision with the OpenCV Library» G. Bradski, A. Kaehler. O'Reilly Media, 2008.
2.
«Multiple View Geometry
in Computer» Vision R. Hartley, A. Zisserman, Cambridge University Press, 2004.
3. http://vision.middlebury.edu/stereo
(интернет ресурс) – База изображений сравнения различных методов построения
карты глубины.
4. http://ru.wikipedia.org/wiki/Триангуляция
(интернет
ресурс)