Paddle OCR 模型在 OpenVINO 的部署应用

一.介绍与特性

1. PaddleOCR 与 OpenVINO 介绍

PaddleOCR 是百度开源的超轻量级 OCR模型库,提供了数十种文本检测、识别模型,旨在打造一套丰富、领先、实用的文字检测、识别模型/工具库,助力使用者训练出更好的模型,并应用落地。

OpenVINO 是用于优化和部署 AI 推理的开源工具包,提升计算机视觉、自动语音识别、自然语言处理和其他常见任务中的深度学习性能。

OpenVINO 对 paddlepaddle 的原生支持计划于 OpenVINO 2022.1版本发布。我们要做的是将 PaddlePaddle 的模型传递给 OpenVINO 直接进行推理,而无需先用 ModelOptimizer 转换成 IR 格式。

然而,针对OpenVINO™ 2021.4 LTS以及之前的版本,如果想要直接读取PaddleOCR模型,还需要经过本文第三部分中介绍的若干步骤。

2. Paddle OCR 特性

• 超轻量级中文 OCR ,总模型仅 8.6M

    – 单模型支持中英文数字组合识别、竖排文本识别、长文本识别

    –检测模型 DB(4.1M)+识别模型 CRNN(4.5M)

• 多种文本检测训练算法,EAST、DB

•多种文本识别训练算法,Rosetta、CRNN、STAR-Net、RARE

二.环境准备

1.机器配置

•CPU:intel® Core™ i5-8259U CPU @ 2.30GHz × 8

•OS:Ubuntu 20.04.4 LTS

•python:3.8

2.下载项目

OpenVINO 对 paddlepaddle 的原生支持计划于OpenVINO 2022.1 版本发布。跟之前对其它框架的支持不同的是,开发者可以直接将 PaddlePaddle 的模型传递给 OpenVINO 直接进行推理,而无需先用 ModelOptimizer 转换成 IR。目前由于 OpenVINOTM 2022.1 版本还没有正式发布,如果您手边安装的是 OpenVINO™ 2021.4 以及之前的版本,那么还需要 clone 以下仓库的代码,并按照后面第三部分中介绍的内容进行环境编译,就能够直接读取 paddleOCR 的模型了。


git clone https://github.com/raymondlo84/openvino-paddlepaddle-demo.git

Paddle OCR 模型在 OpenVINO 的部署应用_第1张图片

三.编译与运行

下面是源码编译安装 OpenVINO 的操作步骤

1.从 GitHub 克隆 OpenVINO 及其子项目

git clone  https://github.com/openvinotoolkit/openvino.gitcd openvinogit submodule update --init --recursive

Paddle OCR 模型在 OpenVINO 的部署应用_第2张图片

2.如果 GitHub 的网络遇到问题,可以切到 gitee 源​​​​​​​

chmod +x scripts/submodule_update_with_gitee.sh./scripts/submodule_update_with_gitee.sh

Paddle OCR 模型在 OpenVINO 的部署应用_第3张图片

3.安装 OpenVINO 源码编译依赖​​​​​​​

chmod +x install_build_dependencies.sh./install_build_dependencies.shpip3 install -r src/bindings/python/src/compatibility/openvino/requirements-dev.txt

Paddle OCR 模型在 OpenVINO 的部署应用_第4张图片

4.编译安装,这儿可能需要花费些时间​​​​​​​

mkdir buildcd build
cmake  -DCMAKE_BUILD_TYPE=Release -DENABLE_PYTHON=ON –DNGRAPH_PYTHON_BUILD_ENABLE=ON -DPYTHON_EXECUTABLE=`which python3.8` -DPYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.8.so -DPYTHON_INCLUDE_DIR=/usr/include/python3.8 -DENABLE_MKL_DNN=ON  -DENABLE_CLDNN=ON -DNGRAPH_ONNX_IMPORT_ENABLE=ON -DNGRAPH_DEBUG_ENABLE=ON   ..
make --jobs=$(nproc --all)

Paddle OCR 模型在 OpenVINO 的部署应用_第5张图片

编译完成

Paddle OCR 模型在 OpenVINO 的部署应用_第6张图片

5.使用虚拟环境并安装依赖

激活 OpenVINO_env 虚拟环境​​​​​​​

sudo apt install python3.8-venvcd openvino-paddlepaddle-demopython3 -m venv openvino_envsource openvino_env/bin/activate

安装依赖​​​​​​​

python -m pip install --upgrade pippip install -r requirements.txt -i https://mirror.baidu.com/pypi/simple

Paddle OCR 模型在 OpenVINO 的部署应用_第7张图片

安装 kernel 到 Jupyter 

python -m ipykernel install --user --name openvino_env

6.设置 PaddleDetection

我们将通过 PaddlePaddle 模型库 Paddle Detection 导出 PPYolo 的静态图模型。首先 clone 仓库到项目根目录

git clone https://github.com/PaddlePaddle/PaddleDetection.git

接下来安装 PaddleDetection 的依赖​​​​​​​

cd PaddleDetection && git checkout release/2.1 && cd - pip install paddlepaddle -i https://mirror.baidu.com/pypi/simplepip install --upgrade -r PaddleDetection/requirements.txt -i https://mirror.baidu.com/pypi/simple

Paddle OCR 模型在 OpenVINO 的部署应用_第8张图片

7.启动 Jupyter Notebooks

激活 python 虚拟环境,配置 OpenVINO 环境变量,启动 jupyter lab。注意,每一次新的会话,如终端关闭或重启都需要该步骤。​​​​​​​

source openvino_env/bin/activatesource openvino/openvino_dist/bin/setupvars.shjupyter lab notebooks

Paddle OCR 模型在 OpenVINO 的部署应用_第9张图片

8.加载项目

由于这个项目没有推理模型,只有推理脚本。所以这里我们需要下载 PP-OCR 预训练模型

Paddle OCR 模型在 OpenVINO 的部署应用_第10张图片

9.下载模型

这是我在 Github 找到的 PP-OCR 系列模型列表

https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.4/doc/doc_ch/models_list.md

我们在页面找到 ch_PP-OCRv2_rec_slim Slim 量化版超轻量模型,支持中英文、数字识别,点击下载

下载完成后解压

tar·xf·ch_PP-OCRv2_rec_slim_quant_infer.tar

进入目录,查看模型信息

把模型导入推理代码中,这里我们修改成刚下载的模型文件的路径

Paddle OCR 模型在 OpenVINO 的部署应用_第11张图片

10.运行推理

运行推理脚本,看到 print 打印出的信息和原图片信息是一致的,该模型的识别率精确度是很不错的。

四.总结

随着我们 OpenVINO 2022.1 版本的推出,以上步骤2-4中这些较为复杂的涉及到源码编译的步骤将可以被省略掉。 只需将第二步中的git命令更换为 

git clone --depth=1 https://github.com/OpenVINOtoolkit/OpenVINO_notebooks.git

执行第5以及7-10步,就可以得到推理的结果了。具体的安装步骤可以参考这个 GitHub 地址

https://github.com/OpenVINOtoolkit/OpenVINO_notebooks

Paddle OCR 模型在 OpenVINO 的部署应用_第12张图片


英特尔 OpenVINO开发工具套件高级课程,原价99元,限时免费学习,点击立即报名 icon-default.png?t=M276https://bss.csdn.net/m/topic/intel_openvino/index/2/0?utm_source=wenzhang2

你可能感兴趣的:(OpenVINO,paddle,openvino,深度学习)