Вычисление расстояния до объекта на основе карты глубин полученной методом зеркального разделения изображений
Алтухов В.Г., Колкер А.Б. ФГБОУ ВО НГТУ, Новосибирск, Россия, ФГБУ СибНИГМИ
Аннотация: в данной статье рассматривается вопрос получения карты глубин с помощью метода зеркального разделения изображений. Так же описывается опыт вычисления расстояния до наблюдаемого объекта на основе полученной карты глубины.
Ключевые слова: стереозрение, карта глубины, зеркальное разделение изображений, калибровка стереопары, ректификация изображений, расстояние до препятствия.
ВВЕДЕНИЕ
Технический прогресс в робототехнике, автомобилестроении и других отраслях дошел до того уровня, что системы компьютерного зрения, а в частности стереозрения получили широкое распространение и стремительно развиваются. Это произошло в связи с ростом вычислительных мощностей и высокими задачами, стоящими перед робототехническими устройствами, ведь с помощью «зрения» машина может получать большое количество информации об окружающей среде. Частным случаем использования таких систем является навигация подвижных робототехнических устройств, будь то автомобили Tesla, марсоход Mars Exploration Rover, или другие.
Системы компьютерного зрения, основанные на использовании одной видеокамеры, позволяют определять образы наблюдаемых объектов, анализировать цвета и многое другое. Системы, оснащенные двумя камерами, то есть системы стереозрения, позволяют плюс ко всему этому определять расстояние до наблюдаемого объекта.
Актуальностью данной исследовательской работы является построение системы стереозрения основанной на использовании одной видеокамеры и двух зеркал, что позволит не только сократить вычислительные затраты, связанные с захватом изображения, но и сделать устройство намного более компактным. Нужно отметить, что такие системы предъявляют повышенные требования к техническим характеристикам цифровой камеры, в частности разрешение матрицы и качество оптической системы должно быть достаточным, чтобы обеспечить разделение кадра на два фрейма.
МЕТОД ЗЕРКАЛЬНОГО РАЗДЕЛЕНИЯ ИЗОБРАЖЕНИЙ
Обычно в системах стереозрения, как было сказано выше, для получения стереопары (двух изображений одного и того же объекта с разных точек обзора) за основу берут использование двух видеокамер, которые жестко зафиксированы между собой и направленны в одну сторону, а их оптические оси параллельны, как в [1]. Данный метод накладывает свои конструктивные ограничения на элементы монтажа и подвеса камер. Другой способ получения бинокулярной картинки заключается в зеркальном разделении изображения.
Суть данного метода заключается в использовании видеокамеры и двух зеркал, расположенных под определенными углами относительно ее оптической оси, как показано на Рис. 1. Зеркала, расположенные таким образом, обеспечивают захват камерой изображения, состоящего из стереопары и на выходе мы получим изображение, подобное тому, что показано на Рис. 2. Далее необходимо его разделить на правую и левую части, после чего каждую полученную часть можно использовать для получения карты глубин.
Рис. 1. Принцип действия системы
получения числовых значении расстояния до наблюдаемого объекта.
Реализованная аппаратная часть системы представлена на Рис. 4.
Рис. 2. Выходное изображение с камеры при использовании метода зеркального разделения
ПОСТРОЕНИЕ КАРТЫ ГЛУБИН
Для объяснения принципов построения карты глубины обратимся к Рис. 3. На нем показаны точки У - некоторая точка наблюдаемого объекта, Х1 и Х2 - проекции точки У на плоскостях а и Ь (изображениями с зеркала 1 и зеркала 2 соответственно). Отрезки и ё2 являются расстояниями, измеряемыми в пикселях, от начала координат горизонтальной оси до точек Х1 и Х2 соответственно. Ввиду того что зеркала расположены под разными углами к видеокамере, расстояния ё1 и ё2 на изображениях стереопары различается на некоторую величину, называемой диспаратностью. При нахождении объекта в непосредственной близости от камеры значение диспаратности точки У будет наибольшим, а по мере удаления объекта оно будет уменьшаться.
Рис. 3. Нахождение диспаратности
По своей сути карта глубин - это матрица, элементами которой будут значения диспаратностей точек изображения, приведенное к диапазону значений от 0 (минимум) до 255 (максимум).
АППАРАТНАЯ ЧАСТЬ СИСТЕМЫ
Для исследования данного метода получения карты глубин было решено реализовать аппаратную часть, представляющую собой систему из камеры и двух зеркал, и программное обеспечение для захвата и обработки изображений с камеры. Базой для этого послужил проект [2]. Так же была поставлена задача
Рис. 4. Конструкция аппаратной части
Аппаратная часть основана на USB видеокамере HP Webcam HD-4110 подключенной к персональному компьютеру с операционной системой Lubuntu 16.04, на котором будет функционировать программная часть, основанная на языке Python 2.7 и подключенной библиотеке компьютерного зрения OpenCV 2.4.
ПРОГРАММНАЯ ЧАСТЬ СИСТЕМЫ
Работу программного обеспечения системы можно разделить на 2 этапа:
• Настройка системы,
• Функционирование системы.
Алгоритм этапа настройки системы показан на
Рис. 5 и представляет собой следующие шаги:
1. Центровка видеокамеры. Позволяет настроить положение камеры в пространстве относительно зеркал, после чего ее необходимо зафиксировать;
2. Исключение зоны нечеткости на изображении. Позволяет выделить область нечеткости, образованную стыком зеркал и сохраняет параметры этой области, для последующей нарезки изображений;
3. Захват и сохранение калибровочных изображений. На данном этапе производится получение 15 снимков калибровочного шаблона «шахматная доска» и сохранение их в указанную директорию.
4. Нарезка калибровочных изображений по параметрам, сохраненным на шаге 2.
5. Калибровка стереопары. Калибровка необходима для устранения искажений вносимыми оптическим трактом видеокамеры, для корректной работы программы построения карты глубин. Калибровка производится алгоритмами библиотеки OpenCV, после чего происходит сохранение ее параметров. С помощью этих параметров можно производить ректификацию изображений стереопары, то есть воспроизводить их без искажений;
6. Настройка карты глубины производится вручную, изменением различных параметров. По достижению оптимальных параметров карты
глубины, они сохраняются для использования во втором этапе работы системы. При выбранных настройках карты глубин диспаратность вычисляется для особых точек наблюдаемого объекта, таких как контуры.
Центровка видеокамеры
> Г
Исключение зоны нечеткости на изображении, сохранение параметров
>
Захват и сохраннение калибровочных изображений
>
Нарезка калибровочных изображений
>
Калибровка видеокамеры
1 г
Настройка и сохранение параметров карты глубин
Рис. 5. Алгоритм работы этапа настройки системы
Результатом этапа настройки является этап функционирования системы, алгоритм выполнения которого показан на Рис. 6, и включает в себя следующие шаги:
1. Загрузка параметров, сохраненных после этапа настройки системы. Это параметры нарезки изображений, параметры калибровки и карты глубин;
2. Производится захват изображения со стереопары. Этот и последующие шаги будут выполняться циклически до тех пор, пока мы не остановим выполнение программы;
3. Используя параметры нарезки из шага 1 получаем стереопару на основе захваченного изображения;
4. Далее, с помощью параметров калибровки из шага 1, ректифицируем изображения стереопары;
5. На основе ректифицированных изображений, строится карта глубины. Результат представлен на Рис. 7 и Рис. 8, откуда видно, что чем ближе наблюдаемый объект к видеокамере, тем интенсивность цвета его контура выше. Карта глубины воспроизводится с частотой 5 кадров/сек. (для данного компьютера);
Загрузка настроек резки изображения, параметров карты глубин
г
>
Захват изображения с видеокамеры
> Г
Получение стереопары
> г
Ректификация изображений стереопары
> г
Построение карты глубин
г
Вычисление до наблюдае расстояния чого объекта
Рис. 6. Алгоритм работы этапа функционирования системы
6. Вычисление расстояния до наблюдаемого объекта производится с помощью информации об интенсивности его контура. Для этого были созданы условия, при которых на изображении объект располагается на однородном фоне, во избежание помех от контуров, не интересующих нас объектов. Происходит вычисление среднего значения интенсивности цвета всех точек контура объекта на карте глубины, после чего полученное значение умножается на рассчитанный коэффициент для приведения его к метровой шкале, после чего выводит результат в консоль.
Рис. 7. Результат работы программной части системы (объект вдали, слева — ректифицированное изображение, справа — карта глубин)
Рис. 8. Результат работы программной части системы (объект вблизи, слева — ректифицированное изображение, справа — карта глубин)
ЭКСПЕРИМЕНТАЛЬНАЯ ЧАСТЬ
Результатом исследования стал эксперимент по нахождению погрешностей измерения расстояния до наблюдаемого объекта в статике. Измерения проводились на дистанции от 0,1 до 0,90 м, в результате чего была составлена Табл. 1.
Из Табл. 1 можно увидеть, что на расстоянии 0,30 м и ближе, особенно на расстоянии 0,10 м, результат сильно противоречит действительности, это связанно с тем что на данном расстоянии видеокамера находится в расфокусировке. На расстоянии 0,40 м и выше значения так же весьма неточны и имеют большой разброс, что связанно с достаточно низким разрешением изображений стереопары и неточной настройкой параметров карты глубины, что могло повлечь за собой неверный расчет коэффициента приведения к метровой шкале.
Табл. 1.
Действительное расстояние до объекта, м Результат работы системы, м
0,10 0,40 ± 0,01
0,20 0,25 ± 0,05
0,30 0,21 ± 0,01
0,40 0,45 ± 0,05
0,50 0,53 ± 0,07
0,60 0,55 ± 0,05
0,70 0,59 ± 0,01
0,80 0,77 ± 0,01
0,90 0,86 ± 0,02
Ввиду того что данная система стереозрения предназначена для использования на борту робототехнической системы, было решено оснастить аппаратную часть ультразвуковым датчиком для исключения ложной информации на расстоянии до 0,40 м. В результате этого влияние расфокусировки видеокамеры на достоверность данных было исключено.
ЗАКЛЮЧЕНИЕ
В ходе выполнения данной работы были изучены подходы к разработке систем стереозрения, в частности основанных на методе зеркального разделения изображений, как со стороны аппаратного обеспечения, так и со стороны софта. Был реализован опытный образец аппаратной части, модифицировано программное обеспечение проекта [2]. В результате был проведен эксперимент по вычислению расстояния до наблюдаемого объекта.
Несмотря на весьма неточные результаты, показанные во время эксперимента, данную систему стереозрения можно использовать в связке с ультразвуковым датчиком на борту мобильного робота для порогового обнаружения статических препятствий, расположенных на однородном фоне, с последующим осуществлением их объезда.
ЛИТЕРАТУРА
[1] Ильясов Э.С. Вычисление расстояния до наблюдаемого объекта по изображениям состереопары / Молодой ученный. Международный научный журнал, Россия 2016, № 14(118), сс 146151.
[2] Страница проекта 3D berry - URL: http://3dberrv.org/ Дата обращения: 12.02.2017
Calculation of Distance to Object Based on the Depth Map Obtained by Mirror Split Method
V.G. ALTUKHOV, A.B. KOLKER
Abstract: Mirror split method application for disparity map producing is considered in this paper. Also calculating of the distance to the observed object based on the obtained depth map is describes.
Keywords: stereo vision, depth map, mirror split, calibration of stereo pair, rectifying the image, the distance to an obstacle.
REFERENCES
[1] Il'iasov E.S. Vychislenie rasstoianiia do nabliudaemogo ob"ekta po izobrazheniiam so stereopary [Calculation of the distance to the observed object by the images from stereo pair]/ Molodoi uchenyi. Mezhdunarodnyi nauchnyi zhurnal [Young scientist. International Scientific Journal] Russia, 2016, No 14(118), pp 146151.
[2] The webpage of 3D berry project - URL: http://3dberry.org/ Date of compellation: 12.02.2017
Алтухов Виктор
Григорьевич, студент -
магистрант кафедры
автоматики факультета
автоматики и вычислительной техники Новосибирского государственного технического университета. Область научных интересов: робототехнические системы, навигационные системы. E-mail: altukhov@ngs.ru
Колкер Алексей Борисович,
Кандидат технических наук, доцент кафедры автоматики факультета автоматики и вычислительной техники Новосибирского государственного технического университета. Область научных интересов: разработка системного ПО, комплексов передачи и обработки
геоинформационных данных. E-mail: a.kolker@corp.nstu.ru