Skip to content

Распознавание фамилии, имени, отчества со сканированных копий паспортов РФ

Notifications You must be signed in to change notification settings

log95/passport-recognition

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Распознавание имени, фамилии, отчества с паспорта.

Данное web-приложение помогает распознавать фамилию, имя, отчество со сканированных копий паспортов РФ.

Использовалось:

  • Yii2, PHP
  • MySQL
  • OpenCV, Python
  • Tesseract
  • RabbitMQ
  • docker, docker-compose

Принцип работы с точки зрения пользователя

  1. Заходим через браузер на сайт.

    Start page

  2. Авторизуемся из-под администратора.

    Login

  3. Загружаем файл скана паспорта. Для примера можно взять файл с википедии, он скопирован в данный репозиторий в /test-data/imyarek.jpg.

    Upload image

  4. Получаем результат распознавания.

    Recognition result

Как запустить

Требования:
  1. git
  2. docker (тестировалось на версии 18.09.7)
  3. docker-compose (тестировалось на версии 1.17.1)
Инструкция:
  1. git clone https://github.com/log95/passport-recognition.git
  2. cd passport-recognition
  3. cp env.sample .env
  4. В скопированном файле .env задаём пароли для 4 переменных:
    1. WEB_DB_PASSWORD
    2. WEB_USER_ADMIN_PASSWORD
    3. ANALYSIS_DB_PASSWORD
    4. QUEUE_SERVER_PASSWORD
  5. Выполняем сборку docker-compose build. Скачивание и сборка образов займёт время.
  6. Поднимаем все сервисы docker-compose up -d. Также нужно время, чтобы установились все зависимости через composer, выполнились миграции бд.
  7. На сервере будет выполнен проброс 80 порта на 80 порт Docker контейнера, 80 порт не должен быть занят. Теперь можно заходить на IP адрес вашего сервера через браузер, должна открыться стартовая страница.

Принцип работы приложения

Приложение реализовано в виде распределённой системы на основе Docker контейнеров.

Функционал системы сделан в виде связки основного приложения для пользователя, сервера очередей и 3 сервисов, которые обеспечат распознавание ФИО со скана паспорта.

App components

Компоненты системы:
  1. Пользовательское приложение (Yii2, PHP, MySQL, Nginx). Через данное приложение пользователь загружает файлы сканированных паспортов и получает результат в удобном интерфейсе.
  2. Сервер очередей (RabbitMQ). Сервер очередей является связующим звеном между остальными компонентами. Все компоненты изолированы друг от друга, и знают только об очереди сообщений, из которой брать входные данные, и об очереди сообщений, в которую передавать результат.
  3. Сервис обработки изображения (OpenCV, Python). Задача: обработать изображение для лучшего распознавания. Данный сервис получает на вход изображение сканированного паспорта, на выходе отдаёт обработанные изображения, содержащие фамилию, имя, отчество.
  4. Сервис распознавания изображения (Tesseract). Задача: распознать текст на изображении. Данный сервис получает на вход массив изображений, на выходе отдаёт распознанный текст изображений.
  5. Сервис анализа текста (Python, MySQL). Задача: из массива текстов отобрать действительное имя, фамилию, отчество. Данный сервис получает на вход массив текстов, на выходе отдаёт имя, фамилию, отчество.

About

Распознавание фамилии, имени, отчества со сканированных копий паспортов РФ

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published