В технологии стереозрения используются, как правило, две камеры, работающие синхронно, что позволяет восстанавливать форму и расположение наблюдаемых объектов в трехмерном пространстве. При этом создается трехмерная полигональная модель какого-либо объекта, формируемая на основе анализа изображений этого объекта, полученных разнесенными в пространстве камерами.
Обычно для машинного зрения и распознавания достаточно использовать одну камеру (существует множество примеров работ [1–3]), но стоит отметить, что стереозрение, в определенной степени повторяя особенности развития природного зрения, позволяет бортовой системе получать информацию не только о цвете и яркости объекта, но и о расстоянии до него, о его геометрической форме, о препятствиях на пути к объекту. Кроме того, совместное использование различных сенсоров и их комбинацийс технологией стереозрения позволяет более качественно и полно строить «сцену мира» для робота, тем самым улучшая его взаимодействие с окружающей средой. К таким сенсорам относятся сонары и лидары, радары; их применение, естественно, повышает себестоимость технического решения и сложность программного интеллекта бортовой системы.
Для операционной системы робота Robot Operating System (далее ROS) был разработан программный модуль распознавания объектов [4]. Фреймворк ROS представляет собой набор библиотек, утилит и соглашений. Система ROS предоставляет разработчику большое количество вспомогательного кода, позволяя ему сконцентрироваться на важнейших частях создаваемого ПО. Создание программного модуля распознавания объектов состоит из следующих этапов: настройка стереопары из двух камер, построение карты смещений (disparity map), использование карты смещений для получения облака точек с помощью 3D-визуализатора Rviz (ROS visualization), создание программного модуля распознавания объектов на языке программирования Python. Далее будет описано использование данного программного модуля распознавания на основе технологии стереозрения в системе навигации мобильного робота.
Настройка стереопары из двух камер
Настройка стереопары из двух камер является первым этапом при проектировании системы стереозрения в ROS. Для выполнения поставленной задачи была использована пара камер, изображенная на рисунке 1.
Для рабочем каталоге, который связан с ROS обеспечения возможности обмена данными между ROS и камерами необходимо создать в, пакет с файлом инициализации. В файле содержатся параметры для работы и изображением, а именно разрешение, имена видеоустройств (рис. 2).
В тексте файла видно, что каждая камера по сути становится узлом с определенным именем, а узлы, в свою очередь, взаимодействуют с ROS [4]. Выполнив команды, представленные на рисунке 3, получим изображение с используемых камер (рис. 4).
После успешного запуска камер можно переходить к калибровке. Калибровка камер позволяет исправлять дисторсию (аберрацию оптических систем), при которой коэффициент линейного увеличения изменяется по полю зрения объектива. При этом нарушается геометрическое подобие между объектом и его изображением. Калибровка стереопары будет производиться с помощью фреймворка ROS методом шахматной доски.
Калибровка камер обычно выполняется за счет многократной съемки калибровочного шаблона, на изображении можно легко выделить ключевые точки (рис. 5), для которых известны их относительные положения в пространстве. Затем находятся коэффициенты, связывающие координаты проекций, матрицы камер и положения точек шаблона в пространстве [4, 5].
Построение карты смещений (disparity map)
Для построения трехмерного изображения с помощью 3D-визуализатора Rviz (ROS visualization) используются карты глубины и карты смещений.
Для начала рассмотрим такое понятие, как карта глубины [6]. Карта глубины (depth map) – это способ представления объемных 3D-изображений в виде изображения, в котором каждому пикселю присваивается дополнительный параметр – глубина. Этот параметр показывает, на каком расстоянии от плоскости изображения расположен данный пиксель. Карта глубины может быть получена с помощью специальной камеры глубины (например, сенсор Kinect является своего рода такой камерой), а также может быть построена по изображениям, полученным со стереопары (подобные камеры начинают применяться в том числе и в мобильных устройствах).
При построении карты смещений для каждой точки на одном изображении выполняется поиск парной ей точки на другом изображении. По паре соответствующих точек можно выполнить триангуляцию и определить координаты их прообраза в трехмерном пространстве.
При известных трехмерных координатах прообраза глубина вычисляется как расстояние до плоскости камеры (рис. 6).
Для каждой точки на изображении с первой камеры соответствующую ей парную точку нужно искать в той же строчке на изображении со второй камеры. Для каждого пикселя левого изображения с координатами (x0, y0) выполняется поиск соответствующего пикселя на правом изображении. При этом предполагается, что пиксель на правом изображении должен иметь координаты (x0 – d, y0), где d – величина, называемая смещением (disparity) (рис. 6) [7, 8].
Поиск соответствующего пикселя выполняется путем вычисления максимума функции отклика, в качестве которой может выступать, например, корреляция окрестностей пикселей.
В результате получается карта смещений (disparity map), пример которой приведен на рисунке 7.
Карта строится на основе изображений, которые получены ранее (рис. 4).
Получение облака точек с помощью 3D-визуализатора Rviz (ROS visualization)
3D-визуализатор Rviz – модуль фреймворка ROS, предназначенный для отображения данных с различных датчиков (включая камеры, сонары, дальномеры). С его помощью, например, можно построить трехмерную карту помещения, а робот под управлением ROS, используя полученные данные об объектах и препятствиях, сможет автономно перемещаться в этом помещении. Первоначально в области глобальных настроек Global Options напротив поля Fixed Frame указывается имя пакета, посредством которого ROS взаимодействует с камерами (usb_cam). Затем после нажатия на кнопку Add выбирается из списка PointCloud2 (рис. 8).
Сообщение sensor_msgs/PointCloud2 описывает облако точек в трехмерном пространстве [5]. На рисунке 9 показано трехмерное изображение, полученное с помощью стереопары из двух камер.
Программный модуль системы распознавания
При выполнении задачи по распознаванию объектов программный код создавался на языке программирования Python. В качестве объекта распознавания был выбран обычный теннисный мяч. Разработанный модуль производит распознавание объекта (рис. 10).
Следует отметить, что данный модуль дает возможность осуществлять слежение за объектом. Использование нейросетевого подхода в системе распознавания позволило значительно снизить негативное влияние внешних факторов на качество распознавания (погрешность распознавания при изменении ракурса объекта, изменение освещения, чувствительность ПО и т.д.) [9–11].
Модуль навигации мобильного робота
В последние пять лет применение роботов и робототехнических комплексов в различных проблемно-ориентированных областях промышленности дает сугубо положительный эффект, в ведущих странах мира этот эффект отражается в повышении эффективности труда на 15–25 % [12].
Также в настоящее время отчетливо видна тенденция перехода от промышленных роботов к роботам сервисного обслуживания с различной степенью социальной ответственности – медицинские роботы, роботы для ухода за детьми, роботы-ликвидаторы последствий техногенных катастроф, роботы-спасатели и т.д. При этом специалисты по проектированию и разработке различных роботов опираются на интеллектуальную платформу применения технологий интеллектуальных вычислений. Такой подход позволяет создавать гибридные промышленные роботы сервисного обслуживания специального назначения [12–19]. На рисунке 11 представлены примеры мобильных роботов, которые используются для ликвидации последствий землетрясений или техногенных катастроф. Данным роботам необходимо выполнять сложные технологические операции, стремиться минимально расходовать полезный ресурс. Именно интеллектуальные вычисления как базис системы управления робототехническим средством позволяют добиваться обозначенных выше целей.
В лаборатории интеллектуальных систем управления университета «Дубна» был сконструирован прототип автономного мобильного робота (рис. 12). С помощью именно данного прототипа происходило первичное тестирование описанного выше модуля распознавания и системы навигации.
Разработка системы навигации осуществлялась с помощью фреймворка ROS. На основе набора точек, полученных с помощью лазерного дальномера, система управления воссоздает двумерную карту помещения, на которой отмечаются присутствующие объекты и препятствия, что позволяет роботу при определенном качественном уровне системы управления избегать столкновений с различными объектами. По мере продвижения робота в пространстве происходит динамическое дополнение карты, что тоже дает определенные преимущества (позволяет использовать робота в недоступных или опасных для человека местах). Как и в случае со стереопарой, в системе ROS должен быть создан узел, обеспечивающий взаимодействие между лазерным дальномером и ROS на уровне файловой системы. Также было необходимо создать модель управляемого робота с его масштабируемыми параметрами (длина, ширина, высота), а затем добавить данную модель в систему навигации. Это необходимо для установления пространственных взаимосвязей между роботом и объектами окружающего мира. На рисунке 13 представлена полученная с помощью дальномера карта, на которой отмечены целевая точка и маршрут до нее.
Для расширения возможностей системы навигации (использование 3D-визуализации) и повышения качества управления в систему навигации мобильного робота был интегрирован модуль стереозрения, который описан выше. Использование технологии стереозрения позволит значительно улучшить уровень автономной навигации за счет совмещения двумерной и трехмерной карт и их последующего сохранения в системе. На рисунке 14 представлены исходное изображение и полученная на его основе карта глубины.
На основе описанного выше алгоритма полученные карты глубины генерируются в трехмерные изображения, на основе которых происходит 3D-реконструкция окружающего пространства (рис. 15).
В настоящее время ведется работа по оптимизации процесса взаимодействия модуля стереозрения и остальных бортовых устройств, а также проводится модернизация непосредственно системы распознавания образов, с помощью которой представляется возможным осуществление инвариантного распознавания объектов окружающей среды.
Заключение
В работе приводится описание процесса калибровки стереопары из двух камер, что необходимо для практического применения технологии стереозрения. На основе изображений, полученных со стереопары, построена карта глубины, которая используется для создания трехмерных изображений окружающих объектов. В качестве результата представлен программный модуль, с помощью которого производится распознавание объектов, осуществляется слежение за ними. Использование двух камер (стереопары)
в совокупности с технологиями интеллектуальных вычислений позволяет значительно повысить качество распознавания объектов [9–11]. Произведена интеграция модуля стереозрения в систему навигации мобильного робота, что позволит значительно расширить спектр решаемых роботом задач. Намечены дальнейшие пути развития.
Литература
- Kuznetsova A., Sigal L. Expanding object detector’s Horizon: Incremental Learning Framework for object detection in videos. Proc. IEEE Conf. on Computer Vision and Pattern Recognition (CVPR), 2015. URL: https://www.disneyresearch.com/publication/expanding-object-detectors-horizon/ (дата обращения: 19.03.2017).
- Распознавание образов для программистов: примеры работ. URL: http://recog.ru/ (дата обращения: 9.03.2017).
- Яне Б. Цифровая обработка изображений. М.: Техносфера, 2007. 584 с.
- Robot Operating System (ROS): documentation, support, tutorials. URL: http://wiki.ros.org/ (дата обращения: 22.02.2017).
- Szpytko J., Hyla P. Stereovision 3D type workspace mapping system architecture for transport devices. Journ. of KONES Powertrain and Transport, 2010, vol. 17, pp. 496–502.
- Pentland A.P. Depth of Scene from Depth of Field. Proc. Image Understanding Workshop, 1982, pp. 253–259.
- Bobick A.F., Intille S.S. Large occlusion stereo. Int. Journ. of Computer Vision, 1999, vol. 33,pp. 181–200.
- Форсайт Д.А., Понс Ж. Компьютерное зрение: современный подход. М.: Вильямс, 2004. 928 с.
- Ульянов С.В., Добрынин В.Н., Нефедов Н.Ю., Петров С.П., Полунин А.С., Решетников А.Г. Генетические и квантовые алгоритмы. Ч. 1. Инновационные модели в обучении // Системный анализ в науке и образовании. 2010, № 3. URL: http:/www.sanse.ru/archive/17. – 0421000111\0030 (дата обращения: 11.03.2017).
- Ульянов С.В., Петров С.П. Квантовое распознавание лиц и квантовая визуальная криптография: модели и алгоритмы // Системный анализ в науке и образовании. 2012, no. 1. URL: http:/www.sanse.ru/archive/23. – 0421200111\0007 (дата обращения: 11.03.2017).
- Немков Р.М. Разработка нейросетевых алгоритмов инвариантного распознавания образов: дис. ... канд. технич. наук. Ставрополь, СКФУ, 2015. С. 162.
- Аналитическое исследование: Мировой рынок робототехники – НАУРР (Национальная Ассоциация Участников Рынка Робототехники). 2016. 57 c.
- Ulyanov S.V., Yamafuji K., Fukuda T. Development of intelligent mobile robots for service use and mobile automation systems including wall climbing robots: Pt. 1: Fundamental design principles and motion models. Intern. J. of Intelligent Mechatronics, 1995, vol. 1, no. 3, pp. 111–143.
- Kitano N. Roboethic – a comparative analysis of social acceptance of robots between the West and Japan. The Waseda J. of Soc. Sc., 2006, vol. 6, pp. 93–106.
- Espingardeiro A.M.M.C. A roboethics framework for the development and introduction of social assistive robots in elderly care. Doctor of Philosophy, Thesis, 2013. UK, Salford Business School Univ. of Salford, Manchester, 2013.
- Gianni M. Multilayered cognitive control for unmanned ground vehicles. Ph.D. Thesis, Sapienza Univ. of Rome, 2014.
- Habib M.K., Baudoin Y. Robot-assisted risky intervention, search, rescue and environmental surveillance. Intern. J. of Advanced Robotic Systems, 2010, vol. 7, no. 1, pp. 1–8.
- Lee C.-H. New opportunities created by specialized service robots. Is. Reportt 8-2 SERI. Publ., 2011, 11 p.
- Miripour B. (Ed.) Climbing and walking robots. Proc. Conf. In-Tech. Croatia, 2010, 516 p.
Комментарии