/ocr_app

Primary LanguagePython

In this example, you will get used to a lot of techniques, from training a model (Text Detection) to implement an ML service with cache, preloaded model, along with callback and websocket architectural styles.

Training CRAFT

In this section, you will train a text detection model, which will be used further as a component in EasyOCR, which is an end-to-end OCR pipeline.

The dataset used for training was taken from this awesome github repository.

To start training, you will run the following commands:

cd craft
CUDA_VISIBLE_DEVICES=0 python3 train.py --yaml=custom_data_train

Note:

  • Remember to install all the necessary libraries before training.
  • This code requires GPU for training, you can make use of https://colab.google/ for this.

Serving models

The model after being trained, i.e, craft_mlt_25k.pth should be saved in to ./model_storage/model due to EasyOCR configuration, after that, you can start your server as usual by running the following commands:

uvicorn main:app --host 0.0.0.0 --port 8081

or these commands for preloaded model

uvicorn main_preloaded:app --host 0.0.0.0 --port 8081