Рубрика:
Наука и технологии
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
КАНИЩЕВ В.В., студент, Национальный исследовательский университет «Высшая школа экономики», г. Москва, vetasindi@yandex.ru
КОТЕНЕВ Д.Д., студент, Национальный исследовательский университет «Высшая школа экономики», г. Москва, danilkotenev@yandex.ru
Разработка автоматизированного программного обеспечения для распознавания дорожных знаков
Поиск дорожных знаков на изображении в современном мире приобретает все большую актуальность. С распространением видеорегистраторов и навигаторов дополнение их функцией распознавания знаков значительно увеличит удобство взаимодействия водителя с дорогой, особенно на сложных развязках. Кроме того, эта функция может быть применима для дорожных служб, которые хотят проверить правильность постановки знаков. В данном исследовании представлен вариант автоматизированной системы для распознавания дорожных знаков на изображении
Для обучения программы использовались заранее подготовленные изображения для 43 различных дорожных знаков размером 24x24, по 18 изображений для каждого отдельно взятого знака.
Процесс распознавания происходит следующим образом: вначале идет считывание изображения, на котором будет выполняться поиск дорожных знаков. После чего начинается поиск областей, которые потенциально могут оказаться знаками. В первую очередь цветовое пространство входного изображения преобразуется из стандартного для OpenCV RGB в HSV. HSV (англ. Hue, Saturation, Value – тон, насыщенность, значение) – цветовая модель, в которой координатами цвета являются:
- Hue – цветовой тон;
- Saturation – насыщенность. Чем больше этот параметр, тем «чище» цвет, поэтому этот параметр иногда называют чистотой цвета. А чем ближе этот параметр к нулю, тем ближе цвет к нейтральному серому;
- Value – значение цвета или Brightness – яркость.
Большинство дорожных знаков обусловлено присутствием ярких цветов, таких как красный, синий и желтый цвет. Преимущественно они располагаются или по всему изображению дорожного знака, или в форме рамки (дляпредупреждающих и запрещающих знаков). Поэтому на входном изображении следует искать красные, желтые и синие области, вначале – красные области. Однако в цветовом пространстве HSV красный цвет задается двумя диапазонами, поэтому для полноценного выделения красных цветов программа вначале ищет их в двух различных диапазонах, а затем объединяет полученные результаты. После этого программа аналогичным образом ищет синие и желтые области, однако эти цвета в отличие от красного задаются только одними диапазонами, поэтому выполнение двух поисков и склейки результатов не обязательно.
Следующим шагом является устранение шумов. Для этого будут выполняться следующие действия. Вначале последовательно применяются функции dilate и erode. Функция dilate растягивает (операция расширения) изображение сиспользованием фильтра (ядра) один или несколько раз, по умолчанию используется ядро 3х3 (изображение формируется из локальных максимумов, т.е. будут увеличиваться светлые области).
Функция erode размывает (операция сужения) изображение с использованием фильтра (ядра) один или несколько раз, по умолчанию используется ядро 3х3 (изображение формируется из локальных минимумов, т.е. будут увеличиваться темные области). После этого к полученному слою будет применен гауссов фильтр для сглаживания и устранения оставшихся помех.
На этом поиск потенциальных областей заканчивается. Далее программа приступает непосредственно к анализу изображения. Для каждой из полученных на прошлом этапе областей программа рисует контур. После чего выполняется проверка на пригодность данного контура. С контуром начинается работа, если отношение высоты к ширине или наоборот больше, чем 1,5 и количество непустых пикселей больше 150. (Если, например, область будет слишком мала илидлинна и линейна, то она не будет обрабатываться.) После прохождения проверки контур раскрашивается в соответствующий цвет: для красных областей – зеленый, для желтых – синий и для синих – красный. Теперь готовый контур наносится на исходное изображение в нужной области.
Следующим этапом является идентификация дорожного знака. Вначале из оригинального изображения копируется область, которая была определена как дорожный знак на прошлом этапе. После чего ее размер преобразуется по размеру тренировочных изображений, и для полученного изображения строятся матрицы для каждого из каналов H, S, V. Для верификации данной области применяется оператор Собеля для выделения границ, после чего происходит определение, ккакому типу относится знак, по его форме. Пример выявления предупреждающего знака показан на рис. 1.
Рисунок 1. Пример условия выявления запрещающего знака
После этого программа ищет максимальное сходство среди полученных данных по каналам с данными, полученными при преобразовании тренировочного множества. Из набора знаков выбирается максимально похожее изображение. Далее название определенного знака извлекается из списка знаков и выводится на экран около обведенной контуром области. Надпись окрашивается в тот же цвет, что и контур. Пример работы программы показан на рис. 2 и 3.
Рисунок 2. Пример работы программы
Рисунок 3. Пример работы программы
Знаки на изображении не всегда располагаются идеально для работы программы. Из-за этого могут возникать ситуации, когда для человеческого глаза ясно, что это за знак и где он расположен, а для программы это будет совсем неочевидно. В таких случаях программа может просто-напросто не распознавать знак или же распознавать, но неправильно. К таким ситуациям относятся:
- частичное или полное перекрытие дорожного знака каким-либо непрозрачным предметом: деревом, другим дорожным знаком, вывеской и пр.;
- знак может располагаться довольно далеко и выглядеть на изображении очень мелко. Программа теряет точность, если размер знака на изображении менее 20х20 пикселей. При размерах фрагмента изображения менее 13х13 пикселей программа будет считать такую часть шумом, не будет воспринимать ее как дорожный знак и не будет пытаться идентифицировать ее;
- особый знак, которого нет в списке. В таком случае программа будет определять его как знак, однако неправильно идентифицировать.
Примеры ситуаций, когда знаки невозможно определить, показаны на рис. 4.
Рисунок 4. Пример работы программы
Для понятия точности работы программы был проведен тест на двух наборах данных из 130 изображений каждый. Результаты работы программы представлены в таблице 1.
Таблица 1. Результаты работы программы на тестовых множествах
Параметры |
Результаты |
Тест 1 |
Тест 2 |
Общее количество знаков |
100 |
100 |
Количество правильных распознаваний |
85 |
83 |
Количество ошибок |
8 |
7 |
Количество пропущенных (незамеченных) знаков |
7 |
10 |
На основе полученных данных можно сделать вывод, что этот алгоритм неплохо показывает себя при работе с изображениями, полученными с реальных дорог в дневное время, точность которых в среднем характеризуется 84%, правильно найденными дорожными знаками.
- OpenCV 2 Computer Vision Application Programming Cookbook [Электронный ресурс]. – Режим доступа: http://www.laganiere.name/opencvCookbook/ (Дата обращения: 23.02.2017).
- OpenCV шаг за шагом [Электронный ресурс]. – Режим доступа: http://robocraft.ru/blog/computervision/427.html (Дата обращения: 24.02.2017).
- Наборы изображений с дорожными знаками [Электронный ресурс]. – Режим доступа: http://www.cvl.isy.liu.se/research/datasets/traffic-signs-dataset/download/ (Дата обращения: 28.02.2017).
Ключевые слова: анализ изображения, компьютерное зрение, анализ данных, распознавание изображений.
Development of the Automated Software for Recognition of Road Signs
Kanishchev V.V., Student, National Research University Higher School of Economics, Moscow, vetasindi@yandex.ru
Kotenev D.D., Student, National Research University Higher School of Economics, Moscow, danilkotenev@yandex.ru
Abstract: The search for road signs on the image in the modern world is becoming increasingly important. With the widespread use of DVRs and navigators, the addition of their character recognition feature will greatly enhance the user-friendliness of the driver's interaction with the road, especially at complex interchanges. In addition, this function can be used for road services, who want to check the correctness of the signs. In this research, a variant of an automated system for recognizing road signs on an image is presented.
Keywords: image analysis, computer vision, data analysis, object recognition.
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|