Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
weixin_41840029
PaddleOCR
提交
2ed52a0e
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看板
未验证
提交
2ed52a0e
编写于
1月 11, 2022
作者:
littletomatodonkey
提交者:
GitHub
1月 11, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix data to support offline augment (#5232)
* fix data to support offline augment * fix doc * fix data
上级
c910bf8d
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
24 addition
and
1 deletion
+24
-1
doc/doc_ch/recognition.md
doc/doc_ch/recognition.md
+11
-0
ppocr/data/simple_dataset.py
ppocr/data/simple_dataset.py
+13
-1
未找到文件。
doc/doc_ch/recognition.md
浏览文件 @
2ed52a0e
...
...
@@ -63,6 +63,17 @@ train_data/rec/train/word_002.jpg 用科技让复杂的世界更简单
| ...
```
除上述单张图像为一行格式之外,PaddleOCR也支持对离线增广后的数据进行训练,为了防止相同样本在同一个batch中被多次采样,我们可以将相同标签对应的图片路径写在一行中,以列表的形式给出,在训练中,PaddleOCR会随机选择列表中的一张图片进行训练。对应地,标注文件的格式如下。
```
["11.jpg", "12.jpg"] 简单可依赖
["21.jpg", "22.jpg", "23.jpg"] 用科技让复杂的世界更简单
3.jpg ocr
```
上述示例标注文件中,"11.jpg"和"12.jpg"的标签相同,都是
`简单可依赖`
,在训练的时候,对于该行标注,会随机选择其中的一张图片进行训练。
-
测试集
同训练集类似,测试集也需要提供一个包含所有图片的文件夹(test)和一个rec_gt_test.txt,测试集的结构如下所示:
...
...
ppocr/data/simple_dataset.py
浏览文件 @
2ed52a0e
...
...
@@ -69,6 +69,16 @@ class SimpleDataSet(Dataset):
random
.
shuffle
(
self
.
data_lines
)
return
def
_try_parse_filename_list
(
self
,
file_name
):
# multiple images -> one gt label
if
len
(
file_name
)
>
0
and
file_name
[
0
]
==
"["
:
try
:
info
=
json
.
loads
(
file_name
)
file_name
=
random
.
choice
(
info
)
except
:
pass
return
file_name
def
get_ext_data
(
self
):
ext_data_num
=
0
for
op
in
self
.
ops
:
...
...
@@ -85,6 +95,7 @@ class SimpleDataSet(Dataset):
data_line
=
data_line
.
decode
(
'utf-8'
)
substr
=
data_line
.
strip
(
"
\n
"
).
split
(
self
.
delimiter
)
file_name
=
substr
[
0
]
file_name
=
self
.
_try_parse_filename_list
(
file_name
)
label
=
substr
[
1
]
img_path
=
os
.
path
.
join
(
self
.
data_dir
,
file_name
)
data
=
{
'img_path'
:
img_path
,
'label'
:
label
}
...
...
@@ -95,7 +106,7 @@ class SimpleDataSet(Dataset):
data
[
'image'
]
=
img
data
=
transform
(
data
,
load_data_ops
)
if
data
is
None
or
data
[
'polys'
].
shape
[
1
]
!=
4
:
if
data
is
None
or
data
[
'polys'
].
shape
[
1
]
!=
4
:
continue
ext_data
.
append
(
data
)
return
ext_data
...
...
@@ -107,6 +118,7 @@ class SimpleDataSet(Dataset):
data_line
=
data_line
.
decode
(
'utf-8'
)
substr
=
data_line
.
strip
(
"
\n
"
).
split
(
self
.
delimiter
)
file_name
=
substr
[
0
]
file_name
=
self
.
_try_parse_filename_list
(
file_name
)
label
=
substr
[
1
]
img_path
=
os
.
path
.
join
(
self
.
data_dir
,
file_name
)
data
=
{
'img_path'
:
img_path
,
'label'
:
label
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录