Система контроля проезда на основе анализа номерных знаков
- Распознавание bounding-box образов номерных знаков на основе YOLO модели, обученной на распознавание номерных знаков
- OCR-распознавание текста внутри bounding-box зон кадра
- Django-админ-панель в качестве развёртывания самой модели и настройки управления системой
- Локации - сущность, где устанавливаются источники видео-потоков
- Локации содержат списки Разрешённых номерных знаков (соответствующее поле-список)
- Камеры - привязываются к Локации, имеют Направление, а также и включают rstp ссылки и примеры файлов видеопотока
- События - журнал распознанных в Локации объектов-номеров, при совпадении из списка из Разрешённых
- Локальное или облачное решение по контролю доступа на базе стандартного ПК
- Возможность подключения любых rstp-источников, например rtsp-ip-камер
- Аналитика событий: и в web-интерфейсе, и в БД Postgres
- Возможность удобной настройки разрешённых номеров в web-интерфейсе
- Возможность расширения YOLO модели распознавания образов посредством дообучения
- Возможность расширить функционал, например реализовать распознавание лиц при наличии GPU
- Выгрузка CSV-файла событий
- visiongate/main/models.py - схема данных
- visiongate/main/views.py - работа с onnx моделью в ендпойнте Django
- visiongate/main/numberplate.py - iou-вычисление bounding-box и запуск PaddleOCR
- visiongate/main/admin.py - интерфейсная часть админ-панели
- Итоговая_Аттестация.ipynb - обучение модели, выгрузка ONNX, принципиальная проверка работоспособности
- https://colab.research.google.com/drive/1IGudyk6Hvj-adFBQs86s-ol0WK_IQwB4?usp=drive_link - Colab-демонстрация работы модели и распознавания
- Авторизоваться на сайте https://visiongate.ru/admin
- Перейти в раздел Локации https://visiongate.ru/admin/main/location/, нажать Создать
- Указать в поле "Разрешённые" построчный список разрешённых номерных знаков
- Перейти в раздел Камеры https://visiongate.ru/admin/main/camera/, нажать Создать
- Указать Локацию, Направление (вход-выход), загрузить демо-ролик и указать rtsp ссылку на камеру
- Выбрать любую из камер https://visiongate.ru/admin/main/camera/
- Открыть детальную информацию по камере, например https://visiongate.ru/admin/main/camera/2/change/
- Демонстрационное видео можно просмотреть в блоке Просмотр пример видео
- Демонстрацию работы ML-модели распознавания bounding-box образов номерного знака, и последующего распознанного текста - можно посмотреть в блоке Просмотр контроля
git clone https://github.com/ikamil/visiongate.gitcd visiongatedocker compose up -d
root@lkwuthwrux:~# docker exec -it visiongate-pg-1 bash
root@17d007ef0c92:/# su - postgres
postgres@17d007ef0c92:~$ psql
psql (17.0 (Debian 17.0-1.pgdg120+1))
Type "help" for help.
postgres=# create user visiongate password 'visiongate' login;
postgres=# create database visiongate owner visiongate;
root@lkwuthwrux:~# docker exec -it visiongate-pg-1 bash
root@17d007ef0c92:/# su - postgres
postgres@17d007ef0c92:~$ cat /tmp/data/visiongate.sql > psql visiongate
root@lkwuthwrux:~# docker exec -it visiongate-python-1 bash
root@8225c6af5bbb:/# python /code/visiongate/manage.py createsuperuser
root@8225c6af5bbb:/# python /code/visiongate/manage.py makemigrations
root@8225c6af5bbb:/# python /code/visiongate/manage.py migrate