Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Calex_1990
PaddleOCR
提交
da75ef8b
P
PaddleOCR
项目概览
Calex_1990
/
PaddleOCR
与 Fork 源项目一致
Fork自
PaddlePaddle / PaddleOCR
通知
1
Star
0
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看板
体验新版 GitCode,发现更多精彩内容 >>
提交
da75ef8b
编写于
8月 15, 2020
作者:
L
licx
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix conflict
上级
224667b8
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
30 addition
and
28 deletion
+30
-28
tools/eval.py
tools/eval.py
+2
-20
tools/program.py
tools/program.py
+28
-8
未找到文件。
tools/eval.py
浏览文件 @
da75ef8b
...
@@ -45,26 +45,10 @@ from ppocr.utils.save_load import init_model
...
@@ -45,26 +45,10 @@ from ppocr.utils.save_load import init_model
from
eval_utils.eval_det_utils
import
eval_det_run
from
eval_utils.eval_det_utils
import
eval_det_run
from
eval_utils.eval_rec_utils
import
test_rec_benchmark
from
eval_utils.eval_rec_utils
import
test_rec_benchmark
from
eval_utils.eval_rec_utils
import
eval_rec_run
from
eval_utils.eval_rec_utils
import
eval_rec_run
from
ppocr.utils.character
import
CharacterOps
def
main
():
def
main
():
config
=
program
.
load_config
(
FLAGS
.
config
)
startup_prog
,
eval_program
,
place
,
config
,
train_alg_type
=
program
.
preprocess
()
program
.
merge_config
(
FLAGS
.
opt
)
logger
.
info
(
config
)
# check if set use_gpu=True in paddlepaddle cpu version
use_gpu
=
config
[
'Global'
][
'use_gpu'
]
program
.
check_gpu
(
use_gpu
)
alg
=
config
[
'Global'
][
'algorithm'
]
assert
alg
in
[
'EAST'
,
'DB'
,
'Rosetta'
,
'CRNN'
,
'STARNet'
,
'RARE'
,
'SAST'
]
if
alg
in
[
'Rosetta'
,
'CRNN'
,
'STARNet'
,
'RARE'
]:
config
[
'Global'
][
'char_ops'
]
=
CharacterOps
(
config
[
'Global'
])
place
=
fluid
.
CUDAPlace
(
0
)
if
use_gpu
else
fluid
.
CPUPlace
()
startup_prog
=
fluid
.
Program
()
eval_program
=
fluid
.
Program
()
eval_build_outputs
=
program
.
build
(
eval_build_outputs
=
program
.
build
(
config
,
eval_program
,
startup_prog
,
mode
=
'test'
)
config
,
eval_program
,
startup_prog
,
mode
=
'test'
)
eval_fetch_name_list
=
eval_build_outputs
[
1
]
eval_fetch_name_list
=
eval_build_outputs
[
1
]
...
@@ -75,7 +59,7 @@ def main():
...
@@ -75,7 +59,7 @@ def main():
init_model
(
config
,
eval_program
,
exe
)
init_model
(
config
,
eval_program
,
exe
)
if
alg
in
[
'EAST'
,
'DB'
,
'SAST'
]
:
if
train_alg_type
==
'det'
:
eval_reader
=
reader_main
(
config
=
config
,
mode
=
"eval"
)
eval_reader
=
reader_main
(
config
=
config
,
mode
=
"eval"
)
eval_info_dict
=
{
'program'
:
eval_program
,
\
eval_info_dict
=
{
'program'
:
eval_program
,
\
'reader'
:
eval_reader
,
\
'reader'
:
eval_reader
,
\
...
@@ -101,6 +85,4 @@ def main():
...
@@ -101,6 +85,4 @@ def main():
if
__name__
==
'__main__'
:
if
__name__
==
'__main__'
:
parser
=
program
.
ArgsParser
()
FLAGS
=
parser
.
parse_args
()
main
()
main
()
tools/program.py
浏览文件 @
da75ef8b
...
@@ -22,6 +22,7 @@ import yaml
...
@@ -22,6 +22,7 @@ import yaml
import
os
import
os
from
ppocr.utils.utility
import
create_module
from
ppocr.utils.utility
import
create_module
from
ppocr.utils.utility
import
initial_logger
from
ppocr.utils.utility
import
initial_logger
logger
=
initial_logger
()
logger
=
initial_logger
()
import
paddle.fluid
as
fluid
import
paddle.fluid
as
fluid
...
@@ -31,8 +32,7 @@ from eval_utils.eval_det_utils import eval_det_run
...
@@ -31,8 +32,7 @@ from eval_utils.eval_det_utils import eval_det_run
from
eval_utils.eval_rec_utils
import
eval_rec_run
from
eval_utils.eval_rec_utils
import
eval_rec_run
from
ppocr.utils.save_load
import
save_model
from
ppocr.utils.save_load
import
save_model
import
numpy
as
np
import
numpy
as
np
from
ppocr.utils.character
import
cal_predicts_accuracy
from
ppocr.utils.character
import
cal_predicts_accuracy
,
CharacterOps
class
ArgsParser
(
ArgumentParser
):
class
ArgsParser
(
ArgumentParser
):
def
__init__
(
self
):
def
__init__
(
self
):
...
@@ -81,10 +81,8 @@ default_config = {'Global': {'debug': False, }}
...
@@ -81,10 +81,8 @@ default_config = {'Global': {'debug': False, }}
def
load_config
(
file_path
):
def
load_config
(
file_path
):
"""
"""
Load config from yml/yaml file.
Load config from yml/yaml file.
Args:
Args:
file_path (str): Path of the config file to be loaded.
file_path (str): Path of the config file to be loaded.
Returns: global config
Returns: global config
"""
"""
merge_config
(
default_config
)
merge_config
(
default_config
)
...
@@ -103,10 +101,8 @@ def load_config(file_path):
...
@@ -103,10 +101,8 @@ def load_config(file_path):
def
merge_config
(
config
):
def
merge_config
(
config
):
"""
"""
Merge config into global config.
Merge config into global config.
Args:
Args:
config (dict): Config to be merged.
config (dict): Config to be merged.
Returns: global config
Returns: global config
"""
"""
for
key
,
value
in
config
.
items
():
for
key
,
value
in
config
.
items
():
...
@@ -157,13 +153,11 @@ def build(config, main_prog, startup_prog, mode):
...
@@ -157,13 +153,11 @@ def build(config, main_prog, startup_prog, mode):
3. create a model
3. create a model
4. create fetchs
4. create fetchs
5. create an optimizer
5. create an optimizer
Args:
Args:
config(dict): config
config(dict): config
main_prog(): main program
main_prog(): main program
startup_prog(): startup program
startup_prog(): startup program
is_train(bool): train or valid
is_train(bool): train or valid
Returns:
Returns:
dataloader(): a bridge between the model and the data
dataloader(): a bridge between the model and the data
fetchs(dict): dict of model outputs(included loss and measures)
fetchs(dict): dict of model outputs(included loss and measures)
...
@@ -374,3 +368,29 @@ def train_eval_rec_run(config, exe, train_info_dict, eval_info_dict):
...
@@ -374,3 +368,29 @@ def train_eval_rec_run(config, exe, train_info_dict, eval_info_dict):
save_path
=
save_model_dir
+
"/iter_epoch_%d"
%
(
epoch
)
save_path
=
save_model_dir
+
"/iter_epoch_%d"
%
(
epoch
)
save_model
(
train_info_dict
[
'train_program'
],
save_path
)
save_model
(
train_info_dict
[
'train_program'
],
save_path
)
return
return
def
preprocess
():
FLAGS
=
ArgsParser
().
parse_args
()
config
=
load_config
(
FLAGS
.
config
)
merge_config
(
FLAGS
.
opt
)
logger
.
info
(
config
)
# check if set use_gpu=True in paddlepaddle cpu version
use_gpu
=
config
[
'Global'
][
'use_gpu'
]
check_gpu
(
use_gpu
)
alg
=
config
[
'Global'
][
'algorithm'
]
assert
alg
in
[
'EAST'
,
'DB'
,
'SAST'
,
'Rosetta'
,
'CRNN'
,
'STARNet'
,
'RARE'
]
if
alg
in
[
'Rosetta'
,
'CRNN'
,
'STARNet'
,
'RARE'
]:
config
[
'Global'
][
'char_ops'
]
=
CharacterOps
(
config
[
'Global'
])
place
=
fluid
.
CUDAPlace
(
0
)
if
use_gpu
else
fluid
.
CPUPlace
()
startup_program
=
fluid
.
Program
()
train_program
=
fluid
.
Program
()
if
alg
in
[
'EAST'
,
'DB'
,
'SAST'
]:
train_alg_type
=
'det'
else
:
train_alg_type
=
'rec'
return
startup_program
,
train_program
,
place
,
config
,
train_alg_type
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录