Репозиторий license_plate_detection продолжает проект Cars. Здесь представлены метрики, полученные в ходе обучения и тестирования, и проведена оценка производительности моделей. В проекте Cars не было проведено тестирование по причине недостаточного объема исходного датасета (менее 500 фото). Для проведения тестирования дополнительно были размечены 50 фото номерных знаков.
Гипотеза: модели YOLO, обученные на небольшом тренировочном датасете (до 500 фотографий), будут иметь преимущество по скорости обучения и метрикам по сравнению с Inception.
Inception-ResNet-v2 — это сверточная нейронная сеть, обученная на более чем миллионе изображений из базы данных ImageNet. Сеть состоит из 164 слоев и может классифицировать изображения по 1000 категориям объектов, таким как клавиатура, мышь, карандаш и т.д. Inception-ResNet-v2 используется в основном для задачи классификации. Архитектура сети показана ниже.
YOLO или «Только один раз взгляните» — это один из наиболее широко используемых алгоритмов обнаружения объектов, основанных на глубоком обучении. YOLO делит изображение на сетку, и каждая сетка обнаруживает объекты внутри себя. Их можно использовать для обнаружения объектов в реальном времени на основе потоков данных. Они требуют очень мало вычислительных ресурсов. Она состоит из трех частей: (1) Хребет: CSPDarknet, (2) Шея: PANet и (3) Голова: Yolo Layer. Данные сначала вводятся в CSPDarknet для извлечения признаков, а затем передаются в PANet для слияния признаков. Наконец, Yolo Layer выводит результаты обнаружения (класс, оценка, местоположение, размер).
Вывод: модели YOLO обучались на 100 эпохах, тогда как на обучение Inception-ResNet-v2 отводилось 200 эпох, при этом кривая Inception слишком резко идет вверх на графике точности, что может говорить о её переобученности. Напротив, модели YOLO постепенно подходят к своим максимумам. Тем не менее, по тренировочным метрикам сложно судить о качестве моделей. Необходимо, провести сравнение на тестовом датасете.
Гипотеза: тестирование на независимом датасете, включающем в себя сложные примеры (например, номерные знаки разных типов, в том числе, не представленных в тренировочном датасете), может показать способность моделей обобщать новую информацию, таким образом, определить модель наивысшего качества.
Тестовый датасет состоит из 50 фотографий разного качества и 50 текстовых файлов, в которых содержится информация о лейблах (bounding boxes). Тестовый датасет был специально размечен для проверки обученных моделей. Для разметки использовалась программа Label Studio.
Ссылка на датасет - https://www.kaggle.com/datasets/karanovdp/test-number-plate-dataset
Стоит сразу отметить, что модель Inception-ResNet-v2 продемонстрировала крайне низкий результат на тестовом датасете ( < 0.1 ), что свидетельствует о её переобученности. Поэтому нами принято решение исключить её из дальнейшего сравнительного анализа.
YOLOv5 | YOLOv7 |
---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Вывод: как видно на представленных графиках, модели не справились с задачей на 100%, но и нельзя сказать, что они переобучились и утратили способность обобщать новые данные. Мы видим, что модель YOLOv7 справилась с детекцией чуть лучше, чем YOLOv5. Возможно, для улучшения качества детекции необходимо разнообразить тренировочный датасет, включить в него фотографии с номерными знаками разных государств.
Оборудование: GPU P100, RAM 16 GB.
Размер батча (32, 3, 640, 640).
Показатели | Обработка 1 фото |
---|---|
Скорость инференса | 4.1 ms |
Скорость Non-Maximal Suppression | 2.2 ms |
Показатели | Обработка 1 фото |
---|---|
Скорость инференса | 16.6 ms |
Скорость Non-Maximal Suppression | 3.3 ms |
Сравнение производительности моделей показало более высокую скорость YOLOv5. Скорость YOLOv5 превосходит скорость YOLOv7 более чем в 3 раза.