ergottli / text_recognition_container

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

text_recognition_container

Данный проект представляет из себя контейнер, который позволяет с помощью OpenCV, tesseract и Apache-Tika извлекать текстовую информацию из картинок, pdf-файлов, текстовых форматов(таких как dox, docx), презентаций(ppt, pptx).

Instruction

Создание образа происходит с помощью следующей команды:

build -t our_image:version /path/to/directory/with/Dockerfile (.)

Где, our_image - ваше название для образа, version - указание версии, /path/to/directory/with_Dockerfile - путь к директории с Dockerfile. В данном случае указываем "." - текущая директория.

Действия, происходящие при создании контейнера описаны в Dockerfile.


Запуск контейнера из образа:

docker run -d -p 5000:5000 our_image

-d - Запускает контейнер в фоновом режиме. -p - осуществляется проброс портов. При указании ip виртуальной машины и 5000 порта происходит обращение к контейнеру. P.S. При необходимости смены порта, необходимо изменить две строки в Dockerfile: 1. EXPOSE 5000 => номер порта заменить на свой 2. ENTRYPOINT ["gunicorn", "-t", "604800","-b", "0.0.0.0:5000", "app:app"] => порт 5000 заменить на свой.


Интерфейс контейнера написан на Flask, используется сервер gunicorn.

Интерфейс позволяет посылать POST-запросы с файлом, который необходимо распознать. Это можно осуществить из браузера, либо с помощью консольных команд: curl -F "file=@/Path/to/file/test.txt" -F "press=OK" http://ip-VM:5000 - запрос. wget http://ip-VM/path/to/file/result.txt - скачивание файла.

В ответ на запрос возвращается json со статусом запроса, ссылкой для скачивание файла с выделенными конфиденциальными словами и результатом обработки исходного файла в виде строки.

{“id”:200, "file”:”http://...”, “result”:{“classification”:”some text”, “attribute_classification”:”some text"}}


Подключение сторонних модулей к серверу внутри контейнера.

Свой модуль необходимо подключать в модуль app.py - функция upload_file.

Файлы, которые передаются с запросом лежат в директории /tmp_upload. Имя и полнуй путь до полученного файла можно получить с помощью join(app.config['UPLOAD_FOLDER'], filename).

Файлы, генерируемые в процессе работы вашего модуля необходимо положить в директорию /result. Они должны иметь имя полученного файла с постфиксом "_out".

Если ваша функция возвращает строку, ее можно записать в переменную string_answer.

FAQ Docker.

  1. Что необходимо установить, чтобы воспользоваться Docker?
  • docker-machine
  • docker (На некоторых ОС могут поставляться вместе)
  • Драйвер виртуальной машины, например VirtualBox.
  1. Как создать виртуальную машину? docker-machine create --driver=virtualbox Name_of_machine

  2. Как импортировать виртуальное окружение машины?

docker-machine env Name_of_machine

После ввода команды, вы должны получить следующий вывод:

export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.104:2376"
export DOCKER_CERT_PATH="/Users/test_user/.docker/machine/machines/Char"
export DOCKER_MACHINE_NAME="Name_of_machine"
# Run this command to configure your shell:
# eval $(docker-machine env Name_of_machine)

Вам необходимо скопировать и ввести в терминал данную строку eval $(docker-machine env Name_of_machine)

About


Languages

Language:Python 83.8%Language:Dockerfile 11.7%Language:HTML 4.5%