УДК 53.087.45

СИСТЕМА ОПРЕДЕЛЕНИЯ РАССТОЯНИЯ НА ОСНОВЕ ДВУХ ШИРОКОУГОЛЬНЫХ ВИДЕОКАМЕР

Комендатенко Светлана Дмитриевна1, Когочев Антон Юрьевич2
1ООО "Веблига", разработчик сайтов
2Петрозаводский государственный университет, доцент кафедры информационно-измерительных систем и физической электроники

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

Ключевые слова: , ,


Рубрика: 01.00.00 ФИЗИКО-МАТЕМАТИЧЕСКИЕ НАУКИ

Библиографическая ссылка на статью:
Комендатенко С.Д., Когочев А.Ю. Система определения расстояния на основе двух широкоугольных видеокамер // Современные научные исследования и инновации. 2017. № 11 [Электронный ресурс]. URL: http://web.snauka.ru/issues/2017/11/84833 (дата обращения: 29.11.2017).

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

В статье рассматривается вариант архитектуры стереосистемы с использованием оптических широкоугольных видеокамер и алгоритма обработки, реализованного на языке программирования С++ с подключаемой библиотекой OpenCV [1], которая способна определять расстояние до объектов, используя стереоскопический эффект в режиме реального времени.

Архитектура системы

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

В рассматриваемой системе стереообзора для получения более широкого угла обзора были применены цифровые широкоугольные видеокамеры ELP – USBFHD01M – L180 со съемным объективом (180 градусов) [3]. Для обработки данных, поступающих с двух камер, использовался одноплатный мини-компьютер NanoPi M3 [4], обладающий достаточной производительностью, малыми массогабаритными показателями и невысоким энергопотреблением.

Рисунок 1 – Структура системы определения расстояния

Поток видеоданных по интерфейсу USB поступает на NanoPi M3, обрабатывается и формируется карта глубин в режиме реального времени. Для повышения скорости исполнения алгоритма расчета удаленности объектов библиотека OpenCV 3.2.0 была подготовлена для работы в многопоточном режиме, таим образом в процессе расчётов использовалась параллельная обработка данных.

Алгоритм обработки данных и формирования массива расстояний до объектов (карты глубин) состоит из нескольких блоков:

  1. блок регистрации видеоданных;
  2. блок обработки видеоданных;
  3. блок анализа видеоданных.

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

Блоки регистрации и обработки видеоданных

Алгоритм регистрации изображений с двух видеокамер заключается в следующем:

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

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

В связи с использованием широкоугольных линз, их неоднородными параметрами, а также погрешностями при расположении камер в одной плоскости, регистрируемые изображения сильно искажены. Для компенсации дисторсии, а также с целью ректификации двух изображений предварительно осуществлялась калибровка как стереоконструкции, так и каждой камеры в отдельности. Калибровка видеокамер производилась однократно с помощью метода «Шахматное поле», и в дальнейшем использовались сохранённые данные. Эта процедура позволяет, методом нахождения конкретного числа точечных соответствий между шахматным полем и его изображениями, позволяет рассчитать следующие внутренние параметры камеры: фокусные расстояния, измеряемые в ширине и высоте пикселя, координаты принципиальной точки.

Для калибровки стереосистемы фиксировались 15-20 изображений шахматной доски под разным углом относительно пары видеокамер.

Алгоритм обработки изображений с пары видеокамер состоит в следующем:

  • компенсация дисторсии изображения на основе калибровочных данных. На рисунке 2 представлен снимок до и после компенсации дисторсии;

Рисунок 2 – Слева исходное изображение, справа изображение с компенсацией дисторсии

  • ректификация изображения. В результате выполнения алгоритма, получаем   стереоизображение (рисунок 3). Горизонтальные параллельные линии нанесены дополнительно для визуального анализа результата.

 Рисунок 3 – Стереоизображение с дополнительными линиями

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

Блок анализа видеоданных

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

Блок анализа видеоданных состоит из нескольких этапов.

Первый этап – построение карты смещения.

Суть алгоритма построения карты смещения заключается в поиске точки на изображении, полученного с правой камеры, и парной ей точки изображения с левой камеры. Точка (пиксель) поиска первого изображения имеет координаты (x0, y0), тогда соответствующая точка (пиксель) второго изображения для горизонтально фронтально параллельно расположенных камер имеет координаты (x0 – d, y0), где d – величина смещения (disparity) в х координате плоскости изображения [6].

В библиотеке OpenCV реализовано два алгоритма построения карты смещения: StereoBM и StereoSGBM.

Алгоритм StereoSGBM является улучшенной версией алгоритма StereoBM и может выполняться в различных режимах:

  • MODE_SGBM – обычный режим.
  • MODE_HH – выполнение полномасштабного двухпроходного алгоритма.
  • MODE_SGBM_3WAY – алгоритм выполняется быстрее обычного режима.

В ходе серии экспериментов было принято решение использовать в рассматриваемой системе алгоритм StereoSGBM в режиме MODE_SGBM_3WAY, поскольку он дает наилучшие показатели в соотношении качество/время.

На рисунке 4 представлено одно из двух изображений, полученное после устранения оптических искажений, а также карта смещений.

Рисунок 4 – Слева выровненное изображение, справа карта смещений (изображение конвертировано для восприятия человеческим глазом)

Второй этап – это построение карты глубин. На рисунке 5 показана стереконструкция, состоящая из двух камер с одинаковыми фокальными расстояниями f. Расстояние между оптическими осями известно.  Допустим, что основные точки  cxleft и cxright  уже откалиброваны.

Рисунок 5 – Идеально выравненная стереоустановка

Для данного случая xl и xr – это горизонтальные позиции точек первой и второй камеры, позволяющие показать, что глубина обратно пропорциональна различию (смещению) между этими представлениями, где различие d = xl – xr   вычисляется . По законам геометрии можно рассчитать глубину Z:

    

    (2)

 

По формуле (2) видно, что глубина обратно пропорциональна d. Следовательно, когда d близко к 0, то малые различия приводят к большим различиям глубины. Когда d велико, то небольшие различия ненамного изменяют глубину.

Для получения карты глубин OpenCV имеет функцию reprojectImageTo3D. Для самостоятельных расчетов используется формула (2) и матрица перепроектирования Q, которая получается после калибровки изображения (функция stereoRectify) и содержит параметры:

где cx, cy – координаты точки на главном луче левой камеры; f – фокусное расстояние; Т – расстояние между камерами по оси Х; cx – х-координата на правом изображении левой точки [7]. То есть элемент матрицы карты глубин Mi,j  имеет значение, полученное по формуле:

где di,j - элемент матрицы карты смещения.

В результате проведённых экспериментов диапазон регистрируемых расстояний для разрешения изображений 1920*1080 и расстояния между камерами 4 см составил от 30 см до 25 м. Эти показатели можно изменить за счет изменения расстояния между камер. Точность данных зависит от удаленности объекта, калибровки системы и параметров функции при построении карты смещения.

Заключение

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


Библиографический список
  1. OpenCV modules. [Электронный ресурс]. URL: http://docs.opencv.org/trunk/ (дата обращения 20.02.2017).
  2. Шубникова И.С., К.А. Палагута Анализ способов и алгоритмов определения параметров объекта и расстояния до него по изображению. [Электронный ресурс]. URL: http://cyberleninka.ru/article/n/analiz-sposobov-i-algoritmov-opredeleniya-parametrov-obekta-i-rasstoyaniya-do-nego-po-izobrazheniyu (дата обращения 16.06.2017).
  3. Linux HD 1080P High Speed USB Camera with 170 Degree Fisheye Lens. [Электронный ресурс]. URL: http://www.elpcctv.com/linux-hd-1080p-high-speed-usb-camera-with-170-degree-fisheye-lens-p-82.html (дата обращения 11.07.2017).
  4. NanoPi M3. [Электронный ресурс]. URL: http://nanopi.io/nanopi-m3.html (дата обращения 08.07.2017).
  5. Зайцев К. И., Петров А. Н., Алехнович В. И. Алгоритм регистрации трехмерных образов объектов с помощью пассивной стереоскопической системы с использованием кратномасштабной обработки изображений // Наука и образование, 2011. – №10. – (89).
  6. Основы стереозрения. [Электронный ресурс]. URL: https://m.habrahabr.ru/post/130300/ (дата обращения 14.09.2017).
  7. Журавлева А.В., Использование методов стереозрения для определения положения объекта в пространстве // Наука и техника, 2014. – №3 (16).


Все статьи автора «Комендатенко Светлана Дмитриевна»


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

Связь с автором (комментарии/рецензии к статье)

Оставить комментарий

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

Если Вы еще не зарегистрированы на сайте, то Вам необходимо зарегистрироваться: