Code Monkey home page Code Monkey logo

ocr_api's Introduction

REST API for OCR

REST API для распознавания текста на изображении

Для распознавания используется библиотека EasyOCR. Для поиска текста на изображении используется алгоритм CRAFT. Для распознавания используется CRNN. В основе этой модели лежат три компонента: ResNet для выделения признаков, LSTM для разметки последовательности и CTC для декодирования

Для написания REST API использовалась библиотека FastAPI. Для запуска сервера - Uvicorn

API предоставляет возможность запуска как непосредственно с помощью скриптов, так и посредством сбора Docker-контейнера

Params

Параметры сервиса описаны в файле params.json:

  • languages - список языков, которые нужно распознать; по умолчанию - ["en"]
  • separator - разделитель, который будет использоваться для соединения распознанных фрагментов текста; по умолчанию - "\n"
  • paragraph - нужно ли объединять текст в параграфы; по умолчанию - true
  • gpu - нужно ли использовать модель на GPU (true - использовать gpu, falce - использовать cpu); по умолчанию - falce

Если вы собираете Docker-контейнер, то параметры необходимо указать в файле непосредственно перед его сбором

Run server

Для запуска сервера с помощью скриптов воспользуйтесь следующим набором команд

cd ./OCR_API
pip install -r ./requirements.txt
python ./downloads_dependencies.py
uvicorn main:app --host 127.0.0.1 --port 8000

Если вы используете Docker, воспользуйтесь следующим набором команд

cd ./OCR_API
docker build --no-cache -t ocr-api .
docker run -t -p 8000:8080 ocr-api

После запуска сервера API будет доступно по адресу 127.0.0.1:8000

Для остановки работы сервера воспользуйтесь сочетанием клавиш Ctrl+C

API Access

Для распознавания текста на изображении используйте POST-метод API: 127.0.0.1:8000/text-recognition

Тело запроса - это изображение, на котором нужно распознать текст

API возвращает ответ в формате json. Пример ответа представлен ниже:

{
  "recognized_text": "Hello"
}

Для более удобной работы с API в тестовом режиме, воспользуйтесть 127.0.0.1:8000/docs

Errors

Если возникла ошибка, вместо json c эмоциями API вернет словарь с ошибкой.

Если ошибка возникла при передаче изображения, ответ будет иметь следующий вид:

{
  "Error": 1,
  "description": "Error during getting image"
}

Если ошибка возникла при распознавании текста, ответ будет иметь следующий вид:

{
  "Error": 2,
  "description": "Error during OCR"
}

ocr_api's People

Contributors

vashibaev avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.