Обнаружение и распознавание знаков дорожного движения с использованием методов технического зрения и машинного обучения

УДК 004.93.12

ОБНАРУЖЕНИЕ И РАСПОЗНАВАНИЕ ЗНАКОВ ДОРОЖНОГО ДВИЖЕНИЯ С ИСПОЛЬЗОВАНИЕМ МЕТОДОВ ТЕХНИЧЕСКОГО ЗРЕНИЯ И МАШИННОГО

ОБУЧЕНИЯ

Гурин Владислав Игоревич, магистрант; МГТУ им. Н.Э. Баумана, Москва, Российская Федерация

Аннотация: Для решения задачи распознавания знаков дорожного движения на видео целесообразно использовать методы технического зрения и машинного обучения. Процесс распознавания знака можно разделить на две последовательных задачи: поиск области на изображении, в которой находится знак, и классификацию этой области Для локализации объекта на изображении в статье предлагается метод Виолы-Джонса, который зарекомендовал себя для поиска лиц. В качестве классификатора предлагается сверточная нейронная сеть, которая хорошо подходит для классификации объектов на изображении При работе с предобработанными изображениями и правильно обученными моделями, объединение этих двух методов позволяет добиться высокой точности распознавания знаков дорожного движения при сравнительно невысоких требованиях к вычислительным мощностям. Таким образом, это решение может быть реализовано для обычной автомобильной видеокамеры. Ключевые слова: техническое зрение; машинное обучение; метод Виолы-Джонса; сверточная нейронная сеть; обработка изображений.

TRAFFIC SIGN DETECTION AND RECOGNITION WITH METHODS OF COMPUTER

VISION AND MACHINE LEARNING

Gurin Vladislav Igorevich, master's student, BMSTU, Moscow, Russia

Abstract: To solve the problem of recognizing traffic signs on video, it is advisable to use the methods of computer vision and machine learning. Sign recognition can be divided into two sequential tasks. The article proposes the Viola-Jones method for object location in an image. Viola-Jones method has proven itself for faces detection. A convolutional neural network is proposed as a classifier, which is well suited for classifying objects in an image. The combination of these two methods allows to achieve high accuracy of traffic recognition with relatively low requirements for computing power. Thus, this can be implemented for a conventional car camcorder.

Keywords: technical vision; machine learning; Viola - Jones method; convolutional neural network; image processing.

Для цитирования: Гурин, В. И. Обнаружение и распознавание знаков дорожного движения с использованием методов технического зрения и машинного обучения / В. И. Гурин. - Текст : элекстронный // Наука без границ. - 2020. - № 5 (45). - С. 75-82. - URL: https://nauka-bez-granic.ru/No-5-45-2020/5-45-2020/ For citation: Gurin V.I. Traffic sign detection and recognition with methods of computer vision and machine learning // Scince without borders, 2020, no. 5 (45), pp. 75-82.

Введение ные изменения благодаря прогрессу в

В настоящее время автомобильная сфере информационных технологий и индустрия претерпевает существен- развитию техники. Одной из наиболее

актуальных задач является создание беспилотных транспортных средств. Ключевая система беспилотного транспортного средства - это его автопилот. Автопилот - это программно-аппаратный комплекс, позволяющий осуществлять перемещение транспортного средства по заданной траектории. Автопилот успешно применяется в летательных аппаратах, так как в воздушном пространстве почти нет препятствий на пути. Также его применение популярно в транспортных средствах, движущихся по рельсам.

Актуальность системы автоматического распознавания дорожных знаков обуславливается повышением безопасности процесса вождения. Она призвана уведомлять водителя о наличии дорожных знаков на дороге. Система может помочь придерживаться установленного скоростного ограничения, соблюдать ограничения на проезд, обгон и так далее.

Объектом исследования является модуль распознавания знаков дорожного движения, который будет решать задачи обнаружения и распознавания знаков дорожного движения на кадре видеопотока.

Предмет исследования - алгоритм распознавания знаков дорожного движения. Он состоит из трех шагов:

• предобработка изображения (устранение шумов и контрастное выравнивание),

• локализация дорожного знака с помощью метода Виолы-Джонса,

• классификация знака с помощью методов машинного обучения.

В работе проведено сравнение точности работы трех методов классификации: метода ближайших соседей, метода опорных векторов и классифи-

кации с помощью сверточной нейронной сети.

Предобработка изображения

Первичная обработка изображения позволяет не только повысить качество распознавания, но и снизить количество вычислений, например, за счет преобразования изображения в оттенки серого [2]. Преобразование изображений в градации серого снижает объем обрабатываемых данных, сохраняя информацию о яркости и уменьшая нежелательные детали.

Изображения, снятые в естественных условиях, часто загрязнены и требуют предварительного удаления шумов. Для удаления высокочастотного шума применяется медианная фильтрация и Гауссово размытие.

В процессе медианной фильтрации значение яркости текущего пикселя заменяется на значение медианы яркостей всех элементов его окрестности. Медианные фильтры хорошо работают для некоторых видов случайных шумов и влекут за собой совсем небольшой эффект расфокусировки по сравнению с линейными сглаживающими фильтрами со схожими размерами. Также медианные фильтры показывают хороший результат при фильтрации импульсных шумов.

Локализация объекта на изображении методом Виолы-Джонса

Существующие методы решения задачи локализации можно разделить на три категории:

• опирающиеся на цветовые признаки объекта;

• опирающиеся на форму объекта;

• основанные на машинном обучении.

Методы, опирающиеся на цветовые признаки и на формы объектов, будут работать плохо для обнаружения зна-

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

В данной работе был выбран метод Виолы-Джонса, основанный на машинном обучении. Виола и Джонс разработали алгоритм, способный обнаруживать объекты очень надежно и

достаточно быстро, чтобы работать в режиме реального времени [6]. Хотя первоначально метод предназначался для решения задачи обнаружения лиц, он также успешно справляется с распознаванием других классов объектов.

Детектор Виолы и Джонса представляет собой каскад классификаторов, который сочетает в себе следующие концепции:

• используются признаки Хаара;

• изображения представляются в интегральном виде;

• применяется бустинг.

Признак Хаара представляет собой

прямоугольный примитив (рис. 1).

а) б)

Рисунок 1 - Примитивы Хаара: а - стандартные, б - дополнительные

Значение признака считается по формуле:

F = X - У,

где X - сумма значений пикселей, закрываемых светлой частью признака,

У - сумма значений пикселей, закрываемых темной частью признака.

Каждый признак работает в паре с пороговым значением, а решение признака определяется путем сравнения его значения с пороговым [1]. Для быстрого вычисления значений признаков используется интегральное представление изображения (значение каждого пикселя определяется как сумма значений пикселей, находящихся левее и выше).

Бустинг (AdaBoost) позволяет объединить ряд слабых (признаков Хаара) в один сильный. Другими словами, полученный сильный классификатор -это линейная комбинация слабых классификаторов. В методе Виолы-Джонса несколько сильных классификаторов объединяются в один каскад.

Процесс обнаружения осуществляется скольжением окна по изображению. В каждом положении окна вычисляется решение каскада, по которому определяется, имеется ли в нём искомый объект или нет. После каждого прохода по изображению размер окна увеличивается до тех пор, пока не будет достигнут его максимальный

(заранее заданный) размер. Меньший процент увеличения улучшает показатель обнаружения, но увеличивает общее время обработки.

Реализация локализации знака дорожного движения

Для локализации был обучен каскад классификаторов для запрещающих знаков дорожного движения. Для каскада была сформирована положительная и отрицательная выборка на

основе немецкой базы знаков дорожного движения. Положительная выборка содержала только изображения со знаком (рис. 2а). Отрицательная выборка содержала изображения без знаков (рис. 2б). От разнообразия негативной выборки зависит качество работы каскада в различных условиях. В итоге размер каждой положительной выборки составил 1000 изображений, а отрицательной - 1500 изображений.

Рисунок 2 - а (слева) - положительная выборка, б (справа) - отрицательная

Для обучения каскада классифи- На рис. 3 представлены примеры

каторов воспользуемся программой удачной локализации знака обучен-

opencv_traincascade.exe, которая рас- ным каскадом. пространяется в пакете ОрепС^

Рисунок 3 - Удачная локализация запрещающих знаков

В результате был обучен каскад клас- точность, но стоит учитывать, что ра-

сификаторов для круглых (запрещаю- бота идет с данными с видеокамеры, а

щих) знаков. Точность локализации значит, объект может быть обнаружен

составила 85,1 %. Это не такая высокая на других кадрах. Большая часть оши-

бок обнаружения происходила из-за маленького размера знака на картинке (30х30 пикселей и меньше).

Классификация объектов на изображении с помощью сверточных нейронных сетей

Задачи распознавания сложных образов хорошо решаются с помощью сверточных нейронных сетей [3]. Эф-

фективность сверточных сетей обусловлена двумя важными свойствами изображений - локальностью и повторением образов. Однако для успешного распознавания нужно сначала грамотно спроектировать сеть, а потом ее обучить. При этом объем и качество выборки также оказывают сильное влияние на результат работы нейронной сети.

f. in;i|V-.

fiiHl^

Н и Hl

li-.UIII г

Г. iiiips 1Я и

Imi 2J4

|Я*Г UM)

1.1ЧЧ 10

INPUT

jiiitis

СотоПйкш аНиЦле СнисЛЛ»! <

5иЪьШ]|>11к{

Рисунок 4 - Распознавание объекта с помощью сверточной нейронной сети

Обучение нейронной сети

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

Выбор архитектуры нейронной сети для классификации дорожных знаков

После того как дорожные знаки локализованы, необходимо их классифицировать. Т.к. для достижения этой

цели были выбраны свёрточные нейронные сети, то нужно подготовить базу для обучения, выбрать архитектуру нейронной сети и обучить нейронную сеть [5].

Сверточная нейронная сеть состоит из последовательности субдискрети-зирующих и сверточных слоев. Перед выходным слоем добавляется один или несколько полносвязных слоев, которые решают задачу классификации. Также на работу сети очень сильно влияет количество карт на каждом слое.

Входные данные для сверточной сети представляют собой полутоновые изображения. От размера зависит вычислительная сложность и точность. В работе были использованы изображения размером 32х32.

Сверточный слой представляет набор карт признаков, у каждой карты есть синаптическое ядро. От количества карт также зависит качество распознавания и скорость работы сети. Наиболее популярное решение - связь одной карты из предыдущего слоя с двумя картами сверточного слоя.

Ядро используется как окно, с помощью которого находят нужные признаки на изображении. Размер ядра, как правило, берут в пределах от 3х3 до 7х7. Большое ядро ведет к увеличению связей между нейронами, что усложняет сеть, в то же время маленькое ядро может не выделить какие-либо признаки. Размер ядра выбирается таким, чтобы размер карт сверточного слоя был четным, это позволяет не терять информацию при уменьшении размерности в подвыбо-рочном слое.

Ранее упоминалась важная особенность сверточной сети - локальность. Локальность обеспечивается с помощью небольшого числа связей между нейронами. Таким образом общие веса позволяют сократить число связей и находить один и тот же признак по всей области изображения.

Количество карт в подвыборочном слое совпадает с предыдущим слоем. Задача этого слоя - уменьшение размерности карт предыдущего слоя. Если на предыдущей операции свертки уже были выявлены некоторые признаки, то для дальнейшей обработки настолько подробное изображение уже не нужно, и оно уплотняется до менее подробного. Также отсеивание ненужных деталей позволяет бороться с переобучением.

В отличие от сверточного слоя, при сканировании ядром подвыборочного слоя окно не пересекается. Таким об-

разом удается уменьшить карты свер-точного слоя в 2 раза, так как, чаще всего, каждая карта имеет ядро 2х2. Из двух элементов выбирается максимальный.

Цель же последнего слоя заключается в классификации. Как правило, для этого используют многослойный персептрон.

Нейроны каждой карты предыдущего подвыборочного слоя связаны с одним нейроном скрытого слоя. Таким образом число нейронов скрытого слоя совпадает с числом карт подвы-борочного слоя. Но также допустимы более сложные связи.

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

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

В результате была выбрана следующая архитектура сверточной нейронной сети (табл.).

Таблица

Архитектура сверточной нейронной сети

Слой Тип Карт Нейронов Ядро

0 Входной 1 32х32

1 Свёрточный 6 28х28 5х5

2 Подвыборочный 6 14х14 2х2

3 Свёрточный 12 10х10 5х5

4 Подвыборочный 12 5х5 2х2

5 Полносвязный 80

6 Полносвязный 60

7 Полносвязный 26

Для выбранной архитектуры точность классификации знака на области изображения размером 32х32 пикселя составила 93,88 %. Если на вход подавать изображение 40х40 пикселей (увеличив количество нейронов), то точность классификации повышается до 96,23 %, но увеличивается время распознавания.

Точность классификации можно повысить, если изображение подвергнуть контрастному выравниванию - для области 32х32 пикселя точность увеличилась до 95,58 %. Однако в данной работе было решено не применять метод контрастного выравнивания, так как точность классификации 95 % в рамках задачи распознавания знаков дорожного движения является допустимой, а дальнейшее повышение точности ведет к снижению скоро-

сти работы системы.

Заключение

В ходе работы были рассмотрены популярные инструменты для решения задач в области технического зрения и машинного обучения. Были проанализированы способы локализации и классификации знаков дорожного движения на изображении. Для локализации использовался метод Виолы-Джонса, он показывает высокую скорость и точность обнаружения объектов. Для классификации объектов использовалась сверточная нейронная сеть. Она показала очень хорошие результаты по распознаванию, а при реализации сети на ПЛИС могут быть получены высокие показатели по скорости работы, что даст преимущество перед другими способами классификации объектов на изображении.

СПИСОК ЛИТЕРАТУРЫ 1. Документация OpenCV: Обучение классификаторов каскада Хаара. - URL: https:// docs.opencv.org/2.4.13/doc/user_guide/ug_traincascade.html (дата обращения:

10.05.2019). - Текст : электронный.

2. Якимов, П. Предварительная обработка цифровых изображений в системах локализации и распознавания дорожных знаков / П. Якимов. - Текст : непосредственный // Компьютерная оптика. - 2013. - № 3. - С. 401-405.

3. Aghdam, H. A practical approach for detection and classification of traffic signs using Convolutional Neural Networks / H. Aghdam, E. Heravi, D. Puig. - Текст : непосредственный // Robotics and Autonomous Systems. - 2016. - No. 84. - Pp. 97-112.

4. LeCun, Y. Traffic Sign Recognition with Multi-Scale Convolutional Networks / Y. LeCun, P. Sermanet. - Текст : непосредственный // Proceedings of International Joint Conference on Neural Networks. - 2011.

5. Shustanov, A. CNN Design for Real-Time Traffic Sign Recognition / A. Shustanov, P. Yakimov. - Текст : непосредственный // 3rd International Conference "Information Technology and anotechnology". - 2017. - Pp. 25-27.

6. Yi-Qing, W. An Analysis of the Viola-Jones Face Detection Algorithm / W. Yi-Qing. -Текст : непосредственный // Image Processing On Line. - 2014. - No. 4. - Pp. 128-148.

REFERENCES

1. Dokumentaciya OpenCV: Obuchenie klassifikatorov kaskada Haara [OpenCV documentation: Haar cascade classifier training]. Available at: https://docs.opencv. org/2.4.13/doc/user_guide/ug_traincascade.html (accessed 10.05.2019).

2. Yakimov P. Predvaritelnaya obrabotka cifrovyh izobrazheniy v sistemah lokalizacii i raspoznavaniya dorozhnyh znakov [Preprocessing of digital images in system of location and recognition of road signs]. Kompyuternaya optika, 2013, no. 3, pp. 401-405.

3. Aghdam H., Heravi E., Puig D. A practical approach for detection and classification of traffic signs using Convolutional Neural Networks. Robotics and Autonomous Systems, 2016, no. 84, pp. 97-112.

4. LeCun Y., Sermanet P. Traffic Sign Recognition with Multi-Scale Convolutional Networks. Proceedings of International Joint Conference on Neural Networks, 2011.

5. Shustanov A., Yakimov P. CNN Design for Real-Time Traffic Sign Recognition. 3rd International Conference "Information Technology and anotechnology", 2017, pp. 25-27.

6. Yi-Qing W. An Analysis of the Viola-Jones Face Detection Algorithm. Image Processing On Line, 2014. no. 4, pp. 128-148.

Материал поступил в редакцию 23.04.2020

© Гурин В.И., 2020