Введение
С каждым годом количество автомобилей в мире возрастает, соответственно возрастает и количество дорожно-транспортных происшествий. В связи с этим все больше внимания уделяется автомобильным системам интеллектуальной обработки информации и принятия решений. Инженерами разных стран мира разработано множество систем активной безопасности для автомобилей таких, как ABS (антиблокировочная система), EBD (система распределения тормозных усилий), ESP (система динамической стабилизации автомобиля) и многие другие. Одной из наиболее современных является система распознавания дорожных знаков и дорожной разметки, функциональные возможности которой заключаются в оповещении водителя о наличии дорожных знаков в поле зрения камеры и предупреждении о приближении к опасным участкам дороги.
Идентификация дорожных знаков относится к актуальной и сложной научно-практической задаче распознавания образов. В настоящее время в этой области ведутся интенсивные исследования. Результатом этих работ стало появление коммерческих интеллектуальных систем, основной особенностью которых является закрытость алгоритма функционирования. Серийные автомобили, оснащенные системой распознавания дорожных знаков и дорожной разметки, появились на рынке в 2010 – 2011 гг. Однако многие системы подобного рода основаны на алгоритмах с высокой ресурсоемкостью, что затрудняет их использование в системах реального времени.
Цель данной работы заключается в разработке алгоритма, осуществляющего распознавание дорожных знаков ограничения скорости, основной особенностью которого является высокая скорость обработки кадров (не менее 10 кадров/с). Достижение этой цели подразумевает решение следующих задач: преобразование цветового пространства; удаление шумов; выделение областей интереса; верификация объектов интереса; идентификация дорожного знака [4].
Преобразование цветового пространства кадров видеосигнала
Все дорожные знаки ограничения скорости имеют два общих признака – контур красного цвета и круглую форму знака (рис. 1). Поэтому первой стадией обработки кадров видеосигнала является выделение областей красного цвета.
Рис. 1. Дорожные знаки ограничения скорости
Входной видеосигнал состоит из последовательности изображений (кадров), каждое из которых представлено в цветовом пространстве RGB и фактически представляет собой матрицу размерностью M×N×3, состоящую из целых чисел в диапазоне [0, 255], которые определяют цвет каждого пикселя изображения. В таком цветовом пространстве поиск областей красного цвета предполагает одновременный анализ трех составляющих, при этом изменение составляющей R будет влиять на допустимые значения составляющих G и B. Поэтому целесообразно использование цветового пространства HSV, в котором эффективность выделения красного цвета выше по сравнению с RGB пространством.
HSV (Hue, Saturation, Value — тон, насыщенность, значение) — цветовая модель, в которой координатами цвета являются:
- Hue — цветовой тон, (например, красный, зелёный или сине-голубой). Варьируется в пределах 0—360°, однако иногда приводится к диапазону 0—100 или 0—1.
- Saturation — насыщенность. Варьируется в пределах 0—100 или 0—1. Чем больше этот параметр, тем «чище» цвет, поэтому этот параметр иногда называют чистотой цвета. А чем ближе этот параметр к нулю, тем ближе цвет к нейтральному серому.
- Value (значение цвета). Также задаётся в пределах 0—100 и 0—1.
Цветовая модель HSV наиболее близкая к человеческому восприятию цветов.
Преобразование изображения из цветовой модели RGB в цветовую модель HSV производится по следующим формулам [1]:
Если H < 0, то H = H + 360.
После данных преобразований координаты цвета будут находиться в следующих диапазонах: .
Цвет дорожных знаков меняется в зависимости от освещения. Так пороговые значения цветового тона (Hue) для дорожных знаков с красным контуром в дневное время будут отличаться от пороговых значений цветового тона (Hue) для этих знаков в ночное время. В связи с эффектом отражения света от поверхности дорожных знаков, например, при свете автомобильных фар или уличного освещения в ночное время красный цвет на знаках может восприниматься как оранжевый. Поэтому нами экспериментально были подобраны пороговые значения координат цвета в различных погодных условиях и при различной освещенности (табл. 1).
Таблица 1. Пороговые значения координат цвета, используемые для выделения красного цвета
Цветовое пространство |
Ясный день |
Дождь/Влажность |
Вечер |
Ночь |
RGB |
129<R<255 0<G<71 0<B<96 |
129<R<255 0<G<71 0<B<96 |
156<R<255 0<G<98 0<B<44 |
100<R<255 0<G<98 0<B<20 |
YCbCr |
40<Y<120 100<Cb<128 140<Cr<200 |
30<Y<120 100<Cb<128 150<Cr<200 |
60<Y<170 77<Cb<115 170<Cr<206 |
27<Y<180 70<Cb<120 156<Cr<207 |
Lab |
30<L<100 15<A<81 0<B<40 |
15<L<100 15<A<81 0<B<70 |
15<L<100 15<A<81 0<B<40 |
15<L<100 15<A<81 0<B<60 |
HSV |
300<H<360 0.7<S<1 0.5<V<1 |
300<H<360 0.7<S<1 0.5<V<1 |
300<H<360 0.7<S<1 0.5<V<1 |
22<H<360 0.7<S<1 0.5<V<1 |
Как видно из результатов таблицы 1 цветовое пространство HSV является наиболее подходящим для выделения красного цвета, т.к. пороговые значения координат цвета практически в любых условиях постоянны и только в ночное время пороговые значения цветового тона (Hue) отличны.
Выделение объектов красного цвета на кадрах видеосигнала после их конвертации в цветовое пространство HSV производится следующим образом:
-
Суммарная матрица изображения размером M×N×3 разделяется на три матрицы размером M×N, которые соответствуют трем компонентам цвета H, S и V.
-
Над каждой из матриц H, S, V производится пороговое преобразование в соответствии с пороговыми значениями из таблицы 1 такое, что если компонент матрицы попадает в интервал между пороговыми значениями, то яркость данного пикселя равна 1, в противном случае – 0. В результате данной операции получаются три матрицы со значениями компонентов 0 или 1.
-
Модифицированные матрицы H*, S*, V* объединяются с помощью выполнения над ними операции логического И. В результате получается бинарное изображение, на котором белые области соответствуют объектам красного цвета, а черные – всему остальному.
Рис. 2. Функции пороговой обработки
Рис. 3. Выделение красного цвета на изображении: а – исходное изображение; б – результат порогового преобразования
Удаление шумов с помощью морфологической фильтрации изображения
Морфологическая фильтрация представляет собой применение к, как правило, бинарному изображению следующих операций: расширение, сужение, открытие, закрытие.
Расширение - это свёртка некоторого изображения (или области изображения), которое мы будем называть A, с некоторым ядром, которое мы будем называть B. Ядро имеет точку привязки (якорь) и может быть любых форм и размеров. Чаще всего ядро имеет квадратную форму с точкой привязки в центре. Ядро может рассматриваться как шаблон или маска, и его эффект на расширение зависит от оператора локального максимума. Когда ядро “скользит” над изображением вычисляется максимальное значение пикселя перекрываемого B, и затем значение пикселя лежащего под опорной точкой заменяется этим максимальным значением. Это вызывает появление ярких областей на изображении.
Сужение - обратная операция. Действие оператора сужения заключается в вычислении локального минимума под ядром. Данный оператор создаёт новое изображение на основе исходного по следующему алгоритму: когда ядро “скользит” над изображением вычисляется минимальное значение пикселя перекрываемого B, и затем значение пикселя лежащего под опорной точкой заменяется этим минимальным значением.
Суть операции сужения в том, что вкрапления и шумы размываются, в то время как большие и соответственно более значимые регионы не затрагиваются. А идея операции расширения – найти регионы аналогичного цвета и интенсивности и попытаться их объединить. Полезность расширения возникает, потому что во многих случаях большая область разбита на несколько более мелких, шумами, тенями и т.д. Применение небольшого расширения должно привести к тому, что эти области “сплавятся” в одну.
Операции открытие и закрытие, представляют собой комбинацию операций сужения и расширения. В случае открытия сначала выполняется сужение, а затем расширение. В операторе закрытия наоборот сначала выполняется расширение, а затем сужение. Закрытие может использоваться для устранения нежелательных шумов.
Результаты морфологической фильтрации представлены на рис. 4. Из рисунка следует, что фильтрация эффективно удаляет шумы на изображении и способствует увеличению точности последующей верификации объектов интереса.
Рис. 4. Удаление шумов на изображении с помощью морфологической операции закрытие: а – изображение с шумом; б – изображение после фильтрации
Верификация объектов интереса
Только цветового признака для определения принадлежности объекта из области интереса к классу дорожных знаков ограничения скорости недостаточно, так как помимо дорожных знаков на изображении могут находиться другие объекты красного цвета (например, автомобили, рекламные доски, автомобильные стоп-сигналы). Второй признак, который можно выделить для всех рассматриваемых дорожных знаков, – форма эллипса очень близкого к кругу.
Для определения наличия эллипсов (кругов) в областях интереса целесообразно применять преобразование Хафа. Данный метод предназначен для поиска объектов, принадлежащих определённому классу фигур с использованием процедуры голосования. Процедура голосования применяется к пространству параметров, из которого и получаются объекты определённого класса фигур по локальному максимуму в, так называемом, накопительном пространстве (accumulator space), которое строится при вычислении трансформации Хафа.
Точки окружности можно представить формулой:
,
где (a, b) – координаты центра окружности, а R – ее радиус.
Таким образом, формула, задающая семейство окружностей, имеет вид:
Как видно из формулы, для нахождения окружностей нужно задавать 3 параметра — координаты центра окружности и её радиус. Это приводит к увеличению пространства Хафа на целое измерение, что в итоге сказывается на скорости работы. Поэтому для поиска окружностей применяется т.н. градиентный метод Хафа (Hough gradient method).
Эффективность использования преобразования Хафа резко падает при увеличении размерности фазового пространства, поэтому перед его применением желательно минимизировать каким-либо образом количество параметров кривой. Можно существенно снизить количество кривых, потенциально проходящих через данную точку изображения, если рассматривать только кривые, касательная которой перпендикулярна градиенту яркости изображения в рассматриваемой точке. Таким образом, можно, например, свести задачу выделения окружностей с неизвестным радиусом к двумерному фазовому пространству:
-
Применить детектор границ Кенни для нахождения границ на изображении [5].
-
Для ненулевых точек посчитать градиент (через вычисление 1-й производной по X и Y с помощью оператора Собеля).
-
Определить центры кругов.
-
Относительно центра определить ненулевые точки, лежащие на одном расстоянии.
Объект будет считаться верифицированным, если на области интереса обнаружен эллипс (круг) заданного радиуса (10 – 15 пикселей).
Идентификация дорожного знака
Для распознавания дорожных знаков на кадрах видеопоследовательности после определения областей интереса к данным изображениям необходимо применить алгоритмы идентификации объектов на растровом изображении с целью определения смысла дорожного знака.
Прежде всего, изображение дорожного знака из области интереса должно быть приведено к единому размеру. После чего такое изображение подается на вход модуля идентификации. В разработанной системе для распознавания дорожных знаков на изображениях из областей интереса используется нейронная сеть с архитектурой многослойный персептрон.
Исследователями были предложены многие модели нейронных сетей для распознавания дорожных знаков. Простейшая используемая в работах нейронная сеть представляет собой многослойный персептрон с количеством нейронов во входном слое равным количеству пикселей в изображении дорожного знака из области интереса, одним скрытым слоем с экспериментально подобранным числом нейронов и выходным слоем с количеством нейронов равным количеству распознаваемых дорожных знаков. Однако такая нейронная сеть не дает удовлетворительных результатов распознавания, так как является слишком общей и громоздкой.
Для увеличения скорости работы алгоритма необходимо сократить размер входного вектора признаков. В простейшем случае при размере входного изображения 30 × 30 пикселей входной вектор признаков будет состоять из 3 * 30 * 30 = 2700 компонентов – значения пикселей изображения по 3 компонентам цвета (RGB), что неприемлемо для работы системы в реальном времени.
Предлагается сократить количество компонентов входного вектора признаков следующим образом:
-
Рассчитать среднее нормализованное значение пикселей входного изображения по 3 компонентам цвета AR, AG, AB по формулам:
где – элементы матрицы A размера 90 × 30, составленной из значений пикселей входного изображения по 3 компонентам цвета (RGB).
-
Преобразовать входное цветное изображение в изображение в градациях серого по формуле:
C = 0.229R + 0.587G + 0.114B
где C – интенсивность серого, R, G, B – красная, зеленая и синяя составляющие соответственно.
- Для изображения в градациях серого рассчитать 30 вертикальных (vh) и 30 горизонтальных параметров (hh) по формулам соответственно:
где – компоненты матрицы C, T – адаптивный порог, вычисляемый по формуле:
В результате данных преобразований количество компонентов входного вектора признаков сократится с 2700 до 63, что позволит значительно увеличить производительность алгоритма идентификации объектов на растровом изображении.
Архитектура, используемой в системе нейронной сети представлена на рисунке 5.
Рис. 5. Архитектура нейронной сети
Экспериментально было подобрано число нейронов в скрытом слое для классификации знаков ограничения скорости. Число нейронов в скрытом слое N равно 90.
Выходной слой нейронной сети состоит из 8 нейронов, каждый из которых соответствует своему дорожному знаку (таблица 2).
Таблица 2. Соответствие дорожных знаков и выходных нейронов
Дорожный знак |
Идентификатор выходного нейрона |
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
Результаты экспериментов применения разработанного алгоритма распознавания дорожных знаков ограничения скорости
Исследование точности и быстродействия разработанного алгоритма выполнялось в среде IDE Microsoft Visual Studio 2010 с использованием библиотеки Qt 4.7 на видеоролике участка трассы Саратов – Волгоград протяженностью 50 км. Видеоролик был снят смартфоном Samsung Galaxy S. В качестве аппаратной платформы использовался нетбук HP Mini 210 со следующими техническими характеристиками:
- процессор Intel Atom N455;
- ОЗУ 2 Gb DDR2.
Все методы обработки изображений реализованы с использованием хорошо оптимизированной библиотеки OpenCV 2.3.
Результаты исследования алгоритма представлены в таблице 3.
Таблица 3. Результаты исследования точности и быстродействия разработанного алгоритма
Параметр |
Результаты |
Общее количество знаков |
48 |
Количество правильно определенных знаков |
44 |
Количество неправильно определенных знаков |
2 |
Количество пропущенных знаков |
2 |
Среднее время обработки кадра, мс |
53 |
Полученные характеристики точности и быстродействия разработанного алгоритма являются приемлемыми и позволяют использовать данный алгоритм в подобных системах реального времени.
Выводы
Разработан алгоритм распознавания дорожных знаков ограничения скорости. В результате проведения экспериментального исследования в среде IDE Microsoft Visual Studio 2010 с использованием библиотеки Qt 4.7 и библиотеки OpenCV 2.3 установлено, что точность (около 91 %) и быстродействие (20 кадров/с) алгоритма позволяет создавать на его основе интеллектуальные системы технического зрения, способные в режиме реального времени оповещать водителя о наличии дорожных знаков ограничения скорости в поле зрения камеры.
В дальнейшем планируется адаптация данного алгоритма для работы на мобильном устройстве (смартфоне) на базе операционной системы Google Android.
Использованная литература
-
Журавель И.М. Краткий курс теории обработки изображений. – М., 1999.
-
Гонсалес Р., Вудс Р. Цифровая обработка изображений. – М.: Техносфера – 2005. – 1072 с.
-
Bradski G., Kaehler A. Learning OpenCV. — Sebastopol: O’Reilly, 2008. — 555 p.
-
Brkic K. An overview of traffic sign detection methods.
-
Canny J. A Computational Approach to Edge Detection // IEEE Transactions on Pattern Analysis and Machine Intelligence. — November 1986. — V. 8, N. 6. — P. 679 – 697.