УДК 62
Технические науки
Смольянинов Виктор Андреевич, студент-магистр, Калужский филиал ФГБОУ ВО «Московский государственный технический университет имени Н.Э. Баумана (национальный исследовательский университет)» Гришунов Степан Сергеевич, аспирант, Калужский филиал ФГБОУ ВО «Московский государственный технический университет имени Н.Э. Баумана (национальный исследовательский университет)» Белов Юрий Сергеевич, к.ф. -м.н., доцент, Калужский филиал ФГБОУ ВО «Московский государственный технический университет имени Н.Э. Баумана (национальный исследовательский университет)»
ПРОГРАММНЫЙ КОМПЛЕКС ОБНАРУЖЕНИЯ И РАСПОЗНАВАНИЯ
ДОРОЖНЫХ ЗНАКОВ
Аннотация: В данной статье описывается система поиска и распознавания дорожных знаков в потоковом видео на основе библиотеки OpenCV и сверточной нейронной сети. Разработанная модель использует в качестве входных данных последовательность видеокадров. Сначала происходит конвертация видеокадра в цветовое пространство HSV. Затем к этому изображению применяется фильтр размытия (blur) 5х5. Размытое HSV-изображение бинаризуется по порогу. Над двоичным изображением проводятся морфологические операции по удалению шума. Следующим этапом проводится контурный анализ, в результате которого отбирается самый большой по площади. Затем из исходного изображения извлекается область с потенциальным знаком. На вход классификатору подаются видеокадры, полученные с помощью алгоритма поиска дорожных знаков. В результате классификации пользователь получает конечную информацию о детектированном дорожном знаке. Основное внимание уделяется тестированию производительности модели. Экспериментально было оценено качество работы
алгоритмов поиска и распознавания дорожных знаков на примере видеопотока реального времени, сгенерированного при нормальном дневном освещении. Эксперимент показал, что точность детекции составляет 87,42%, а точность распознавания - 97,64%. Общий процент работы системы составляет 80,52%.
Ключевые слова: поиск дорожных знаков, распознавание дорожных знаков, OpenCV, сверточная нейронная сеть.
Annotation: This article describes a system for searching and recognizing traffic signs in streaming video based on the OpenCV library and a convolutional neural network. The developed model uses a sequence of video frames as input data. First, the video frame is converted to the HSV color space. Then a 5x5 blur filter is applied to this image. The blurry HSV image is threshold binarized. Morphological noise removal operations are performed on the binary image. The next step is contour analysis, as a result of which the largest area is selected. Then the area with the potential sign is extracted from the original image. The input to the classifier receives video frames obtained using the traffic sign search algorithm. As a result of the classification, the user receives the final information about the detected road sign. The focus is on testing the performance of the model. The quality of the algorithms for the search and recognition of road signs was experimentally evaluated using the example of a real-time video stream generated in normal daylight. The experiment showed that the detection accuracy is 87.42%, and the recognition accuracy is 97.64%. The overall percentage of the system is 80.52%.
Keywords: traffic sign detection, traffic sign recognition, OpenCV, convolutional neural network.
Введение. В предыдущей статье [1] на основе материалов исследования различных подходов и методов обработки изображений, содержащих объекты заданного класса [2], была спроектирована и обучена модель нейронной сети для распознавания дорожных знаков. Эта модель представляет собой общий иерархический экстрактор признаков, который преобразует обработанные
интенсивности пикселя входного изображения в вектор признаков, который классифицируется двумя полносвязными слоями. В данной статье рассматривается программный комплекс обнаружения и распознавания дорожных знаков на основе билиотеки OpenCV и сверточной нейронной сети.
Общее описание модели. Работа системы обнаружения и распознавания дорожных знаков происходит в два этапа: детектирование дорожных знаков; распознавание дорожных знаков. Общая модель, изображенная на рисунке 1, состоит из ряда взаимосвязанных модулей:
Рис. 1. Общий вид модели системы распознавания дорожных знаков
Веб-камера. Для работы камеры не требуется установка драйверов. Устройство выдает детализированное широкоформатное изображение, которое используется на более поздних этапах для разработки и тестирования алгоритма цветовой сегментации.
Цветовая сегментация. Сегментация цвета является важным шагом, на котором с изображения (видеокадра) устраняются все фоновые объекты и неважная информация, и генерируется двоичное изображение, содержащее дорожные знаки и любые другие схожие объекты.
Детектирование дорожного знака реализуется по средствам контурного анализа. На предобработанном двоичном изображении выполняется поиск контуров потенциального дорожного знака с помощью функции су2.йпёСоп1:оиг8() [3]. Затем найденные контуры отображаются на изображении (су2.ёга,^оп1:оиг8()). Далее происходит поиск наибольшего по площади контура и поиск области, в
которой он располагается (cv2.boundingRect()). Завершается этап детекции вырезанием области с потенциальным дорожным знаком.
Набор данных для обучения. Учебная база данных состоит из изображений нормализованного размера 40x40 пикселей, взятых из российской базы изображений автодорожных знаков [4]. Набор данных создается и обновляется в режиме обучения таким образом, что из набора изображений отбираются изображения искомых дорожных знаков. Датасет используется для обучения классификатора, а также перед выполнением задачи классификации.
Сверточная нейронная сеть. Предлагаемая нейронная сеть - это общий иерархический экстрактор признаков, который преобразует обработанные интенсивности пикселя входного изображения в вектор признаков, который должен быть классифицирован несколькими, обычно двумя или тремя полносвязными слоями.
Классификация. Классификация выполняется с помощью сверточной нейронной сети, спроектированной на основе [5; 6]. На вход классификатору подаются как тестовая выборка изображений дорожных знаков, так и изображения, полученные с помощью алгоритма поиска дорожных знаков. В результате классификации пользователь получает конечную информацию о детектированном дорожном знаке.
Тестирование модели. В качестве эксперимента применялся алгоритмом поиска дорожных знаков, основанный на библиотеке OpenCV. Экспериментально было оценено качество его работы на примере видеопотока реального времени (видеопоток сгенерирован при нормальном дневном освещении).
Форма контура знака Общее количество знаков на видео Количество корректно обнаруженных знаков Верное обнаружение (%)
Треугольник 276 220 79,71
Четырехугольник 180 148 82,22
Окружность 160 140 87,5
Всего 616 508 82,47
Согласно таблице 1 можно заметить, что вследствие своих недостатков, предлагаемый алгоритм поиска дорожных знаков неустойчив к некоторому роду шумов: частичное перекрытие знаков, низкое качество видео ввиду малого разрешения камеры, а также плохой ее стабилизации и недостаточной цветопередачи. В режиме реального времени алгоритм корректно детектирует 82,47% дорожных знаков.
Конечные изображения дорожных знаков, полученные из видеопотока в результате алгоритма поиска, масштабируются и подаются на вход обученной сверточной нейронной сети.
Согласно рисунку 2 средний показатель качества распознавания знаков на изображениях, полученных с видеопотока, составляет 97,64%, что является доверительным показателем. Результаты распознавания знаков ограничения скорости были объединены ввиду отсутствия всех четырех наименований этого класса в видеопотоке.
Рис. 2. Результат работы алгоритма распознавания дорожных знаков
Можно заметить, что процент классификации изображений, извлеченных из видеопотока чуть меньше процента классификации тестовых сгенерированных изображений. Эту разницу можно обосновать тем, что изображения, на которых обучалась нейронная сеть, имеют одно и то же происхождение, что и тестовые синтезированные изображения, в то время как реальные изображения, в свою очередь, имеют разное родство с изображениями обучающей выборки [7].
Объединив результаты оценки качества работы поиска и распознавания, общий процент работы предлагаемой модели составил 80,52%. Исходя из проведенного эксперимента, можно сделать вывод о том, что «слабым местом» модели является этап детектирования.
Для оценки времени работы предлагаемой модели, алгоритмы тестировались на базе процессора AMD Ryzen 5 2600 3,4Ггц. Разрешение
входного изображения (видеокадра) варьировалось от 1920 х 1080 до 480 х 270 для создания пирамиды изображений с шестиступенчатым уменьшением размера для обработки (Рис. 3 - 5).
Рис. 3. Зависимость времени работы алгоритма детекции от разрешения кадра
Рис.4. Зависимость времени работы алгоритма распознавания от разрешения кадра
20 10
О -Т-Т-1-Т-Т-
1920x 1080 1632 x 918 Ш х 756 1056x591, 768x1*32 Ш х 270
Разрешение кадра, рх
Рис. 5. Зависимость точности алгоритма детекции от разрешения кадра
Таблица 3. Производительность предлагаемой модели
Разрешение кадра Обнаружение (мс) Распознавание (мс) Всего (мс) Точность детекции (%) Количество кадров/с
1920х1080 352,26 135,45 487,71 82,47 2,05
1632х918 252,03 95,69 347,72 82,12 2,88
1344х756 167,99 64,97 232,96 80,71 4,29
1056х 594 97,33 40,16 137,49 77,73 7,27
768 х 432 49,02 20,92 69,94 70,7 14,30
480 х 270 15,47 8,17 23,64 42,7 42,30
Всего 934,1 365,36 1299,46
В таблице 3 показано время выполнения обнаружения и распознавания. Процессорная обработка алгоритмов модели занимает 1299,46 мс для всех вариантов разрешения изображений. Стоит отметить, что разрешение входного кадра положительно сказывается на время работы алгоритмов: чем ниже разрешение изображения, тем быстрее модель его обрабатывает. Однако с уменьшением разрешения входного видеокадра, снижается качество работы модели. На рисунке 6 проиллюстрирован пример работы предлагаемой модели.
Рис.6. Пример работы системы распознавания дорожных знаков
Выводы: В данной статье была протестирована система обнаружения и распознавания дорожных знаков. Эксперимент показал, что детектор дорожных знаков, основанный на алгоритмах компьютерного зрения, неустойчив к некоторому роду шумов: частичное перекрытие знаков, низкое качество видео ввиду малого разрешения камеры, а также плохой ее стабилизации и недостаточной цветопередачи. Таким образом, можно сделать вывод о том, что детектор не достаточно эффективен для решения поставленной задачи в реальном времени.
Библиографический список:
1. Смольянинов В.А., Гришунов С.С., Белов Ю.С. Подходы к проектированию и разработке программного детектора дорожных знаков // В сборнике: Сборник избранных статей по материалам научных
конференций ГНИИ «Нацразвитие». Материалы Международных научных конференций. 2020. С. 145-149.
2. Смольянинов В.А., Белов Ю.С. Сравнительный анализ алгоритмов поиска дорожных знаков // В сборнике: Высокие технологии и инновации в науке. Сборник избранных статей Международной научной конференции. 2020. С. 186-190.
3. Ян, Э. С. Программирование компьютерного зрения на языке Python / Э. С. Ян; перевод с английского А. А. Слинкин. — Москва: ДМК Пресс, 2016. — 312 с. — ISBN 978-5-97060-200-3. — Текст: электронный // Лань: электронно-библиотечная система. — URL: https://e.lanbook.com/book/93569 (дата обращения: 13.01.2021).
4. Шахуро В., Конушин А. Российская база изображений автодорожных знаков // Компьютерная оптика. 2016. №2. С. 294-300.
5. Class Data Science Project 2020 — Traffic Signs Recognition, доступ: https://medmm.com/dataflair/class-data-science-project-for-2020-traffic-signs-recognition-12b09c131742, дата обращения: 22.12.2020.
6. A. Shawon, M. Jamil-Ur Rahman, F. Mahmud, and M. M. Arefin Zaman, "Bangla handwritten digit recognition using deep cnn for large andunbiased dataset" // Proceedings of 2018 International Conference on Bangla Speechand Language Processing (ICBSLP), Sep. 2018, pp. 1-6.
7. D. Yasmina, R. Karima and A. Ouahiba, "Traffic signs recognition with deep learning" // 2018 International Conference on Applied Smart Systems (ICASS), Medea, Algeria, 2018, pp. 1-5, doi: 10.1109/ICASS.2018.8652024.