Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
wangsen
paddle_dbnet
Commits
f14540ee
Commit
f14540ee
authored
Nov 09, 2021
by
LDOUBLEV
Browse files
Merge branch 'dygraph' of
https://github.com/PaddlePaddle/PaddleOCR
into tipc
parents
f34a3816
2ca8864a
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
26 additions
and
11 deletions
+26
-11
deploy/paddle2onnx/readme.md
deploy/paddle2onnx/readme.md
+5
-1
tools/infer/predict_e2e.py
tools/infer/predict_e2e.py
+21
-10
No files found.
deploy/paddle2onnx/readme.md
View file @
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
View file @
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
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment