PaddleOCR是一个与OCR相关的开源项目,不仅支持超轻量级中文OCR预测模型,总模型仅8.6M(单模型支持中英文数字组合识别、竖排文本识别、长文本识别,其中检测模型DB(4.1M)+识别模型CRNN(4.5M)),而且提供多种文本检测训练算法(EAST、DB)和多种文本识别训练算法(Rosetta、CRNN、STAR-Net、RARE)。本文主要介绍如何使用PaddleOCR提供的超轻量级中文OCR模型完成文本检测任务、文本识别任务以及文本检测、识别串联任务,更多信息请参考repo的文档。
Github地址
https://github.com/PaddlePaddle/PaddleOCRgithub.com1.环境安装和超轻量级中文OCR模型下载
- 参考以下链接中的内容配置PaddleOCR运行环境,建议使用提供的docker运行PaddleOCR
https://github.com/PaddlePaddle/PaddleOCR/blob/develop/doc/installation.md
- 模型下载
# 下载inference模型文件包
wget https://paddleocr.bj.bcebos.com/inference.tar
# inference模型文件包解压
tar -xf inference.tar
2.超轻量中文检测模型推理,可以执行如下命令:
python3 tools/infer/predict_det.py --image_dir="./doc/imgs/2.jpg" --det_model_dir="./inference/det/"
可视化文本检测结果默认保存到 ./inference_results 文件夹里面,结果文件的名称前缀为'det_res'。结果示例如下:
通过设置参数det_max_side_len的大小,改变检测算法中图片规范化的最大值。当图片的长宽都小于det_max_side_len,则使用原图预测,否则将图片等比例缩放到最大值,进行预测。该参数默认设置为det_max_side_len=960. 如果输入图片的分辨率比较大,而且想使用更大的分辨率预测,可以执行如下命令:
python3 tools/infer/predict_det.py --image_dir="./doc/imgs/2.jpg" --det_model_dir="./inference/det/" --det_max_side_len=1200
如果想使用CPU进行预测,执行命令如下
python3 tools/infer/predict_det.py --image_dir="./doc/imgs/2.jpg" --det_model_dir="./inference/det/" --use_gpu=False
3.超轻量中文识别模型推理,可以执行如下命令:
python3 tools/infer/predict_rec.py --image_dir="./doc/imgs_words/ch/word_4.jpg" --rec_model_dir="./inference/rec/"
执行命令后,上面图像的预测结果(识别的文本和得分)会打印到屏幕上,示例如下:
Predicts of ./doc/imgs_words/ch/word_4.jpg:['实力活力', 0.89552695]
4.超轻量中文检测、识别模型串联推理,可以执行如下命令:
python3 tools/infer/predict_system.py --image_dir="./doc/imgs/2.jpg" --det_model_dir="./inference/det/" --rec_model_dir="./inference/rec/"
执行命令后,识别结果图像如下: