$ docker-compose up -d --build
Откройте браузер по ссылке http://localhost:8020
$ docker-compose exec web /bin/bash
$ python3 manage.py createsuperuser
Создаем пользователя с админскими правами.
###Необходимо разработать веб-приложение простой платежной системы.
Заказчик Государственная инспекция по контролю за использованием объектов недвижимости города Москвы
Задача Автоматизированный анализ архивов фото- и скан- копий технических и контрактных документов. Необходимо распознать множество скан-копий технических и контрактных документов с определением их структурных элементов, классифицировать по заданному набору признаков. Результаты распознавания организовать в виде базы данных с возможностью полнотекcтового поиска и фильтрации по параметрам. Предоставить пользовательские интерфейсы как для работы с полученными результатами, так и для последующего самостоятельного распознавания документов, возможность построения аналитических панелей и отчетов, а также REST API для бесшовной интеграции.
-
Django REST Framework - взяли его за основу, так как он очень мощный, гибкий, позволяет легко стандартизировать запросы к базе данных и одновременно создавать RESTful WEB API.
-
PostgreSQL - очень мощный, есть опыт использования в платежной системе. В нашем случае можно было еще использовать Mongo, так как у нас тут куча сдаюлсвязанных данных.
-
Celery - для вынесения фоновых задач, создания транзакций, историй переводов, пополений баланса и т.п. В результате быстрый отклик по HTTP API за счет переноса обработки транзакций с использованием очереди обработки.
-
Redis - распространенный посредник сообщений, который используется с Celery, который является быстродействующим хранилищем данных по типу ключ-значение. Redis также служит хранилищем результатов, поступающих из очередей celery, которые затем извлекаются потребителями очереди.
-
Docker - разделяет приложения на микросервисы для удобства автоматизации и развертывания.
Tesseract разработан на основе модели OCRopus на Python, которая была ответвлением LSMT на C ++, называемого CLSTM. CLSTM - это реализация модели рекуррентной нейронной сети LSTM на C ++ с использованием библиотеки Eigen для численных вычислений.
Наше решение по алгоримта формализации документов выглядит следующим образом:
API для добавления и отображения всех загруженных в систему неформализованных документов URL: /ocr/document
Фильры по :
?status= Q | P | C | F
где:
Q - В очереди
P - В процессе
C - Распознан
F - Не распознан
API для получения детальной информации по загруженному документу. URL: /ocr/document/
Тут можно увидеть следующие данные разбитые постранично,в случае, если множество документ был отсканированно в один файл
- расспознанный текст,
- классифицированный тип документа
API распознаных и формализованных документов постранично URL: /ocr/page_document
Фильтры по:
?type_id=<id> - типа документа (полный список типов и атрибутов в API /ocr/document_type)
?type_name=названию типа документа (полный список типов и атрибутов в API /ocr/document_type)
?doc_page=номер страницы документа
?status= Q | P | C | F
где:
Q - В очереди
P - В процессе
C - Распознан
F - Не распознан
?text= полнотекстовый поиск по вхождению строки или корня слов в распознанном тексте
API для отображения полного списока типов документов и их атрибутов, для формирования форм фильтрации формализованных данных на фронте. URL: /ocr/document_type
На основе данного API можно формировать формы с выпадающими меню, формами ввода текста и т.д.