Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleDetection
提交
b3380f7e
P
PaddleDetection
项目概览
PaddlePaddle
/
PaddleDetection
大约 1 年 前同步成功
通知
695
Star
11112
Fork
2696
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
184
列表
看板
标记
里程碑
合并请求
40
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PaddleDetection
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
184
Issue
184
列表
看板
标记
里程碑
合并请求
40
合并请求
40
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
b3380f7e
编写于
7月 03, 2019
作者:
S
SunAhong1993
提交者:
qingqing01
7月 03, 2019
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Update DATA_cn.md (#2703)
上级
c8c3ddda
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
10 addition
and
10 deletion
+10
-10
docs/DATA_cn.md
docs/DATA_cn.md
+10
-10
未找到文件。
docs/DATA_cn.md
浏览文件 @
b3380f7e
...
@@ -4,12 +4,12 @@
...
@@ -4,12 +4,12 @@
### 实现
### 实现
该模块内部可分为4个子功能:数据解析、图片预处理、数据转换和数据获取接口。
该模块内部可分为4个子功能:数据解析、图片预处理、数据转换和数据获取接口。
我们采用
`data
set.Dataset`
表示一份数据,比如
`COCO`
数据包含3份数据,分别用于训练、验证和测试。原始数据存储与文件中,通过
`dataset.source`
加载到内存,然后使用
`dataset.transform`
对数据进行处理转换,最终通过
`dataset
.Reader`
的接口可以获得用于训练、验证和测试的batch数据。
我们采用
`data
.Dataset`
表示一份数据,比如
`COCO`
数据包含3份数据,分别用于训练、验证和测试。原始数据存储与文件中,通过
`data.source`
加载到内存,然后使用
`data.transform`
对数据进行处理转换,最终通过
`data
.Reader`
的接口可以获得用于训练、验证和测试的batch数据。
子功能介绍:
子功能介绍:
1.
数据解析
1.
数据解析
数据解析得到的是
`data
set.Dataset`
,实现逻辑位于
`dataset
.source`
中。通过它可以实现解析不同格式的数据集,已支持的数据源包括:
数据解析得到的是
`data
.Dataset`
,实现逻辑位于
`data
.source`
中。通过它可以实现解析不同格式的数据集,已支持的数据源包括:
-
COCO数据源
-
COCO数据源
该数据集目前分为COCO2012和COCO2017,主要由json文件和image文件组成,其组织结构如下所示:
该数据集目前分为COCO2012和COCO2017,主要由json文件和image文件组成,其组织结构如下所示:
...
@@ -83,7 +83,7 @@
...
@@ -83,7 +83,7 @@
```
```
我们在
`./tools/`
中提供了一个生成roidb数据集的代码,可以通过下面命令实现该功能。
我们在
`./tools/`
中提供了一个生成roidb数据集的代码,可以通过下面命令实现该功能。
```
python
```
# --type: 原始数据集的类别(只能是xml或者json)
# --type: 原始数据集的类别(只能是xml或者json)
# --annotation: 一个包含所需标注文件名的文件的路径
# --annotation: 一个包含所需标注文件名的文件的路径
# --save-dir: 保存路径
# --save-dir: 保存路径
...
@@ -95,13 +95,13 @@ python ./tools/generate_data_for_training.py
...
@@ -95,13 +95,13 @@ python ./tools/generate_data_for_training.py
--samples=-1
--samples=-1
```
```
2.
图片预处理
2.
图片预处理
图片预处理通过包括图片解码、缩放、裁剪等操作,我们采用
`data
set.transform.operator`
算子的方式来统一实现,这样能方便扩展。此外,多个算子还可以组合形成复杂的处理流程, 并被
`dataset
.transformer`
中的转换器使用,比如多线程完成一个复杂的预处理流程。
图片预处理通过包括图片解码、缩放、裁剪等操作,我们采用
`data
.transform.operator`
算子的方式来统一实现,这样能方便扩展。此外,多个算子还可以组合形成复杂的处理流程, 并被
`data
.transformer`
中的转换器使用,比如多线程完成一个复杂的预处理流程。
3.
数据转换器
3.
数据转换器
数据转换器的功能是完成对某个
`data
set.Dataset`
进行转换处理,从而得到一个新的
`dataset.Dataset`
。我们采用装饰器模式实现各种不同的
`dataset
.transform.transformer`
。比如用于多进程预处理的
`dataset.transform.paralle_map`
转换器。
数据转换器的功能是完成对某个
`data
.Dataset`
进行转换处理,从而得到一个新的
`data.Dataset`
。我们采用装饰器模式实现各种不同的
`data
.transform.transformer`
。比如用于多进程预处理的
`dataset.transform.paralle_map`
转换器。
4.
数据获取接口
4.
数据获取接口
为方便训练时的数据获取,我们将多个
`data
set.Dataset`
组合在一起构成一个
`dataset
.Reader`
为用户提供数据,用户只需要调用
`Reader.[train|eval|infer]`
即可获得对应的数据流。
`Reader`
支持yaml文件配置数据地址、预处理过程、加速方式等。
为方便训练时的数据获取,我们将多个
`data
.Dataset`
组合在一起构成一个
`data
.Reader`
为用户提供数据,用户只需要调用
`Reader.[train|eval|infer]`
即可获得对应的数据流。
`Reader`
支持yaml文件配置数据地址、预处理过程、加速方式等。
主要的APIs如下:
主要的APIs如下:
...
@@ -110,10 +110,10 @@ python ./tools/generate_data_for_training.py
...
@@ -110,10 +110,10 @@ python ./tools/generate_data_for_training.py
1.
数据解析
1.
数据解析
-
`source/coco_loader.py`
:用于解析COCO数据集。
[
详见代码
](
https://github.com/PaddlePaddle/models/blob/develop/PaddleCV/object_detection
/ppdet/data/source/coco_loader.py
)
-
`source/coco_loader.py`
:用于解析COCO数据集。
[
详见代码
](
..
/ppdet/data/source/coco_loader.py
)
-
`source/voc_loader.py`
:用于解析Pascal VOC数据集。
[
详见代码
](
https://github.com/PaddlePaddle/models/blob/develop/PaddleCV/object_detection
/ppdet/data/source/voc_loader.py
)
-
`source/voc_loader.py`
:用于解析Pascal VOC数据集。
[
详见代码
](
..
/ppdet/data/source/voc_loader.py
)
[注意]在使用VOC数据集时,若不使用默认的label列表,则需要先使用
`tools/generate_data_for_training.py`
生成
`label_list.txt`
(使用方式与数据解析中的roidb数据集获取过程一致),或提供
`label_list.txt`
放置于
`data/pascalvoc/ImageSets/Main`
中;同时在配置文件中设置参数
`use_default_label`
为
`true`
。
[注意]在使用VOC数据集时,若不使用默认的label列表,则需要先使用
`tools/generate_data_for_training.py`
生成
`label_list.txt`
(使用方式与数据解析中的roidb数据集获取过程一致),或提供
`label_list.txt`
放置于
`data/pascalvoc/ImageSets/Main`
中;同时在配置文件中设置参数
`use_default_label`
为
`true`
。
-
`source/loader.py`
:用于解析Roidb数据集。
[
详见代码
](
https://github.com/PaddlePaddle/models/blob/develop/PaddleCV/object_detection
/ppdet/data/source/loader.py
)
-
`source/loader.py`
:用于解析Roidb数据集。
[
详见代码
](
..
/ppdet/data/source/loader.py
)
2.
算子
2.
算子
`transform/operators.py`
:包含多种数据增强方式,主要包括:
`transform/operators.py`
:包含多种数据增强方式,主要包括:
...
@@ -164,7 +164,7 @@ coco = Reader(ccfg.DATA, ccfg.TRANSFORM, maxiter=-1)
...
@@ -164,7 +164,7 @@ coco = Reader(ccfg.DATA, ccfg.TRANSFORM, maxiter=-1)
#### 如何使用自定义数据集?
#### 如何使用自定义数据集?
-
选择1:将数据集转换为VOC格式或者COCO格式。
-
选择1:将数据集转换为VOC格式或者COCO格式。
```
python
```
# 在./tools/中提供了labelme2coco.py用于将labelme标注的数据集转换为COCO数据集
# 在./tools/中提供了labelme2coco.py用于将labelme标注的数据集转换为COCO数据集
python ./tools/labelme2coco.py --json_input_dir ./labelme_annos/
python ./tools/labelme2coco.py --json_input_dir ./labelme_annos/
--image_input_dir ./labelme_imgs/
--image_input_dir ./labelme_imgs/
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录