Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
weixin_41840029
PaddleOCR
提交
d95b2fcc
P
PaddleOCR
项目概览
weixin_41840029
/
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看板
未验证
提交
d95b2fcc
编写于
5月 30, 2022
作者:
A
andyjpaddle
提交者:
GitHub
5月 30, 2022
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #6441 from andyjpaddle/add_kl_pact
[TIPC] add KL and PACT
上级
354d5800
0ac032ff
变更
11
显示空白变更内容
内联
并排
Showing
11 changed file
with
64 addition
and
32 deletion
+64
-32
ppstructure/table/predict_table.py
ppstructure/table/predict_table.py
+33
-2
test_tipc/common_func.sh
test_tipc/common_func.sh
+3
-2
test_tipc/configs/ch_PP-OCRv2_det_KL/model_linux_gpu_normal_normal_infer_python_linux_gpu_cpu.txt
...el_linux_gpu_normal_normal_infer_python_linux_gpu_cpu.txt
+4
-4
test_tipc/configs/ch_PP-OCRv2_rec_KL/model_linux_gpu_normal_normal_infer_python_linux_gpu_cpu.txt
...el_linux_gpu_normal_normal_infer_python_linux_gpu_cpu.txt
+5
-5
test_tipc/configs/ch_PP-OCRv2_rec_PACT/train_infer_python.txt
..._tipc/configs/ch_PP-OCRv2_rec_PACT/train_infer_python.txt
+1
-1
test_tipc/configs/ch_PP-OCRv3_det_KL/model_linux_gpu_normal_normal_infer_python_linux_gpu_cpu.txt
...el_linux_gpu_normal_normal_infer_python_linux_gpu_cpu.txt
+4
-4
test_tipc/configs/ch_PP-OCRv3_rec_KL/model_linux_gpu_normal_normal_infer_python_linux_gpu_cpu.txt
...el_linux_gpu_normal_normal_infer_python_linux_gpu_cpu.txt
+5
-5
test_tipc/configs/ch_PP-OCRv3_rec_PACT/train_infer_python.txt
..._tipc/configs/ch_PP-OCRv3_rec_PACT/train_infer_python.txt
+1
-1
test_tipc/configs/ch_ppocr_mobile_v2.0_det_KL/model_linux_gpu_normal_normal_infer_python_linux_gpu_cpu.txt
...el_linux_gpu_normal_normal_infer_python_linux_gpu_cpu.txt
+3
-3
test_tipc/configs/ch_ppocr_mobile_v2.0_det_PACT/train_infer_python.txt
...figs/ch_ppocr_mobile_v2.0_det_PACT/train_infer_python.txt
+1
-1
test_tipc/configs/ch_ppocr_mobile_v2.0_rec_KL/model_linux_gpu_normal_normal_infer_python_linux_gpu_cpu.txt
...el_linux_gpu_normal_normal_infer_python_linux_gpu_cpu.txt
+4
-4
未找到文件。
ppstructure/table/predict_table.py
浏览文件 @
d95b2fcc
...
@@ -28,6 +28,7 @@ import numpy as np
...
@@ -28,6 +28,7 @@ import numpy as np
import
time
import
time
import
tools.infer.predict_rec
as
predict_rec
import
tools.infer.predict_rec
as
predict_rec
import
tools.infer.predict_det
as
predict_det
import
tools.infer.predict_det
as
predict_det
import
tools.infer.utility
as
utility
from
ppocr.utils.utility
import
get_image_file_list
,
check_and_read_gif
from
ppocr.utils.utility
import
get_image_file_list
,
check_and_read_gif
from
ppocr.utils.logging
import
get_logger
from
ppocr.utils.logging
import
get_logger
from
ppstructure.table.matcher
import
distance
,
compute_iou
from
ppstructure.table.matcher
import
distance
,
compute_iou
...
@@ -59,11 +60,37 @@ class TableSystem(object):
...
@@ -59,11 +60,37 @@ class TableSystem(object):
self
.
text_recognizer
=
predict_rec
.
TextRecognizer
(
self
.
text_recognizer
=
predict_rec
.
TextRecognizer
(
args
)
if
text_recognizer
is
None
else
text_recognizer
args
)
if
text_recognizer
is
None
else
text_recognizer
self
.
table_structurer
=
predict_strture
.
TableStructurer
(
args
)
self
.
table_structurer
=
predict_strture
.
TableStructurer
(
args
)
self
.
benchmark
=
args
.
benchmark
self
.
predictor
,
self
.
input_tensor
,
self
.
output_tensors
,
self
.
config
=
utility
.
create_predictor
(
args
,
'table'
,
logger
)
if
args
.
benchmark
:
import
auto_log
pid
=
os
.
getpid
()
gpu_id
=
utility
.
get_infer_gpuid
()
self
.
autolog
=
auto_log
.
AutoLogger
(
model_name
=
"table"
,
model_precision
=
args
.
precision
,
batch_size
=
1
,
data_shape
=
"dynamic"
,
save_path
=
None
,
#args.save_log_path,
inference_config
=
self
.
config
,
pids
=
pid
,
process_name
=
None
,
gpu_ids
=
gpu_id
if
args
.
use_gpu
else
None
,
time_keys
=
[
'preprocess_time'
,
'inference_time'
,
'postprocess_time'
],
warmup
=
0
,
logger
=
logger
)
def
__call__
(
self
,
img
,
return_ocr_result_in_table
=
False
):
def
__call__
(
self
,
img
,
return_ocr_result_in_table
=
False
):
result
=
dict
()
result
=
dict
()
ori_im
=
img
.
copy
()
ori_im
=
img
.
copy
()
if
self
.
benchmark
:
self
.
autolog
.
times
.
start
()
structure_res
,
elapse
=
self
.
table_structurer
(
copy
.
deepcopy
(
img
))
structure_res
,
elapse
=
self
.
table_structurer
(
copy
.
deepcopy
(
img
))
if
self
.
benchmark
:
self
.
autolog
.
times
.
stamp
()
dt_boxes
,
elapse
=
self
.
text_detector
(
copy
.
deepcopy
(
img
))
dt_boxes
,
elapse
=
self
.
text_detector
(
copy
.
deepcopy
(
img
))
dt_boxes
=
sorted_boxes
(
dt_boxes
)
dt_boxes
=
sorted_boxes
(
dt_boxes
)
if
return_ocr_result_in_table
:
if
return_ocr_result_in_table
:
...
@@ -77,13 +104,11 @@ class TableSystem(object):
...
@@ -77,13 +104,11 @@ class TableSystem(object):
box
=
[
x_min
,
y_min
,
x_max
,
y_max
]
box
=
[
x_min
,
y_min
,
x_max
,
y_max
]
r_boxes
.
append
(
box
)
r_boxes
.
append
(
box
)
dt_boxes
=
np
.
array
(
r_boxes
)
dt_boxes
=
np
.
array
(
r_boxes
)
logger
.
debug
(
"dt_boxes num : {}, elapse : {}"
.
format
(
logger
.
debug
(
"dt_boxes num : {}, elapse : {}"
.
format
(
len
(
dt_boxes
),
elapse
))
len
(
dt_boxes
),
elapse
))
if
dt_boxes
is
None
:
if
dt_boxes
is
None
:
return
None
,
None
return
None
,
None
img_crop_list
=
[]
img_crop_list
=
[]
for
i
in
range
(
len
(
dt_boxes
)):
for
i
in
range
(
len
(
dt_boxes
)):
det_box
=
dt_boxes
[
i
]
det_box
=
dt_boxes
[
i
]
x0
,
y0
,
x1
,
y1
=
expand
(
2
,
det_box
,
ori_im
.
shape
)
x0
,
y0
,
x1
,
y1
=
expand
(
2
,
det_box
,
ori_im
.
shape
)
...
@@ -92,10 +117,14 @@ class TableSystem(object):
...
@@ -92,10 +117,14 @@ class TableSystem(object):
rec_res
,
elapse
=
self
.
text_recognizer
(
img_crop_list
)
rec_res
,
elapse
=
self
.
text_recognizer
(
img_crop_list
)
logger
.
debug
(
"rec_res num : {}, elapse : {}"
.
format
(
logger
.
debug
(
"rec_res num : {}, elapse : {}"
.
format
(
len
(
rec_res
),
elapse
))
len
(
rec_res
),
elapse
))
if
self
.
benchmark
:
self
.
autolog
.
times
.
stamp
()
if
return_ocr_result_in_table
:
if
return_ocr_result_in_table
:
result
[
'rec_res'
]
=
rec_res
result
[
'rec_res'
]
=
rec_res
pred_html
,
pred
=
self
.
rebuild_table
(
structure_res
,
dt_boxes
,
rec_res
)
pred_html
,
pred
=
self
.
rebuild_table
(
structure_res
,
dt_boxes
,
rec_res
)
result
[
'html'
]
=
pred_html
result
[
'html'
]
=
pred_html
if
self
.
benchmark
:
self
.
autolog
.
times
.
end
(
stamp
=
True
)
return
result
return
result
def
rebuild_table
(
self
,
structure_res
,
dt_boxes
,
rec_res
):
def
rebuild_table
(
self
,
structure_res
,
dt_boxes
,
rec_res
):
...
@@ -213,6 +242,8 @@ def main(args):
...
@@ -213,6 +242,8 @@ def main(args):
logger
.
info
(
'excel saved to {}'
.
format
(
excel_path
))
logger
.
info
(
'excel saved to {}'
.
format
(
excel_path
))
elapse
=
time
.
time
()
-
starttime
elapse
=
time
.
time
()
-
starttime
logger
.
info
(
"Predict time : {:.3f}s"
.
format
(
elapse
))
logger
.
info
(
"Predict time : {:.3f}s"
.
format
(
elapse
))
if
args
.
benchmark
:
text_sys
.
autolog
.
report
()
if
__name__
==
"__main__"
:
if
__name__
==
"__main__"
:
...
...
test_tipc/common_func.sh
浏览文件 @
d95b2fcc
...
@@ -57,10 +57,11 @@ function status_check(){
...
@@ -57,10 +57,11 @@ function status_check(){
last_status
=
$1
# the exit code
last_status
=
$1
# the exit code
run_command
=
$2
run_command
=
$2
run_log
=
$3
run_log
=
$3
model_name
=
$4
if
[
$last_status
-eq
0
]
;
then
if
[
$last_status
-eq
0
]
;
then
echo
-e
"
\0
33[33m Run successfully with command -
${
run_command
}
!
\0
33[0m"
|
tee
-a
${
run_log
}
echo
-e
"
\0
33[33m Run successfully with command -
${
model_name
}
-
${
run_command
}
!
\0
33[0m"
|
tee
-a
${
run_log
}
else
else
echo
-e
"
\0
33[33m Run failed with command -
${
run_command
}
!
\0
33[0m"
|
tee
-a
${
run_log
}
echo
-e
"
\0
33[33m Run failed with command -
${
model_name
}
-
${
run_command
}
!
\0
33[0m"
|
tee
-a
${
run_log
}
fi
fi
}
}
test_tipc/configs/ch_PP-OCRv2_det_KL/model_linux_gpu_normal_normal_infer_python_linux_gpu_cpu.txt
浏览文件 @
d95b2fcc
===========================kl_quant_params===========================
===========================kl_quant_params===========================
model_name:
PPOCRv2_ocr_det_kl
model_name:
ch_PP-OCRv2_det_KL
python:python3.7
python:python3.7
Global.pretrained_model:null
Global.pretrained_model:null
Global.save_inference_dir:null
Global.save_inference_dir:null
...
@@ -8,10 +8,10 @@ infer_export:deploy/slim/quantization/quant_kl.py -c configs/det/ch_PP-OCRv2/ch_
...
@@ -8,10 +8,10 @@ infer_export:deploy/slim/quantization/quant_kl.py -c configs/det/ch_PP-OCRv2/ch_
infer_quant:True
infer_quant:True
inference:tools/infer/predict_det.py
inference:tools/infer/predict_det.py
--use_gpu:False|True
--use_gpu:False|True
--enable_mkldnn:
Tru
e
--enable_mkldnn:
Fals
e
--cpu_threads:
1|
6
--cpu_threads:6
--rec_batch_num:1
--rec_batch_num:1
--use_tensorrt:False
|True
--use_tensorrt:False
--precision:int8
--precision:int8
--det_model_dir:
--det_model_dir:
--image_dir:./inference/ch_det_data_50/all-sum-510/
--image_dir:./inference/ch_det_data_50/all-sum-510/
...
...
test_tipc/configs/ch_PP-OCRv2_rec_KL/model_linux_gpu_normal_normal_infer_python_linux_gpu_cpu.txt
浏览文件 @
d95b2fcc
===========================kl_quant_params===========================
===========================kl_quant_params===========================
model_name:
PPOCRv2_ocr_rec_kl
model_name:
ch_PP-OCRv2_rec_KL
python:python3.7
python:python3.7
Global.pretrained_model:null
Global.pretrained_model:null
Global.save_inference_dir:null
Global.save_inference_dir:null
infer_model:./inference/ch_PP-OCRv2_rec_infer/
infer_model:./inference/ch_PP-OCRv2_rec_infer/
infer_export:deploy/slim/quantization/quant_kl.py -c test_tipc/configs/ch_PP-OCRv2_rec/ch_PP-OCRv2_rec_distillation.yml -o
infer_export:deploy/slim/quantization/quant_kl.py -c test_tipc/configs/ch_PP-OCRv2_rec/ch_PP-OCRv2_rec_distillation.yml -o
infer_quant:True
infer_quant:True
inference:tools/infer/predict_rec.py
inference:tools/infer/predict_rec.py
--rec_image_shape="3,32,320"
--use_gpu:False|True
--use_gpu:False|True
--enable_mkldnn:False
|True
--enable_mkldnn:False
--cpu_threads:
1|
6
--cpu_threads:6
--rec_batch_num:1|6
--rec_batch_num:1|6
--use_tensorrt:
Tru
e
--use_tensorrt:
Fals
e
--precision:int8
--precision:int8
--rec_model_dir:
--rec_model_dir:
--image_dir:./inference/rec_inference
--image_dir:./inference/rec_inference
...
...
test_tipc/configs/ch_PP-OCRv2_rec_PACT/train_infer_python.txt
浏览文件 @
d95b2fcc
...
@@ -4,7 +4,7 @@ python:python3.7
...
@@ -4,7 +4,7 @@ python:python3.7
gpu_list:0|0,1
gpu_list:0|0,1
Global.use_gpu:True|True
Global.use_gpu:True|True
Global.auto_cast:fp32
Global.auto_cast:fp32
Global.epoch_num:lite_train_lite_infer=
6
|whole_train_whole_infer=50
Global.epoch_num:lite_train_lite_infer=
1
|whole_train_whole_infer=50
Global.save_model_dir:./output/
Global.save_model_dir:./output/
Train.loader.batch_size_per_card:lite_train_lite_infer=16|whole_train_whole_infer=128
Train.loader.batch_size_per_card:lite_train_lite_infer=16|whole_train_whole_infer=128
Global.pretrained_model:pretrain_models/ch_PP-OCRv2_rec_train/best_accuracy
Global.pretrained_model:pretrain_models/ch_PP-OCRv2_rec_train/best_accuracy
...
...
test_tipc/configs/ch_PP-OCRv3_det_KL/model_linux_gpu_normal_normal_infer_python_linux_gpu_cpu.txt
浏览文件 @
d95b2fcc
===========================kl_quant_params===========================
===========================kl_quant_params===========================
model_name:
PPOCRv3_ocr_det_kl
model_name:
ch_PP-OCRv3_det_KL
python:python3.7
python:python3.7
Global.pretrained_model:null
Global.pretrained_model:null
Global.save_inference_dir:null
Global.save_inference_dir:null
...
@@ -8,10 +8,10 @@ infer_export:deploy/slim/quantization/quant_kl.py -c configs/det/ch_PP-OCRv3/ch_
...
@@ -8,10 +8,10 @@ infer_export:deploy/slim/quantization/quant_kl.py -c configs/det/ch_PP-OCRv3/ch_
infer_quant:True
infer_quant:True
inference:tools/infer/predict_det.py
inference:tools/infer/predict_det.py
--use_gpu:False|True
--use_gpu:False|True
--enable_mkldnn:
Tru
e
--enable_mkldnn:
Fals
e
--cpu_threads:
1|
6
--cpu_threads:6
--rec_batch_num:1
--rec_batch_num:1
--use_tensorrt:False
|True
--use_tensorrt:False
--precision:int8
--precision:int8
--det_model_dir:
--det_model_dir:
--image_dir:./inference/ch_det_data_50/all-sum-510/
--image_dir:./inference/ch_det_data_50/all-sum-510/
...
...
test_tipc/configs/ch_PP-OCRv3_rec_KL/model_linux_gpu_normal_normal_infer_python_linux_gpu_cpu.txt
浏览文件 @
d95b2fcc
===========================kl_quant_params===========================
===========================kl_quant_params===========================
model_name:
PPOCRv3_ocr_rec_kl
model_name:
ch_PP-OCRv3_rec_KL
python:python3.7
python:python3.7
Global.pretrained_model:
null
Global.pretrained_model:
Global.save_inference_dir:null
Global.save_inference_dir:null
infer_model:./inference/ch_PP-OCRv3_rec_infer/
infer_model:./inference/ch_PP-OCRv3_rec_infer/
infer_export:deploy/slim/quantization/quant_kl.py -c test_tipc/configs/ch_PP-OCRv3_rec/ch_PP-OCRv3_rec_distillation.yml -o
infer_export:deploy/slim/quantization/quant_kl.py -c test_tipc/configs/ch_PP-OCRv3_rec/ch_PP-OCRv3_rec_distillation.yml -o
infer_quant:True
infer_quant:True
inference:tools/infer/predict_rec.py --rec_image_shape="3,48,320"
inference:tools/infer/predict_rec.py --rec_image_shape="3,48,320"
--use_gpu:False|True
--use_gpu:False|True
--enable_mkldnn:False
|True
--enable_mkldnn:False
--cpu_threads:
1|
6
--cpu_threads:6
--rec_batch_num:1|6
--rec_batch_num:1|6
--use_tensorrt:
Tru
e
--use_tensorrt:
Fals
e
--precision:int8
--precision:int8
--rec_model_dir:
--rec_model_dir:
--image_dir:./inference/rec_inference
--image_dir:./inference/rec_inference
...
...
test_tipc/configs/ch_PP-OCRv3_rec_PACT/train_infer_python.txt
浏览文件 @
d95b2fcc
...
@@ -4,7 +4,7 @@ python:python3.7
...
@@ -4,7 +4,7 @@ python:python3.7
gpu_list:0|0,1
gpu_list:0|0,1
Global.use_gpu:True|True
Global.use_gpu:True|True
Global.auto_cast:fp32
Global.auto_cast:fp32
Global.epoch_num:lite_train_lite_infer=
6
|whole_train_whole_infer=50
Global.epoch_num:lite_train_lite_infer=
1
|whole_train_whole_infer=50
Global.save_model_dir:./output/
Global.save_model_dir:./output/
Train.loader.batch_size_per_card:lite_train_lite_infer=16|whole_train_whole_infer=128
Train.loader.batch_size_per_card:lite_train_lite_infer=16|whole_train_whole_infer=128
Global.pretrained_model:pretrain_models/ch_PP-OCRv3_rec_train/best_accuracy
Global.pretrained_model:pretrain_models/ch_PP-OCRv3_rec_train/best_accuracy
...
...
test_tipc/configs/ch_ppocr_mobile_v2.0_det_KL/model_linux_gpu_normal_normal_infer_python_linux_gpu_cpu.txt
浏览文件 @
d95b2fcc
...
@@ -8,10 +8,10 @@ infer_export:deploy/slim/quantization/quant_kl.py -c configs/det/ch_ppocr_v2.0/c
...
@@ -8,10 +8,10 @@ infer_export:deploy/slim/quantization/quant_kl.py -c configs/det/ch_ppocr_v2.0/c
infer_quant:True
infer_quant:True
inference:tools/infer/predict_det.py
inference:tools/infer/predict_det.py
--use_gpu:False|True
--use_gpu:False|True
--enable_mkldnn:
Tru
e
--enable_mkldnn:
Fals
e
--cpu_threads:
1|
6
--cpu_threads:6
--rec_batch_num:1
--rec_batch_num:1
--use_tensorrt:False
|True
--use_tensorrt:False
--precision:int8
--precision:int8
--det_model_dir:
--det_model_dir:
--image_dir:./inference/ch_det_data_50/all-sum-510/
--image_dir:./inference/ch_det_data_50/all-sum-510/
...
...
test_tipc/configs/ch_ppocr_mobile_v2.0_det_PACT/train_infer_python.txt
浏览文件 @
d95b2fcc
...
@@ -4,7 +4,7 @@ python:python3.7
...
@@ -4,7 +4,7 @@ python:python3.7
gpu_list:0|0,1
gpu_list:0|0,1
Global.use_gpu:True|True
Global.use_gpu:True|True
Global.auto_cast:null
Global.auto_cast:null
Global.epoch_num:lite_train_lite_infer=2
0
|whole_train_whole_infer=50
Global.epoch_num:lite_train_lite_infer=2|whole_train_whole_infer=50
Global.save_model_dir:./output/
Global.save_model_dir:./output/
Train.loader.batch_size_per_card:lite_train_lite_infer=2|whole_train_whole_infer=4
Train.loader.batch_size_per_card:lite_train_lite_infer=2|whole_train_whole_infer=4
Global.pretrained_model:null
Global.pretrained_model:null
...
...
test_tipc/configs/ch_ppocr_mobile_v2.0_rec_KL/model_linux_gpu_normal_normal_infer_python_linux_gpu_cpu.txt
浏览文件 @
d95b2fcc
...
@@ -6,12 +6,12 @@ Global.save_inference_dir:null
...
@@ -6,12 +6,12 @@ Global.save_inference_dir:null
infer_model:./inference/ch_ppocr_mobile_v2.0_rec_infer/
infer_model:./inference/ch_ppocr_mobile_v2.0_rec_infer/
infer_export:deploy/slim/quantization/quant_kl.py -c test_tipc/configs/ch_ppocr_mobile_v2.0_rec_KL/rec_chinese_lite_train_v2.0.yml -o
infer_export:deploy/slim/quantization/quant_kl.py -c test_tipc/configs/ch_ppocr_mobile_v2.0_rec_KL/rec_chinese_lite_train_v2.0.yml -o
infer_quant:True
infer_quant:True
inference:tools/infer/predict_rec.py
inference:tools/infer/predict_rec.py
--rec_image_shape="3,32,320"
--use_gpu:False|True
--use_gpu:False|True
--enable_mkldnn:
Tru
e
--enable_mkldnn:
Fals
e
--cpu_threads:
1|
6
--cpu_threads:6
--rec_batch_num:1
--rec_batch_num:1
--use_tensorrt:False
|True
--use_tensorrt:False
--precision:int8
--precision:int8
--rec_model_dir:
--rec_model_dir:
--image_dir:./inference/rec_inference
--image_dir:./inference/rec_inference
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录