Skip to content

ShJacub/car_numbers

Repository files navigation

Задание 1

  1. На первом этапе необходим алгоритм для обнаружения машин, здесь же параллельно можно классифицировать принадлежность к одному из ведомств. Можно использовать любой нейросетевой детектор, я бы в первую очередь обратил внимание на семейство Yolo - Yolov5, либо Yolov8, которые отличаются балансом скорости и точности.
  2. На втором этапе производится обнаружение номеров - детектирование номера и задача OCR распознавания номеров, например, нижеприведённый LPRNet.
  3. При необходимости определения дополнительных признаков машин, возможно, придётся дополнять систему классификаторами. Для сложной системы также следует сконцентрироваться на быстрых алгоритмах, например Resnet18, Resnet50, MobileNetv2 - в первом приближении. Также можно задачу дополнительной классификации имплементировать в детектор машин, но тут встаёт вопрос насколько это эффективно и качественно, соответственно требует резёрча.
  4. Все нейросетевые архитектуры конвертровать в форматы для запуска в инференсе - tensoRT, openvino, onnx - , которые определяются в зависимости от вычислителей, на которых будет работать система.
  5. По-хорошему нужно сделать ревью существующих решений как всей полной задачи - видео обработка потока машин, так и составных её частей - object detection, classification, OCR.
  6. Из используемых фреймворков и алгоритмов: pytorch, pytorch-lightning - для обучения; всевозможные гиты с state-of-the-art алгоритмами; detectron; Model Zoo; MMDetection; tensorRT, openvino, onnx - для инференса.

Задание 2

Оригинальная ссылка

https://github.com/smeyanoff/car-number-detection.git

Quick Start

Чтобы запустить проект локально, необходимо:

  1. Создать виртуальное окружение
  2. Установить зависимости из requirements.txt:
pip install -r requirements.txt
  1. Проверить пути до весов/видео
  2. python inference.py

Описание

Для детектирования автомобиля по типам и номерного знака на изображении используется YOLOv5. Для распознавания(определения) номеров используется модель LPRNet. Пайплайн выглядит следующим образом:

  1. Сначала определяется, что бокс номера лежит внутри бокса машины, тогда номерной знак присваивается этой машине
  2. Записывается тип машины и координаты номера и бокса автомобиля
  3. Затем происходит распознавание номера машины и проверка распознанного номера по регулярному выражению
  4. Производится распознование цвета автомобиля

Стоит отметить что нейросетевые модели обучены на небольшой выборке и представленные веса показывают не самый лучший результат. Судя по описанию репозитория архитектура обнаружения работает как минимум с удовлетворительными точностями - согласно отчёту Yolov5s имеет mAP50-95 в 0.709. Вероятно, слабым звеном здесь является LPRNet - архитектура для распознавания номеров. Причины могут быть несколько - малое количество данных, сама архитектура. Данный вопрос требует дальнейнего исследования и разработки.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages