AI Studio精品项目征集
AI Studio精品项目专栏汇集近300名核心开发者,就学习、实战、比赛、趣味等多个方向贡献实训项目,帮助广大人工智能初学者学习与实践。
贡献精品项目可获得积分奖励兑换礼品,优质项目及作者可获得平台推荐曝光机会,还可加入创作者核心群,进行技术交流、新产品体验,获取算力卡、节日礼品红包、季度产出奖励等,赶紧加入我们吧~
投稿地址:
https://aistudio.baidu.com/paddle/forum/topic/show/989159
PP-OCR的ONNX部署
模型及套件
PP-OCR地址:
https://github.com/PaddlePaddle/PaddleOCR
Paddle2ONNX
Paddle2ONNX 使用户能够将模型从 PaddlePaddle 转换为 ONNX。支持的模型格式。Paddle2ONNX 支持 PaddlePaddle 的动态和静态计算图。
https://github.com/PaddlePaddle/Paddle2ONNX
代码说明
PP-OCR,克隆PP-OCR的仓库,并进行安装。
PaddlePaddle,安装最新的2.0正式版本。
Paddle2ONNX,克隆Paddle2ONNX的仓库,并进行安装。
ONNXRunTime,用于推理ONNX模型。
# !git clone https://github.com/PaddlePaddle/PaddleOCR.git
# !cd PaddleOCR && python setup.py install
!pip install -r PaddleOCR/requirements.txt
!pip install paddlepaddle==2.0 -i https://mirror.baidu.com/pypi/simple
!git clone https://github.com/PaddlePaddle/Paddle2ONNX.git
!cd Paddle2ONNX && python setup.py install
!pip install onnxruntime
导出检测(det),方向分类(cls)和文字识别(rec)模型。
运行export_ocr.sh,并指定PaddleOCR的路径和导出模型保存的路径。
该export_ocr.sh脚本的实现,参考自PaddleOCR部署文档。
!sh export_ocr.sh PaddleOCR/ /home/aistudio/inference_model/paddle/
将inference模型转换为ONNX协议
!paddle2onnx -m /home/aistudio/inference_model/paddle/cls/ --model_filename inference.pdmodel --params_filename inference.pdiparams -s /home/aistudio/inference_model/onnx/cls/model.onnx --opset_version 11
!paddle2onnx -m /home/aistudio/inference_model/paddle/rec_crnn/ --model_filename inference.pdmodel --params_filename inference.pdiparams -s /home/aistudio/inference_model/onnx/rec_crnn/model.onnx --opset_version 11
!paddle2onnx -m /home/aistudio/inference_model/paddle/det_db/ --model_filename inference.pdmodel --params_filename inference.pdiparams -s /home/aistudio/inference_model/onnx/det_db/model.onnx --opset_version 11
使用ONNXRunTime加载转换的ONNX模型,对test.jpg
进行文字检测,再方向分类,最后文字识别。
实现代码位于onnx_inference/
目录下面,识别结果的可视化将默认保存在results/
目录下面。
用户可选择images/
路径的图片自行测试,也可以上传本地的图片进行测试。
以下命令执行是肝功能检查报告的识别示例。
!export PYTHONPATH=$PYTHONPATH:PaddleOCR/ && python onnx_inference/predict_system.py --image_dir="images/liver_function.jpg" --det_model_dir="./inference_model/onnx/det_db/model.onnx" --cls_model_dir="./inference_model/onnx/cls/model.onnx" --rec_model_dir="./inference_model/onnx/rec_crnn/model.onnx" --use_angle_cls=true --rec_char_dict_path PaddleOCR/ppocr/utils/ppocr_keys_v1.txt --vis_font_path PaddleOCR/doc/fonts/simfang.ttf
import matplotlib.pyplot as plt
from PIL import Image
img = Image.open('results/liver_function.jpg')
fig = plt.figure(figsize=(30, 30))
ax1 = fig.add_subplot(121)
ax1.imshow(img)
今天的分享就先到这里啦,我们下次再见~~~
AI Studio是基于百度深度学习平台飞桨的人工智能学习与实训社区,为开发者免费提供功能强大的线上训练环境、云端超强GPU算力及存储资源。沉淀了90万+实训项目、5000+课时课程、90+场竞赛及7万+数据集,云集近100万AI开发者共同学习、交流、竞技与成长。
飞桨(PaddlePaddle)以百度多年的深度学习技术研究和业务应用为基础,集深度学习核心训练和推理框架、基础模型库、端到端开发套件和丰富的工具组件于一体,是中国首个自主研发、功能丰富、开源开放的产业级深度学习平台。飞桨企业版针对企业级需求增强了相应特性,包含零门槛AI开发平台EasyDL和全功能AI开发平台BML。EasyDL主要面向中小企业,提供零门槛、预置丰富网络和模型、便捷高效的开发平台;BML是为大型企业提供的功能全面、可灵活定制和被深度集成的开发平台。
END