УДК 004.925.8
М. В. Медведев, А. П. Кирпичников
ТРЕХМЕРНАЯ РЕКОНСТРУКЦИЯ ОБЪЕКТОВ В СИСТЕМЕ ТЕХНИЧЕСКОГО ЗРЕНИЯ
МОБИЛЬНОГО РОБОТА
Ключевые слова: трехмерная реконструкция, мобильный робот, стереокалибровка, стереоректификация, эпиполярная
геометрия, особые точки, триангуляция Делоне.
Статья посвящена решению задачи трехмерной реконструкции объекта при помощи данных стереокамеры мобильного робота. Рассмотрены вопросы калибровки одиночной камеры, вопросы стерокалибровки, стереоректификации на основе сопоставления особых точек, эпиполярной геометрии. Описана реализация алгоритма трехмерной реконструкции объекта наблюдения в системе технического зрения мобильного робота, включающего калибровку камер, стереоректификацию методом Богета и трехмерную реконструкцию объекта методом триангуляции Делоне.
Keywords: 3D-reconstruction, mobile robot, stereo-calibration, stereo-rectification, epipolar geometry, key points, Delaunay
triangulation.
The paper concentrates on the problem of object 3D-reconstruction with the help of mobile robot stereo-camera. The issues of single camera calibration, stereo-calibration, key points detection based stereo-rectification, epipolar geometry are considered. The observed object 3D-reconstruction algorithm implementation in mobile robot computer vision is described. Algorithm includes stereo-calibration, Bouguet method based stereo-rectification, 3D-reconstruction with the help of Delaunay triangulation steps.
В настоящее время все большее распространение получают системы, основанные на построении трехмерных объектов реального мира. Такие системы могут использоваться в робототехнике, архитектуре, туризме и других различных областях. Построение трехмерной модели объекта наблюдения может позволить осуществить его визуализацию, а также параметры, измеренные на трехмерной модели, могут использоваться в качестве признаков при распознавании объекта.
Существует два подхода к решению задачи трехмерной реконструкции: активный и пассивный. В активном методе используются датчики глубины, которые напрямую взаимодействуют с объектом. Такие системы являются сложными и требуют дополнительного оборудования. В пассивном методе в качестве датчика используется фотокамера, которая фиксирует изображения объекта со всех сторон. Данный подход не требует наличия специализированных глубиномеров и может быть применен в любых условиях. Однако точность подобного трехмерного восстановления
существенным образом зависит от качества полученных фотографий и алгоритма реконструкции.
Одним из перспективных подходов при построении трехмерных объектов является стереореконструкция объекта на основе его стереоизображения. Стереореконструкция является задачей восстановления карты глубины наблюдаемой сцены, где глубина оценивается для каждого пикселя изображения. Стереоизображение объекта - картина или видеоряд, использующий два отдельных изображения объекта, полученных с двух камер, которые наблюдают одну и ту же сцену с одним горизонтальным смещением между камерами.
Процесс получения трехмерной модели объекта можно разделить на несколько этапов.
1. Этап калибровки камер или проецирования точек сцены на изображение. Для этого необходимо математически удалить радиальные и тангенциальные искажения. Такой процесс называется удалением дисторсии (undistortion) или исправлением. На этом этапе получают неискаженные изображения с каждой камеры.
2. Этап калибровки пары камер. Для этого необходимо скорректировать угол и дистанцию между камерами, обеспечивающими получение стереоизображения. Такой процесс называется ректификацией (rectification).
3. Этап выделения опорных точек на нескольких изображениях и нахождения соответствий этих точек.
4. Этап определения трехмерных координат
точек.
5. Этап реконструкции трехмерной модели
объекта.
Этап калибровки камеры состоит из определения внутренних параметров относительно системы формирования фотографий и внешних относительно конфигурации различных углов зрения. К внутренним параметрам камеры относятся фокусное расстояние камеры, расположение главной точки и радиальное искажение, вносимое линзой. К внешним параметрам камеры относятся позиция камеры по отношению к определенной системе координат. Она включают в себя определение центра камеры и углов поворотов, описывающих ориентацию камеры по отношению к основной системе координат. Значения параметров камеры могут быть определены заранее для конкретной модели камеры. Для неизвестной камеры их можно выделить при помощи процесса калибровки [1]. Кроме того, позиция камеры может
быть вычислена путем установления соответствий между точками в нескольких изображениях сцены без непосредственного проведения калибровки.
Калибровка камер обычно выполняется за счет многократной съемки некоторого калибровочного шаблона, на изображении которого можно легко выделить ключевые точки, для которых известны их относительные положения в пространстве. Далее составляются и решаются (приближенно) системы уравнений, связывающие координаты проекций, матрицы камер и положения точек шаблона в пространстве.
Существуют общедоступные реализации алгоритмов калибровки, например, Matlab Calibration toolbox. Также библиотека компьютерного зрения OpenCV включает в себя алгоритмы калибровки камер и поиска калибровочного шаблона на изображении.
В результате на следующем этапе имеются две откалиброванные камеры, заданные своими матрицами P и P в некоторой системе координат. Если центры камер не совпадают, то эту пару камер можно использовать для определения трехмерных координат наблюдаемых точек.
Для осуществления стереосопоставления изображений, полученных с двух камер, необходимо перевести эти изображения в одинаковую плоскость с вертикально ориентированными строками. Когда камеры настроены таким образом, говорят, что пара изображений является исправленной.
Существующие алгоритмы исправления
стереоизображений используют эпиполярную геометрию для выравнивания изображений[2, 3].
Наиболее распросраненным является алгоритм Богета [4]. Согласно этому алгоритму для получения исправленных изображений необходимо:
1) расположить изображения в одной плоскости (сделать плоскости изображений компланарными) при помощи стереокалибровки;
2) выровнять изображения построчно (провести стереоректификацию изображений).
Стереокалибровка - процесс вычисления геометрического соотношения между двумя камерами. Целью стереокалибровки является нахождение матрицы вращения R и вектора сдвига T между этими двумя камерами. Для любой точки P в объектных координатах справедливы соотношения
Pl=RlP + Tl, (1) Pr = RrP + Tr (2)
для левой и правой камеры соответственно. В то же время, два представления точки P связаны соотношением
Pl=R T (Pr - T), (3)
где символ T обозначает операцию транспонирования матрицы.
Таким образом, процесс стереокалибровки формирует матрицу вращения, которая помещает правую камеру в ту же плоскость, что и левая:
( \Т (4)
я = яг [Я/) ,
т = тг - ЯТ/, (5)
благодаря чему две плоскости изображений становятся компланарными, но остаются не выровненными построчно.
Ректификация изображения представляет собой перенос двух плоскостей изображений в одну плоскость таким образом, чтобы все эпиполярные линии были параллельны оси абсцисс и соответствующие эпиполярные линии на обоих изображениях имели одинаковые ординаты.
Цель стереоректификации состоит в том, чтобы повторно спроецировать изображения так, чтобы они находились в одной плоскости с точно выровненными строками изображения. Выбор плоскости, в которой можно выровнять камеры, зависит от используемого алгоритма. Для каждой камеры формируется вектор искажения Б, матрица вращения ЩгесЬ и исправленные и неисправленные матрицы камер (Мгес1 и М, соответственно). Из этих параметров можно составить карту исправления, которая используется для интерполирования пикселей исходного изображения при создании нового исправленного изображения.
Рис. 1 - Эпиполярная геометрия
Пусть имеются две камеры (рис. 1.): С -центр первой камеры, С - центр второй камеры. Точка пространства X проецируется в х на плоскость изображения левой камеры и в х' на плоскость изображения правой камеры. Прообразом точки х на изображении левой камеры является луч хХ. Этот луч проецируется на плоскость второй камеры в прямую /', называемую эпиполярной линией. Образ точки X на плоскости изображения второй камеры обязательно лежит на эпиполярной линии /'.
Таким образом, каждой точке х на изображении левой камеры соответствует эпиполярная линия /' на изображении правой камеры. При этом пара для х на изображении правой камеры может лежать только на соответствующей эпиполярной линии. Аналогично, каждой точке х' на правом изображении соответствует эпиполярная линия / на левом.
Эпиполярная геометрия используется для поиска стереопар и для проверки того, что пара точек может быть стереопарой.
Пусть имеется пара откалиброванных камер, и пусть x - однородные координаты точки на изображении одной камеры, а x' - на изображении второй. Существует такая матрица F размера 3 х 3, что пара точек x, x' является стереопарой тогда и только тогда, когда
'Т F 0 (6)
x Fx = 0.
Матрица F называется фундаментальной матрицей (fundamental matrix). Ее ранг равен 2, она определена с точностью до ненулевого множителя и зависит только от матриц исходных камер P и P'.
С помощью фундаментальной матрицы вычисляются уравнения эпиполярных линий. Для точки x, вектор, задающий эпиполярную линию, будет иметь вид l = F x, а уравнение самой эпиполярной линии: l'T x' = 0. Аналогично для точки x', вектор, задающий эпиполярную линию, будет иметь вид l = FT x'.
Кроме рассмотренного алгоритма ректификации с использованием стереокалибровки существуют также алгоритмы стереоректификация без стереокалибровки, в которых используется лишь фундаментальная матрица. К таким алгоритмам относится алгоритм Хартли [4]. В этом алгоритме вычисляется гомография, которая отображает эпиполюсы на бесконечность при сведении к минимуму различия между двумя вычисленными изображениями. Последнее осуществляется путём сопоставления точек между двумя парами изображений. Таким образом, отпадает необходимость в вычислении внутренних параметров камеры, так как такую внутреннюю информацию можно узнать, определив соответствия точек. Следовательно, вычисляется лишь фундаментальная матрица, которая может быть получена по любым соответствующим наборам точек двух изображений одной сцены.
Алгоритм Хартли может использоваться при наличии снимков с разных ракурсов, полученных с одной камеры, но при стереоректификации может производить больше искажений, чем алгоритмы с использованием стереокалибровки. В случаях, где можно применить калибровочные образцы, например в камерах видеонаблюдения или камерах манипуляторов, стоит использовать алгоритмы со
стереокалибровкой, однако, в случае отсутствия априорной информации о положении камер для каждого снимка могут быть использованы только алгоритмы без стереокалибровки.
После осуществления стереоректификации на следующем этапе для нахождения соответствий изображений стереопары необходимо использовать алгоритмы, помогающие выделять ключевые точки на изображении.
Ключевой является точка, которая имеет некие признаки, существенно отличающие ее от основной массы точек (резкие перепады освещенности, углы и т.д.). На данный момент наиболее эффективными алгоритмами выделения особых точек являются алгоритмы SIFT и SURF [5,6]. Кроме того, развиваются новые
альтернативные подходы выделения особых точек на основе вейвлет-преобразования [7,8], которые также могут быть использованы в задаче трехмерной реконструкции объекта.
Для нахождения особенностей в методе SIFT используется вычисление разности гауссианов в определенной окрестности и при определенном масштабе. Характерные особенности выделяются на различных масштабах изображения путем фильтрации. Это позволяет находить размытые градиенты изображения с различной локальной ориентацией. Главным недостатком метода SIFT является его требовательность к ресурсам. В некоторых случаях алгоритм SIFT находит слишком малое количество характерных точек, что препятствует решению некоторых задач трехмерной реконструкции объекта.
В методе SURF поиск особых точек осуществляется при помощи матрицы Гессе. При этом вычисляется значение гессиана как свертка значений пикселей изображения с лаплассианом гауссиана. Алгоритм SURF опережает известные алгоритмы выделения и описания особых точек по точности выделения, точности совпадения особых точек и робастности. Однако, для некоторых классов изображений с однородной текстурой алгоритм SURF демонстрирует низкую точность сопоставления ключевых особенностей.
На третьем этапе осуществляется определение трехмерных координат точек. Для этого необходимо осуществить построение карты глубины. Карта глубины (depth map) - это изображение, на котором для каждого пикселя вместо цвета хранится его расстояние до камеры. Карта глубины может быть получена с помощью специальной камеры глубины (например, сенсора Kinect или другого устройства
дальнометрирования), а так же может быть построена по стереопаре изображений.
Алгоритм построения карты глубины заключается в последовательном выполнении следующих операций. Для каждой точки на одном изображении выполняется поиск парной ей точки на другом изображении. По паре соответствующих точек можно выполнить триангуляцию и определить координаты их прообраза в трехмерном пространстве. Зная трехмерные координаты прообраза, можно вычислить глубину как расстояние до плоскости камеры.
После того, как соответствующие точки изображений найдены, его глубина (координата Z) может быть вычислена непосредственно из горизонтального перемещения, так как она обратно пропорциональна смещению:
Z
fb
xl
- x..
(7)
где / - исправленное фокусное расстояние, Ь -расстояние между центрами камер, XI и хг - х-координаты соответствующей точки на левом и правом изображении.
Для дальнейшей работы с объектом и получения карты глубины необходимо получить так называемое облако точек. Облако точек - набор вершин в трехмерной системе координат. Эти вершины определяются координатами X, Y и Z и предназначены для представления внешней поверхности объекта.
Облако точек может использоваться для многих целей, в том числе для создания трехмерных CAD-моделей производственных деталей, для метрологии и контроля качества и в других приложениях, связанных с визуализацией и компьютерной анимацией. Хотя облака точек могут быть непосредственно визуализированы и проверены, они, как правило, не используются напрямую в большинстве 3D-приложений, и поэтому обычно конвертируются в полигональную сетку, модели с NURBS-поверхностями или CAD-модели при помощи процесса реконструкции поверхности. Существует множество подходов преобразования облака точек в трехмерные поверхности. Некоторые подходы, такие как триангуляция Делоне, альфа-формы и поворотные шары, строят сетку треугольников поверх существующих вершин облака точек. Другие подходы конвертируют облако точек в поле объёмных расстояний и реконструируют неявные поверхности.
Наиболее простым способом является метод трехмерной реконструкции на основе триангуляции Делоне. Задачей триангуляции множества точек называется задача соединения заданных точек непересекающимися отрезками так, чтобы образовалась триангуляция. Триангуляцией Делоне для множества точек S в трехмерном пространстве называют такую триангуляцию DT(S), что для любого тетраэдра все точки из S за исключением точек, являющихся его вершинами, лежат вне сферы, описанной вокруг тетраэдра.
Для построения триангуляции Делоне на вход алгоритма подаются координаты всех точек, затем выполняется соединение данных точек линиями таким образом, чтобы выполнялось условие, по которому ни одна окружность, описанная вокруг каждого треугольника, не должна содержать других точек. В результате получается трехмерный каркас объекта наблюдения, который может рассматриваться в дальнейшем как трехмерная модель наблюдаемого объекта.
В качестве платформы для исследования методики трехмерной реконструкции объекта использовался мобильный робот Pioneer 3DX. Робот представляет собой подвижную двухколесную платформу, оснащенную микроконтроллером управления сервоприводами робота и вычислительным процессором для осуществления обработки изображений и интеллектуального управления движением робота. Микроконтроллер выступает в качестве сервера и обрабатывает запросы вычислительного процессора на выполнение команд сервомоторами.
Для решения задачи стереореконструкции робот был оснащен стереокамерой фирмы Minoru,
позволяющей получать изображения
последовательно с двух каналов видения, расположенных на одной горизонтальной оси.
В качестве программной части были использованы программный пакет Aria, позволяющий управлять роботом, библиотека компьютерного зрения OpenCV, а также библиотека компьютерной геометрии CGAL.
На первом этапе каждый канал видения был независимо откалиброван с использованием калибровки при помощи шаблона и получены параметры каждого канала видения.
На втором этапе была осуществлена стереокалибровка и стереоректификация изображений, полученных с двух каналов видения. Поскольку параметры каналов были получены на предыдущем этапе калибровки, стереокалибровка проводилась при помощи алгоритма Богета. Для решения задачи выделения и сопоставления особых точек в системе технического зрения мобильного робота Pioneer 3DX был выбран алгоритм метода SURF, поскольку главными критериями работы системы технического зрения являются высокая скорость и высокая точность функционирующих в ней алгоритмов. По полученным данным была построена карта глубины помещения (рис. 2).
б
Рис. 2 - Результат стереоректификации: а) изображение, наблюдаемое мобильным роботом; б) карта глубины наблюдаемого изображения
Для решения задачи трехмерной реконструкции был использован метод Делоне, поскольку он является наиболее простым и быстрым способом реализации построения каркасной модели
объекта. На рис. 3 представлен результат трехмерной реконструкции объекта «Стол».
Рис. 3 - Результат трехмерной реконструкции объекта «Стол» методом триангуляции Делоне
В качестве недостатков данного подхода стоит отметить появление ложных линий соединения ключевых точек («подарочная упаковка»), которые необходимо удалять для получения адекватной модели объекта.
Таким образом, описанный в данной статье алгоритм позволяет осуществлять трехмерную реконструкцию объектов при помощи стереозрения мобильного робота. Дальнейшие исследования данной методики будут направлены на повышение точности сопоставления изображений на этапе ректификации, а также повышение качества
построения трехмерной модели наблюдаемого
объекта при помощи триангуляции.
Литература
1. А. Zhang, Flexible New Technique for Camera Calibration. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2000, Volume 22(11). P. 1330-1334.
2. А. Fusiello, E.Trucco, A.Verri, A compact algorithm for rectification of stereopairs, Machine Vision and Applications. 2000. Volume 12(1). P. 16-22.
3. M. Pollefeys, R. Koch, and L. van Gool, A simple and efficient rectification method for general motion, 7th International Conference on Computer Vision. Kerkyra, Greece, 1999. P. 496-501.
4. G. Bradski, A. Kaehler, Learning OpenCV, O'reilly Media Inc, 2008. 555 p.
5. С. Аун, Л.М. Шарнин, А.П. Кирпичников, Информационно-измерительная система слежения за движущимися объектами. Вестник Казанского технологического университета, 16, 10, 224-232 (2011).
6. M.V. Medvedev, M.P. Shleymovich, Image key points detection and matching. 7th Spring/Summer Young Researchers' Colloquium on Software Engineering (Kazan, Russia, May 30-31, 2013). Kazan, 2013. P. 149154.
7. Р.Н. Гайнуллин, М.В. Медведев, М.П. Шлеймович, Ускорение поиска блоков изображения при фрактальном сжатии на основе вейвлет-преобразования. Вестник Казанского технологического университета, 16, 10, 280-284 (2013).
8. Н.Л. Дзенчарский, М.В. Медведев, М.П. Шлеймович, Поиск изображений с выделением особых точек на основе вейвлет-преобразования. Научно-технический журнал «Вестник КГТУ им. А.Н. Туполева», 1, 131-135 (2011).
© М В. Медведев - ст. преподаватель кафедры автоматизированных систем обработки информации и управления КНИТУ-КАИ, mmedv@mail.ru; А. П. Кирпичников - д. ф.-м. н., зав. кафедрой интеллектуальных систем и управления информационными ресурсами КНИТУ, kirpichnikov@kstu.ru.
© M V. Medvedev - Senior Lecturer of the Department of Automated Information Processing Systems & Control, KNRTU-KAI, mmedv@mail.ru; A. P Kirpichnikov - Dr. Sci, Head of the Department of Intelligent Systems & Information Systems Control, KNRTU, kirpichnikov@kstu.ru.