Статья опубликована в рамках: Научного журнала «Студенческий» № 11(223)
Рубрика журнала: Информационные технологии
Скачать книгу(-и): скачать журнал часть 1, скачать журнал часть 2, скачать журнал часть 3, скачать журнал часть 4
РАЗРАБОТКА НЕЙРОСЕТЕВОГО МЕТОДА ДЕТЕКТИРОВАНИЯ И РАСПОЗНАВАНИЯ ДОРОЖНЫХ ЗНАКОВ НА ОСНОВЕ YOLOV3
АННОТАЦИЯ
В этой статье рассмотрена задача детектирования и распознавания дорожных знаков при помощи сверточной нейронной сети на основе архитектуры YOLO в режиме реального времени. Разработан эффективный метод обнаружения и классификации различных категорий дорожных знаков. Описаны процесс обучения глубокой нейронной сети на открытых датасетах. Приведена структура полученной нейронной сети, и рассмотрены наиболее часто используемые метрики для оценки качества ее работы. Выбранная архитектура в качестве основы для нейросети обладает рядом преимуществ. Результаты исследования позволяют улучшить способность ощущения мобильного робота.
ABSTRACT
This article considers the problem of detecting and recognizing road signs using a convolutional neural network based on the YOLO architecture in real time. An efficient method for detecting and classifying various categories of road signs has been developed. The process of training a deep neural network on open datasets is described. The structure of the resulting neural network is given, and the most commonly used metrics for assessing the quality of its work are considered. The chosen architecture as the basis for the neural network has a number of advantages. The results of the study allow improving the sensing ability of the mobile robot.
Ключевые слова: компьютерное зрения, детектирование объектов, распознавание изображений, глубокое обучение, сверточные нейронные сети.
Keywords: computer vision, object detection, image recognition, deep learning, convolutional neural networks.
Введение
Одной из важных особенностей современных автомобилей и будущих полностью автономных транспортных средств является их зрение, которое делает их способными чувствовать окружающую среду и помогает водителю и брать на себя управление в опасных ситуациях. Эффективное и точное обнаружение дорожных знаков по-прежнему является сложной задачей из-за ряда реальных факторов, влияющих на качество изображения. В работе был представлен алгоритм YOLO версии 3, направленный на построение архитектуры глубокой CNN для распознавания дорожных знаков.
Подходы CNN для решения задачи распознавания изображений
Существующие сети для детектирования объектов на изображении можно разделить на два типа согласно технике, которой они придерживаются в процессе анализирования входного изображения: One-shot detectors и Two-shot detectors. Сетям, относящимся к типу one-shot detectors, который характеризуется значительной быстротой, но меньшей точностью полученных результатов, для определения объекта на изображении достаточно проанализировать это изображение всего лишь один раз. В основе же сетей типа Two-shot detectors, более медленных, но показывающих при этом более точные результаты, лежит несколько иной принцип работы. Суть работы сводится к тому, что детектирование объектов происходит по регионам. На входном изображении выделяются т.н. регионы-кандидаты, на которых предположительно должны присутствовать необходимые объекты. В сети R-CNN данные регионы формировались с помощью выборочного поиска, а классификация происходила с помощью метода опорных векторов SVM [11]. Позднее в сети Fast R-CNN были предложены некоторые модификации, позволившие ускорить сеть. YOLO получает полное изображение, которое делит на ячейки, предсказывая для каждой из них вероятность присутствия в ней искомых объектов. Такое преимущество модели дает использование единой сети свертки. Таким образом, при внимательном рассмотрении YOLO в значительной мере способна составить конкуренцию другим типам архитектур сетей.
Сверточная нейронная сеть на основе архитектуры YOLO
В сетях модели YOLO входное изображение делится на ячейки посредством наложения на него сетки определенного размера. Для каждой формирующейся при этом ячейки выполняется предсказание массива чисел, в состав которого входят координаты ограничивающего прямоугольника (верхняя левая и правая нижняя точки) или координаты центра прямоугольника с его шириной и высотой, а также вероятность класса, к которому относится обнаруженный на изображении объект.
В сетях архитектуры YOLO все эти манипуляции выполняются при помощи единой сверточной сети [14]. После того, как сеть получила входное изображение и выполнила необходимые операции по разбивке его на ячейки, применяется алгоритм подавления немаксимумов, который способствует отсеиванию излишних предсказаний -non-max suppression [15]. В последнем сверточном слое получаются координаты прямоугольника (или координаты центра с шириной и высотой). Сеть YOLO обладает рядом преимуществ по сравнению с другими сетями для детектирования: работает с очень высокой скоростью, работает сразу с целым изображением, изучает обобщаемые представления объектов, что позволяет сети лучше работать на новых данных.
Изображение, подающееся на вход нейросети, делится на S х S ячеек. Для каждого изображенного на рисунке объекта существует ячейка, ответственная за его предсказание - это ячейка, в которую попадает центр объекта. В ячейках осуществляется предсказание В ограничивающих прямоугольников и С вероятностных оценок классов. При предсказании ограничивающих прямоугольников рассматриваются 5 компонентов:
– x и y, представляющие собой координаты центра прямоугольника; при этом осуществляется нормализация координат, вследствие чего их значения оказываются в интервале [0,1];
– w и h, соответственно представляющие собой ширину и высоту ограничивающего прямоугольника; их значения нормализуются аналогично значениям x и y;
– степень уверенности, которая отображает вероятность присутствия либо отсутствия объекта определенного класса на изображении.
Количество значений, получаемых на выходе, таким образом, равно S х S х B х 5. Вероятностная оценка класса осуществляется для каждой ячейки лишь один раз, независимо от количества ограничивающих прямоугольников В, и вычисляется S х S х C раз. В результате на выходе нейросети мы получаем S х S х (В х 5 + С)-й тензор.
С целью повышения стабилизации и производительности работы нейронных сетей может применяться метод пакетной нормализации (batch-normalization) [16]. В качестве функции активации часто используется Leaky ReLU [7] (также называемая «ReLU с «утечкой»).
Архитектура системы для решения задач детектирования и распознавания
Общий процесс решения задачи связанное с детектированием и распознаванием дорожных знаков разделяется на два этапа. На первом этапе первая модель (модель-1) обучается находить дорожные знаки, разделенные на 4 категории [12]. На втором этапе вторая модель (модель-2) обучается классифицировать обнаруженные фрагменты изображения в один из 43 классов [15]. Следовательно, модель-1 и модель-2 соответственно решают проблемы обнаружения и классификации. Архитектура второй модели имеет один сверточный слой с 32 фильтрами, функцию активации ReLU, один слой понижающей дискретизации с максимальным коэффициентом 2 x 2 и скрытый аффинный слой с 500 нейронами, за которым следует выходной слой с 43 нейронами в качестве количества классов. Архитектура системы представлена на рисунке 1.
Рисунок 1. Общая блок-схема системы
Обучающая выборка и выборка реальных дорожных сцен
Для обучения разработанной архитектуры на основе модели YOLO версии 3 использовались наборы данных GTSDB [13] и GTSRB [14]. Первый набор данных был применен для обучения этапу локализации, который предсказывает координаты сигналов трафика и возвращает их в качестве выходных данных. Этап классификации был обучен на втором наборе данных и в качестве входных данных принимает выходные данные первого этапа. На рисунке 2 показаны изображения дорожных знаков, содержащихся в обучающем наборе.
Рисунок 2. Типы дорожных знаков
Другой набор данных для обучения сети – это база данных немецких дорожных знаков GTSDB [13]. На рисунке 3 показаны примеры изображений реальных сцен.
Рисунок 3. Примеры изображений из выборки
Дорожные знаки для модели-1 сгруппированы по следующим категориям: запрещающие, опасные, обязательные и прочие. Модель-1 обучалась на GTSDB. Общее количество изображений для обучения и проверки — 630 и 111. Количество исключенных изображений без дорожных знаков — 159. Модель-2 обучалась на GTSRB. Перед обучением поднаборы данных были нормализованы путем деления значений пикселей на 255 и дальнейшей предварительной обработки путем вычитания среднего изображения, рассчитанного из изображений для обучения.
Получение якоря с использованием кластеризации K-средних
В работе был использован механизм якоря для генерации якорных прямоугольников для набора данных, то есть изображение делится на клетки (grid cells) N × N, и каждой клетке назначается 3 якоря, следовательно, каждое изображение будет генерировать N × N × 3 якорных прямоугольников, что можно значительно повысить точность и эффективность предсказания.
В работе был использован метод кластеризации K-средних [8] для кластеризации отмеченных наземных истинных прямоугольников (ground truth) в наборе данных, чтобы выбрать соответствующий прямоугольник в качестве якорного прямоугольника, который лучше подходит для последующего детектирования. Формула расстояния в методе кластеризации K-средних определяется следующим образом:
(1)
В работе координаты ограничивающих прямоугольников дорожного знаков получаются путем прогнозирования относительного положения относительно клетки. Каждый ограничивающий прямоугольник имеет четыре координаты, которые равны соответственно. Их конкретные определения следующее:
(2)
(3)
(4)
(5)
Где
и расстояния по x и y между клеткой и началом верхнего левого угла соответственно;
и Ширина и высота определенного прямоугольника.
Увеличение данных для снижения переобучения
Поскольку обучение сверточной нейронной сети включает в себя большое количество тренировок и обучения параметров признаков, будут возникать явления переобучения и недообучения. В модели был выбран подходящий метод для того, чтобы уменьшить переобучение и повысить точность детектирования объектов всей модели. Метод улучшения данных расширяет существующие наборы данных до n раз путём различных операций обработки изображения, так что позволяет не будет возникать переобучение из-за небольших объёмов датасета при углублении сверточной нейронной сети. Аугментация данных производилось у случайным образом отобранных изображений из набора данных и включала в себя следующие действия: масштабирование, сдвиг, поворот и отражение, добавление цифрового шума и искажения цветовой гаммы. Метод улучшения данных не будет повторять данные, введенные в сверточной нейронной сети, и все эти данные связаны друг с другом, что может эффективно уменьшить влияние переобучения.
IoU - метрика, используемая для определения процента или доли перекрытия предсказанной области местонахождения объекта области, где он реально располагается [9-13]. В задаче детектирования объектов обычно используется ограничивающий прямоугольник для его представления. IoU вычисляет соотношение пересечения и объединения предсказуемого прямоугольника и реального прямоугольника. Формула расчета IoU заключается в следующем:
(6)
Когда IoU используется в качестве ошибки позиционирования, Loss (IoU) = 1 - IoU.
В методе IoU есть две проблемы. Одна из них заключается в том, если предсказуемый и реальный прямоугольник не пересекаются, то есть IoU = 0. Это не может отражать расстояние между двумя прямоугольниками в то время, и функция потери не имеет градиент в то время, поэтому невозможно отрегулировать параметры сети в обратной связи, тем самым возникнет определенную ошибку. Вторая состоит в том, что когда значение IoU, рассчитанное в нескольких случаях, одинаково, позиционирование предсказуемого прямоугольника не совпадает, как показано на рисунке 4:
Рисунок 4. Схема расчёта значения IoU
На рисунке 4 видно, что, хотя значение IoU одинаково, но степень совпадения предсказуемого и реального прямоугольника значительно разная. Следовательно, в работе была использована функция ошибки GIoU [3] в качестве функции ошибки, определение показано следующим образом:
(7)
Где минимальный прямоугольник, который окружает прямоугольники A и B.
Для рисунка 4 расчеты их значения GIoU составляют 0,24, 0,33 и -0,1 соответственно. Значение регрессии в середине рисунка 4 является лучшим показателем. Когда предсказуемый и реальный прямоугольник перекрываются, т.е. , по формуле может рассчитать GIoU=1;
Когда предсказуемый и реальный прямоугольник не перекрываются, прямоугольники A и B находятся далеко друг от друга, значение GIoU стремится к -1, т.е. значение GIoU находится в диапазоне между -1 и 1. Когда предсказуемый и реальный прямоугольник не перекрываются, значение IoU постоянно равно нулю, в этом случае невозможно отразить расстояние между двумя прямоугольниками. Таким образом, IOU обращает внимание только на область перекрытия, а GIoU не только обращает внимание на область перекрытия, но и обращает внимание на ситуацию, когда не перекрываются. Это может лучше отражать степень перекрытия предсказуемого и реального прямоугольника.
Метрики для оценки качества работы нейронной сети
AP является одной из наиболее популярных базовых метрик качества, используемых в различных задачах, например, там, где необходимо оценить качество ранжирования, классификации или детектирования объектов. AP для серии запросов можно определить как усредненное значение средних оценок точности для каждого запроса [2]. В нашем случае метрика определяет долю правильно детектированных объектов. Математически AP представляет собой расчет значений функции recall - в интервале значений :
(8)
Другие популярные метрики - precision (точность) и recall / sensitivity (полнота / чувствительность) [3].
Precision определяет соотношение количества объектов, принадлежащих к заданному классу, и общего количества предсказанных объектов (false positive rate), иными словами, - процент корректных предсказаний. Recall определяет соотношение количества объектов, принадлежащих к заданному классу, и общего количества объектов данного класса в наборе данных (false negative rate), т.е. определяет, насколько хорошо происходят предсказания.
(9)
(10)
Где true positive (объект рассматриваемого класса детектирован верно);
true negative (объект верно не детектирован как объект рассматриваемого класса);
false positive (объект ошибочно отнесен к рассматриваемому классу);
false negative (объект ошибочно не детектирован как объект рассматриваемого класса).
Модель-1 использует показатель mAP (средняя средняя точность) для оценки точности каждые 300 итераций во время обучения. Для расчета mAP для всей модели-1 сначала вычисляется средняя точность (AP) для каждого класса из 4-х: запрещающий, опасный, обязательный и другие. Затем среднее значение этих рассчитанных AP по всем классам выдает mAP.
Если значение IoU находится в диапазоне (0; порог), то прогнозируемый ограничивающий прямоугольник считается FP. Для этого исследования порог установлен на 50 %, что указывает на то, что предсказанный ограничивающий прямоугольник верен (TP), если значение IoU равно или превышает 0,5. Следовательно, mAP для всей модели-1 можно представить следующим образом: mAP@0,5.
Экспериментальные исследования и анализ результатов
Для создания архитектуры сверточной нейронной сети был использован фреймворк глубокого обучения PyTorch. Также дополнительно была применена библиотека OpenCV для считывания изображений и реализации функций аугментации. Аппаратное обеспечение эксперимента: процессор Intel(R) Core i7-7700HQ CPU @ 2,80 ГГц, объем памяти 32,0 ГБ, видеокарта 1050Ti, объем памяти 4 ГБ. Программное обеспечение эксперимента: Win 10, CUDA 10.2, CUDNN 7.6.5 и язык программирования Python3.7. Для обучения модели был использован фреймворк Darknet. Параметры, используемые для обучения, описаны в таблице. 1.
Таблица 1.
Параметры для обучения модели
Параметры |
Значения |
Network size(input width, height) |
608608 |
Batch |
64 |
Subdivisions |
16 |
Learning rate |
0.001 |
Learning rate decay |
0.0005 |
Anchors, Scale 1 (Large object) |
(116, 90), (156, 198), (373, 326) |
Anchors, Scale 2 (Medium object) |
(30, 61), (62, 45), (59, 119) |
Anchors, Scale 3 (Small object) |
(10, 13), (16, 30), (33, 23) |
На рисунке 6 показан график изменения значения mAP во время обучения в эпоху итерации 300. Модель-2 была обучена на библиотеке «numpy» в течение 300 итераций и достигла точности 0,92 на тестовом датасете для размера 19x19 фильтров сверточных слоев. Задача обучения сети сводится к минимизации функции ошибки GIoU. График обучения с полученными значениями ошибки на каждой эпохе показан на рисунке 5.
Рисунок 5. График изменения значений функции ошибки GIoU на обучающей и валидационной выборках
Рисунок 6. График изменения значения mAP во время обучения
Рисунок 7. График изменения значения точности и полнота
Эксперименты показали, что обучение глубокой сети всего с 4 категориями для обнаружения дорожных знаков дает высокую точность mAP@0,5, достигающую 93,98 % и долгое время сохраняется высокая точность детектирования. Наилучшие результаты были достигнуты на 130 эпохе. Еще один сверточный слой, объединенный для реализации классификации, создает эффективную и быструю систему, которую можно использовать в приложениях реального времени. На рисунке 8 представлены примеры обнаруженных и классифицированных дорожных знаков в реальных дорожных сценах. Запрещающие знаки показаны оранжевом прямоугольником, обязательные знаки-красным прямоугольником, опасные знаки-розовым прямоугольником, другие-желтым прямоугольником. Выданы метки над прямоугольником и степени уверенности для каждых классов знаков соответственно.
Рисунок 8. Примеры обнаруженных и классифицированных дорожных знаков
Заключение
Как видно из рисунка, алгоритм может обнаруживать и распознавать четыре типа дорожных знаков: запрещающие, обязательные, опасные и другие в реальных дорожных сценах, а также выводить ограничивающие прямоугольники для позиционирования и информацию о классификации объектов. Разработанный подход обнаружения и распознавания имеет высокую точность, может точно выделить целевой объект в информационно насыщенной среде и имеет хороший эффект распознавания удаленных и небольших объектов при высоким уровне освещения. Полученные опыты и результаты исследования в процессе работы в дальнейшем будут использоваться в выполнении улучшения алгоритмов распознавании и детектирования объектов.
Список литературы:
- Zhu Y., Zhang C., Zhou D., Wang X., Bai X., Liu W. Traffic sign detection and recognition using fully convolutional network guided proposals. Neurocomputing, 2016, vol. 214, pp. 758-766. doi: 10.1016/j.neucom.2016.07.009
- Tabernik D., Skocaj D. Deep learning for large-scale traffic-sign detection and recognition. IEEE Transactions on Intelligent Transportation Systems, 2020, vol. 21, no. 4, pp. 1427-1440. doi: 10.1109/TITS.2019.2913588
- Chung J.H., Kim D.W., Kang T.K., Lim M.T. Traffic sign recognition in harsh environment using attention based convolutional pooling neural network. Neural Processing Letters, 2020, in press. doi: 10.1007/s11063-020-10211-0
- Mehta S., Paunwala C., Vaidya B. CNN based traffic sign classification using adam optimizer. Proc. of the International Conference on Intelligent Computing and Control Systems (ICCS 2019), 2019, pp. 1293-1298. doi: 10.1109/ICCS45141.2019.9065537
- Ren S., He K., Girshick R.B., Sun J. Faster R-CNN: towards real-time object detection with region proposal networks // IEEE Transactions on Pattern Analysis and Machine Intelligence. 2017. V. 39. N 6. P. 1137-1149. doi: 10.1109/TPAMI.2016.2577031
- Shrivastava A., Gupta A., Girshick R.B. Training region-based object detectors with online hard example mining // Proc. 29th IEEE Conference on Computer Vision and Pattern Recognition (CVPR 2016). 2016. P. 761-769. doi: 10.1109/CVPR.2016.89
- Zaklouta F., Stanciulescu B. Real-time traffic-sign recognition using tree classifiers // IEEE Transactions on Intelligent Transportation Systems. 2012. V. 13. N 4. P. 1507-1514. doi: 10.1109/TITS.2012.2225618
- Ellahyani A., Ansari M.E., Jaafari I.E., Charfi S. Traffic sign detection and recognition using features combination and random forests // International Journal of Advanced Computer Science and Applications. 2016. V. 7. N 1. P. 6861-6931. doi: 10.14569/IJACSA.2016.070193
- Zaklouta F., Stanciulescu B. Real-time traffic sign recognition in three stages // Robotics Autonomous Systems. 2014. V. 62. N 1. P. 16-24. doi: 10.1016/j.robot.2012.07.019
- Redmon J., Divvala S.K., Girshick R.B., Farhadi A. You only look once: Unified, real-time object detection // Proc. 29th IEEE Conference on Computer Vision and Pattern Recognition (CVPR 2016). 2016. P. 779-788. doi: 10.1109/CVPR.2016.91
- Redmon J., Farhadi A. YOLO9000: Better, faster, stronger. Proc. 30th IEEE Conference on Computer Vision and Pattern Recognition (CVPR 2017), 2017, pp. 6517-6525. doi: 10.1109/CVPR.2017.690
- Redmon J., Farhadi A. YOLOv3: An incremental improvement. arXiv, 2018, abs/1804.02767.
- Redmon, J. You only look once: Unified, real-time object detection / J. Redmon, S. Divvala, R. Girshick, A. Farhadi // Proceedings of the 2016 IEEE Conference on Computer Vision and Pattern Recognition. - 2016. - P. 779-788. - DOI: 10.1109/CVPR.2016.91.
- Redmon, J. Yolo9000: Better, faster, stronger / J. Redmon, A. Farhady // Proceedings of the 2017 IEEE Conference on Computer Vision and Pattern Recognition. - 2017. -P. 6517-6525.
- Redmon, J. YOLOv3: An incremental improvement [Electronical Resource] / J. Redmon, A. Farhady. - 2018. - URL: https://arxiv.org/pdf/1804.02767.pdf (request date 09.02.2023).
- Liu, W. SSD: Single shot multibox detector / W. Liu, D. Anuelov, D. Erhan, C. Szegedy, S. Reed, C. Fu, A. Berg. - In: Computer Vision - ECCV 2016 / ed. by B. Leibe, J. Matas, N. Sebe, M. Welling. - Cham: Springer, 2016. -DOI: 10.1007/978-3-319-46448-0_2.
Оставить комментарий