Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleOCR
提交
48a6ebad
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看板
提交
48a6ebad
编写于
11月 08, 2021
作者:
T
tink2123
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
mind not support alg
上级
c6c39e87
变更
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
浏览文件 @
48a6ebad
...
...
@@ -7,6 +7,7 @@
需要准备 Paddle2ONNX 模型转化环境,和 ONNX 模型预测环境
### Paddle2ONNX
Paddle2ONNX 支持将 PaddlePaddle 模型格式转化到 ONNX 模型格式,算子目前稳定支持导出 ONNX Opset 9~11,部分Paddle算子支持更低的ONNX Opset转换。
更多细节可参考
[
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/ \
执行完毕后,ONNX 模型会被保存在
`./inference/det_mobile_onnx/`
路径下
*
注意:以下几个模型暂不支持转换为 ONNX 模型:
NRTR、SAR、RARE、SRN
## 3. onnx 预测
以检测模型为例,使用 ONNX 预测可执行如下命令:
...
...
@@ -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
```
*
注意:ONNX暂时不支持变长预测,
因为
需要将输入resize到固定输入,预测结果可能与直接使用Paddle预测有细微不同。
*
注意:ONNX暂时不支持变长预测,需要将输入resize到固定输入,预测结果可能与直接使用Paddle预测有细微不同。
tools/infer/predict_e2e.py
浏览文件 @
48a6ebad
...
...
@@ -38,6 +38,7 @@ class TextE2E(object):
def
__init__
(
self
,
args
):
self
.
args
=
args
self
.
e2e_algorithm
=
args
.
e2e_algorithm
self
.
use_onnx
=
args
.
use_onnx
pre_process_list
=
[{
'E2EResizeForTest'
:
{}
},
{
...
...
@@ -106,21 +107,31 @@ class TextE2E(object):
img
=
img
.
copy
()
starttime
=
time
.
time
()
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'
:
if
self
.
use_onnx
:
input_dict
=
{}
input_dict
[
self
.
input_tensor
.
name
]
=
img
outputs
=
self
.
predictor
.
run
(
self
.
output_tensors
,
input_dict
)
preds
=
{}
preds
[
'f_border'
]
=
outputs
[
0
]
preds
[
'f_char'
]
=
outputs
[
1
]
preds
[
'f_direction'
]
=
outputs
[
2
]
preds
[
'f_score'
]
=
outputs
[
3
]
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
)
points
,
strs
=
post_result
[
'points'
],
post_result
[
'texts'
]
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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录