Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleOCR
提交
39ee81b9
P
PaddleOCR
项目概览
PaddlePaddle
/
PaddleOCR
大约 1 年 前同步成功
通知
1528
Star
32962
Fork
6643
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
108
列表
看板
标记
里程碑
合并请求
7
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PaddleOCR
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
108
Issue
108
列表
看板
标记
里程碑
合并请求
7
合并请求
7
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
39ee81b9
编写于
4月 28, 2022
作者:
T
tink2123
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add rec introduction, update pdserving
上级
2b6c887a
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
45 addition
and
18 deletion
+45
-18
deploy/pdserving/README_CN.md
deploy/pdserving/README_CN.md
+18
-12
doc/doc_ch/ppocr_introduction.md
doc/doc_ch/ppocr_introduction.md
+27
-6
未找到文件。
deploy/pdserving/README_CN.md
浏览文件 @
39ee81b9
...
@@ -9,13 +9,21 @@ PaddleOCR提供2种服务部署方式:
...
@@ -9,13 +9,21 @@ PaddleOCR提供2种服务部署方式:
# 基于PaddleServing的服务部署
# 基于PaddleServing的服务部署
本文档将介绍如何使用
[
PaddleServing
](
https://github.com/PaddlePaddle/Serving/blob/develop/README_CN.md
)
工具部署PP-OCR动态图模型的pipeline在线服务。
本文档将介绍如何使用
[
PaddleServing
](
https://github.com/PaddlePaddle/Serving/blob/develop/README_CN.md
)
工具部署PP-OCR动态图模型的pipeline在线服务。
相比较于hubserving部署,PaddleServing具备以下优点:
相比较于hubserving部署,PaddleServing具备以下优点:
-
支持客户端和服务端之间高并发和高效通信
-
支持客户端和服务端之间高并发和高效通信
-
支持 工业级的服务能力 例如模型管理,在线加载,在线A/B测试等
-
支持 工业级的服务能力 例如模型管理,在线加载,在线A/B测试等
-
支持 多种编程语言 开发客户端,例如C++, Python和Java
-
支持 多种编程语言 开发客户端,例如C++, Python和Java
PaddleServing 支持多种语言部署,本例中提供了python pipeline 和 C++ 两种部署方式,两者的对比如下:
| 语言 | 速度 | 二次开发 | 是否需要编译 |
|-----|-----|---------|------------|
| C++ | 很快 | 略有难度 | 单模型预测无需编译,多模型串联需要编译 |
| python | 一般 | 容易 | 单模型/多模型 均无需编译|
更多有关PaddleServing服务化部署框架介绍和使用教程参考
[
文档
](
https://github.com/PaddlePaddle/Serving/blob/develop/README_CN.md
)
。
更多有关PaddleServing服务化部署框架介绍和使用教程参考
[
文档
](
https://github.com/PaddlePaddle/Serving/blob/develop/README_CN.md
)
。
AIStudio演示案例可参考
[
基于PaddleServing的OCR服务化部署实战
](
https://aistudio.baidu.com/aistudio/projectdetail/3630726
)
。
AIStudio演示案例可参考
[
基于PaddleServing的OCR服务化部署实战
](
https://aistudio.baidu.com/aistudio/projectdetail/3630726
)
。
...
@@ -34,6 +42,13 @@ AIStudio演示案例可参考 [基于PaddleServing的OCR服务化部署实战](h
...
@@ -34,6 +42,13 @@ AIStudio演示案例可参考 [基于PaddleServing的OCR服务化部署实战](h
-
准备PaddleOCR的运行环境
[
链接
](
../../doc/doc_ch/installation.md
)
-
准备PaddleOCR的运行环境
[
链接
](
../../doc/doc_ch/installation.md
)
```
git clone https://github.com/PaddlePaddle/PaddleOCR
# 进入到工作目录
cd PaddleOCR/deploy/pdserving/
```
-
准备PaddleServing的运行环境,步骤如下
-
准备PaddleServing的运行环境,步骤如下
```
bash
```
bash
...
@@ -105,13 +120,8 @@ python3 -m paddle_serving_client.convert --dirname ./ch_PP-OCRv2_rec_infer/ \
...
@@ -105,13 +120,8 @@ python3 -m paddle_serving_client.convert --dirname ./ch_PP-OCRv2_rec_infer/ \
<a
name=
"部署"
></a>
<a
name=
"部署"
></a>
## Paddle Serving pipeline部署
## Paddle Serving pipeline部署
1.
下载PaddleOCR代码,若已下载可跳过此步骤
1.
确认工作目录下文件结构:
```
git clone https://github.com/PaddlePaddle/PaddleOCR
# 进入到工作目录
cd PaddleOCR/deploy/pdserving/
```
pdserver目录包含启动pipeline服务和发送预测请求的代码,包括:
pdserver目录包含启动pipeline服务和发送预测请求的代码,包括:
```
```
__init__.py
__init__.py
...
@@ -196,16 +206,12 @@ python3 -m paddle_serving_client.convert --dirname ./ch_PP-OCRv2_rec_infer/ \
...
@@ -196,16 +206,12 @@ python3 -m paddle_serving_client.convert --dirname ./ch_PP-OCRv2_rec_infer/ \
C++ 服务部署在环境搭建和数据准备阶段与 python 相同,区别在于启动服务和客户端发送请求时不同。
C++ 服务部署在环境搭建和数据准备阶段与 python 相同,区别在于启动服务和客户端发送请求时不同。
| 语言 | 速度 | 二次开发 | 是否需要编译 |
|-----|-----|---------|------------|
| C++ | 很快 | 略有难度 | 单模型预测无需编译,多模型串联需要编译 |
| python | 一般 | 容易 | 单模型/多模型 均无需编译|
1.
准备 Serving 环境
1.
准备 Serving 环境
为了提高预测性能,C++ 服务同样提供了多模型串联服务。与python pipeline服务不同,多模型串联的过程中需要将模型前后处理代码写在服务端,因此需要在本地重新编译生成serving。
为了提高预测性能,C++ 服务同样提供了多模型串联服务。与python pipeline服务不同,多模型串联的过程中需要将模型前后处理代码写在服务端,因此需要在本地重新编译生成serving。
首先需要下载Serving代码库, 把OCR文本检测预处理相关代码替换到Serving库中
首先需要下载Serving代码库, 把OCR文本检测预处理相关代码替换到Serving库中
```
```
git clone https://github.com/PaddlePaddle/Serving
git clone https://github.com/PaddlePaddle/Serving
...
...
doc/doc_ch/ppocr_introduction.md
浏览文件 @
39ee81b9
...
@@ -39,6 +39,27 @@ PP-OCRv2在PP-OCR的基础上,进一步在5个方面重点优化,检测模
...
@@ -39,6 +39,27 @@ PP-OCRv2在PP-OCR的基础上,进一步在5个方面重点优化,检测模
#### PP-OCRv3
#### PP-OCRv3
PP-OCRv3识别从网络结构、训练策略、数据增强三个方向做了进一步优化:
-
网络结构上:使用
[
SVTR
](
todo:add_link
)
中的 Transformer block 替换LSTM,提升模型精度和预测速度;
-
训练策略上:参考
[
GTC
](
https://arxiv.org/pdf/2002.01276.pdf
)
策略,使用注意力机制模块指导CTC训练,定位和识别字符,提升不规则文本的识别精度;设计方向分类前序任务,获取更优预训练模型,加速模型收敛过程,提升精度。
-
数据增强上:使用
[
RecConAug
](
todo:add_link
)
数据增广方法,随机结合图片,提升训练数据的上下文信息丰富度,增强模型鲁棒性。
基于上述策略,PP-OCRv3识别模型相比上一版本,速度加速30%,精度进一步提升4.5%。 具体消融实验:
| id | 策略 | 模型大小 | 精度 | CPU+mkldnn 预测耗时 |
|-----|-----|--------|----|------------|
| 01 | PP-OCRv2 | 8M | 69.3% | 26ms |
| 02 | SVTR_tiny | 19M | 80.1% | - |
| 03 | LCNet_SVTR_G6 | 8.2M | 76% | - |
| 04 | LCNet_SVTR_G1 | - | - | - |
| 05 | PP-OCRv3 | 12M | 71.9% | 19ms |
| 06 | + GTC | 12M | 75.8% | 19ms |
| 07 | + RecConAug | 12M | 76.3% | 19ms |
| 08 | + SSL pretrain | 12M | 76.9% | 19ms |
| 09 | + UDML | 12M | 78.4% | 19ms |
| 10 | + unlabeled data | 12M | 79.4% | 19ms |
<a
name=
"2"
></a>
<a
name=
"2"
></a>
## 2. 特性
## 2. 特性
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录