скачать Санкт-Петербургский Государственный Университет Математико-механический факультет Кафедра системного программирования Реализация метода восстановления трехмерной сцены по видеопотокам с двух автомобильных камер Дипломная работа студента 545 группы Расторгуева Алексея Сергеевича Научный руководитель Пименов А.А. /подпись/ Рецензент ст. преп. Смирнова Е. А. /подпись/ “Допустить к защите” д.ф.-м.н., профессор Терехов А.Н. Заведующий кафедрой /подпись/ Санкт-Петербург 2011 St. Petersburg State University Mathematics and Mechanics Faculty Software Engineering Department Development the Reconstruction Method of the three-dimensional Scene using the Video Streams from the 2 auto cameras Graduate paper by Rastorguev Alexey 545 group Scientific advisor A. A. Pimenov /signature/ Reviewer Senior Lect. E A. Smirnova /signature/ “Approved by” Professor A.N.Terekhov Head of the Department /signature/ Saint Petersburg 2011 Содержание Введение 4 Обзор существующих алгоритмов 6 Обозначения и определения 6 Общий вид алгоритмов 7 Определение фундаментальной матрицы 8 8-точечный алгоритм 8 Нормированный 8-точечный алгоритм 9 7-точечный алгоритм 9 5-точечный алгоритм 10 Нелинейные алгоритмы 11 Триангуляция 12 Метод средней точки 12 Линейная триангуляция 12 Минимизация суммы квадратов расстояний 13 Минимизация суммы расстояний 13 Выравнивание изображений 14 Планарная ректификация 14 Полярная ректификация 16 Совмещение изображений 18 Корреляционный метод 18 Динамическое программирование 18 Описание алгоритма и реализации 20 Средства реализации 20 Алгоритм 20 Поиск ФМ 20 Поиск соответствий 21 Построение трехмерной структуры по данным с одной камеры 22 Построение трехмерной структуры по данным с двух камер 23 Слияние сцен 23 Заключение 25 Литература 26 Результаты 28 Введение Стерео реконструкция – задача определения координат точек в трехмерном пространстве на основании их положения на кадрах видеоряда или нескольких (не меньше двух) изображений. Задачей трехмерной реконструкции начали заниматься с конца 70-х годов. Большое значение оказало введение в 1981 году Лонгет-Хиггинсом так называемой существенной матрицы (essential matrix), которую можно получить по паре нормализованных изображений и содержащую информацию о движении одной камеры относительно другой. Позднее, это понятие было расширено Хартли до фундаментальной матрицы. Фундаментальная матрица (далее ФМ) содержит много полезной информации о паре изображений, и практически все существующие алгоритмы стереозрения используют ФМ в своей работе. Сегодня в интернете существует очень много материалов по теме стерео реконструкции или трехмерной реконструкции. Этим занимаются отдельные любители, кафедры университетов и даже огромные корпорации, такие как Microsoft или Samsung. Область применения трехмерной реконструкции достаточно широка: от навигации роботов до использовании в виртуальном туризме. Самым очевидным примером использования восстановления сцены является определение положения точки обзора относительно различных объектов вокруг камеры – домов, деревья, дорожных знаков, камней и т.п. Это наводит на мысль использовать такие системы для облегчения управления автомобилем, определяя расстояние до окружающих автомобиль препятствий и отображая это каким-либо образом соответствующую информацию водителю К сожалению, все работы, связанные с трехмерной реконструкцией, описывают процесс восстановления, основанный на получении изображений с одной камеры. Часто, этого бывает недостаточно. К примеру, на автомобилях может быть установлено до четырех видеокамер, две спереди и две сзади, используя которые надо восстановить общее положение объектов вокруг автомобиля. В данной работе делается попытка восстановления общей сцены по видеопоследовательностям, полученным с двух камер автомобиля. Камеры располагаются спереди автомобиля (либо на зеркалах) и имеют пересечение областей обзора, но также, из каждой камеры видны точки, не доступные другой камере. Для данной задачи можно использовать дополнительные предположения, одни из которых существенно упрощают реализацию некоторых шагов алгоритма, другие, наоборот, доставляют определенные трудности. К примеру, можно считать, что обе камеры откалиброваны, то есть известны матрицы внутренних параметров камер. Это позволяет избежать довольно ресурсоемкого процесса самокалибровки камер. С другой стороны, при движении автомобиля, каждая камера движется вперед или назад, а такой тип движения вызывает определенные проблемы, при использовании стандартных методов восстановления. Вместе с этим появляются проблемы, связанные с недостаточной точностью вычислений. Как бы точно не были измерены внутренние параметры, всегда существуют искажения более высокого порядка, чем те, которые можно убрать, используя калибровку камер. Достаточно большая часть работы посвящена методам получения ФМ по паре изображений, так как от точности вычисления ФМ зависит степень точности всех последующих шагов, и, как следствие, общая точность реконструкции сцены. ^ Обозначения и определения Основные результаты в области восстановления сцены по двум видам относятся к области эпиполярной геометрии. Это проективная геометрия между двумя изображениями. Пусть у нас имеется 2 камеры с центрами проекций в точках O и O’ , плоскости проекций П и П' этих камер, и некоторая точка P в пространстве. ![]() Будем называть точки e и e’, в которых линия OO’ пересекает плоскости П и П’ эпиполюсами, а линии l и l’ в которых плоскость OO’P пересекает плоскости П и П’ эпиполярными линиями для точки P. Для вектора t = (tx, ty, tz) будем обозначать кососимметричную матрицу ![]() Матрица [t]× обладает тем свойством, что t ![]() Будем называть соответствием пару точек на двух изображениях, которые являются проекциями одной и той же точки сцены. Фундаментальная матрица – это сингулярная матрица ![]() ![]() ![]() ![]() ![]() Левый и правый эпиполюса являются соответственно правым и левым нулевыми подпространствами матрицы ![]() Существенная матрица – аналог ФМ для откалиброванных изображений. Существенная матрица также сингулярна, но имеет дополнительное свойство: матрица является существенной матрицей тогда и только тогда, когда ее сингулярные числа равны [13]. ^ Общий вид решения задачи 3 мерной реконструкции состоит из следующих шагов [1]
Это наиболее общее описание процесса и в алгоритмах некоторых автором могут отсутствовать те или иные шаги. Очень многие современные авторы в своих работах основываются на результатах, полученных либо М. Поллефейсом, либо Д. Нистером. Алгоритм, предложенный первым автором, дает отличное качество на видеопоследовательностях, полученных с произвольных камер. То есть о внутренних параметрах камер на момент начала восстановления нет никакой информации. Алгоритм, предложенный вторым автором, работает с откалиброванными камерами и дает восстановление сцены в реальном времени [2]. Методы различаются в выборе алгоритмов. Для первого:
Нистер использует следующие методы:
В данной работе за основу брался метод Поллефейса [9], с некоторыми изменениями. Здесь отсутствует этап самокалибровки и слияния результатов, полученных для разных пар изображений. ^ Как уже было сказано, фундаментальная матрица содержит много информации о паре изображений и ее как можно более точное определение является очень важной задачей. Далее представлены некоторые из существующих методов получения ФМ. В каждом из этих методов считается, что между парой изображений найдено какое-то количество точечных соответствий. ^ Линейный алгоритм – если есть 8 соответствий можно построить систему уравнений (здесь F33 = 1). ![]() где ![]() Если точек больше, можно искать матрицу F либо используя схему наименьших квадратов, минимизируя величину (1) ![]() ([3], стр. 315) либо использовать линейный 8-точечный алгоритм для генерации гипотез для алгоритма RANSAC [7]. ^ Пусть мы получили по нескольким сопоставлениям линейное уравнение Ax = 0. Из-за шума точное решение мы скорей всего не найдем. Будем искать не точное решение, а вектор f, минимизирующий величину ||Af|| при условии ||f|| = 1 (метод наименьших квадратов, далее МНК). Этот вектор – собственный вектор, соответствующий минимальному собственному числу матрицы ATA. В большинстве случаев получается, что число обусловленности этой матрицы очень большое. Чтобы обойти это, перед выполнение алгоритма делаем следующее преобразование координат точек изображений (назовем преобразования ![]() ![]()
Теперь средние проективные координаты особой точки будут (1; 1; 1) [10]. Ищется ФМ ![]() ![]() В этих двух методах нигде не используется условие того, что фундаментальная матрица имеет ранг 2. Чтобы выполнить его, сделаем следующее: разложим ![]() ![]() ![]() ![]() ![]() ![]() ![]() Еще один вариант ([3], стр. 316) выполнения ограничения на ранг: матрицу, полученную на выходе 8-точечного алгоритма можно использовать для основы в следующем двухэтапном процессе оценки 1)Находим эпиполюсы ![]() ![]() ![]() ![]() 2) Эти координаты подставляются в уравнение параметризации фундаментальной матрицы (будут дальше). Параметризованная матрица подставляется в критерий (1) и минимизируется. ^ Имеется 7 соответствий. На основе их как в 8-точечном алгоритме строим линейное уравнение ![]() ![]() ![]() ![]() ![]() Получаем кубическое уравнение с переменной a. В зависимости от количества решений можно найти 1 или 3 варианта фундаментальной матрицы. В случае 3 решений выбирается то, которое минимизирует величину (1) или любую другую метрику ошибок. ^ Предложен Д.Нистером. Используется для откалиброванных камер. Пусть найдено 5 соответствий. Введем 2 дополнительных ограничения, выполняющиеся для существенных матриц [8]: (2) ![]() (3) ![]() По 5 соответствиям можно составить линейное уравнение QE = 0 (как в 7 и 8 точечных алгоритмах). Через QR разложение ищутся 4 вектора ![]() ![]() ![]() ![]() ![]() ![]() ( здесь [n] – многочлен степени n от z) Далее, делая преобразование над строками ![]() из этих уравнений получается матрица ![]() , для которой ![]() ![]() В итоге, получается уравнение на z десятой степени. Корни ищутся как угодно. В [4] используется ряд Штурма для нахождения количества корней, на которое потом делится первоначальный интервал так, чтоб на каждом был 1 корень и для каждого интервала ищется корень делением пополам. Для каждого корня находится ![]() ![]() ![]() ![]() ![]() ![]() ^ Здесь рассматривается применение нелинейных алгоритмов, направленных на поиск ФМ. Эти алгоритмы используют параметризацию ФМ для минимизации некоторого значения. Как правило, минимизация производится методом Макварда-Левенберга и для начального приближения используется ФМ, полученная одним из ранее предложенных методов. В работе [4] предложено две параметризации ФМ и два способа подсчета ошибок. Первая параметризация просто определяет сингулярную матрицу размера ![]() ![]() Вторая параметризация является частным случаем первой и основана на том, что эпиполюсы ![]() ![]() ![]() Первая мера ошибок – сумма расстояний от каждой точки до соответствующей эпиполярной линии на этом изображении и может быть записана как ![]() Вторая мера называется градиентной и имеет вид ![]() В начале, каждая матрица инициализируется значением, найденным 8-точечным нормированным алгоритмом (в общем, это может быть и любой другой способ). Далее, используя оптимизацию Макварда-Левенберга и одну из параметризаций и типов ошибок, минимизируется общая ошибка. Отмечается, что нелинейное уточнение дает гораздо более лучшие результаты, чем линейные методы. В то же время, ни один из нелинейных методов не дает существенно лучших результатов, чем другой. Триангуляция В данном случае под триангуляцией подразумевается задача нахождения координат точки в трехмерном пространстве, если известны ее проекции на два изображения и даны матрицы проекций, также для обоих изображений. Допустим, у нас есть координаты p и p’изображений точки P. Если обозначить через O и O’ центры проецирования, то в идеальном случае P это пересечение лучей Op и O’p’. В реальной жизни из-за дефектов камеры и погрешности измерений, эти лучи, скорей всего, пересекаться не будут. ^ В данном методе в качестве координат точки P, берется середина такого отрезка ![]() ![]() ![]() ![]() Если матрицы проекций ![]() ![]() ![]() ![]() Линейная триангуляция Пусть координаты проекции точки на первое изображение ![]() ![]() ![]() ![]() ![]() ![]() Убирая ![]() ![]() Аналогичные два уравнения можно получить для проекции точки на второе уравнение. Таким образом, можно записать систему AX = 0, где A – матрица ![]() Скорей всего, из-за шума, точное решение, используя эту систему, получить не удастся. В работе [6] предложено два способа поиска решений системы. Первый – решать систему, используя МНК для случая однородной системы. Второй – полагая, что ![]() ![]() Минимизация суммы квадратов расстояний до эпиполярных линий Пусть имеются соответствующие точки u и u’. Каждое изображение преобразуется так, чтобы ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Находим координаты соответствующей линии на втором изображении, выражаем расстояние до начала координат и получаем величину вида ![]() Далее берется производная r(t) и приравнивается к 0 ![]() Получаем уравнение 6й степени на t. Один из ее нулей соответствует минимальному значению s(t). ^ Метод подобен предыдущему, с той разницей, что минимизируется не сумма квадратов, а просто расстояния от точки до эпиполярной линии. Эта величина имеет вид ![]() и производную ![]() , где ω1 и ω2 равны 1 или –1 в зависимости от знака t и (ct + d) соответственно. Приравнивая производную к 0, разделяем уравнение на 2 части, правую и левую и возводим в квадрат для того, чтобы избавиться от знака. Получаем уравнение ![]() которое приводит к уравнению 8й степени. Ищутся корни, чтобы найти глобальный минимум s2(t). ^ Выравнивание изображений – процесс деформации пары изображений так, чтобы соответствующие эпиполярцые линии были параллельны одной оси u и имели одинаковые координаты v. После такого преобразования поиск карты смещений существенно упрощается, благодаря тому, что соответствующие точки теперь ищутся только вдоль прямой. Имеется 3 вида ректификации – планарная, полярная и цилиндрическая. Здесь рассматриваются планарная и полярная ректификации. ^ Алгоритм, предложенный Хартли [14]:
![]()
![]()
В работе [15] предлагается немного другой способ поиска соответствующего преобразования ![]() ![]() ![]() ![]() ![]() Решение ищется по МНК. При таких преобразованиях изображений эпиполярные линии становятся параллельны оси v. После этого ищутся коэффициенты верхних строк ![]() ![]() ![]() и его ненулевые сингулярные числа σ1 и σ2. Если σ1 > 1 преобразование будет создавать дополнительные пиксели, если σ1 < 1 – будет сжимать изображение. Минимизируется величина ![]() где pi – какой-то набор точек, например сетка, покрывающая изображение. Для минимизации используется метод Нельдера-Мида. Как сказано в [15] этот метод показывает в экспериментах гораздо лучший результат по сравнению с методом Хартли и Лупа [16]. ^ В некоторых случаях работать с планарной ректификацией неудобно. К примеру, если реконструкция производится по изображениям, полученным с камеры, движущейся вперед-назад, когда эпиполюсы будут находиться на изображениях. В этих случаях следует использовать более продвинутые методы, к примеру, полярную ректификацию, позволяющую работать со всеми типами движений. Общий смысл метода состоит в том, что мы перепараметризуем изображения из координат (x, y) в полярные координаты (r, φ) и строим по ним новые изображения. Пусть F – ФМ между парой изображений. Тогда для каждой эпиполярной линии соответствующая эпиполярная линия может быть найдена из соотношения ![]() ![]() ![]() ![]() Выравнивание состоит из нескольких шагов:
Сначала определяем крайние ЭЛ, то есть те, которые проходят через углы изображения (делаем для обоих изображений). После этого переносим ЭЛ со второго изображения на первое и определяем общий регион ![]()
Определяем угол, на который будем поворачивать ЭЛ. Информация о пикселях должна быть сохранена при преобразовании выравнивания. В худшем случае пиксель находится на границе изображения напротив эпиполюса. Ищем минимальный шаг, чтоб сохранить все пиксели. Иллюстрация простейшей процедуры для этого ![]() То же делаем на другом изображении, переносим на первое, и выбираем минимальный угол между ЭЛ.
Строим новые изображения построчно снизу вверх. Каждой строке соответствует определенный угловой сектор. Координаты каждой ЭЛ сохраняются в списке для дальнейшего применения. Расстояние до первого и последнего пикселя запоминается для каждого изображения. ![]()
Пусть есть точка на выровненном изображении и мы хотим найти ее на первоначальном изображении. Для этого ищем координаты для этой ЭЛ в таблице, о которой говорится в п.3. Определяем расстояние до первой точки – вычитаем из расстояния до эпиполюса расстояние от первой точки до эпиполюса. Получаем точку на оригинальном изображении. Для увеличения точности можно сделать интерполяцию вдоль ЭЛ [17]. ^ После того, как изображения выровнены, происходит поиск соответствующих точек на этих изображениях. В отличие от первоначальных изображений, где для поиска соответствующей точки на втором изображении необходимо было искать ее по всему изображению, на выровненных соответствующие точки находятся в строках, с одинаковыми номерами. Далее описаны два метода такого поиска. ^ Корреляционные методы основаны на сравнении яркости пикселей в окрестности потенциально соответствующих точек. Рассмотрим точку (x, y) на первом изображении и окно размера (2m + 1) × (2n + 1) с центром в этой точке. Путем построчного сканирования значений окна получим вектор ![]() ![]() ![]() ![]() ![]() Корреляционная функция принимает значения от -1 до 1 и достигает максимума на тех участках изображений, яркость окон которых отличается только смещением и постоянным множителем. Соответствующие точки изображений можно найти, определив максимум корреляционной функции в пределах некоторого предопределенного диапазона расхождений[3]. ^ Этот метод основан на предположении, что порядок согласуемых точек вдоль обеих эпиполярных линий совпадает. Будем называть это условие условием упорядочения. В общем, условие упорядочения не обязано выполняться (например для изображений, на которых небольшие тела закрывают большие объекты). Несмотря на это, его можно использовать при установлении соответствий. Допустим, на соответствующих эпиполярных линиях выделено какое-то количество характерных точек (углов, краев и т.п.). Цель заключается в согласовании интервалов, на которые эти точки разбивают ЭЛ так, чтобы выполнялось условие упорядочения. Причем может оказаться, что интервалу на одном изображении будет соответствовать точка на другом. Это может случиться в связи с перекрытием одного объекта другим. Эту задачу можно переформулировать как задачу минимизации стоимости пути на графе, узлы которого соответствуют парам характерных точек первого и второго изображений, а ребра – парам отрезков на ЭЛ, ограниченных точками соответствующих узлов графа. В качестве стоимости модно использовать разность квадратов средней интенсивности, либо любую другую меру. Данный тип задач можно решить, используя динамическое программирование. Вычислительная сложность такого решения порядка O(mn), где m и n – количество характерных точек на каждой ЭЛ. ^ Средства реализации Реализация прототипа выполнена в среде Visual Studio 2008. Для вспомогательных действий, как поиск потока или поиск ФМ, использовалась библиотека Emgu.CV – обертка известной библиотеки для работы с компьютерным зрением OpenCV под платформу .Net. Алгоритм Алгоритм, предложенный для решения задачи реконструкции, можно разделить на три основные части: восстановление видимой области для каждой камеры отдельно, восстановление сцены по изображениям, полученным с обеих камер и слияние результатов в общую сцену. С учетом того, что камеры практически все время будут двигаться вперед или назад, в качестве основы для восстановления с одной камеры был выбран алгоритм полярной ректификации. В этом месте возникают дополнительные проблемы. Например, поскольку алгоритм полярной ректификации строит выровненные изображения, сканируя соответствующие эпиполярные линии, становится очень важно оценить ФМ как можно более точно. Здесь в качестве оценки потока использовались соответствия, найденные и выделенные на парах изображений вручную, а для уточнения ФМ использовались нелинейные методы. Можно выделить шесть основных задач, которые необходимо было решить для реализации восстановления
Далее будет подробнее описаны некоторые из этих шагов. Поиск ФМ Соответствия точек загружаются из файла. Дальше для первоначальной оценки матрицы используется метод, который принимает в качестве параметра способ вычисления матрицы. Это может быть RANSAC с 8-точечным алгоритмом, 7- или 8- точечный алгоритмы по МНК. Так как 7- и 8- точечные алгоритмы сильно зависят от точности нахождения соответствий, использовался RANSAC. RANSAC способен дать устойчивую оценку матрицы и отметить соответствия как выбросы или не выбросы. Этих результатов оказалось вполне достаточно в случае оценки ФМ для изображений с правой и левой камер, но для работы с изображениями с одной камеры необходимо дальнейшее уточнение и фильтрация соответствий. В качестве параметризации матрицы использовалась сингулярная параметризация. Уточнение проходит в два этапа: сначала к оценке матрицы применялся один из ранее рассмотренных нелинейных методов оценки (в данном случае, это сумма квадратов расстояний до эпиполярной линии для всех точек из начального множества соответствий), после чего на основании этого результата происходила фильтрация соответствий с порогом 0.5 пикселя, потом по оставшимся соответствиям снова оценивалась ФМ. Для сингулярной параметризации матрицы используя в качестве метрики ошибок сумму квадратов расстояний от точек до ЭЛ, средняя ошибка для первоначального количества 200 соответствий оказалась около 0.01, что дало отклонение в выравнивании самых удаленных от эпиполюсов точек 2-4 пикселя. Оценкой точности найденной ФМ можно определить по мере ошибки, которая используется в оптимизации Левенберга-Макварда для каждой точки. Еще одной важной мерой степени точности ФМ, служит то, насколько точно с ее помощью можно получить существенную матрицу. Как сказано в начале обзора, существенная матрица имеет два равных сингулярные числа и третье сингулярное число равное нулю. Таким образом, чем меньше числа ![]() ![]() ![]() ^ В данной работе стереосоответствия ищутся через обычный корреляционный метод. При этом производится фильтрация соответствий по найденной наибольшей корреляции. В качестве порога бралась величина 0.6. Так как при полярной ректификации в случае изображений с одной камеры количество строк значительно превосходит количество столбцов, используется вытянутое по оси v окно. Неплохие результаты дает окно размера 5×13. Оно и использовалось при тестировании метода. Для изображений, полученных с двух камер, использовалось окно 7×7 и тот же порог для максимальной корреляции. ^ Наверное, самый распространенный метод получения проективных глубин точек, использующийся при восстановлении сцены по паре выровненных изображений – это метод, основанный на расхождении. Расхождение между двумя пикселями на паре выровненных изображений – это величина d такая, что первому пикселю (u, v) соответствует пиксель (u + d, v) на втором выровненном изображении. Очевидно, что чем меньше величина d для таких точек, тем дальше от плоскости проекции находится соответствующая им точка сцены. К сожалению, эта схема не работает для полярной ректификации. Поэтому, в этом случае, решено было использовать метод триангуляции, предварительно оценив положение одной камеры относительно другой. Оценка положения одной камеры относительно другой является очень нетривиальной задачей в случае неоткалиброваных камер и связана с различными методами минимизации общей ошибки проецирования и самокалибровкой камер. В нашем случае внутренние параметры камер известны, что существенно упрощает задачу. Будем считать, что матрица проекции на плоскость первого изображения ![]() Ответ на то, как найти движение второй камеры по известной ФМ оказывается очень прост, и может быть найден в [13]. По ФМ, зная внутренние параметры ![]() ![]() ![]() ![]() ![]() ![]() ![]() После всего этого уже нетрудно восстановить исходные координаты точек сцены, используя для каждой пары соответствующих точек один из способов триангуляции. Здесь была выбрана линейная триангуляция, как лучшая с точки зрения простота реализации/качество восстановления. ^ В данном случае одна камера сдвинута относительно другой вправо, поэтому здесь была использована планарная ректификация и поиск глубин точек на основе расхождений. Планарная ректификация в данном случае предпочтительней, так как она помогает избежать многих лишних действий. ^ На этом этапе у нас уже есть три сцены, по одной с каждой камеры и одна, полученная по изображениям с двух камер и мы умеем определять положение одной камеры относительно другой. Остается слить результаты. Для этого сначала необходимо определит масштаб второй сцены относительно первой и масштаб сцены, полученной с первой и второй камер, относительно первой сцены. При оценке отношения масштабов использовались соответствия, найденные и отфильтрованные в самом начале. Опишем подробнее этот процесс. Допустим, у нас найдено несколько соответствий между двумя изображениями и для каждой точки из пар соответствий найдена соответствующая точка пространства. Для оценки масштаба второй сцены относительно первой оценивалась средняя величина отношений глубин точек из пар соответствий. То есть если ![]() ![]() ![]() Теперь пусть у нас есть матрица преобразования второй системы координат относительно первой M и матрица ![]() ![]() ![]() ![]() ![]() Теперь, когда все масштабы известны, можно начать сливать представления. Сначала, для каждой точки l первого изображения искались точки структуры, восстановленные только по изображениям с первой камеры L1 и по изображениям с обеих камер L12. Эти точки через матрицу ![]() ![]() После этого ко всем точкам добавлялись точки правого пространства, которые не имели соответствующих точек левого. Это множество точек и бралось за общую сцену. Ниже можно видеть результаты работы отдельных частей и всего алгоритма в целом Заключение В данной работе проведен анализ существующих методов трехмерной реконструкции с одной камеры и на их основе реализован метод реконструкции сцены по видеопоследовательности от двух видеокамер автомобиля. Также предложен способ получения общего представления сцены. Конечно, данный метод не идеален, но с его помощью уже можно сравнительно неплохо восстанавливать обобщенные сцены, не встречая при этом проблем, когда изображения будут растягиваться на бесконечность. К тому же, анализируя результаты, можно наметить направления дальнейших работ по его улучшению. Вот некоторые из них:
Литература 1) D. T. Kien, “A Review of 3D Reconstruction from Video Sequences”, ISIS technical report series, Vol., 2005 2) S. Neto, M. Bueno, T. Farias, J. Lima, V. Teichrieb, J. Kelner, I. Santos, “Experiences on the Implementation of a 3D Reconstruction Pipeline”, international journal of modeling and simulation for the petroleum industry, vol. 2, no. 1, February 2008 3) Ж. Понс, Д. Форсайт, “Компьютерное зрение. Современный подход”- М.Издательский дом “Вильямс”,2004. 4) Q.-T. Luong and O Faugeras, “The fundamental matrix: theory, algorithms, and stability analysis”, ^ , 17(1):43-76, 1996. 5) О. С. Сидоркина, Д. В. Юрин. Методы метапрограммирования в компьютерном зрении: 7-точечный алгоритм и автокалибровка. 6) R. Hartley and P. Sturm, “Triangulation”, Computer Vision and Image Understanding, 68(2):146-157, 1997. 7) M. Fischler, R. Bolles (June 1981). "Random Sample Consensus: A Paradigm for Model Fitting with Applications to Image Analysis and Automated Cartography". Comm. of the ACM 24: 381–395. 8) D. Nister, An efficient solution to the five-point relative pose problem. IEEE Trans. Pattern Anal. Mach. Intell., IEEE Computer Society, Washington, DC 9) M. Pollefeys. Visual modeling with a hand-held camera. ^ , 59:207-232, 2004 10) R. Hartley, “In defense of the eight-point algorithm”. IEEE Trans. on Pattern Analysis and Machine Intelligence, 19(6):580-593, June 1997. 11) R. Koch, M. Pollefeys, B. Heigl, L. Van Gool and H. Niemann. “Calibration of Hand-held Camera Sequences for Plenoptic Modeling”, ^ Computer Vision), pp.585-591, Corfu (Greece), 1999. 12) Q.-T. Luong, R. Deriche, O. Faugeras, T. Papadopoulo. On determining the fundamental matrix: analysis of different methods and experimental results. Technical Report RR-1894, INRIA, 1993 13) R. Hartley, A. Zisserman. Multiple View Geometry in Computer Vision. Cambridge University Press, 2000 14) R. I. Hartley, Theory and practice of projective rectification, International Journal of Computer Vision 35 (2) (1999) 115–127. 15) J. Mallon, P. Whelan. Projective Rectification from the Fundamental Matrix. Image and Vision Computing, Vol. 23, Issue 7, pp. 643-650, 2005 16) C. Loop and Z. Zhang. “Computing Rectifying Homographies for Stereo Vision”, IEEE Conf. Computer Vision and Pattern Recognition (CVPR'99), Vol. I, pp. 125-131, Colorado, June 1999. 17) M. Pollefeys, R. Koch and L. Van Gool, ”A simple and efficient rectification method for general motion”, Proc.ICCV’99, pp.496-501, Corfu (Greece), 1999. 18) S. Laveau, O. Faugeras, “Oriented Projective Geometry for Computer Vision”, in : B. Buxton and R. Cipolla (eds.) Результаты Ниже представлено несколько результатов, полученных в ходе работы. ![]() ![]() Два последовательных изображения сцены с левой камеры ![]() ![]() И два изображения сцены с правой камеры ![]() ![]() Выровненные последовательные изображения с левой камеры. Размер изображений 431×4713. ![]() ![]() Результаты работы полученного метода (слева) и взятого из библиотеки Emgu.CV(справа). Большая интенсивность на левом изображении соответствует более далеким точкам сцены. На правом наоборот. ![]() Слитое по видам с двух камер изображение сцены. Область в окрестности эпиполюсов имеет большие ошибки при восстановлении, поэтому ее считать нет смысла ![]() ![]() Изображение глубин точек, полученные с левой и правой камер ![]() Изображение, полученное по трем сценам, после обработки медианным фильтром с окном 5×5.
|