Восстановление трехмерных моделей объектов по стереоизображениям с учетом распараллеливания

1

ОПТОТЕХНИКА

УДК 004.932

ВОССТАНОВЛЕНИЕ ТРЕХМЕРНЫХ МОДЕЛЕЙ ОБЪЕКТОВ ПО СТЕРЕОИЗОБРАЖЕНИЯМ С УЧЕТОМ РАСПАРАЛЛЕЛИВАНИЯ А.Н. Волкович, Д.В. Жук, А.В. Тузиков

В работе описываются процедуры автоматического восстановления трехмерной модели объектов по стереоизображениям. Описываются алгоритмы построения карт диспаратности, обсуждаются подходы к их параллельной реализации, приводятся результаты вычислительного эксперимента по сравнению эффективности выполнения последовательной и параллельной реализаций алгоритма. Ключевые слова: стереоизображения, алгоритмы, параллельные вычисления

Введение

В настоящее время использование компьютерных трехмерных моделей для визуализации объектов широко распространено. Построение моделей вручную сопряжено с большими затратами, а применение специальной аппаратуры для сканирования трехмерных объектов не всегда возможно, так как глубина сканирования такими устройствами ограничена.

Одним из альтернативных подходов в построении трехмерных моделей реальных объектов является метод, основанный на использовании стереоизображений. Стереоизображения - это два или более цифровых изображения, на которых один и тот же объект отснят с немного различающихся позиций. Такой способ не накладывает ограничений на размеры объекта, это может быть как небольшой объект, так и земной ландшафт.

Можно выделить два подхода для получения трехмерной информации по изображениям, использующие: 1) некоторые характерные признаки изображенных объектов (границы объектов, угловые точки и т.д.), 2) плотные карты диспаратности. Недостатком первого подхода является ограниченность множества точек, для которого восстанавливается трехмерная структура. Такой метод дает приемлемые результаты, когда реконструируемые объекты имеют достаточно простую форму, что встречается, например, в задачах реконструкции архитектурных сцен. В случае более сложных объектов этот метод не дает необходимого уровня детализации для получения высокореалистичной модели и, как правило, используется на этапе подготовки изображений для обработки их алгоритмами построения плотной карты диспаратности. Алгоритмы построения плотной карты диспаратности позволяют либо для каждой точки одного изображения найти соответствующую ей точку на втором изображении, либо определить, что такой точки нет [3, 10].

Подготовка изображений

Входной информацией для алгоритма определения множества сопряженных точек на паре изображений служат лишь сами изображения. На начальном этапе работы алгоритма выделяется множество точек на изображениях, среди которых находятся предполагаемые соответствия путем сравнения их окрестностей. Кроме сходства окрестностей, найденные пары точек должны также удовлетворять эпиполярным ограничениям, для проверки которых в ходе работы алгоритма вычисляется и уточняется фундамен-

тальная матрица F. Фундаментальная матрица - это вырожденная (rank F = 2) матрица 3^3, которая содержит в себе всю информацию об эпиполярной геометрии между двумя проекциями.

Сопряженные точки могут задаваться вручную или отыскиваться автоматически при помощи алгоритма автоматического нахождения сопряженных точек. Во время выполнения алгоритм выделяет на каждом изображении множество точек, которые затем можно будет использовать для построения множества предполагаемых сопряженных пар. Далее для каждой выделенной точки на первом изображении необходимо найти соответствующую ей точку на втором изображении, сравнивая некоторую окрестность точек. Аналогичным образом находятся соответствия для каждой выделенной точки на втором изображении. В случае, когда соответствующая точка оказывается уже занятой другим соответствием, выбирается та пара, у которой сходство окрестностей больше. Для определения ложных совпадений можно использовать алгоритм RANSAC.

Кроме множества сопряженных точек, этот алгоритм также находит и фундаментальную матрицу, которая будет использоваться на шаге выпрямления изображений.

Выпрямление изображений позволяет получить более простую эпиполярную геометрию в том смысле, что фундаментальная матрица для преобразованных изображений будет иметь следующий вид: "0 0 0 "

F = 0 0 -1 . (1) 0 1 0

Для выпрямления пары изображений к каждому изображению применяется специальное проективное преобразование, которое выбирается так, чтобы соответствующие эпиполярные линии были параллельны оси х.

В качестве выпрямляющего преобразования можно использовать преобразование, переносящее эпиполюс в бесконечно удаленную точку. Чтобы полученные линии были параллельны оси х, эпиполюс должен быть перенесен в точку (1, 0, 0)T. При этом преобразование определяется неоднозначно, чем можно воспользоваться для уменьшения внесенных проективных искажений.

