УДК 004.8
Толегенов Д.К.
магистрант по образовательной программе Компьютерные науки и аналитика больших данных Казахстанско-Британский технический университет (г. Алматы, Казахстан)
ПРИМЕНЕНИЕ АЛГОРИТМОВ ГЛУБОКОГО ОБУЧЕНИЯ ДЛЯ РАСПОЗНАВАНИЯ ДОРОЖНЫХ ЗНАКОВ
Аннотация: в текущей работе предлагается модель и приложение, распознающее многие типы дорожных знаков, а также исследуется эффективность моделей машинного обучения при решении задач компьютерного зрения. Для реализации задачи был выбран язык программирования Python, поскольку этот язык является универсальным интерпретируемым языком со множеством полезных библиотек для компьютерного зрения. В данной дипломной работе активно используется библиотека компьютерного зрения OpenCV, так как в эту библиотеку входит набор программ компьютерного зрения, а именно обработка изображений, доступ к веб-камере, построение моделей и так далее. Для построения модели был выбран один из современных методов машинного обучения — сверточная нейронная сеть. Результатом работы является графический интерфейс для распознавания дорожных знаков в реальном времени с помощью видеокамеры.
Ключевые слова: распознавание дорожных знаков, машинное обучение, глубокое обучение, сверточная нейронная сеть.
Компьютерное зрение в последние годы стало одной из самых передовых областей технологического прогресса. Классификация вещей, снятых камерой на фото или видео, - основная задача этого направления. Методы машинного обучения, основанные на кейсах, используются для решения типичных задач. Такие методы часто требуют большого размера обучающей выборки [1]. Качество распознавания на основе современного машинного обучения существенно зависит от меры готовящегося множества.
В данной работе предлагается применение компьютерного зрения для распознавания дорожных знаков с использованием алгоритма машинного обучения.
Одной из важнейших частей нашей повседневной жизни являются дорожные знаки. Они предоставляют жизненно важную информацию, которая гарантирует безопасность всех, кто находится в непосредственной близости от нас. [2].
Дорожный знак представляет собой фиксированный, плоский искусственный объект. Алгоритмы распознавания дорожных знаков применяются для решения двух разных задач [3].
Управление автоматизированным автомобилем стоит на первом месте. Автономные транспортные средства — это автоматизированные автомобили, которые могут передвигаться по дорогам общего пользования без водителя. Идентификация объектов является важнейшей частью системы управления беспилотным транспортным средством. Основными объектами интереса являются другие автомобили, пешеходы, светофоры и дорожные указатели.
Автоматическое картографирование на основе информации с автомобильных видеорегистраторов — второй вид деятельности, в котором используется распознавание дорожных знаков. Работа важна, поскольку сегодня создание и поддержание комплексных дорожных карт требует либо больших затрат, либо огромного количества труда [4].
По разным причинам водители иногда не замечают дорожные знаки на определенном участке дороги. Чрезмерная усталость, мешающий шум или вид за окном, погодные условия или яркий свет встречного автомобиля могут стать причиной того, что вы пропустите сигнал, несущий важную информацию. Чтобы этого не допустить, была разработана специальная система, распознающая дорожный знак и оповещающая водителя в виде звукового сигнала и изображения на экране автомобиля. Одним из основных требований к таким системам является распознавание дорожных знаков. Важным исключением является распознавание информационно-указательных и дополнительных
информационных знаков. Распознавание дорожных знаков предназначено для предупреждения водителей о скорости. Эта система распознает знаки ограничения скорости при обгоне и напоминает водителю о текущем ограничении скорости, если водитель едет быстрее [5]. На этапе различения дорожных знаков алгоритм классификации использует специально подготовленные эталонные бинарные изображения, представляющие собой внутренние области дорожных знаков.
Время выполнения такой дискриминации составляет в среднем 1-2 мс при использовании разных типов эталонных изображений. Тип изображения — это уникальное изображение отдельного дорожного знака. Эталонных изображений каждого типа может быть неограниченное количество [6]. Основная цель работы - создание приложения, распознающего многие виды дорожных знаков.
Для достижения цели были решены следующие задачи:
1. Проанализированы доступные методы классификации машинного обучения.
2. Для обучения модели были изучены различные существующие наборы данных.
3. Модель сделана на основе сверточной нейронной сети.
4. Создан графический интерфейс, в котором реализована построенная модель для проверки успешности классификации.
Постановка задачи.
Быстрое развитие технологий компьютерного зрения, особенно в области распознавания дорожных знаков, стало важнейшим компонентом обеспечения безопасности и эффективности на дорогах. Несмотря на прогресс, достигнутый в этой области, проблемы сохраняются, в том числе различия во внешнем виде дорожных знаков из-за таких факторов, как различия в размере, форме и цвете между странами. Кроме того, реальные сценарии создают препятствия, такие как неясные знаки, различные условия освещения и необходимость распознавания в реальном времени. Целью данной работы является решение этих проблем и содействие разработке надежной системы распознавания дорожных знаков.
Метрики.
Для оценки эффективности предлагаемой модели и приложения будут учитываться несколько показателей:
1. Точность. Основным показателем оценки эффективности модели является точность, которая измеряет процент правильно классифицированных дорожных знаков. Высокая точность говорит о способности модели достоверно распознавать разнообразные дорожные знаки.
2. Производительность распознавания в реальном времени. Эффективность системы в распознавании дорожных знаков в реальном времени будет оцениваться на основе времени, затраченного на обработку и классификацию знаков в прямых видеопотоках. Низкая задержка имеет решающее значение для практических приложений, таких как автономные транспортные средства.
3. Выбор набора данных и разнообразие. Выбор набора данных Немецкого эталона распознавания дорожных знаков (GTSRB) оправдан, поскольку он соответствует правилам дорожных знаков в Республике Казахстан. Разнообразие набора данных, охватывающего различные типы знаков и сценариев, способствует адаптации модели к реальным условиям.
4. Показатели обучения модели. На этапе обучения будут отслеживаться такие показатели, как потери, потери при проверке, точность и точность проверки. Эти метрики дают представление о возможностях конвергенции и обобщения модели сверточной нейронной сети (CNN).
5. Надежность распознавания. Будет проверена способность системы обрабатывать изменения качества изображения, условий освещения и перекрытия знаков. Надежная модель должна демонстрировать стабильную производительность в различных обстоятельствах.
Путем систематической оценки точности модели, ее производительности в режиме реального времени, соответствия набора данных, показателей обучения и надежности эта работа направлена на содействие развитию надежных и эффективных систем распознавания дорожных знаков.
Сбор данных.
Прежде чем приступить к построению модели, важно проанализировать данные. При изучении дорожных знаков и изучении существующих наборов данных было обнаружено разнообразие дорожных знаков, а именно различия в размерах, форме и цветах знаков между странами, и для реализации был выбран наиболее подходящий существующий набор данных. Был выбран набор данных GTSRB, сопоставимый с дорожными знаками по законодательству Республики Казахстан.
Набор данных включает 43 различных типа дорожных знаков и 34799 фотографий. К ним относятся общие сигналы дорожного движения, такие как ограничение скорости, знаки «Уступи дорогу», знаки «Стоп», приоритетные дороги, знаки «Въезд запрещен», знаки «Пешеходы» и другие. Примеры фотографий нескольких классов показаны на рисунке 1.
0-5реес1 ¡¡ггнЕ (20кт/Ю
Ш Ф Щ, • Ф
13-У1е1<1
ЗБ-АИеас! оп1у
■ ■ п п т
27-Рес1е51мап5
Рис 1. Примеры изображений из некоторого класса.
Предварительная обработка изображений.
Каждое изображение набора данных предварительно обрабатывается. Для лучшей классификации все фотографии набора данных были изменены на версии в оттенках серого. Оттенки серого — это цветовой режим для изображений, которые отображаются в различных оттенках серого и настраиваются как стандарты яркости белого цвета в форме таблицы. Для
увеличения выборки данных использовались существующие методы аугментации данных [17].
Построение модели.
Модель CNN была реализована с четырьмя сверточными слоями и одним полносвязным слоем. Модель сначала получила сверточные слои с 32 фильтрами. Затем добавляется сверточный слой с 64 фильтрами. За каждым слоем помещается максимальный вытягивающий слой с размером окна 2 2. Чтобы сеть не переобучалась, также добавляются отпадающие слои с коэффициентами 0,25 и 0,5. В последних строках мы добавляем плотный слой, который использует функцию активации softmax для классификации данных на 43 группы. Схема модели представлена на рисунке 2.
Footing Pooling Pooling Connected
Layerl Layer 2 Layer 3 Layer
{
Feature Extractor Classifier
Рис 2. Схема CNN.
Модель обучалась в течение 20 эпох, а графики потерь и точности представлены на рисунке 3. В конце последней эпохи модель получила следующие значения метрик: потери = 0,05, точность = 0,98, потеря проверки = 0,02, Точность проверки = 0,99, что очень хорошо. Разработанная модель имела точность 96 процентов, когда мы тестировали ее с использованием нашего набора тестовых данных.
epoch epoch
a) График точности модели b) График потерь модели
Рис 3. Графики производительности модели.
Результаты.
Распознавание графического интерфейса по изображению.
Для создания приложения для реализации построенной модели была выбрана встроенная библиотека Python Tkinter. Python имеет довольно много фреймворков GUI (графического пользовательского интерфейса), но только Tkinter встроен в стандартную библиотеку языка. Tkinter имеет несколько преимуществ. Он кроссплатформенный, поэтому один и тот же код можно использовать в Windows, macOS и Linux.
Визуальные элементы визуализируются с помощью собственных элементов текущей операционной системы, поэтому приложения, созданные с помощью Tkinter, выглядят так, как будто они принадлежат платформе, на которой они работают.
При создании приложения были реализованы 2 опции: распознавание дорожных знаков по загруженному изображению и распознавание в реальном времени с помощью веб-камеры.
Классификация по первому варианту осуществляется путем загрузки нужного изображения в окно и кнопки распознавания. Первым делом было создано окно дисплея с виджетами. Графический интерфейс должен содержать 2 кнопки: первая — для загрузки изображения, вторая — для распознавания.
Поскольку в модели использовались обработанные изображения в оттенках серого, перед прогнозированием необходимо провести те же операции [18].
Traffic sign recognition by image
Upbad en invqe j Ctassr/y Image
Class: Stop
Рис 4. Результат распознавания знака «Стоп».
Распознавание в реальном времени графического интерфейса.
Официальный исходный код обеспечивает обнаружение изображений, но практичность невысока, поэтому исходный код модифицируется для использования встроенной камеры ноутбука или USB-камеры для обнаружения в реальном времени.
Чтобы сделать распознавание дорожных знаков в реальном времени, нам понадобится:
1. Получить доступ к нашей веб-камере/видеопотоку.
2. Применить нашу подготовленную модель к каждому кадру.
Для реализации классификации в реальном времени использовалась библиотека OpenCV. OpenCV — это библиотека для анализа, классификации и обработки изображений. OpenCV — мощная библиотека машинного зрения, которая регулярно используется в роботах для распознавания объектов в окружающем мире.
Видео — это не что иное, как серия изображений, часто называемых кадрами. Все, что нужно сделать, — это просмотреть все кадры видеопоследовательности, а затем обработать по одному кадру за раз. Чтение видеопотока с веб-камеры очень похоже на чтение кадров из видео. Это все
благодаря гибкости класса видеозахвата в OpenCV, который для удобства имеет несколько перегруженных функций, принимающих разные входные аргументы. Вместо указания исходного местоположения видеофайла или последовательности изображений нам необходимо указать индекс устройства видеозахвата.
Рис 5. Результаты распознавания в реальном времени (Приоритетная дорога).
Результат теста представлен на рисунке 5. При правильном ракурсе и хорошем качестве распознавание прошло успешно. Распознавание через веб-камеру работает с переменным успехом, дорожные знаки, имеющие достаточное количество изображений для обучения модели, классифицируются как отличные, а там, где их недостаточно, вероятность предсказания варьируется и не может прийти к однозначному выводу. Для качественного распознавания дорожного знака необходима дальнейшая модификация системы обнаружения объектов, где мы сможем не только классифицировать, но и обнаруживать дорожные знаки по крупномасштабным изображениям.
Заключение.
В ходе работы была построена сверточная нейросетевая модель, модель показала себя превосходно и показала точность 96% при тестировании на тестовом наборе данных. Был создан графический интерфейс, в котором мы повторно протестировали модель, загрузив разные типы изображений дорожных
знаков из интернет-источника. Распознавание через веб-камеру работает с переменным успехом, дорожные знаки, имеющие достаточное количество изображений для обучения модели, классифицируются как отличные, а там, где их недостаточно, вероятность предсказания варьируется и не может прийти к однозначному выводу. В зависимости от качества и размера изображения классификация прошла успешно. Далее с помощью видеокамеры в приложение была добавлена функция распознавания в реальном времени. Классификация проходила с переменным успехом, в зависимости от качества видео, затемнения и оценки распознавания дорожного знака происходит с задержкой в пару секунд, правильно классифицируется только если дорожный знак четко поднесен к камере. Этот недостаток программного кода решается введением методов обнаружения объектов. Реализуется разработка алгоритма обнаружения дорожного знака на трехмерном изображении. Для качественного распознавания дорожного знака необходима дальнейшая модификация системы обнаружения объектов, где мы сможем не только классифицировать, но и обнаруживать дорожные знаки по крупномасштабным изображениям.
Дальнейшим продолжением проекта является реализация данного алгоритма и создание полноценного программного обеспечения.
Алгоритмы распознавания дорожных знаков применяются к двум различным задачам. Во-первых, это управление автоматизированным автомобилем. Автоматическое картографирование на основе информации с автомобильных видеорегистраторов — второй вид деятельности, в котором используется распознавание дорожных знаков. Важно выполнить это задание, поскольку в настоящее время составление и поддержание детальных дорожных карт требует много времени и денег. Реализация и создание обеих этих альтернатив будут учтены в последующей работе.
СПИСОК ЛИТЕРАТУРЫ:
1. Ghosh A., Sufian F., Sultana A., Chakrabarti A., De D. Fundamental concepts of convolutional neural network, 2019;
2. Lee. Comparing deep neural networks and traditional vision algorithms in mobile robotics. Pdfs.Semanticscholar.Org, 2015;
3. Lai Y., Wang N., Yang Y., Lin L. Traffic signs recognition and classification based on deep feature learning, vol. 2018-January, 2018;
4. Shin H. C., Roth H. R., Gao M., Lu L., Xu Z., Nogues I., Yao J., Mollura D., Summers R. M. Deep convolutional neural networks for computer-aided detection: CNN architectures, dataset characteristics and transfer learning // I E E E Transactions on Medical Imaging. 2016. Vol. 35;
5. Hasan N., Anzum T., Jahan N. Traffic sign recognition system (TSRS): SVM and convolutional neural network, vol. 145, 2021;
6. Soetedjo A., Somawirata I. K. An efficient algorithm for implementing traffic sign detection on low cost embedded system // International Journal of Innovative Computing, Information and Control. 2018. Vol. 14;
7. Greenhalgh J., Mirmehdi M. Real-time detection and recognition of road traffic signs // I E E E Transactions on Intelligent Transportation Systems. 2012. Vol. 13, no. 4, pp. 1498-1506;
8. Kim S., Kwon S. Improvement of traffic sign recognition by accurate ROI refinement // 2015 15th International Conference on Control, Automation and Systems (ICCAS). I E E E, 2015, pp. 926-928;
9. Park J.-G., Kim K.-J. A method for feature extraction of traffic sign detection and the system for real world scene // 2012 I E E E International Conference on Emerging Signal Processing Applications. I E E E, 2012, pp. 13-16;
10. Fitriyah H., Widasari E. R., Setyawan G. E. Traffic sign recognition using edge detection and eigen-face: Comparison between with and without color pre-classification based on hue // 2017 International Conference on Sustainable Information Engineering and Technology (SIET). I E E E, 2017, pp. 155-158;
11. Fleyeh H., Davami E. Eigen-based traffic sign recognition // IET Intelligent Transport Systems. 2011. Vol. 5, no. 3, pp. 190-196;
12. Soendoro D., Supriana I. Traffic sign recognition with color-based method, shape-arc estimation and SVM // Proceedings of the 2011 International Conference on Electrical Engineering and Informatics. I E E E, 2011, pp. 1-6;
13. Schuszter C. A comparative study of machine learning methods for traffic sign recognition // 2017 19th International Symposium on Symbolic and Numeric Algorithms for Scientific Computing (SYNASC). I E E E, 2017, pp. 389-392;
14. Qian R., Zhang B., Yue Y., Wang Z., Coenen F. Robust Chinese traffic sign detection and recognition with deep convolutional neural network // 2015 11th International Conference on Natural Computation (ICNC). I E E E, 2015, pp. 791-796;
15. Sheikh M. A. A., Kole A., Maity T. Traffic sign detection and classification using colour feature and neural network // 2016 International Conference on Intelligent Control Power and Instrumentation (ICICPI). I E E E, 2016, pp. 307-311;
16. Moura T., Valente A., Sousa A., Filipe V. Traffic sign recognition for autonomous driving robot // 2014 I E E E International Conference on Autonomous Robot Systems and Competitions (ICARSC). I E E E, 2014, pp. 303-308;
17. Dhar P., Abedin M. Z., Biswas T., Datta A. Traffic sign detection - a new approach and recognition using convolution neural network, vol. 2018-January, 2018;
18. Vennelakanti A., Shreya S., Rajendran R., Sarkar D., Muddegowda D., Hanagal P. Traffic sign detection and recognition using a CNN ensemble, 2019.
Tolegenov D.K.
Kazakh-British Technical University (Almaty, Kazakhstan)
APPLICATION OF DEEP LEARNING ALGORITHMS FOR TRAFFIC SIGN RECOGNITION
Abstract: current work proposes a model and an application that recognizes many types of road signs, as well as to explore the effectiveness of machine learning models in solving computer vision problems. To implement the task, the Python programming language was chosen, since this language is a universal interpreted language with many useful libraries for computer vision. In this thesis, the OpenCV computer vision library is actively used, since this library includes a set of computer vision programs, namely, image processing, accessing to a webcam, model building, and so on. One of the modern machine learning methods Convolutional Neural Network was chosen to build the model. The result of the work is a graphical interface for real-time traffic sign recognition using a video camera.
Keywords: traffic sign recognition, machine learning, deep learning, convolutional neural
network.