本章主要介绍PP-OCRv2系统的高性能推理方法、服务化部署方法以及端侧部署方法。通过本章的学习,您可以学习到:
在前面几个章节中,我们通过模型训练的方法,得到了训练好的模型,在使用它去预测的时候,我们首先需要定义好模型,然后加载训练好的模型,再将预处理之后的数据送进网络中进行预测、后处理,得到最终的结果。使用这种方法去进行预测,调试方便,但是预测效率比较低下。
针对上面的问题,对于训练得到的模型,一般有下面2种离线预测的方式。
二者具体的区别如下所示。
| 基于训练引擎推理 | 基于预测引擎推理 | |
|---|---|---|
| 特点 | 1. 和训练使用同一套引擎 2. 预测时需要定义网络模型 3. 不适合系统集成 | 1. 需要转换模型,去掉与推理无关的部分 2. 预测时无需定义网络模型 3. 适合系统集成 |
| 编程语言 | 多为Python | Python或者C++ |
| 预测步骤 | 1. Python端定义网络结构 2. 准备输入数据 3. 加载训练模型 4. 执行预测 | 1. 准备输入数据 2. 加载模型结构和模型参数 3.执行预测 |
在实际离线预测部署中,更推荐基于预测引擎进行推理。
从应用场景来看,飞桨针对不同应用场景,提供了下面一些推理部署方案。

飞桨的不同部署方案
具体地,PaddleOCR 针对不同应用场景,提供了三种预测部署方案。
本章基于PP-OCRv2,介绍文本检测、识别以及系统串联预测推理与部署过程。
体验本章节内容需要首先下载PaddleOCR代码,安装相关依赖,具体命令如下。
- import os
-
- os.chdir("/home/aistudio")
- # 下载代码
- !git clone https://gitee.com/paddlepaddle/PaddleOCR.git
- os.chdir("/home/aistudio/PaddleOCR")
- # 安装运行所需要的whl包
- !pip install -U pip
- !pip install -r requirements.txt
- # VQA任务中需要用到该库
- !pip install paddlenlp==2.2.1
-
- # 导入一些库
- import cv2
- import matplotlib.pyplot as plt
- %matplotlib inline
- import numpy as np
- import os