Пусть Н и Н - преобразования, применяемые к изображениям I и I. Стратегия выбора соответствующего преобразования Н состоит в выборе преобразования, которое переносит эпиполюс е' на бесконечность и минимизирует следующую сумму:

2d(Щ,Н'х) )2.

i

В результате получим, что сопряженные точки на изображениях будут иметь, кроме равных _у-координат, также и близкие значения х-координат.

Построение карт диспаратности

Используя особые точки на изображении (такие как угловые точки), можно получить лишь небольшое количество точек поверхности реконструируемых объектов. Для получения модели сцены по этим точкам можно воспользоваться интерполяцией. Однако на практике такой метод не дает приемлемых результатов, так как теряются детали, присутствующие на исходных изображениях. В настоящее время разработан ряд алгоритмов, которые позволяют найти пары сопряженных точек для практически всех точек стереопары.

Методы построения плотной карты диспаратности можно разделить на две группы: локальные методы, которые работают с небольшими окрестностями точек для нахождения соответствий (например, блочный метод), и глобальные, которые работают со строками изображения (динамическое программирование) или с изображением це-

ликом (метод максимального потока в графе). Локальные методы могут быть достаточно эффективны, однако они чувствительны к локально-неоднозначным регионам (например, регионам с однородной текстурой). Глобальные методы менее чувствительны к таким регионам, однако они более ресурсоемки.

Простейший локальный алгоритм - блочный алгоритм. Он определяет диспарат-ность, сравнивая небольшой регион (блок) вокруг точки первого изображения с последовательностью таких же регионов на втором изображении в некоторой области поиска. В качестве меры сходства блоков изображений часто используются сумма квадратов разностей интенсивностей

2

и ,у

сумма абсолютных разностей

и V

нормированная кросс-корреляция. В формулах (2) и (3) используются следующие обозначения: /к(иу) - интенсивность пикселя (и^) на к-ом изображении, й - оцениваемое значение диспаратности; суммирование ведется по некоторому прямоугольному окну.

Пример использования блочного алгоритма показан на рис. 1. На карте диспаратности можно видеть области, где значение диспаратности было определено неверно. Для устранения подобных ошибок может потребоваться изменение размеров окна или увеличение числа исходных изображений.

а) Ь) с)

Рис. 1. Пример результатов работы блочного алгоритма: а), Ь) левое и правое изображение, с) карта диспаратности

Также существуют различные модификации блочного алгоритма, позволяющие учитывать дополнительные параметры (например, параметры камер) [5] для уточнения карты диспаратности.

Рассмотрим теперь алгоритм, использующий динамическое программирование для построения плотной карты диспаратности. Этот алгоритм работает с парами соответствующих строк на изображении, рассматривая их независимо от остальных строк, в результате чего на карте диспаратности могут появиться характерные горизонтальные штрихи.

В [8] вводится понятие изображения пространства диспаратности (DSI) - явное представление пространства, в котором ведется поиск соответствий. Обозначим через IR(x, i) и IL(x, i) интенсивность точки с координатами (x, i) на правом и левом изображении соответственно, d - диспаратность. Тогда в общем виде DSI можно представить функцией

DSI,L

где -dmax < d < dmax, 0 < x+d < N, N - ширина изображения. Этот алгоритм позволяет учитывать опорные точки при поиске: допустимыми в этом случае являются только пути, проходящие через все опорные точки.

Пример карты диспаратности, построенной при помощи описанного алгоритма для пары исходных изображений рис. 1, a и b, показан на рис. 2.

Рис. 2. Карта диспаратности, построенная алгоритмом динамического программирования

Один из подходов к построению карты диспаратности состоит в сведении задачи к нахождению максимального потока в графе. В построенном специальным образом графе находится минимальный разрез, который и определяет искомые значения диспарат-ности.

Глобальные алгоритмы, как уже говорилось выше, имеют очень высокую ресур-соемкость. Отсюда возникает необходимость адаптации данных методов к работе на современных суперкомпьютерных системах типа СКИФ или МВС. Для этого требуется провести исследования по распараллеливанию алгоритмов нахождения карты диспа-ратности.

Распараллеливание процесса построения карт диспаратности

Обработка изображений большого разрешения требует значительных временных затрат. Отсюда возникает необходимость поиска способов оптимизации и ускорения выполнения алгоритмов. Одним из подходов, дающих значительные результаты в увеличении скорости выполнения алгоритмов, является распараллеливание.

В работе исследовалось распараллеливание алгоритма на основе динамического программирования.

Для параллельной реализации алгоритма динамического программирования при построения плотных карт диспаратности на многопроцессорных параллельных вычис-

лительных системах необходимо произвести выделение независимых блоков алгоритма, которые могут исполняться на различных вычислительных узлах.

Были рассмотрены различные возможности распараллеливания алгоритма построения плотной карты диспаратности на основе метода динамического программирования, определены их сильные и слабые стороны.

Первый подход предполагает распараллеливание алгоритма путем пропуска строк. Таким образом, при наличии двух вычислительных узлов первый вычислительный узел обрабатывает только нечетные строки, а второй - только четные. Данный подход максимально сбалансированно использует машинное время, так как сложность обработки соседних строк в общем случае близка. Однако при данном подходе возрастает объем используемой памяти по сравнению с последовательной реализацией алгоритма в число раз, равное числу потоков, что может значительно снижать производительность как вычислительного узла, так и сети, соединяющей узлы многопроцессорной вычислительной системы.

На рис. 3 проиллюстрирован данный подход. Здесь показаны изображения, загруженные в вычислительные узлы, а обрабатываемые строки отмечены заливкой.

Рис. 3. Обработка изображений первым способом на двухпроцессорной системе

Второй способ предполагает разделение выровненных изображений на несколько частей. Тогда каждый вычислительный узел обрабатывает только «свою» часть изображения, что снижает затраты памяти в узле, а объем передаваемой по сетям информации сводится к размеру, сравнимому с размером одной пары изображений. Данный подход позволяет снизить ресурсозатраты вычислительной системы по сравнению с первым подходом, однако возникает разбалансировка загрузки вычислительных узлов за счет неоднородности вычислительной сложности различных участков изображений.

На рис. 4 проиллюстрирован данный подход. Здесь видно, что затраты памяти значительно снижаются, также указывается и производится обработка всех строк, выделенных на вычислительный узел (показаны заливкой).

Рис. 4. Обработка изображений вторым способом на двухпроцессорной системе

Рис. 5. Обработка изображений третьим способом на двухпроцессорной системе

Третий подход (рис. 5), объединяющий сильные стороны рассмотренных методов, заключается в применении к выровненным изображениям специального фильтра, который позволяет преобразовать изображения таким образом, чтобы при дальнейшем разделении изображений на части в каждую часть попадали строки, номер которых кратен номеру вычислительного узла. Таким образом, достигается максимально сбалансированное использование вычислительных узлов при низких затратах памяти.

Аналогичную логику распараллеливания предполагается использовать для блочного алгоритма построения карт диспаратности, с отличием в том, что в блочном методе будут обрабатываться не строки, а полосы, по высоте равные высоте обрабатываемого блока.

Однако данный подход заведомо не подходит для метода, основанного на поиске максимального потока в графе. Такой подход предполагает обмен информацией между обрабатываемыми строками изображения, поэтому в случае применения третьего метода значительно возрастет трафик обмена данных между узлами, что снизит эффективность распараллеливания. Здесь хорошо применим второй подход к распараллеливанию задачи, однако он приведет к значительно разбалансированной загруженности вычислительных узлов. Поэтому возникает объективная необходимость поиска критерия оценки сложности обработки частей изображения для его разделения на максимально равные по сложности части. Задача поиска критерия сложности, по мнению авторов, является первоочередной для дальнейших исследований.

Для определения эффективности выполнения алгоритма в последовательной и параллельной реализации был проведен вычислительный эксперимент. В ходе проведения эксперимента сравнивалось время выполнения алгоритма при параллельной и последовательной реализациях на различных вычислительных системах. Обрабатывались две пары изображений (рис. 6, 7).

Рис. 6. Стереопара «местность»

Рис. 7. Стереопара «куб внутри сферы»

Вычислительный эксперимент проведен с использованием персонального компьютера на базе процессоров Intel Pentium 4 3.06 GHz c режимом Hyper Threading и Intel Core Duo 2.6 GHz.

Для получения информации об отношении скорости расчетов в последовательном и параллельном режимах произведено измерение времени выполнения последовательно реализованного алгоритма, а затем и параллельно реализованной версии на двух процессорах. С целью получения наиболее объективных данных проведено десять замеров и вычислено среднее значение скорости выполнения.

Результаты вычислительного эксперимента представлены в таблице.

Линейное Параллел.

Местность 6,92 с 4,5 с

Куб внутри сферы 1,83 с 1,1 с

Таблица. Результаты вычислительного эксперимента

Таким образом, можно говорить о том, что параллельная реализация алгоритма позволяет увеличить его производительность на двуядерных или двуконвеерных системах на 30-40% по сравнению с их последовательной реализацией.

Триангуляция

В общем случае процесс реконструкции по множеству пар сопряженных точек можно описать следующими шагами:

1. вычислить фундаментальную матрицу;

2. вычислить матрицы камер по фундаментальной матрице;

3. для каждой пары сопряженных точек вычислить точку в пространстве, изображением которой эти точки являются.

