
使用OpenVINO优化PP-OCRv4并部署在AIPC上
使用OpenVINO™可以直接读入PP-OCRv4模型(无需转换),并能方便快捷的将PP-OCRv4模型部署在英特尔® CPU、独立显卡、集成显卡、NPU等硬件上。
作者:飞桨套件产品经理/英特尔创新大使 张晶
1.1 什么是PaddleOCR工具库?
PaddleOCR 旨在打造一套丰富、领先、且实用的 OCR 工具库,助力开发者训练出更好的模型,并应用落地。在GitHub上与其它OCR开源库相比,PaddleOCR在近五年发展时间内,拥有最多的星标(46k)、最快的星标增速、最多的贡献者(234)和最活跃的社区支持!
PaddleOCR支持多种 OCR 相关前沿算法,在此基础上打造产业级特色模型系列:PP-OCR、PP-Structure和PP-ChatOCR,打通了模型训练、压缩、部署全流程。
Github Repo: https://github.com/PaddlePaddle/PaddleOCR
1.2 什么是PP-OCRv4模型?
PP-OCRv4是PaddleOCR工具库的PP-OCR系列模型中,当前性能最优的一个。它在前代模型(PP-OCRv3)的基础上,针对检测模型和识别模型进行了数据、网络结构、训练策略等多个模块的优化,在多个应用场景中,精度均有大幅提升:
- 中文场景,相对于PP-OCRv3中文模型提升超4%;
- 英文数字场景,相比于PP-OCRv3英文模型提升6%;
- 多语言场景(支持韩语、日语、德语、法语等80种语言),平均准确率提升超8%。
PP-OCRv4是一个两阶段的OCR系统,包含检测模型、方向分类模型和识别模型。在检测和识别之间添加方向分类模型,将不同角度的文本检测框修正为水平检测框,方便识别模型完成行文本识别。
为了适应服务器和边缘端不通场景的部署需求,PP-OCRv4提供两种推理模型权重版本:
- 边缘端:中英文超轻量PP-OCRv4模型(16.1M) = 检测模型(4.7M) + 识别模型(10.0M) + 方向分类模型(1.4M)。Hmean:62.24%;ACC:70.1%。
- 服务器端:中英文高精度PP-OCRv4 server模型(199.4M) = 检测模型(110M) + 识别模型(88M) + 方向分类模型(1.4M)。Hmean:82.69%;ACC:84.04%。
PP-OCRv4模型链接:
https://github.com/PaddlePaddle/PaddleOCR/blob/main/docs/ppocr/blog/PP-OCRv4_introduction.md
PP-OCRv4模型的卓越性能使其在多个领域具有广泛的应用前景,如文档扫描、文字提取、智能表单填写、物流信息追踪、文档自动化处理、智能服务窗口、文献资料整理等等。本文将介绍使用OpenVINO™工具套件在英特尔® CPU、独立显卡、集成显卡和NPU上优化并部署飞桨PP-OCRv4模型。
1.3 OpenVINO™工具套件简介
OpenVINO™工具套件是一个用于优化和部署人工智能(AI)模型,提升AI推理性能的开源工具集合,不仅支持以卷积神经网络(CNN)为核心组件的预测式AI模型(Predictive AI),还支持以Transformer为核心组件的生成式AI模型(Generative AI)。OpenVINO™工具套件支持直接读取并优化PaddlePaddle训练好的模型(*.pdmodel),提升其在英特尔® CPU、独立显卡、集成显卡、NPU等硬件上的AI推理计算性能。
1.4 搭建开发环境
您可以选择无需搭建开发环境,直接在飞桨AIStudio星河社区上体验范例:
https://aistudio.baidu.com/projectdetail/8770259
或者,在本地搭建开发环境,在自己的PC上运行。
首先,请克隆PP-OCRv4_OpenVINO到本地:
git clone git clone https://github.com/openvino-book/PP-OCRv4_OpenVINO.git
cd PP-OCRv4_OpenVINO
接着,安装依赖项:
pip install -r requirements.txt
最后,请从https://paddlepaddle.github.io/PaddleOCR/latest/model/index.html,下载中英文超轻量 PP-OCRv4 模型,包括检测模型、方向分类器和识别模型到PP-OCRv4_OpenVINO文件夹,并解压。
下载命令:
# 下载并解压PP-OCRv4的检测模型
wget https://paddleocr.bj.bcebos.com/PP-OCRv4/chinese/ch_PP-OCRv4_det_infer.tar && tar -xvf ch_PP-OCRv4_det_infer.tar
# 下载并解压PP-OCRv4的方向分类器
wget https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar && tar -xvf ch_ppocr_mobile_v2.0_cls_infer.tar
# 下载并解压PP-OCRv4的识别模型
wget https://paddleocr.bj.bcebos.com/PP-OCRv4/chinese/ch_PP-OCRv4_rec_infer.tar && tar -xvf ch_PP-OCRv4_rec_infer.tar
下载并解压完毕后,开发环境搭建完成!
1.5 编写PP-OCRv4推理程序
PP-OCRv4_OpenVINO项目已将推理程序编写完成,各文件功能如下:
文件名 | 功能 |
predict_base.py | 载入并编译模型到指定硬件设备 |
predict_cls.py | 方向分类模型的预处理和推理 |
predict_det.py | 检测模型的预处理和推理 |
predict_rec.py | 识别模型的预处理和推理 |
predict_system.py | PP-OCRv4模型的预处理和推理工作流水线 |
cls_postprocess.py | 方向分类模型的后处理 |
det_postprocess.py | 检测模型的后处理 |
rec_postprocess.py | 识别模型的后处理 |
imaug.py | 图像增强函数 |
utils.py | 工具函数和预设参数 |
执行演示程序main.py,并指定模型路径和推理硬件设备:
python main.py --image_dir images/general_ocr_006.png \
--det_model_dir ch_PP-OCRv4_det_infer/inference.pdmodel \
--det_model_device CPU \
--rec_model_dir ch_PP-OCRv4_rec_infer/inference.pdmodel \
--rec_model_device CPU \
--cls_model_dir ch_ppocr_mobile_v2.0_cls_infer/inference.pdmodel \
--cls_model_device CPU \
--use_angle_cls True
运行结果,如下图所示:
1.6 总结
使用OpenVINO™可以直接读入PP-OCRv4模型(无需转换),并能方便快捷的将PP-OCRv4模型部署在英特尔® CPU、独立显卡、集成显卡、NPU等硬件上。
更多推荐
所有评论(0)