Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
s920243400
PaddleOCR
提交
f14540ee
P
PaddleOCR
项目概览
s920243400
/
PaddleOCR
与 Fork 源项目一致
Fork自
PaddlePaddle / PaddleOCR
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PaddleOCR
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
f14540ee
编写于
11月 09, 2021
作者:
L
LDOUBLEV
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'dygraph' of
https://github.com/PaddlePaddle/PaddleOCR
into tipc
上级
f34a3816
2ca8864a
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
26 addition
and
11 deletion
+26
-11
deploy/paddle2onnx/readme.md
deploy/paddle2onnx/readme.md
+5
-1
tools/infer/predict_e2e.py
tools/infer/predict_e2e.py
+21
-10
未找到文件。
deploy/paddle2onnx/readme.md
浏览文件 @
f14540ee
...
@@ -7,6 +7,7 @@
...
@@ -7,6 +7,7 @@
需要准备 Paddle2ONNX 模型转化环境,和 ONNX 模型预测环境
需要准备 Paddle2ONNX 模型转化环境,和 ONNX 模型预测环境
### Paddle2ONNX
### Paddle2ONNX
Paddle2ONNX 支持将 PaddlePaddle 模型格式转化到 ONNX 模型格式,算子目前稳定支持导出 ONNX Opset 9~11,部分Paddle算子支持更低的ONNX Opset转换。
Paddle2ONNX 支持将 PaddlePaddle 模型格式转化到 ONNX 模型格式,算子目前稳定支持导出 ONNX Opset 9~11,部分Paddle算子支持更低的ONNX Opset转换。
更多细节可参考
[
Paddle2ONNX
](
https://github.com/PaddlePaddle/Paddle2ONNX/blob/develop/README_zh.md
)
更多细节可参考
[
Paddle2ONNX
](
https://github.com/PaddlePaddle/Paddle2ONNX/blob/develop/README_zh.md
)
...
@@ -51,6 +52,9 @@ paddle2onnx --model_dir=./inference/ch_ppocr_mobile_v2.0_det_infer/ \
...
@@ -51,6 +52,9 @@ paddle2onnx --model_dir=./inference/ch_ppocr_mobile_v2.0_det_infer/ \
执行完毕后,ONNX 模型会被保存在
`./inference/det_mobile_onnx/`
路径下
执行完毕后,ONNX 模型会被保存在
`./inference/det_mobile_onnx/`
路径下
*
注意:以下几个模型暂不支持转换为 ONNX 模型:
NRTR、SAR、RARE、SRN
## 3. onnx 预测
## 3. onnx 预测
以检测模型为例,使用 ONNX 预测可执行如下命令:
以检测模型为例,使用 ONNX 预测可执行如下命令:
...
@@ -69,4 +73,4 @@ The predict time of ../../doc/imgs/1.jpg: 0.06162881851196289
...
@@ -69,4 +73,4 @@ The predict time of ../../doc/imgs/1.jpg: 0.06162881851196289
The visualized image saved in ./inference_results/det_res_1.jpg
The visualized image saved in ./inference_results/det_res_1.jpg
```
```
*
注意:ONNX暂时不支持变长预测,
因为
需要将输入resize到固定输入,预测结果可能与直接使用Paddle预测有细微不同。
*
注意:ONNX暂时不支持变长预测,需要将输入resize到固定输入,预测结果可能与直接使用Paddle预测有细微不同。
tools/infer/predict_e2e.py
浏览文件 @
f14540ee
...
@@ -38,6 +38,7 @@ class TextE2E(object):
...
@@ -38,6 +38,7 @@ class TextE2E(object):
def
__init__
(
self
,
args
):
def
__init__
(
self
,
args
):
self
.
args
=
args
self
.
args
=
args
self
.
e2e_algorithm
=
args
.
e2e_algorithm
self
.
e2e_algorithm
=
args
.
e2e_algorithm
self
.
use_onnx
=
args
.
use_onnx
pre_process_list
=
[{
pre_process_list
=
[{
'E2EResizeForTest'
:
{}
'E2EResizeForTest'
:
{}
},
{
},
{
...
@@ -106,21 +107,31 @@ class TextE2E(object):
...
@@ -106,21 +107,31 @@ class TextE2E(object):
img
=
img
.
copy
()
img
=
img
.
copy
()
starttime
=
time
.
time
()
starttime
=
time
.
time
()
self
.
input_tensor
.
copy_from_cpu
(
img
)
if
self
.
use_onnx
:
self
.
predictor
.
run
()
input_dict
=
{}
outputs
=
[]
input_dict
[
self
.
input_tensor
.
name
]
=
img
for
output_tensor
in
self
.
output_tensors
:
outputs
=
self
.
predictor
.
run
(
self
.
output_tensors
,
input_dict
)
output
=
output_tensor
.
copy_to_cpu
()
preds
=
{}
outputs
.
append
(
output
)
preds
=
{}
if
self
.
e2e_algorithm
==
'PGNet'
:
preds
[
'f_border'
]
=
outputs
[
0
]
preds
[
'f_border'
]
=
outputs
[
0
]
preds
[
'f_char'
]
=
outputs
[
1
]
preds
[
'f_char'
]
=
outputs
[
1
]
preds
[
'f_direction'
]
=
outputs
[
2
]
preds
[
'f_direction'
]
=
outputs
[
2
]
preds
[
'f_score'
]
=
outputs
[
3
]
preds
[
'f_score'
]
=
outputs
[
3
]
else
:
else
:
raise
NotImplementedError
self
.
input_tensor
.
copy_from_cpu
(
img
)
self
.
predictor
.
run
()
outputs
=
[]
for
output_tensor
in
self
.
output_tensors
:
output
=
output_tensor
.
copy_to_cpu
()
outputs
.
append
(
output
)
preds
=
{}
if
self
.
e2e_algorithm
==
'PGNet'
:
preds
[
'f_border'
]
=
outputs
[
0
]
preds
[
'f_char'
]
=
outputs
[
1
]
preds
[
'f_direction'
]
=
outputs
[
2
]
preds
[
'f_score'
]
=
outputs
[
3
]
else
:
raise
NotImplementedError
post_result
=
self
.
postprocess_op
(
preds
,
shape_list
)
post_result
=
self
.
postprocess_op
(
preds
,
shape_list
)
points
,
strs
=
post_result
[
'points'
],
post_result
[
'texts'
]
points
,
strs
=
post_result
[
'points'
],
post_result
[
'texts'
]
dt_boxes
=
self
.
filter_tag_det_res_only_clip
(
points
,
ori_im
.
shape
)
dt_boxes
=
self
.
filter_tag_det_res_only_clip
(
points
,
ori_im
.
shape
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录