ГЛАВА 1. Что такое «Техническое зрение»
Современные мобильные роботы функционируют в заранее неопределенной, изменяющейся среде, взаимодействуют с объектами в ней. В процессе движения робот должен оценивать обстановку: измерять собственные координаты, классифицировать окружающие его объекты и определять их положение. Для этого используются различные датчики и системы. Для определения координат робота служат спутниковая навигация, маяки различных принципов действия, колесная одометрия, инерциальные системы, лазерные дальномеры. Окружающие объекты также выделяют с помощью измеряющих различные физические величины датчиков: радиолокационных и ультразвуковых, тактильных, термометрических, химических, а так же широкого круга оптических датчиков от фотореле до лазерных дальномеров и телекамер и др.
Особое место среди оптических локационных систем занимают системы технического зрения (СТЗ). Цифровая телекамера в отличие от точечного фотореле или датчика цвета, представляет собой двумерный массив из тысяч миниатюрных оптических датчиков, что позволяет получить намного больше сведений об окружающей среде. Сигналы с этого массива преобразуются в яркость и цвет отдельных дискретных элементов — пикселей, образующих цифровое изображение рабочей сцены. В состав СТЗ входят цифровые телекамеры, вычислительное устройство и комплекс программных средств для анализа изображения, в частности для выделения на нем интересующих объектов.
Рост производительности доступных вычислительных средств в последние десятилетия позволяет извлекать из изображений все больше полезной информации, решать с помощью СТЗ все более сложные задачи в реальном масштабе времени, которые раньше решались с помощью множества других датчиков, в том числе в мобильной робототехнике.
Примером применения СТЗ является автоматизированная перевозка грузов на складах или в производственных цехах с помощью робокаров — самодвижущихся транспортных механизмов (Automated Guided Vehicles — AGV), оснащенных системой технического зрения (СТЗ) и оптическим детектором на базе линейки инфракрасных (ИК) датчиков.
Одной из ключевых задач СТЗ является распознавание образов, заданных определенными признаками объектов сцены. Частным случаем распознавания, широко используемым на производстве и в сервисной робототехнике, является нахождение в кадре заданных контрастных маркеров или направляющих линий, по которым робокар ориентируется в процессе движения и относительно других объектов. В результате
текущее положение робокара определяется на основании данных о положении, размере и ориентации искомого маркера в кадре.
Современные процессоры позволяют решать и более сложные навигационные задачи в заранее неизвестной среде: оценка движения робота по изображениям (Визуальная одометрия) или одновременная локализация и картографирование (SLAM). Тем не менее, производительность вычислителя и ресурсоемкость алгоритмов остаются важнейшими ограничениями при реализации СТЗ, поэтому для решения подобных задач применяются многопроцессорные системы, матричные процессоры, а так же специализированные сигнальные процессоры.
Наиболее распространенной является однопроцессорная (одношинная) структура СТЗ (рис. 1.1), построенная на базе персонального компьютера, выступающего в роли вычислительного модуля.
Рис. 1.1 Структура одношинной СТЗ
В целях уменьшения времени на пересылочные операции из памяти в процессор и обратно потоки информации разделяют, т. е. создают многошинные и многопроцессорные структуры, способные обрабатывать большие потоки видеоданных , поступающих как с одной, так и с нескольких телекамер.
Помимо аппаратной части, в СТЗ не менее важной и сложной частью является соответствующее программное обеспечение, необходимое для ввода и обработки визуальных данных. Современные программные средства в этой области можно разделить на 3 группы:
- инструментальные средства для обращения к аппаратным средствам из приложений(SDK, от англ. software development kit);
- библиотеки с реализацией алгоритмов обработки изображений;
- программные пакеты для ввода и обработки зрительных данных в интерактивном режиме.
Инструментальные средства разработки (SDK) для ввода видеоданных — это комплекс программ, предоставляющих приложениям доступ к устройствам ввода (фреймграбберам) и источникам видеоданных (телекамерам). В настоящее время для обработки изображений в робототехнике получило широкое распространение библиотека OpenCV, состоящая из большого количества алгоритмов, поставляемых с документированным API (от англ. application programming interface — интерфейс программирования приложений или интерфейс прикладного программирования) и примерами приложений на самых популярных языках программирования — С/С++, позволяющих разрабатывать наиболее производительные программы.
Процесс преобразования информации в СТЗ можно представить в виде шести основных этапов:
- Ввод (восприятие) информации, т. е. получение изображения рабочей сцены с помощью датчиков;
- Предварительная обработка изображения с использованием методов подавления шума и удаления искажений;
- Сегментация, т. е. выделение на изображении одного или нескольких представляющих интерес объектов сцены;
- Описание, т. е. определение характерных параметров (цвета, размеров, формы и т. д.) каждого объекта, необходимых для его выделения на сцене;
- Распознавание, или идентификация, объекта, т. е. установление его принадлежности к некоторому классу деталей, например к «болтам»;
- Интерпретация, т. е. получение искомых величин, в частности выявления принадлежности объекта к группе распознаваемых, например: «на сцене есть несколько гаек».
В соответствии с тем, какие этапы преобразования информации реализуются в конкретной системе, ее можно отнести к СТЗ высокого, среднего или низкого уровня. Так, задачи, решаемые СТЗ низкого уровня, ограничиваются вводом и предварительной обработкой информации,
имея на выходе лишь небольшой набор определенных параметров, например — на сцене обнаружено 5 цветовых областей, из которых 2 красные и 3 синие. Для решения задач образовательной и любительской робототехники таких выдаваемых данных, как правило, бывает достаточно. Говоря о распознавании цветных объектов сцены, необходимо иметь представление цвета в кодировке одной из нескольких цветовых моделей. Цветовая модель — модель описания цветов в виде набора чисел, называемых цветовыми компонентами или цветовыми координатами.
Цветовые модели разделяют на три больших класса:
- Аппаратно-зависимые (описывающие цвет применительно к конкретному устройству цветовоспроизведения — RGB, CMYK);
- Аппаратно-независимые (для однозначного описания информации о цвете — XYZ, Lab);
- Психологические (основывающиеся на особенностях человеческого восприятия — HSB, HSV).
RGB - аддитивная цветовая модель, в которой цвета получаются при смешивании красного, зеленого и синего цветов как лучей источников цвета (черный получается при нулевых значениях составляющих, белый — при максимальных — рис. 1.2 (а)). На рис. 1.2 (б) модель представлена в виде цветового куба, где чистые цвета образуют его вершины, а оттенки серого лежат на главной диагонали.
a) - схема смешения цветов
б) - цветовой куб.
Рис. 1.2 Цветовая модель RGB:
Модель RGB происходит из особенностей физиологического восприятия цвета сетчаткой человеческого глаза и соответствует физическому принципу как получения изображения в цифровых телекамерах, так и отображения информации на устройствах вывода — матрица телека-
меры/монитора как правило состоит из фоточувствительных элементов с фильтрами/индикаторов красного, зеленого и синего цвета. Поэтому изображения в формате RGB используются в СТЗ на этапах ввода-вывода, передачи между приложениями, хранения и иногда обработки.
Для описания приемников света применяют модель субтрактивного цветового синтеза CMY (рис. 1.3), основанную на использовании дополнительных цветов голубого, пурпурного и желтого.
![[media/image4.png]] a) - схема смешения цветов
б) - цветовой куб.
Рис. 1.3 Цветовая модель CMY:
Недостатком моделей RGB и CMY является их аппаратная зависимость, что приводит к тому, что цветовое изображение, полученное в CMY (например, при печати на принтере), не совпадает с изображением в RGB, представленным на экране монитора, а также различное восприятие цвета при разной яркости экрана и разной освещенности помещения. Поэтому, в этих моделях сложно выделить такую интуитивно важную характеристику, как «яркость».
Наибольшее количество задач в СТЗ решается при обработке полутонового изображения в оттенках серого, где используется только яркостная информация. Это позволяет выделять контуры объектов, углы, пятна, определять таким образом их форму и положение, что и требуется в большинстве задач. Цветовая информация в большей степени зависит от условий работы, подвержена шуму, но так же используется. Например, проще пометить известные объекты яркими цветными метками и искать их на изображении, чем анализировать форму этих объектов. По такому принципу цветом кодируются типы объектов и зон в соревновательных задачах для школьного возраста. В таких случаях удобно, когда величины, описывающие цвет объекта, не зависят от яркости — цветовые признаки инвариантны к освещенности.
Такое представление цвета реализуется в перцепционных цветовых моделях, основанных на раздельном представлении информации о цвете и яркости.
Популярная в графических редакторах перцепционная модель HSV (или близкая к ней HSB), напоминает способ, используемый художниками для получения нужных цветов — смешивание белой, черной и серой красок с чистыми красками для получения различных тонов и оттенков. При этом собственно цвет задается с помощью трех приведенных выше независимых показателей — цветового тона H (hue), насыщенности S (saturation) и светлоты V (value) или B (brightness).
В качестве геометрической интерпретации модели HSV используют конус (рис. 1.4, а), полученный как сглаженная проекция цветового куба в модели RGB вдоль его главной диагонали (рис. 1.4, б).
a) - цветовой конус
б) - проекция куба RGB
Рис. 1.4 Геометрическая интерпретация цветовой модели HSV:
Цветовая модель HSV широко используется в интерфейсах настройки СТЗ как интуитивно понятная, а так же при обработке изображений для обеспечения инвариантности цвета объекта к его освещенности. Недостатком является вычислительная сложность преобразований, обусловленная замкнутостью шкалы тона H, а так же преобразования исходной информации с матрицы в этот формат.
Распространенной в передаче изображения в СТЗ цветовой моделью, в которой яркость выделена в отдельный канал, являются YCbCr и YPbPr. В аббревиатуре YCbCr обозначено следующее: Y-компонента яркости, Cb и Cr являются синей и красной цветоразностными компонентами, получаемыми как разность компоненты яркости и соответствующей компоненты цветности. Составляющие Cb и Cr не являются инвариантными к освещенности и не имеют интуитивно понятного смысла, а модель представляет скорее способ кодирования информации, удобный для сжатия и передачи. Тем не менее, СТЗ, принимая изображение в таком
формате, может сразу работать непосредственно с яркостной составляющей Y, а при нормировании цветоразностных компонент Cb и Cr по яркости получается инвариантная к освещенности модель с приемлемым цветовым охватом. Такой принцип и реализован в модуле TrackingCam.
Наиболее объективную характеристику цвета получают в «аппаратно-независимых» цветовых моделях. Эти модели (к ним относятся модели XYZ и Lab) получили название «математических»; они строятся на основе хроматической диаграммы, разработанной Международной комиссией по освещению CIE (франц. Commission internationale de l’éclairage) и основанной на характеристиках среднестатистического глаза человека. Сама диаграмма представляет собой функцию трех переменных Х, Y и Z, описывающих некоторые гипотетические основные цвета. Обычно, модель XYZ используется для измерения способности устройства воспроизвести цвета, с помощью так называемых цветовых охватогамутов.
Center-nav