作者:飞桨套件产品经理/英特尔创新大使 张晶

1.1  什么是PaddleOCR工具库?

PaddleOCR 旨在打造一套丰富、领先、且实用的 OCR 工具库,助力开发者训练出更好的模型,并应用落地。在GitHub上与其它OCR开源库相比,PaddleOCR在近五年发展时间内,拥有最多的星标(46k)、最快的星标增速、最多的贡献者(234)最活跃的社区支持!

PaddleOCR支持多种 OCR 相关前沿算法,在此基础上打造产业级特色模型系列:PP-OCRPP-StructurePP-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等硬件上。

Logo

为开发者提供丰富的英特尔开发套件资源、创新技术、解决方案与行业活动。欢迎关注!

更多推荐