Когда для реконструкции используются только лишь изображения (а именно множество сопряженных точек), возникает неоднозначность реконструкции: пространственные координаты могут быть определены лишь с точностью до проективного преобразования. Таким образом, без какой-либо информации о параметрах камер и реконструируемого объекта можно выполнить реконструкцию с точностью до проективного преобразования. Используя дополнительную информацию, можно сократить неоднозначность.

Заключение

В работе рассмотрены этапы процесса реконструкции трехмерной модели по нескольким изображениям, который, используя только информацию, содержащуюся на самих изображениях, позволяет получить детализированную модель реконструируемого объекта. Детализация модели достигается за счет использования плотных карт дис-паратности для поиска сопряженных точек. По большей части от выбора алгоритма построения плотной карты диспаратности зависит время, затрачиваемое на получение модели, а также точность реконструкции. Полученная таким образом модель может быть привязана к исходному объекту при помощи небольшого числа опорных точек.

Дальнейшая изыскательская работа позволит оптимизировать процесс построения трехмерных моделей по стереоизображениям. Программная реализация и внедрение алгоритмов построения трехмерной модели сцен по стереоизображениям с использованием возможностей параллельных систем позволит в значительной степени автоматизировать работы по обработке данных, полученных при дистанционном зондировании Земли, а также работы по оперативному построению трехмерных моделей реальных объектов [9]. Предполагается возможное внедрение параллельных методов в систему «Стерео-К», разрабатываемую в рамках программ Союзного государства «Космос-СГ».

Литература

1. Hartley R., Zisserman A. Multiple View Geometry in Computer Vision. - Cambridge University Press, 2001. - 624 p.

2. Fougeras O., Luong Q.-T. The Geometry of Multiple Images. - The MIT Press, 2001. -646 p.

3. Scharstein D., Szeliski R. A taxonomy and evaluation of dense two-frame stereo correspondence algorithms // International Journal of Computer Vision. - 2002. - Vol. 47. - № 1-3. - P. 7-42.

4. Тузиков А.В., Шейнин С.А., Жук Д.В.. Математическая морфология, моменты, сте-реобработка: избранные вопросы обработки и анализа цифровых изображений. -Минск, Белорус. наука, 2006. - 198 с.

5. Borodach A., Tuzikov A. Automatic determination of matching points on two images / Proceedings of the 9th International Conference «Pattern Recognition and Information Processing», 22-24 May, 2007, Minsk, Belarus. - Vol. 1. - Р. 49-53.

6. Жук Д.В., Тузиков А.В. Реконструкции трехмерной модели по цифровым изображениям // Информатика. - 2006. - № 1. - С. 16-26.

7. Intille S., Bobick A., Large Occlusion Stereo // International Journal of Computer Vision. - 1999. - Vol. 33. - № 2. - P. 181-200.

8. Roy S., Stereo Without Epipolar Lines: A Maximum-Flow Formulation // International Journal of Computer Vision. - 1999. - Vol. 34. - № 2/3. - Р. 147-161.

9. Волкович А.Н., Жук Д.В., Тузиков А.В. Методы построения трехмерных моделей местности и их реализация для параллельных систем // Доклады 5-й международной конференции «Обработка информации и управление в чрезвычайных и экстремальных ситуациях», Минск, Беларусь, 24-26 октября 2006. - С. 100-104.

10. Harris C., Stephens M. A combined corner and edge detector // Proc. 4th Alvey Vision Conference (Manchester). - 1988. - Р. 147-151.

11. Жук Д.В., Тузиков А.В. Построение плотной карты диспаратности для стереоизображений с использованием локально-инвариантных характеристик // Четвертая международная конференция «Обработка информации и управление в чрезвычайных и экстремальных ситуациях»: Доклады конференции (29 ноября - 1 декабря 2004 г., Минск). - Мн.: ОИПИ НАН Беларуси, 2004. - С. 141-146.

12. Hartley R. Theory and Practice of Projective Rectification // International Journal of Computer Vision. - 1999. - Vol. 35. - №2. - Р. 115-127.

13. Pollefeys M., Koch R., Van Gool L. A simple and efficient rectification method for general motion // Proc. International Conference on Computer Vision (Corfu, Greece). -1999. - Р. 496-501.

Волкович Александр Николаевич

Жук Дмитрий Владимирович

Тузиков Александр Васильевич

— Объединенный институт проблем информатики Национальной академии наук Беларуси, аспирант, avolkvoich@mail.ru

— Объединенный институт проблем информатики Национальной академии наук Беларуси, аспирант, dzhuk@tut.by

— Объединенный институт проблем информатики Национальной академии наук Беларуси, доктор физ.-мат. наук, профессор, tuzikov@newman.bas-пе!Ьу