Note
- Compared with models 1.1, which are trained with static graph programming paradigm, models 2.0 are the dynamic graph trained version and achieve close performance.
- All models in this tutorial are all ppocr-series models, for more introduction of algorithms and models based on public dataset, you can refer to algorithm overview tutorial.
- 1. Text Detection Model
- 2. Text Recognition Model
- 3. Text Angle Classification Model
- 4. Paddle-Lite Model
The downloadable models provided by PaddleOCR include inference model
, trained model
, pre-trained model
and slim model
. The differences between the models are as follows:
model type | model format | description |
---|---|---|
inference model | inference.pdmodel、inference.pdiparams | Used for inference based on Paddle inference engine,detail |
trained model, pre-trained model | *.pdparams、*.pdopt、*.states | The checkpoints model saved in the training process, which stores the parameters of the model, mostly used for model evaluation and continuous training. |
slim model | *.nb | Model compressed by PaddleSim (a model compression tool using PaddlePaddle), which is suitable for mobile-side deployment scenarios (Paddle-Lite is needed for slim model deployment). |
Relationship of the above models is as follows.
model name | description | config | model size | download |
---|---|---|---|---|
ch_ppocr_mobile_slim_v2.0_det | Slim pruned lightweight model, supporting Chinese, English, multilingual text detection | ch_det_mv3_db_v2.0.yml | 2.6M | inference model |
ch_ppocr_mobile_v2.0_det | Original lightweight model, supporting Chinese, English, multilingual text detection | ch_det_mv3_db_v2.0.yml | 3M | inference model / trained model |
ch_ppocr_server_v2.0_det | General model, which is larger than the lightweight model, but achieved better performance | ch_det_res18_db_v2.0.yml | 47M | inference model / trained model |
model name | description | config | model size | download |
---|---|---|---|---|
ch_ppocr_mobile_slim_v2.0_rec | Slim pruned and quantized lightweight model, supporting Chinese, English and number recognition | rec_chinese_lite_train_v2.0.yml | 6M | inference model / trained model |
ch_ppocr_mobile_v2.0_rec | Original lightweight model, supporting Chinese, English and number recognition | rec_chinese_lite_train_v2.0.yml | 5.2M | inference model / trained model / pre-trained model |
ch_ppocr_server_v2.0_rec | General model, supporting Chinese, English and number recognition | rec_chinese_common_train_v2.0.yml | 94.8M | inference model / trained model / pre-trained model |
Note: The trained model
is finetuned on the pre-trained model
with real data and synthsized vertical text data, which achieved better performance in real scene. The pre-trained model
is directly trained on the full amount of real data and synthsized data, which is more suitable for finetune on your own dataset.
model name | description | config | model size | download |
---|---|---|---|---|
en_number_mobile_slim_v2.0_rec | Slim pruned and quantized lightweight model, supporting English and number recognition | rec_en_number_lite_train.yml | 2.7M | inference model / trained model |
en_number_mobile_v2.0_rec | Original lightweight model, supporting English and number recognition | rec_en_number_lite_train.yml | 2.6M | inference model / trained model |
Note: The configuration file of the new multi language model is generated by code. You can use the --help
parameter to check which multi language are supported by current PaddleOCR.
# The code needs to run in the specified directory
cd {your/path/}PaddleOCR/configs/rec/multi_language/
python3 generate_multi_language_configs.py --help
Take the Italian configuration file as an example:
you can generate the default configuration file through the following command, and use the default language dictionary provided by paddleocr for prediction.
# The code needs to run in the specified directory
cd {your/path/}PaddleOCR/configs/rec/multi_language/
# Set the required language configuration file through -l or --language parameter
# This command will write the default parameter to the configuration file.
python3 generate_multi_language_configs.py -l it
If you want to train your own model, you can prepare the training set file, verification set file, dictionary file and training data path. Here we assume that the Italian training set, verification set, dictionary and training data path are:
- Training set:{your/path/}PaddleOCR/train_data/train_list.txt
- Validation set: {your/path/}PaddleOCR/train_data/val_list.txt
- Use the default dictionary provided by paddleocr:{your/path/}PaddleOCR/ppocr/utils/dict/it_dict.txt
- Training data path:{your/path/}PaddleOCR/train_data
# The code needs to run in the specified directory
cd {your/path/}PaddleOCR/configs/rec/multi_language/
# The -l or --language parameter is required
# --train modify train_list path
# --val modify eval_list path
# --data_dir modify data dir
# -o modify default parameters
# --dict Change the dictionary path. The example uses the default dictionary path, so that this parameter can be empty.
python3 generate_multi_language_configs.py -l it \
--train {path/to/train_list} \
--val {path/to/val_list} \
--data_dir {path/to/data_dir} \
-o Global.use_gpu=False
model name | dict file | description | config | model size | download |
---|---|---|---|---|---|
french_mobile_v2.0_rec | ppocr/utils/dict/french_dict.txt | Lightweight model for French recognition | rec_french_lite_train.yml | 2.65M | inference model / trained model |
german_mobile_v2.0_rec | ppocr/utils/dict/german_dict.txt | Lightweight model for German recognition | rec_german_lite_train.yml | 2.65M | inference model / trained model |
korean_mobile_v2.0_rec | ppocr/utils/dict/korean_dict.txt | Lightweight model for Korean recognition | rec_korean_lite_train.yml | 3.9M | inference model / trained model |
japan_mobile_v2.0_rec | ppocr/utils/dict/japan_dict.txt | Lightweight model for Japanese recognition | rec_japan_lite_train.yml | 4.23M | inference model / trained model |
chinese_cht_mobile_v2.0_rec | ppocr/utils/dict/chinese_cht_dict.txt | Lightweight model for chinese cht recognition | rec_chinese_cht_lite_train.yml | 5.63M | inference model / trained model |
te_mobile_v2.0_rec | ppocr/utils/dict/te_dict.txt | Lightweight model for Telugu recognition | rec_te_lite_train.yml | 2.63M | inference model / trained model |
ka_mobile_v2.0_rec | ppocr/utils/dict/ka_dict.txt | Lightweight model for Kannada recognition | rec_ka_lite_train.yml | 2.63M | inference model / trained model |
ta_mobile_v2.0_rec | ppocr/utils/dict/ta_dict.txt | Lightweight model for Tamil recognition | rec_ta_lite_train.yml | 2.63M | inference model / trained model |
latin_mobile_v2.0_rec | ppocr/utils/dict/latin_dict.txt | Lightweight model for latin recognition | rec_latin_lite_train.yml | 2.6M | inference model / trained model |
arabic_mobile_v2.0_rec | ppocr/utils/dict/arabic_dict.txt | Lightweight model for arabic recognition | rec_arabic_lite_train.yml | 2.6M | inference model / trained model |
cyrillic_mobile_v2.0_rec | ppocr/utils/dict/cyrillic_dict.txt | Lightweight model for cyrillic recognition | rec_cyrillic_lite_train.yml | 2.6M | inference model / trained model |
devanagari_mobile_v2.0_rec | ppocr/utils/dict/devanagari_dict.txt | Lightweight model for devanagari recognition | rec_devanagari_lite_train.yml | 2.6M | inference model / trained model |
For more supported languages, please refer to : Multi-language model
model name | description | config | model size | download |
---|---|---|---|---|
ch_ppocr_mobile_slim_v2.0_cls | Slim quantized model | cls_mv3.yml | 2.1M | inference model / trained model |
ch_ppocr_mobile_v2.0_cls | Original model | cls_mv3.yml | 1.38M | inference model / trained model |
Version | Introduction | Model size | Detection model | Text Direction model | Recognition model | Paddle-Lite branch |
---|---|---|---|---|---|---|
V2.0 | extra-lightweight chinese OCR optimized model | 7.8M | download link | download link | download link | v2.9 |
V2.0(slim) | extra-lightweight chinese OCR optimized model | 3.3M | download link | download link | download link | v2.9 |