numsteam1

Распознавание номеров в потоке

https://github.com/windn19/numsteam1

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (1.1%) to scientific vocabulary
Last synced: 10 months ago · JSON representation ·

Repository

Распознавание номеров в потоке

Basic Info
  • Host: GitHub
  • Owner: windn19
  • License: gpl-3.0
  • Language: Python
  • Default Branch: master
  • Size: 14 MB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 1
  • Releases: 0
Created over 2 years ago · Last pushed about 2 years ago
Metadata Files
Readme Contributing License Citation

README.md

Поиск и распознавание номеров в потоке данных от видеокамеры

Описание проекта и используемые технологии

Проект создан для фиксации номеров подъезжающих к шлагбауму автомашин с российскими номерами по поступающему видеопотоку видеокамеры. Изображение идет непрерывно, необходимо записывать номер проезжающей машины в базу данных PostgreSQL в процессе.

Для вырезания номеров из входящего потока используется YOLOv5. Для дальнейшего распознавания текста изображения используется созданная на TensorFlow модель, принимающая изображение размером (50,200,3), а как результат - текст. Возвращаемые символы - ' ', '-', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'H', 'I', 'K', 'M', 'N', 'O', 'P', 'S', 'T', 'X', 'Y', '_' - латиницей, остальные символы не возвращаются, так как не используются в российских номерах.

| Имя файла | Назначение | |:---: |-----------------------------------------------------------------------------------------------------------------------------------------------------------------------| | detect.py | нахождение номеров на изображении, вырезка их и передача их для распознавания | | plots.py | проверка попадания изображения в нужные рамки | | ocr.py | подготовка вырезанного изображения к передаче в модель, и получение текста (Для большей уверенности дополнительно используется модель распознавания символов EasyOCR) | | prepare.py | выбор из результатов наиболее часто встречающихся наборов символов и проверка их на соответствие шаблонам номеров | | model.py | построение модели для распознавания номеров | | model_pe.py | модель для использования с ORM Peewee для PostgreSQL | | add.py | добавление записи в базу данных | | settings.py | установки для запуска системы |

Установка

1) Клонируем репозиторий bash git clone https://github.com/windn19/NumSteam1.git

2) Устанавливаем зависимости bash pip install -r requirements.txt

3) Заполняем settings.py - yoloweights - веса для нахождения номеров на изображении - ocrweights - веса для распознавания номеров
- source - источник данных (ожидается url c видеопотоком от камеры) - postgre - словарь с данными PostgreSQL: имя базы данных, логин, пароль, хост

4) Запускаем файл start.py bash python start.py 5) Запись в базу

Результаты

Входящие изображения модель обрабатывает различными способами и выравнивает по горизонтали: Входящие изображение

Схема модели для распознавания текста на номерах: Модель

Результаты:

Результаты

Общая точность получилась в районе 0.96.

Дальнейшая работа

Осложнения связаны с тем, что LSTM - распознает только известные последовательности, и при получении новой последовательности, может терятся, то есть неправильно распознаются известные цифры в неизвестной последовательности - новые регионы, номера из других стран и тому подобное. Проводится дообучение модели для улучшения результата.

Owner

  • Name: Dmitry Noskov
  • Login: windn19
  • Kind: user
  • Location: Ekaterinburg, Russian

Python, Flask, Tensorflow, Html, CSS

Citation (CITATION.cff)

cff-version: 1.2.0
preferred-citation:
  type: software
  message: If you use YOLOv5, please cite it as below.
  authors:
  - family-names: Jocher
    given-names: Glenn
    orcid: "https://orcid.org/0000-0001-5950-6979"
  title: "YOLOv5 by Ultralytics"
  version: 7.0
  doi: 10.5281/zenodo.3908559
  date-released: 2020-5-29
  license: GPL-3.0
  url: "https://github.com/ultralytics/yolov5"

GitHub Events

Total
Last Year

Dependencies

utils/docker/Dockerfile docker
  • pytorch/pytorch latest build
utils/google_app_engine/Dockerfile docker
  • gcr.io/google-appengine/python latest build
requirements.txt pypi
  • Pillow >=7.1.2
  • PyYAML >=5.3.1
  • gitpython >=3.1.30
  • matplotlib >=3.2.2
  • numpy >=1.18.5
  • opencv-python >=4.1.1
  • pandas >=1.1.4
  • psutil *
  • requests >=2.23.0
  • scikit-image *
  • scipy >=1.4.1
  • seaborn >=0.11.0
  • setuptools >=65.5.1
  • tensorflow *
  • thop >=0.1.1
  • torchvision >=0.14.1
  • tqdm >=4.64.0
utils/google_app_engine/additional_requirements.txt pypi
  • Flask ==1.0.2
  • gunicorn ==19.10.0
  • pip ==21.1
  • werkzeug >=2.2.3