На правах рекламы:
ISSN 0236-235X (P)
ISSN 2311-2735 (E)

Авторитетность издания

ВАК - К1
RSCI, ядро РИНЦ

Добавить в закладки

Следующий номер на сайте

2
Ожидается:
17 Июня 2024

Разработка системы стереозрения для мобильного робота

Development of a pattern recognition system for a mobile robot
Дата подачи статьи: 20.04.2017
УДК: 004.932
Статья опубликована в выпуске журнала № 3 за 2017 год. [ на стр. 435-438 ]
Аннотация:Основным источником развития робототехнических систем и систем искусственного интеллекта является усовершенствование вычислительной техники, устройств и сенсоров, позволяющих получать информацию об окружающей среде. Этот процесс неразрывно связан с развитием ПО бортовых процессоров, которые используются при управлении автономным роботом. В данной статье приводится краткое описание модуля разрабатываемой системы распознавания образов автономного робота, базирующегося на технологии стереозрения. В настоящее время все чаще упоминаются системы, состоящие из комбинаций нескольких видеокамер, лазерных радаров, тепловизоров и других источников получения информации об окружающей среде. Широкое применение оборудование такого класса получило при создании автопилотов для транспортных средств, систем контроля безопасности, беспилотной авиаразведки, различных бытовых роботов. Применение стереозрения позволяет получать данные о глубине изображения и расстоянии до объектов, строить трехмерную картину окружающего мира. В работе также дано описание настройки используемого оборудования (пара камер, закрепленных на общем основании): описан процесс калибровки стереопары (поиск калибровочного шаблона на изображении производился с помощью фреймворка ROS). Изображения, полученные с камер, подвергаются ректификации – преобразованию, при котором оба изображения проецируются на плоскость, параллельную линии, соединяющей оптические центры камер. В статье рассмотрены основы проективных преобразований и эпиполярной геометрии, а также идея, лежащая в основе построения карт глубины и смещений. В качестве результата представлен программный модуль распознавания, разработанный с помощью языка программирования Python.
Abstract:The main development source of robotic systems and artificial intelligence systems is improvement of computer technology, devices and sensors that allow obtaining information about the environment. This process is inextricably linked with the development of software on-board processors, which are used in autonomous robot managing. The article gives a brief description of a module of a developed image recognition system for an autonomous robot, which is based on a stereo vision technology. Nowadays, more and more articles mention the systems consisting of combinations of several video cameras, laser radars, ther-mal imagers and other sources of information about the environment. Equipment of this class became widespread when creating au-topilots for vehicles, security control systems, unmanned aerial reconnaissance, various household robots. Stereo vision allows ob-taining data on image depth, the distance to objects. It also provides an opportunity to build a three-dimensional picture of the sur-rounding world. The paper describes the configuration of the equipment used (a pair of cameras fixed on a common base): a stereopair calibrating process, the calibration pattern on the image was searched using the ROS framework. Images obtained from cameras are subjected to rectification (a transformation when both images are projected onto a plane parallel to the line that connects the optical centers of the cameras). The article considers the fundamentals of projective transformations and epipolar geometry. The paper presents the idea that un-derlies the construction of depth and displacement maps. As a result, it presents a recognition software module developed using the Python programming language.
Авторы: Ульянов С.В. (ulyanovsv46_46@mail.ru) - Государственный университет «Дубна» – Институт системного анализа и управления, Объединенный институт ядерных исследований – лаборатория информационных технологий (профессор), Дубна, Россия, доктор физико-математических наук, Решетников А.Г. (reshetnikovag@pochta.ru) - Международный университет природы, общества и человека «Дубна» (аспирант), Дубна, Россия, Кошелев К.В. (kirill_koshelev18@rambler.ru) - Университет «Дубна», Институт системного анализа и управления (студент), Дубна, Россия
Ключевые слова: калибровка камер, робототехника, системы управления, robot operating system (ros), стереозрение, распознавание образов
Keywords: camera calibration, robotics, control systems, robot operating system (ros), stereovision, pattern recognition
Количество просмотров: 9493
Статья в формате PDF
Выпуск в формате PDF (21.91Мб)
Скачать обложку в формате PDF (0.59Мб)

Размер шрифта:       Шрифт:

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

Для операционной системы робота Robot Ope- rating System (далее ROS) был разработан программный модуль распознавания объектов [4]. Фреймворк ROS представляет собой набор библиотек, утилит и соглашений. Система ROS предоставляет разработчику большое количество вспомогательного кода, позволяя ему сконцентрироваться на важнейших частях создаваемого ПО. Создание программного модуля распознавания объектов состоит из следующих этапов: настройка стереопары из двух камер, построение карты смещений, использование карты смещений для получения облака точек с помощью 3D-визуализатора Rviz, создание программного модуля распознавания объектов на языке программирования Python.

Настройка стереопары из двух камер

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

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

Затем находятся коэффициенты, связывающие координаты проекций, матрицы камер и положения точек шаблона в пространстве [4, 5].

