Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleX
提交
fe0a2f22
P
PaddleX
项目概览
PaddlePaddle
/
PaddleX
通知
138
Star
4
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
43
列表
看板
标记
里程碑
合并请求
5
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PaddleX
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
43
Issue
43
列表
看板
标记
里程碑
合并请求
5
合并请求
5
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
fe0a2f22
编写于
5月 18, 2020
作者:
J
jiangjiajun
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add doc for augment
上级
b7bf77b3
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
81 addition
and
113 deletion
+81
-113
docs/apis/transforms/augment.md
docs/apis/transforms/augment.md
+66
-0
docs/apis/transforms/index.rst
docs/apis/transforms/index.rst
+1
-0
docs/appendix/metrics.md
docs/appendix/metrics.md
+12
-12
docs/xx
docs/xx
+0
-99
paddlex/__init__.py
paddlex/__init__.py
+1
-1
setup.py
setup.py
+1
-1
未找到文件。
docs/apis/transforms/augment.md
0 → 100644
浏览文件 @
fe0a2f22
# 数据增强与imgaug支持
数据增强操作可用于在模型训练时,增加训练样本的多样性,从而提升模型的泛化能力。
## PaddleX内置增强操作
PaddleX对于图像分类、目标检测、实例分割和语义分割内置了部分常见的数据增强操作,如下表所示,
| 任务类型 | 增强方法 |
| :------- | :------------|
| 图像分类 |
[
RandomCrop
](
cls_transforms.html#randomcrop
)
、
[
RandomHorizontalFlip
](
cls_transforms.html#randomhorizontalflip
)
、
[
RandomVerticalFlip
](
cls_transforms.html#randomverticalflip
)
、
<br>
[
RandomRotate
](
cls_transforms.html#randomratate
)
、
[
RandomDistort
](
cls_transforms.html#randomdistort
)
|
|目标检测
<br>
实例分割|
[
RandomHorizontalFlip
](
det_transforms.html#randomhorizontalflip
)
、
[
RandomDistort
](
det_transforms.html#randomdistort
)
、
[
RandomCrop
](
det_transforms.html#randomcrop
)
、
<br>
[
[MixupImage
](
det_transforms.html#mixupimage
)(
仅支持YOLOv3模型
)
、RandomExpand](det_transforms.html#randomexpand) |
|语义分割 |
[
RandomHorizontalFlip
](
seg_transforms.html#randomhorizontalflip
)
、
[
RandomVerticalFlip
](
seg_transforms.html#randomverticalflip
)
、
[
RandomRangeScaling
](
seg_transforms.html#randomrangescaling
)
、
<br>
[
RandomStepScaling
](
seg_transforms.html#randomstepscaling
)
、
[
RandomPaddingCrop
](
seg_transforms.html#randompaddingcrop
)
、
[
RandomBlur
](
seg_transforms.html#randomblur
)
、
<br>
[
RandomRotation
](
seg_transforms.html#randomrotation
)
、
[
RandomScaleAspect
](
seg_transforms.html#randomscaleaspect
)
、
[
RandomDistort
](
seg_transforms.html#randomdistort
)
|
## imgaug增强库的支持
PaddleX目前已适配imgaug图像增强库,用户可以直接在PaddleX构造
`transforms`
时,调用imgaug的方法, 如下示例
```
import paddlex as pdx
from paddlex.cls import transforms
import imgaug.augmenters as iaa
train_transforms = transforms.Compose([
# 随机在[0.0 3.0]中选值对图像进行模糊
iaa.blur.GaussianBlur(sigma=(0.0, 3.0)),
transforms.RandomCrop(crop_size=224),
transforms.Normalize()
])
```
除了上述用法,
`Compose`
接口中也支持imgaug的
`Someof`
、
`Sometimes`
、
`Sequential`
、
`Oneof`
等操作,开发者可以通过这些方法随意组合出增强流程。由于imgaug对于标注信息(目标检测框和实例分割mask)与PaddleX模型训练逻辑有部分差异,
**目前在检测和分割中,只支持pixel-level的增强方法,(即在增强时,不对图像的大小和方向做改变) 其它方法仍在适配中**
,详情可见下表,
| 增强方法 | 图像分类 | 目标检测
<br>
实例分割 | 语义分割 | 备注 |
| :------ | :------- | :-------------------- | :------- | :--- |
|
[
imgaug.augmenters.arithmetic
](
https://imgaug.readthedocs.io/en/latest/source/api_augmenters_arithmetic.html
)
|√ |√ |√ | Cutout, DropoutJpegCompression等|
|
[
imgaug.augmenters.artistic
](
https://imgaug.readthedocs.io/en/latest/source/api_augmenters_artistic.html
)
|√ |√ |√ | 图像卡通化|
|
[
imgaug.augmenters.blur
](
https://imgaug.readthedocs.io/en/latest/source/api_augmenters_blur.html
)
|√ |√ |√ | GaussianBlur, AverageBlur等|
|
[
imgaug.augmenters.collections
](
https://imgaug.readthedocs.io/en/latest/source/api_augmenters_collections.html
)
|√ | | |提供了RandAugment方法 |
|
[
imgaug.augmenters.color
](
https://imgaug.readthedocs.io/en/latest/source/api_augmenters_color.html
)
|√ |√ |√ | Brightness, Hue等色调的增强方法|
|
[
imgaug.augmenters.contrast
](
https://imgaug.readthedocs.io/en/latest/source/api_augmenters_contrast.html
)
|√ |√ |√ | 多种对比度增强方式|
|
[
imgaug.augmenters.convolutional
](
https://imgaug.readthedocs.io/en/latest/source/api_augmenters_convolutional.html
)
|√ |√ |√ | 应用卷积kernel到图像 |
|
[
imgaug.augmenters.edges
](
https://imgaug.readthedocs.io/en/latest/source/api_augmenters_edges.html
)
|√ |√ |√ | 图像边缘化等方法|
|
[
imgaug.augmenters.flip
](
https://imgaug.readthedocs.io/en/latest/source/api_augmenters_flip.html
)
|√ | | | Fliplr和Flipud翻转方法|
|
[
imgaug.augmenters.geometric
](
https://imgaug.readthedocs.io/en/latest/source/api_augmenters_geometric.html
)
|√ | | | Affine、Rotate等增强方法|
|
[
imgaug.augmenters.imgcorruptlike
](
https://imgaug.readthedocs.io/en/latest/source/api_augmenters_imgcorruptlike.html
)
|√ |√ |√ | GaussianNoise等图像噪声增强方法|
|
[
imgaug.augmenters.pillike
](
https://imgaug.readthedocs.io/en/latest/source/api_augmenters_pillike.html
)
|√ | | | |
|
[
imgaug.augmenters.pooling
](
https://imgaug.readthedocs.io/en/latest/source/api_augmenters_pooling.html
)
|√ | | |应用pooling操作到图像 |
|
[
imgaug.augmenters.segmentation
](
https://imgaug.readthedocs.io/en/latest/source/api_augmenters_segmentation.html
)
|√ | | | 应用分割方法到图像|
|
[
imgaug.augmenters.size
](
https://imgaug.readthedocs.io/en/latest/source/api_augmenters_size.html
)
|√ | | | Reisze、Crop、Pad等操作|
|
[
imgaug.augmenters.weather
](
https://imgaug.readthedocs.io/en/latest/source/api_augmenters_weather.html
)
|√ |√ |√ | 多种模拟天气等增强方法|
需要注意的是,imgaug的基础方法中,如
`imgaug.augmenters.blur`
仅为图像处理操作,并无概率设置,而在CV模型训练中,增强操作往往是以一定概率应用在样本上,因此我们可以通过imgaug的
`Someof`
、
`Sometimes`
、
`Sequential`
、
`Oneof`
等操作来组合实现,如下代码所示,
> - `Someof` 执行定义增强方法列表中的部分方法
> - `Sometimes` 以一定概率执行定义的增强方法列表
> - `Sequential` 按顺序执行定义的增强方法列表
```
image imgaug.augmenters as iaa
from paddlex.cls import transforms
# 以0.6的概率对图像样本进行模糊
img_augmenters = iaa.Sometimes(0.6, [
iaa.blur.GaussianBlur(sigma=(0.0, 3.0))
])
train_transforms = transforms.Compose([
img_augmenters,
transforms.RandomCrop(crop_size=224),
transforms.Normalize()
])
```
docs/apis/transforms/index.rst
浏览文件 @
fe0a2f22
...
...
@@ -9,3 +9,4 @@ transforms为PaddleX的模型训练提供了数据的预处理和数据增强接
cls_transforms.md
det_transforms.md
seg_transforms.md
augment.md
docs/appendix/metrics.md
浏览文件 @
fe0a2f22
...
...
@@ -6,7 +6,7 @@ PaddleX在模型训练、评估过程中,都会有相应的日志和指标反
PaddleX所有模型在训练过程中,输出的日志信息都包含了6个通用的统计信息,用于辅助用户进行模型训练,例如
**分割模型**
的训练日志,如下图所示。


各字段含义如下:
...
...
@@ -26,7 +26,7 @@ PaddleX所有模型在训练过程中,输出的日志信息都包含了6个通
PaddleX所有模型在训练过程中会根据用户设定的
`save_interval_epochs`
参数,每间隔一定轮数进行评估和保存。例如
**分类模型**
的评估日志,如下图所示。


上图中第1行表明验证数据集中样本数为240,需要迭代8步才能评估完所有验证数据;第5行用于表明第2轮的模型已经完成保存操作;第6行则表明当前保存的模型中,第2轮的模型在验证集上指标最优(分类任务看
`acc1`
,此时
`acc1`
值为0.258333),最优模型会保存在
`best_model`
目录中。
...
...
@@ -38,7 +38,7 @@ PaddleX所有模型在训练过程中会根据用户设定的`save_interval_epoc
> 注: acck准确率是针对一张图片进行计算的:把模型在各个类别上的预测得分按从高往低进行排序,取出前k个预测类别,若这k个预测类别包含了真值类,则认为该图片分类正确。


上图中第1行中的
`acc1`
表示参与当前迭代步数的训练样本的平均top1准确率,值越高代表模型越优;
`acc5`
表示参与当前迭代步数的训练样本的平均top5(若类别数n少于5,则为topn)准确率,值越高代表模型越优。第4行中的
`loss`
表示整个训练集的平均损失函数值,
`acc1`
表示整个训练集的平均top1准确率,
`acc5`
表示整个训练集的平均top5准确率。
...
...
@@ -46,7 +46,7 @@ PaddleX所有模型在训练过程中会根据用户设定的`save_interval_epoc
### 评估日志字段


上图中第3行中的
`acc1`
表示整个验证集的平均top1准确率,
`acc5`
表示整个验证集的平均top5准确率。
...
...
@@ -59,7 +59,7 @@ PaddleX所有模型在训练过程中会根据用户设定的`save_interval_epoc
YOLOv3的训练日志只包括训练通用统计信息(见上文训练通用统计信息)。


上图中第5行
`loss`
表示整个训练集的平均损失函数loss值。
...
...
@@ -75,7 +75,7 @@ FasterRCNN的训练日志除了通用统计信息外,还包括`loss_cls`、`lo
| loss_rpn_bbox | RPN子网络中检测框回归损失函数值 |
| loss | 所有子网络损失函数值之和 |


上图中第1行
`loss`
,
`loss_cls`
、
`loss_bbox`
、
`loss_rpn_clss`
、
`loss_rpn_bbox`
都是参与当前迭代步数的训练样本的损失值,而第7行是针整个训练集的损失函数值。
...
...
@@ -93,7 +93,7 @@ MaskRCNN的训练日志除了通用统计信息外,还包括`loss_cls`、`loss
| loss_rpn_bbox | RPN子网络中检测框回归损失函数值 |
| loss | 所有子网络损失函数值之和 |


上图中第1行
`loss`
,
`loss_cls`
、
`loss_bbox`
、
`loss_mask`
、
`loss_rpn_clss`
、
`loss_rpn_bbox`
都是参与当前迭代步数的训练样本的损失值,而第7行是针整个训练集的损失函数值。
...
...
@@ -103,7 +103,7 @@ MaskRCNN的训练日志除了通用统计信息外,还包括`loss_cls`、`loss
#### VOC评估标准


> 注:`map`为平均准确率的平均值,即IoU(Intersection Over Union)取0.5时各个类别的准确率-召回率曲线下面积的平均值。
...
...
@@ -115,11 +115,11 @@ MaskRCNN的训练日志除了通用统计信息外,还包括`loss_cls`、`loss
COCO格式的数据集不仅可以用于训练目标检测模型,也可以用于训练实例分割模型。在目标检测中,PaddleX主要反馈针对检测框的
`bbox_mmAP`
指标;在实例分割中,还包括针对Mask的
`seg_mmAP`
指标。如下所示,第一张日志截图为目标检测的评估结果,第二张日志截图为实例分割的评估结果。


上图中红框标注的
`bbox_mmap`
表示整个验证集的检测框平均准确率平均值。


上图中红框标注的
`bbox_mmap`
和
`seg_mmap`
分别表示整个验证集的检测框平均准确率平均值、Mask平均准确率平均值。
## 分割特有统计信息
...
...
@@ -128,7 +128,7 @@ COCO格式的数据集不仅可以用于训练目标检测模型,也可以用
语义分割的训练日志只包括训练通用统计信息(见上文训练通用统计信息)。


### 评估日志字段
...
...
@@ -142,4 +142,4 @@ COCO格式的数据集不仅可以用于训练目标检测模型,也可以用
| category_acc | 各类别的准确率,即各类别预测正确的像素数/预测为该类别的总像素数 |
| kappa | kappa系数,用于一致性检验 |


docs/xx
已删除
100644 → 0
浏览文件 @
b7bf77b3
.
./._tutorials
./._README.md
./._FAQ.md
./apis/._visualize.md
./apis/._deploy.md
./apis/._images
./apis/._models.md
./apis/transforms/._cls_transforms.md
./apis/transforms/._seg_transforms.md
./apis/transforms/._det_transforms.md
./apis/transforms/._index.rst
./apis/._datasets.md
./apis/images/._insect_bbox_pr_curve(iou-0.5).png
./apis/._transforms
./apis/._load_model.md
./apis/._slim.md
./apis/._index.rst
./._images
./._conf.py
./._cv_solutions.md
./._make.bat
./images/._voc_eval.png
./images/._08_deploy.png
./images/._paddlex.png
./images/._vdl2.jpg
./images/._05_train.png
./images/._faster_eval.png
./images/._object_detection.png
./images/._visualized_deeplab.jpg
./images/._02_newproject.png
./images/._PaddleX-Pipe-Line.png
./images/._visualized_fasterrcnn.jpg
./images/._04_parameter.png
./images/._cls_train.png
./images/._instance_segmentation.png
./images/._paddlex.jpg
./images/._anaconda_windows.png
./images/._00_loaddata.png
./images/._mask_train.png
./images/._seg_train.png
./images/._yolo_train.png
./images/._faster_train.png
./images/._cls_eval.png
./images/._mask_eval.png
./images/._06_VisualDL.png
./images/._seg_eval.png
./images/._visualized_maskrcnn.jpeg
./images/._QQGroup.jpeg
./images/._garbage.bmp
./images/._semantic_segmentation.png
./images/._03_choosedata.png
./images/._07_evaluate.png
./images/._01_datasplit.png
./images/._image_classification.png
./images/._vdl1.jpg
./images/._vdl3.jpg
./._requirements.txt
./._Makefile
./._apis
./appendix/._metrics.md
./appendix/._how_to_offline_run.md
./appendix/._index.rst
./appendix/._gpu_configure.md
./appendix/._anaconda_install.md
./._install.md
./._paddlex_gui.md
./._index.rst
./._quick_start.md
./tutorials/._README.md
./tutorials/deploy/._deploy.md
./tutorials/deploy/._images
./tutorials/deploy/._deploy_cpp_win_vs2019.md
./tutorials/deploy/._deploy_cpp_linux.md
./tutorials/deploy/images/._vs2019_step4.png
./tutorials/deploy/images/._vs2019_step3.png
./tutorials/deploy/images/._vs2019_step6.png
./tutorials/deploy/images/._vs2019_step1.png
./tutorials/deploy/images/._vs2019_step5.png
./tutorials/deploy/images/._vs2019_step2.png
./tutorials/._compress
./tutorials/._datasets.md
./tutorials/._train
./tutorials/train/._detection.md
./tutorials/train/._visualdl.md
./tutorials/train/._instance_segmentation.md
./tutorials/train/._classification.md
./tutorials/train/._index.rst
./tutorials/train/._segmentation.md
./tutorials/compress/._slim
./tutorials/compress/._detection.md
./tutorials/compress/._classification.md
./tutorials/compress/._index.rst
./tutorials/compress/slim/._prune.md
./tutorials/compress/slim/._quant.md
./tutorials/compress/slim/._index.rst
./tutorials/compress/._segmentation.md
./tutorials/._index.rst
./tutorials/._deploy
paddlex/__init__.py
浏览文件 @
fe0a2f22
...
...
@@ -48,4 +48,4 @@ load_model = cv.models.load_model
datasets
=
cv
.
datasets
log_level
=
2
__version__
=
'0.1.
7
.github'
__version__
=
'0.1.
9
.github'
setup.py
浏览文件 @
fe0a2f22
...
...
@@ -19,7 +19,7 @@ long_description = "PaddleX. A end-to-end deeplearning model development toolkit
setuptools
.
setup
(
name
=
"paddlex"
,
version
=
'0.1.
7
'
,
version
=
'0.1.
9
'
,
author
=
"paddlex"
,
author_email
=
"paddlex@baidu.com"
,
description
=
long_description
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录