[Из песочницы] Восстановление трехмерных моделей активным параллаксным методом
Здравствуйте, дорогие читатели.Я студент МГТУ им. Баумана. Спешу поделиться опытом в области обработки изображений и восстановлении трехмерных объектов активным параллаксным методом.
В настоящее время в различных областях деятельности, в таких как производство, медицина, компьютерная графика, робототехника и техническое зрение активно используется трехмерное моделирование и прототипирование объектов реального мира. В связи с этим все более актуальным становится разработка 3d сканеров и камер, которые создают 3d модель регистрируемого объекта.
Немного историиВ 1999 году компания 3DVSystems, мировой лидер в области трехмерных видеоизображений, разработала видеокамеру ZCam c уникальной технологией измерения расстояния до объектов в режиме реального времени. Эта технология позволяла воспринимать и обрабатывать трехмерное изображение, будучи направленной на объект всего лишь с одной его стороны. В 2009 году Microsoft выкупил активы 3DVSystems и на базе ZCam начал разрабатываться контроллер для игровой приставки Xbox. В 2010 году Microsoft анонсировал всеми любимый Kinect — игровой контроллер, позволяющий управлять игрой своим телом. Компания Artec-group производит 3d-сканеры для оцифровывания формы объекта в режиме реального времени. Такие сканеры могут применяться в медицине, производстве и тюнинге автомобилей и создании спецэффектов в кино и видео играх.Рис. 1. Пример использования алгоритмов в видео играх
0.Параллаксный метод регистрации 3d объектов Системы регистрации трехмерных объектов могут быть построены на различных принципах, одним из которых является стереоскопический принцип. Стереоскопическая система состоит из двух камер, регистрирующих объект с разных, но не слишком сильно отличающихся ракурсов. На полученных изображениях определяются соответствующие точки (стереоотождествление). Затем, зная внутренние параметры камер стереопары, а также их взаимное расположение, можно определить трехмерные координаты точек объекта методом триангуляции [1]. Несмотря на успехи последних лет, в решении данной задачи остается ряд вопросов, связанных с принципиальными ограничениями данного метода, в частности, со стереоотождествлением точек объектов, не обладающих ярко выраженной текстурой или имеющих большие нетекстурированные (однородные) области [2].Рис. 2. Пример стерео пары
Чтобы преодолеть эти недостатки стереоскопического метода, можно заменить одну из камер стереопары проектором и получить устройство регистрации трехмерных объектов, основанное на активном параллаксном принципе. Схема системы, построенной на данном принципе, показана на рисунке: на объект проецируется некоторая картина (структурированная подсветка), ее искажения, вызванные формой объекта, регистрируются камерой [3, 4].
Рис. 3. Принципиальная схема работы системы, построенной на активном параллаксном методе
1.Активный параллаксный метод регистрации трехмерных объектов В настоящее время разработано множество различных вариантов картин для использования в системах структурированной подсветки, представляющих собой как серии изменяющихся картин (картины с временным мультиплексированием), так и неизменные картины с использованием различных вариантов цветовой кодировки [3, 4]. Временная кодировка использует последовательность черно-белых картин, как показано на рис. 4, а. Идея этого метода состоит в том, чтобы кодировать положение пикселя на матрице проектора набором интенсивностей в последовательности проецируемых картин. Набор картин, показанный на рис. 2, а, использует «битовое» кодирование: набор двухцветных (черно-белых) картин представляет собой двоичный код, определяющий «номер» пикселя в строке. Помимо «битового» кодирования также используются другие методы двоичного кодирования (сдвиг бинарной картины, код Грея и другие [3, 4]). Такой способ не чувствителен к цвету поверхности, позволяет кодировать каждый пиксель на матрице проектора, однако требует статичности положения объектаиз-за большого количества используемых картин.Рис. 4. Картины, используемые для создания структурированной подсветки:, а — с временным кодированием, б — с цветовым кодированием
Цветовая кодировка, пример которой показан на рис. 4, б, использует только одну картину. Положение каждого пикселя однозначно кодируется значением цвета данного пикселя и нескольких его «соседей». При создании картины с цветовой кодировкой обычно стремятся получить минимальный размер окрестности (количество «соседей») пикселя, требуемый для однозначного восстановления, и минимальное количество различных цветов (для повышения надежности определения каждого цвета). Такими свойствами обладают M-последовательности или последовательности де Брёйна (de Brujin) [3, 4]. Преимуществом такого метода является возможность восстановления формы объекта всего лишь по одной картине, и как следствие, возможность регистрирования движущихся объектов. К недостаткам следует отнести чувствительность метода декодирования цветной картины к структуре регистрируемой поверхности и ее цвету.
2. Алгоритмы обработки зарегистрированных изображений Используемая картина подсветки, показанная на рис. 5, представляет собой 128 узких вертикальных полос шести цветов (трех основных — R, G, B, и трех дополнительных — C, M, Y), разделенных промежутками черного цвета. Последовательность цветов получена при помощи генератора М-последовательностей, сочетание из каждых 3 соседних полос встречается только один раз.Рис. 5. Используемая последовательность цветов
Алгоритм обработки изображений решает две основные задачи:1. Детекцию полос на изображении и определение положения центральной линии для каждой полосы (выделение полос);2. Определение цвета для каждого выделенного участка полосы (классификация по цветам).
3. Выделение центров полос Алгоритмы выделения полос для различных картин подсветки с цветовым кодированием можно разделить на два типа: с выделением краев (edges) и с выделением пиков (peaks). Используемая картина подсветки содержит промежутки черного цвета и требует использования алгоритма второго типа. Для выделения полос на изображении можно использовать прямой метод поиска локальных максимумов, метод пересечения нулевой линии второй производной (детектор лаплассиана гауссиана (LoG)) или метод Канни (Canny) [6]. Зарегистрированное изображение содержит три цветовых канала (R, G, B), поэтому для применения вышеупомянутых методов требуется или преобразование к одному каналу с использованием его для обработки, или объединение результатов выделения полос по нескольким каналам. После первичного выделения центров полос данными методами обычно производится субпиксельное уточнение координат максимумов или с использованием интерполяции параболой [7, 8], или определением центра тяжести по нормализованным значениям в окрестности.В различных работах предложены следующие методы решения данной задачи: в работе [9] использовался метод Канни (Canny) по яркостной составляющей (Y) после преобразования в цветовое пространство YCbCr; в работе [7] использовался прямой метод поиска локальных максимумов вдоль линий сканирования по трем цветовым каналам R, G, B с последующим объединением результатов на этапе субпиксельного уточнения; в работе [9] выделение центров полос осуществлялось по второй производной значения цвета (V) после преобразования в цветовое пространство HSV.
На рис. 6 представлено изображение, зарегистрированное в темной комнате. В работе [5] были рассмотрены реализации алгоритмов поиска максимумов и определения их цвета, работающие для изображения произведенного без сторонней засветки. Однако, при добавлении внешнего источника света, алгоритмы показывали неустойчивую работу.
Рис. 6. Изображение, зарегистрированное в темной комнате без засветки
Для выбора оптимального цветового преобразования для выделения максимумов был проведен анализ сечений изображений, зарегистрированных в ходе проведения экспериментов, и оценена пригодность использования различных величин с точки зрения выбора надежных пороговых значений алгоритма. В работе [7] были показаны значения различных величин: цветовых каналов R, G и B, среднего арифметического по трем данным каналам, яркостной составляющей (Y) после преобразования в YCbCr и значения цвета (V) после преобразования в HSV в сечении изображения объекта, перпендикулярном направлению проецируемых полос. Также, в работе [7] был сделан вывод, что при использовании линейной комбинации цветов (R+G+B) чистые цвета сильно подавляются, и могут быть пропущены. По результатам анализа можно сделать вывод, что наиболее стабильную детекцию центров полос можно получить, используя значение цвета V.
Рис. 7. Значения различных величин в сечении изображения объекта, перпендикулярном направлению проецируемых полос.
В ходе выполнения работы в среде MatLab были реализованы алгоритмы выделения центров полос по значению цвета V и среднеквадратичного из каналов RGB с использованием прямого метода поиска локальных максимумов и метода, подобного методу Канни. При реализации прямого метода поиска максимумов были заданы два пороговых значения: — минимальное абсолютное значение в предполагаемом максимуме, — минимальное значение разности значений в предполагаемом максимуме и его «соседях». При реализации метода Канни на этапе немаксимального подавления вместо значений модуля градиента в первом случае используются непосредственно сами значения V, как в работе [5], а во втором случае-среднеквадратичное из RGB. Перед преобразованием изображения в цветовое пространство HSV к изображению был применен сглаживающий гауссов фильтр; для субпиксельного уточнения координат максимумов использовалась интерполяция параболой по строке изображения.
Для оценки результатов работы двух методов по различным цветовым каналам использовались изображения, зарегистрированные в ходе проведения экспериментов на стенде, использованном в работе [5]. Характеристики использованных устройств и условий регистраций в ходе эксперимента подробно описаны в конце данной статьи.Количественная оценка зависимости результатов детекции полос от используемого цветового канала (R+G+B, Y или V) производилась по изображениям объекта в виде гладкой белой плоскости («Плоскость») и гладкого белого объекта (гипсовый бюст Ленина, «Бюст»). Сравнивалось количество точек центров полос, обнаруженных алгоритмом при работе по рассматриваемому цветовому каналу изображения при подсветке картиной с цветными полосами, и количество точек центров полос, обнаруженных тем же алгоритмом при работе по каналу яркости Y изображения при подсветке картиной с белыми полосами. Значения порогов для каждого цветового канала были выбрано как, где максимальное значение для данного цветового канала в пределах рассматриваемого фрагмента изображения, — единая для всех каналов фиксированная величина. Результаты подтвердили сделанный ранее вывод о предпочтительном использовании значения цвета V.
Для оценки зависимости результатов детекции полос от используемого метода (прямой метод поиска локальных максимумов или метод Канни) использовались те же изображения. Количественная оценка в данном случае возможна только для объекта «Плоскость», поскольку для него можно определить «истинное» количество точек центров полос как произведение количества полос на количество строк изображения. Для обоих методов при детекции полос на плоском объекте по V был получен одинаковый максимальный результат. Для объекта «Бюст» возможно проведение качественной оценки, результаты детекции полос приведены на рис. 8. Видно, что метод Канни позволяет детектировать больше точек локальных максимумов при том же пороговом значении за счет использования «сильного» и «слабого» порогов, однако это преимущество незначительно. Основным преимуществом метода Канни является то, что выбранные точки уже связаны в фрагменты полос, что можно использовать далее на этапах классификации и декодирования для повышения общей надежности работы алгоритма.
Рис. 8. Результаты работы алгоритмов выделения полос: (а) прямой метод, (б) метод Канни
4 Классификация выделенных полос по цвету. Кластеризация На данном этапе решается задача классификации выделенных точек-центров полос по цвету на 7 типов: 6 типов, соответствующим 6 используемым цветам и «неклассифицированные» точки, которые нельзя надежно соотнести ни с одним из используемых цветов. Для решения данной задачи можно применить ряд различных методов, среди которых можно выделить две группы: методы с фиксированными порогами и адаптивные методы.Рассмотрим возможные варианты решения этой задачи в различных цветовых пространствах: YCbCr и HSV, представленные в литературе. Классификация производится пороговым методом, пороговые значения выбраны заранее. Использование алгоритма кластеризации позволяет адаптировать алгоритм к изменению внешней освещенности и повысить надежность классификации при работе с цветными объектами.Рассмотрим алгоритмы кластеризации в цветовых пространствах YCbCr (по разностным компонентам Cb и Cr) и HSV (по насыщенности S и тону Н).
Алгоритм кластеризации состоит из двух повторяющихся действий: • Отнести каждую точку к кластеру, расстояние до центральной точки которого наименьшее из всех; • Используя текущее распределение точек по кластерам, определить среднее значение для каждого кластера и присвоить это значение центральной точке кластера.
Рис. 9. Гистограмма полученная с белой плоскости
Рис. 10. Влияние структуры объекта на качество гистограммы. Слева- гистограмма, полученная при обработке кадра с белым бюстом. Справа-гистограмма, полученная при обработке кадра с цветной игрушкой
Рис. 11. Результаты кластеризации для белого объекта а, б — кластеризация в цветовом пространстве Cb-Cr; в, г — кластеризация в цветовом пространстве H-S
Принадлежность точки к кластеру показана цветом, расположение точек соответствует их координатам в плоскости CbCr (рис. 12, а) и в плоскости HS (рис. 12, б). Из рисунков видно, что алгоритм неверно классифицирует множество точек с низким значением насыщенности S. Причиной этой ошибки является метод расчета расстояния от точки до центра кластера, которое определяется без учета формы кластера. Для кластеризации в декартовом пространстве расстояние от точки до центра кластера без учета формы кластеров.
Данную проблему можно устранить при кластеризации по цветовому тону H и насыщенности S, и введения искусственного коэффициента анизотропии. В этом случае расстояние от произвольной точки до ближайшего кластера можно посчитать по формуле, где k < 1. Введение такой анизотропии позволит учесть «вытянутость» кластера вдоль S. На рисунке рис. 11, в, г приведены результаты кластеризации по значениям H и S при k = 1/3. Использован сдвиг по цветовому тону для сохранения целостности красного кластера.
Также на рисунках рис. 12, б, г можно заметить множество, которые нельзя с уверенностью отнести к какому либо из кластеров. Вводя пороговое значение по насыщенности S или по расстоянию до центра кластера можно выделить данные точки в кластер «неклассифицированных».
Рис. 12 Результат работы алгоритмов выделения полос и кластеризации
Произведя декодировку получим трехмерное облако точек:
Рис. 13. Восстановленное трехмерное облако точек для белого объекта
К сожалению, при добавлении слабого фона или текстуры вносятся нелинейные искажения и алгоритм перестает работать. О том, как боролись с фоном и делали алгоритм адаптивным — в следующей части.
Список литературы 1. Hartley R.I., Zisserman A. Multiple View Geometry. Cambridge, UK: Cambridge University Press, 2000.2. Scharstein D., Szeliski R.A taxonomy and evaluation of dense two frame stereocorrespondence algorithms // International Journal of Computer Vision. 2002. Vol. 47(1–3).P. 7–42.3. Salvi J., Pages J., Batlle J. Pattern codification strategies in structured light systems // Pattern Recognition. 2004. Vol. 37(4). P. 827–849.4. Geng J. Structured-light 3d surface imaging: a tutorial // Advances in Optics and Photonics. 2011. Vol. 3. P. 128–160.5. Сафрошкин М.А. Экспериментальные исследования параллаксного метода регистрации 3д объектов с цветным кодированием // Молодежный Научно Технический Вестник, 2013. URL: sntbul.bmstu.ru/doc/608517.html.6. Гонсалес Р., Вудс Р., Эддинс С. Цифровая обработка изображений в среде MatLab. М.: Техносфера, 2006.7. Fechteler P., Eisen P. Adaptive color classification for structured light systems // Computer Vision and Pattern Recognition Workshops, 2008. CVPRW '08. IEEE Computer Society Conference. P. 1–7.8. Fechteler P., Eisen P., Rurainsky J. Fast and High resolution 3D face scanning // Image Processing, 2007. ICIP 2007. IEEE International Conference. P. 81–847. V.K. De Wansa Wickramarante, V.V. Ryazanov, A.P. Vinogradov. Accurate reconstruction of 3D model of a human face using structured light // Pattern Recognition and Image Analysis, 2008. Vol. 18, No. 3, P. 442–446.9. Xing Lu, Jung-Hong Zhou, Dong-Dong Liu, Jue Zhang, Application of color structured light pattern to measurement of large out-of-plane deformation // Acta-Mech. Sin (2011). Vol. 27(6). P. 1098–1104.10. Permuter, H.; Francos, J.; Jermyn, I.H. A study of Gaussian mixture models of color and texture features for image classification and segmentation // Pattern Recognition, 2006. Vol. 39, No. 4, P. 695–706.6. Zhang Z. Flexible camera calibration by viewing a plane from unknown orientations // International Conference on Computer Vision, 1999. P. 666–673.11. Zhang Z. Flexible camera calibration by viewing a plane from unknown orientations // International Conference on Computer Vision, 1999. P. 666–673.12. Falcao G., Hurtos N., Massich J. Plane-based calibration of a projector-camera system // VIBOT Master, 2008.13. V.K. De Wansa Wickramarante, V.V. Ryazanov, A.P. Vinogradov. Accurate reconstruction of 3D model of a human face using structured light // Pattern Recognition and Image Analysis, 2008. Vol. 18, No. 3, P. 442–446Стереопару взял с urixblog.com.