Построение карты смещений

Для построения трехмерного изображения с помощью 3D-визуализатора Rviz используются кар­ты глубины и карты смещений. Рассмотрим такое понятие, как карта глубины [6]. Карта глубины – это способ представления объемных 3D-изображений в виде изображения, в котором каждому пикселю присваивается дополнительный параметр – глубина. Этот параметр показывает, на каком расстоянии от плоскости изображения расположен данный пиксель. Карта глубины может быть получена с помощью специальной камеры глубины (например, сенсор Kinect является своего рода такой камерой), а также может быть построена по изображениям, полученным со стереопары.

При построении карты смещений для каждой точки на одном изображении выполняется поиск парной ей точки на другом изображении. По паре соответствующих точек можно выполнить триангуляцию и определить координаты их прообраза в трехмерном пространстве. При известных трехмерных координатах прообраза глубина вычисляется как расстояние до плоскости камеры (рис. 2). Для каждой точки на изображении с первой камеры соответствующую ей парную точку нужно искать в той же строчке на изображении со второй камеры. Для каждого пикселя левого изображения с координатами (x0, y0) выполняется поиск соответствующего пикселя на правом изображении. При этом предполагается, что пиксель на правом изображении должен иметь координаты (x0 – d, y0), где d – величина, называемая смещением (рис. 2) [7, 8]. Поиск соответствующего пикселя выполняется путем вычисления максимума функции отклика, в качестве которой может выступать, например, корреляция окрестностей пикселей. В результате получается карта смещений (рис. 3).

Получение облака точек с помощью 3D-визуализатора Rviz

Визуализатор Rviz является модулем фреймворка ROS, предназначенным для отображения данных с различных датчиков (включая камеры, сонары, дальномеры). С его помощью, например, можно построить трехмерную карту помещения, а робот под управлением ROS, используя полученные данные об объектах и препятствиях, сможет автономно перемещаться в этом помещении. Первоначально в области глобальных настроек Global Options напротив поля Fixed Frame указываем имя пакета, посредством которого ROS взаимодействует с камерами. Затем нажимаем кнопку Add и выбираем из списка PointCloud2 (рис. 4).

Сообщение sensor_msgs/PointCloud2 описывает облако точек в трехмерном пространстве [4]. На рисунке 5 показано трехмерное изображение, полученное с помощью стереопары из двух камер.

Программный модуль системы распознавания

При выполнении задачи распознавания объектов программный код создавался на языке программирования Python. В качестве объекта был вы- бран шар желтого цвета. Разработанный модуль производит распознавание объекта (рис. 6).

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

Заключение

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

Литература

1.     Kuznetsova A., Sigal L. Expanding object detector’s Horizon: Incremental Learning Framework for object detection in videos. IEEE Conf. CVPR 2015. URL: https://www.disneyresearch.com/publication/expanding-object-detectors-horizon/ (дата обращения: 19.03.2017).

2.     Распознавание образов для программистов: примеры работ. URL: http://recog.ru/ (дата обращения: 9.03.2017).

3.     Яне Б. Цифровая обработка изображений. М.: Техносфера, 2007. 584 с.

4.     Robot operating system (ROS): documentation, support, tutorials. URL: http://wiki.ros.org/ (дата обращения: 22.02.2017).

5.     Szpytko J., Hyla P. Stereovision 3D type workspace mapping system architecture for transport devices. Jour. of KONES Powertrain and Transport, 2010, vol. 17, pp. 496–502.

6.     Pentland A.P. Depth of Scene from Depth of Field. Proc. Image Understanding Workshop, 1982, pp. 253–259.

7.     Bobick A.F., Intille S.S. Large occlusion stereo. Int. Jour. of Computer Vision, 1999, vol. 33, pp. 181–200.

8.     Форсайт Д.А., Понс Ж. Компьютерное зрение: современный подход. М.: Вильямс, 2004. 928 с.

9.     Ульянов С.В., Добрынин В.Н., Нефедов Н.Ю., Пет- ров С.П., Полунин А.С., Решетников А.Г. Генетические и квантовые алгоритмы. Ч. 1. Инновационные модели в обучении // Системный анализ в науке и образовании. 2010. № 3. URL: http:/www.sanse.ru/archive/17 (дата обращения: 11.03.2017).

10.   Ульянов С.В., Петров С.П. Квантовое распознавание лиц и квантовая визуальная криптография: модели и алгоритмы // Системный анализ в науке и образовании. 2012. № 1. URL: http:/www.sanse.ru/archive/23 (дата обращения: 11.03.2017).


Постоянный адрес статьи:
http://swsys.ru/index.php?page=article&id=4312&lang=&lang=&like=1
Статья в формате PDF
Выпуск в формате PDF (21.91Мб)
Скачать обложку в формате PDF (0.59Мб)
Статья опубликована в выпуске журнала № 3 за 2017 год. [ на стр. 435-438 ]

Возможно, Вас заинтересуют следующие статьи схожих тематик: