Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
models
提交
87d15f1b
M
models
项目概览
PaddlePaddle
/
models
1 年多 前同步成功
通知
222
Star
6828
Fork
2962
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
602
列表
看板
标记
里程碑
合并请求
255
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
models
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
602
Issue
602
列表
看板
标记
里程碑
合并请求
255
合并请求
255
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
87d15f1b
编写于
7月 29, 2019
作者:
W
wangguanzhong
提交者:
GitHub
7月 29, 2019
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Refine PaddleDetection (#2880)
Add PaddleDetection docs & some model configs
上级
b4d00c85
变更
16
隐藏空白更改
内联
并排
Showing
16 changed file
with
688 addition
and
25 deletion
+688
-25
PaddleCV/PaddleDetection/README.md
PaddleCV/PaddleDetection/README.md
+10
-3
PaddleCV/PaddleDetection/README_cn.md
PaddleCV/PaddleDetection/README_cn.md
+109
-0
PaddleCV/PaddleDetection/configs/mask_rcnn_r101_vd_fpn_1x.yml
...leCV/PaddleDetection/configs/mask_rcnn_r101_vd_fpn_1x.yml
+144
-0
PaddleCV/PaddleDetection/configs/mask_rcnn_x101_vd_64x4d_fpn_1x.yml
...addleDetection/configs/mask_rcnn_x101_vd_64x4d_fpn_1x.yml
+146
-0
PaddleCV/PaddleDetection/configs/mask_rcnn_x101_vd_64x4d_fpn_2x.yml
...addleDetection/configs/mask_rcnn_x101_vd_64x4d_fpn_2x.yml
+146
-0
PaddleCV/PaddleDetection/docs/CONFIG.md
PaddleCV/PaddleDetection/docs/CONFIG.md
+1
-1
PaddleCV/PaddleDetection/docs/CONFIG_cn.md
PaddleCV/PaddleDetection/docs/CONFIG_cn.md
+1
-1
PaddleCV/PaddleDetection/docs/DATA.md
PaddleCV/PaddleDetection/docs/DATA.md
+2
-0
PaddleCV/PaddleDetection/docs/GETTING_STARTED.md
PaddleCV/PaddleDetection/docs/GETTING_STARTED.md
+3
-5
PaddleCV/PaddleDetection/docs/GETTING_STARTED_cn.md
PaddleCV/PaddleDetection/docs/GETTING_STARTED_cn.md
+3
-3
PaddleCV/PaddleDetection/docs/INSTALL.md
PaddleCV/PaddleDetection/docs/INSTALL.md
+1
-1
PaddleCV/PaddleDetection/docs/INSTALL_cn.md
PaddleCV/PaddleDetection/docs/INSTALL_cn.md
+3
-3
PaddleCV/PaddleDetection/docs/MODEL_ZOO.md
PaddleCV/PaddleDetection/docs/MODEL_ZOO.md
+3
-0
PaddleCV/PaddleDetection/docs/MODEL_ZOO_cn.md
PaddleCV/PaddleDetection/docs/MODEL_ZOO_cn.md
+104
-0
PaddleCV/PaddleDetection/ppdet/utils/checkpoint.py
PaddleCV/PaddleDetection/ppdet/utils/checkpoint.py
+5
-1
PaddleCV/PaddleDetection/ppdet/utils/eval_utils.py
PaddleCV/PaddleDetection/ppdet/utils/eval_utils.py
+7
-7
未找到文件。
PaddleCV/PaddleDetection/README.md
浏览文件 @
87d15f1b
...
...
@@ -41,7 +41,7 @@ Supported Architectures:
| Faster R-CNN | ✓ | ✓ | x | ✓ | ✗ | ✗ |
| Faster R-CNN + FPN | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ |
| Mask R-CNN | ✓ | ✓ | x | ✓ | ✗ | ✗ |
| Mask R-CNN + FPN | ✓ | ✓ |
x
| ✓ | ✗ | ✗ |
| Mask R-CNN + FPN | ✓ | ✓ |
✓
| ✓ | ✗ | ✗ |
| Cascade R-CNN | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ |
| RetinaNet | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ |
| Yolov3 | ✓ | ✗ | ✗ | ✗ | ✓ | ✓ |
...
...
@@ -61,7 +61,7 @@ Advanced Features:
## Model zoo
Pretrained models are available in the PaddlePaddle
[
d
etection model zoo
](
docs/MODEL_ZOO.md
)
.
Pretrained models are available in the PaddlePaddle
[
PaddleD
etection model zoo
](
docs/MODEL_ZOO.md
)
.
## Installation
...
...
@@ -106,7 +106,14 @@ Some of the planned features include:
## Updates
#### Initial release (7/3/2019)
#### 7/29/2019
-
Update Chinese docs for PaddleDetection
-
Fix bug in R-CNN models when train and test at the same time
-
Add ResNext101-vd + Mask R-CNN + FPN models
-
Add Yolo v3 on VOC models
#### 7/3/2019
-
Initial release of PaddleDetection and detection model zoo
-
Models included: Faster R-CNN, Mask R-CNN, Faster R-CNN+FPN, Mask
...
...
PaddleCV/PaddleDetection/README_cn.md
0 → 100644
浏览文件 @
87d15f1b
# PaddleDetection
PaddleDetection的目的是为工业界和学术界提供大量易使用的目标检测模型。PaddleDetection不仅性能完善,易于部署,同时能够灵活的满足算法研发需求。
<div
align=
"center"
>
<img
src=
"demo/output/000000570688.jpg"
/>
</div>
## 简介
特性:
-
易部署:
PaddleDetection的模型中使用的主要算子均通过C++和CUDA实现,配合PaddlePaddle的高性能预测引擎,使得在服务器环境下易于部署。
-
高灵活度:
PaddleDetection各个组件均为功能单元。例如,模型结构,数据预处理流程,用户能够通过修改配置文件轻松实现可定制化。
-
高性能:
在PaddlePaddle底层框架的帮助下,实现了更快的模型训练及更少的显存占用量。值得注意的是,Yolo v3的训练速度远快于其他框架。另外,Mask-RCNN(ResNet50)可以在Tesla V100 16GB环境下以每个GPU4张图片输入实现多卡训练。
支持的模型结构:
| | ResNet | ResNet-vd
<sup>
[
1
](
#vd
)
</sup>
| ResNeXt-vd | SENet | MobileNet | DarkNet |
|--------------------|:------:|------------------------------:|:----------:|:-----:|:---------:|:-------:|
| Faster R-CNN | ✓ | ✓ | x | ✓ | ✗ | ✗ |
| Faster R-CNN + FPN | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ |
| Mask R-CNN | ✓ | ✓ | x | ✓ | ✗ | ✗ |
| Mask R-CNN + FPN | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ |
| Cascade R-CNN | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ |
| RetinaNet | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ |
| Yolov3 | ✓ | ✗ | ✗ | ✗ | ✓ | ✓ |
| SSD | ✗ | ✗ | ✗ | ✗ | ✓ | ✗ |
<a
name=
"vd"
>
[
1]</a> [ResNet-vd
](
https://arxiv.org/pdf/1812.01187
)
模型提供了较大的精度提高和较少的性能损失。
扩展特性:
-
[x]
**Synchronized Batch Norm**
: 目前在Yolo v3中使用。
-
[x]
**Group Norm**
: 预训练模型待发布。
-
[x]
**Modulated Deformable Convolution**
: 预训练模型待发布。
-
[x]
**Deformable PSRoI Pooling**
: 预训练模型待发布。
**注意:**
Synchronized batch normalization 只能在多GPU环境下使用,不能在CPU环境或者单GPU环境下使用。
## 模型库
基于PaddlePaddle训练的目标检测模型可参考
[
PaddleDetection模型库
](
docs/MODEL_ZOO_cn.md
)
.
## 安装
请参考
[
安装说明文档
](
docs/INSTALL_cn.md
)
.
## 开始
在预测阶段,可以通过运行以下指令得到可视化结果并保存在
`output`
目录下。
```
bash
export
PYTHONPATH
=
`
pwd
`
:
$PYTHONPATH
python tools/infer.py
-c
configs/mask_rcnn_r50_1x.yml
\
-o
weights
=
https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_r50_1x.tar
\
--infer_img
=
demo/000000570688.jpg
```
更多训练及评估流程,请参考
[
GETTING_STARTED_cn.md
](
docs/GETTING_STARTED_cn.md
)
.
同时推荐用户参考
[
IPython Notebook demo
](
demo/mask_rcnn_demo.ipynb
)
其他更多信息可参考以下文档内容:
-
[
配置流程介绍
](
docs/CONFIG_cn.md
)
-
[
自定义数据集和预处理流程介绍
](
docs/DATA_cn.md
)
## 未来规划
目前PaddleDetection处在持续更新的状态,接下来将会推出一系列的更新,包括如下特性:
-
[ ] 混合精度训练
-
[ ] 分布式训练
-
[ ] Int8模式预测
-
[ ] 用户自定义算子
-
[ ] 进一步丰富模型库
## 版本更新
#### 7/22/2019
-
增加检测库中文文档
-
修复R-CNN系列模型训练同时进行评估的问题
-
新增ResNext101-vd + Mask R-CNN + FPN模型
-
新增基于VOC数据集的Yolo v3模型
#### 7/3/2019
-
首次发布PaddleDetection检测库和检测模型库
-
模型包括:Faster R-CNN, Mask R-CNN, Faster R-CNN+FPN, Mask
R-CNN+FPN, Cascade-Faster-RCNN+FPN, RetinaNet, Yolo v3, 和SSD.
## 如何贡献代码
我们非常欢迎你可以为PaddleDetection提供代码,也十分感谢你的反馈。
PaddleCV/PaddleDetection/configs/mask_rcnn_r101_vd_fpn_1x.yml
0 → 100644
浏览文件 @
87d15f1b
architecture
:
MaskRCNN
train_feed
:
MaskRCNNTrainFeed
eval_feed
:
MaskRCNNEvalFeed
test_feed
:
MaskRCNNTestFeed
max_iters
:
180000
snapshot_iter
:
10000
use_gpu
:
true
log_smooth_window
:
20
save_dir
:
output
pretrain_weights
:
https://paddle-imagenet-models-name.bj.bcebos.com/ResNet101_vd_pretrained.tar
weights
:
output/mask_rcnn_r101_vd_fpn_1x/model_final
metric
:
COCO
num_classes
:
81
MaskRCNN
:
backbone
:
ResNet
fpn
:
FPN
rpn_head
:
FPNRPNHead
roi_extractor
:
FPNRoIAlign
bbox_head
:
BBoxHead
bbox_assigner
:
BBoxAssigner
ResNet
:
depth
:
101
feature_maps
:
[
2
,
3
,
4
,
5
]
freeze_at
:
2
norm_type
:
affine_channel
variant
:
d
FPN
:
max_level
:
6
min_level
:
2
num_chan
:
256
spatial_scale
:
[
0.03125
,
0.0625
,
0.125
,
0.25
]
FPNRPNHead
:
anchor_generator
:
aspect_ratios
:
[
0.5
,
1.0
,
2.0
]
variance
:
[
1.0
,
1.0
,
1.0
,
1.0
]
anchor_start_size
:
32
max_level
:
6
min_level
:
2
num_chan
:
256
rpn_target_assign
:
rpn_batch_size_per_im
:
256
rpn_fg_fraction
:
0.5
rpn_negative_overlap
:
0.3
rpn_positive_overlap
:
0.7
rpn_straddle_thresh
:
0.0
train_proposal
:
min_size
:
0.0
nms_thresh
:
0.7
pre_nms_top_n
:
2000
post_nms_top_n
:
2000
test_proposal
:
min_size
:
0.0
nms_thresh
:
0.7
pre_nms_top_n
:
1000
post_nms_top_n
:
1000
FPNRoIAlign
:
canconical_level
:
4
canonical_size
:
224
max_level
:
5
min_level
:
2
sampling_ratio
:
2
box_resolution
:
7
mask_resolution
:
14
MaskHead
:
dilation
:
1
num_chan_reduced
:
256
num_convs
:
4
resolution
:
28
BBoxAssigner
:
batch_size_per_im
:
512
bbox_reg_weights
:
[
0.1
,
0.1
,
0.2
,
0.2
]
bg_thresh_hi
:
0.5
bg_thresh_lo
:
0.0
fg_fraction
:
0.25
fg_thresh
:
0.5
MaskAssigner
:
resolution
:
28
BBoxHead
:
head
:
TwoFCHead
nms
:
keep_top_k
:
100
nms_threshold
:
0.5
score_threshold
:
0.05
TwoFCHead
:
num_chan
:
1024
LearningRate
:
base_lr
:
0.01
schedulers
:
-
!PiecewiseDecay
gamma
:
0.1
milestones
:
[
120000
,
160000
]
-
!LinearWarmup
start_factor
:
0.1
steps
:
1000
OptimizerBuilder
:
optimizer
:
momentum
:
0.9
type
:
Momentum
regularizer
:
factor
:
0.0001
type
:
L2
MaskRCNNTrainFeed
:
batch_size
:
1
dataset
:
dataset_dir
:
dataset/coco
annotation
:
annotations/instances_train2017.json
image_dir
:
train2017
batch_transforms
:
-
!PadBatch
pad_to_stride
:
32
num_workers
:
2
MaskRCNNEvalFeed
:
batch_size
:
1
dataset
:
dataset_dir
:
dataset/coco
annotation
:
annotations/instances_val2017.json
image_dir
:
val2017
batch_transforms
:
-
!PadBatch
pad_to_stride
:
32
num_workers
:
2
MaskRCNNTestFeed
:
batch_size
:
1
dataset
:
annotation
:
annotations/instances_val2017.json
batch_transforms
:
-
!PadBatch
pad_to_stride
:
32
num_workers
:
2
PaddleCV/PaddleDetection/configs/mask_rcnn_x101_vd_64x4d_fpn_1x.yml
0 → 100644
浏览文件 @
87d15f1b
architecture
:
MaskRCNN
train_feed
:
MaskRCNNTrainFeed
eval_feed
:
MaskRCNNEvalFeed
test_feed
:
MaskRCNNTestFeed
max_iters
:
180000
snapshot_iter
:
10000
use_gpu
:
true
log_smooth_window
:
20
save_dir
:
output
pretrain_weights
:
https://paddle-imagenet-models-name.bj.bcebos.com/ResNeXt101_vd_64x4d_pretrained.tar
weights
:
output/mask_rcnn_x101_vd_64x4d_fpn_1x/model_final
metric
:
COCO
num_classes
:
81
MaskRCNN
:
backbone
:
ResNeXt
fpn
:
FPN
rpn_head
:
FPNRPNHead
roi_extractor
:
FPNRoIAlign
bbox_head
:
BBoxHead
bbox_assigner
:
BBoxAssigner
ResNeXt
:
depth
:
101
feature_maps
:
[
2
,
3
,
4
,
5
]
freeze_at
:
2
group_width
:
4
groups
:
64
norm_type
:
affine_channel
variant
:
d
FPN
:
max_level
:
6
min_level
:
2
num_chan
:
256
spatial_scale
:
[
0.03125
,
0.0625
,
0.125
,
0.25
]
FPNRPNHead
:
anchor_generator
:
aspect_ratios
:
[
0.5
,
1.0
,
2.0
]
variance
:
[
1.0
,
1.0
,
1.0
,
1.0
]
anchor_start_size
:
32
max_level
:
6
min_level
:
2
num_chan
:
256
rpn_target_assign
:
rpn_batch_size_per_im
:
256
rpn_fg_fraction
:
0.5
rpn_negative_overlap
:
0.3
rpn_positive_overlap
:
0.7
rpn_straddle_thresh
:
0.0
train_proposal
:
min_size
:
0.0
nms_thresh
:
0.7
pre_nms_top_n
:
2000
post_nms_top_n
:
2000
test_proposal
:
min_size
:
0.0
nms_thresh
:
0.7
pre_nms_top_n
:
1000
post_nms_top_n
:
1000
FPNRoIAlign
:
canconical_level
:
4
canonical_size
:
224
max_level
:
5
min_level
:
2
sampling_ratio
:
2
box_resolution
:
7
mask_resolution
:
14
MaskHead
:
dilation
:
1
num_chan_reduced
:
256
num_convs
:
4
resolution
:
28
BBoxAssigner
:
batch_size_per_im
:
512
bbox_reg_weights
:
[
0.1
,
0.1
,
0.2
,
0.2
]
bg_thresh_hi
:
0.5
bg_thresh_lo
:
0.0
fg_fraction
:
0.25
fg_thresh
:
0.5
MaskAssigner
:
resolution
:
28
BBoxHead
:
head
:
TwoFCHead
nms
:
keep_top_k
:
100
nms_threshold
:
0.5
score_threshold
:
0.05
TwoFCHead
:
num_chan
:
1024
LearningRate
:
base_lr
:
0.01
schedulers
:
-
!PiecewiseDecay
gamma
:
0.1
milestones
:
[
120000
,
160000
]
-
!LinearWarmup
start_factor
:
0.1
steps
:
1000
OptimizerBuilder
:
optimizer
:
momentum
:
0.9
type
:
Momentum
regularizer
:
factor
:
0.0001
type
:
L2
MaskRCNNTrainFeed
:
batch_size
:
1
dataset
:
dataset_dir
:
dataset/coco
annotation
:
annotations/instances_train2017.json
image_dir
:
train2017
batch_transforms
:
-
!PadBatch
pad_to_stride
:
32
num_workers
:
2
MaskRCNNEvalFeed
:
batch_size
:
1
dataset
:
dataset_dir
:
dataset/coco
annotation
:
annotations/instances_val2017.json
image_dir
:
val2017
batch_transforms
:
-
!PadBatch
pad_to_stride
:
32
num_workers
:
2
MaskRCNNTestFeed
:
batch_size
:
1
dataset
:
annotation
:
annotations/instances_val2017.json
batch_transforms
:
-
!PadBatch
pad_to_stride
:
32
num_workers
:
2
PaddleCV/PaddleDetection/configs/mask_rcnn_x101_vd_64x4d_fpn_2x.yml
0 → 100644
浏览文件 @
87d15f1b
architecture
:
MaskRCNN
train_feed
:
MaskRCNNTrainFeed
eval_feed
:
MaskRCNNEvalFeed
test_feed
:
MaskRCNNTestFeed
max_iters
:
360000
snapshot_iter
:
10000
use_gpu
:
true
log_smooth_window
:
20
save_dir
:
output
pretrain_weights
:
https://paddle-imagenet-models-name.bj.bcebos.com/ResNeXt101_vd_64x4d_pretrained.tar
weights
:
output/mask_rcnn_x101_vd_64x4d_fpn_2x/model_final
metric
:
COCO
num_classes
:
81
MaskRCNN
:
backbone
:
ResNeXt
fpn
:
FPN
rpn_head
:
FPNRPNHead
roi_extractor
:
FPNRoIAlign
bbox_head
:
BBoxHead
bbox_assigner
:
BBoxAssigner
ResNeXt
:
depth
:
101
feature_maps
:
[
2
,
3
,
4
,
5
]
freeze_at
:
2
group_width
:
4
groups
:
64
norm_type
:
affine_channel
variant
:
d
FPN
:
max_level
:
6
min_level
:
2
num_chan
:
256
spatial_scale
:
[
0.03125
,
0.0625
,
0.125
,
0.25
]
FPNRPNHead
:
anchor_generator
:
aspect_ratios
:
[
0.5
,
1.0
,
2.0
]
variance
:
[
1.0
,
1.0
,
1.0
,
1.0
]
anchor_start_size
:
32
max_level
:
6
min_level
:
2
num_chan
:
256
rpn_target_assign
:
rpn_batch_size_per_im
:
256
rpn_fg_fraction
:
0.5
rpn_negative_overlap
:
0.3
rpn_positive_overlap
:
0.7
rpn_straddle_thresh
:
0.0
train_proposal
:
min_size
:
0.0
nms_thresh
:
0.7
pre_nms_top_n
:
2000
post_nms_top_n
:
2000
test_proposal
:
min_size
:
0.0
nms_thresh
:
0.7
pre_nms_top_n
:
1000
post_nms_top_n
:
1000
FPNRoIAlign
:
canconical_level
:
4
canonical_size
:
224
max_level
:
5
min_level
:
2
sampling_ratio
:
2
box_resolution
:
7
mask_resolution
:
14
MaskHead
:
dilation
:
1
num_chan_reduced
:
256
num_convs
:
4
resolution
:
28
BBoxAssigner
:
batch_size_per_im
:
512
bbox_reg_weights
:
[
0.1
,
0.1
,
0.2
,
0.2
]
bg_thresh_hi
:
0.5
bg_thresh_lo
:
0.0
fg_fraction
:
0.25
fg_thresh
:
0.5
MaskAssigner
:
resolution
:
28
BBoxHead
:
head
:
TwoFCHead
nms
:
keep_top_k
:
100
nms_threshold
:
0.5
score_threshold
:
0.05
TwoFCHead
:
num_chan
:
1024
LearningRate
:
base_lr
:
0.01
schedulers
:
-
!PiecewiseDecay
gamma
:
0.1
milestones
:
[
240000
,
320000
]
-
!LinearWarmup
start_factor
:
0.1
steps
:
1000
OptimizerBuilder
:
optimizer
:
momentum
:
0.9
type
:
Momentum
regularizer
:
factor
:
0.0001
type
:
L2
MaskRCNNTrainFeed
:
batch_size
:
1
dataset
:
dataset_dir
:
dataset/coco
annotation
:
annotations/instances_train2017.json
image_dir
:
train2017
batch_transforms
:
-
!PadBatch
pad_to_stride
:
32
num_workers
:
2
MaskRCNNEvalFeed
:
batch_size
:
1
dataset
:
dataset_dir
:
dataset/coco
annotation
:
annotations/instances_val2017.json
image_dir
:
val2017
batch_transforms
:
-
!PadBatch
pad_to_stride
:
32
num_workers
:
2
MaskRCNNTestFeed
:
batch_size
:
1
dataset
:
annotation
:
annotations/instances_val2017.json
batch_transforms
:
-
!PadBatch
pad_to_stride
:
32
num_workers
:
2
PaddleCV/PaddleDetection/docs/CONFIG.md
浏览文件 @
87d15f1b
...
...
@@ -132,7 +132,7 @@ RPNHead:
Example snippet that make use of the
`RPNHead`
module.
```
python
from
ppdet.core.wor
s
kspace
import
load_config
,
merge_config
,
create
from
ppdet.core.workspace
import
load_config
,
merge_config
,
create
load_config
(
'some_config_file.yml'
)
merge_config
(
more_config_options_from_command_line
)
...
...
PaddleCV/PaddleDetection/docs/CONFIG_cn.md
浏览文件 @
87d15f1b
...
...
@@ -124,7 +124,7 @@ RPNHead:
`RPNHead`
模块实际使用代码示例。
```
python
from
ppdet.core.wor
s
kspace
import
load_config
,
merge_config
,
create
from
ppdet.core.workspace
import
load_config
,
merge_config
,
create
load_config
(
'some_config_file.yml'
)
merge_config
(
more_config_options_from_command_line
)
...
...
PaddleCV/PaddleDetection/docs/DATA.md
浏览文件 @
87d15f1b
...
...
@@ -28,7 +28,9 @@ Loads `COCO` type datasets with directory structures like this:
```
dataset/coco/
├── annotations
│ ├── instances_train2014.json
│ ├── instances_train2017.json
│ ├── instances_val2014.json
│ ├── instances_val2017.json
| ...
├── train2017
...
...
PaddleCV/PaddleDetection/docs/GETTING_STARTED.md
浏览文件 @
87d15f1b
...
...
@@ -20,8 +20,6 @@ python tools/train.py -c configs/faster_rcnn_r50_1x.yml
```
bash
export
CUDA_VISIBLE_DEVICES
=
0,1,2,3,4,5,6,7
# or run on CPU with:
# export CPU_NUM=8
python tools/train.py
-c
configs/faster_rcnn_r50_1x.yml
```
...
...
@@ -32,10 +30,10 @@ python tools/train.py -c configs/faster_rcnn_r50_1x.yml
-
To check out hyper parameters used, please refer to the config file.
-
RCNN models training on CPU is not supported on PaddlePaddle<=1.5.1 and will be fixed on later version.
Alternating between training epoch and evaluation run is possible, simply pass
in
`--eval`
to do so (tested with
`SSD`
detector on Pascal-VOC, not
recommended for two stage models or training sessions on COCO dataset)
Alternating between training epoch and evaluation run is possible, simply pass
in
`--eval`
to do so and evaluate at each snapshot_iter. If evaluation dataset is large and
causes time-consuming in training, we suggest decreasing evaluation times or evaluating after training.
## Evaluation
...
...
PaddleCV/PaddleDetection/docs/GETTING_STARTED_cn.md
浏览文件 @
87d15f1b
...
...
@@ -19,7 +19,7 @@ python tools/train.py -c configs/faster_rcnn_r50_1x.yml
```
bash
export
CUDA_VISIBLE_DEVICES
=
0,1,2,3,4,5,6,7
#
若使用CPU,则执行
#
or run on CPU with:
# export CPU_NUM=8
python tools/train.py
-c
configs/faster_rcnn_r50_1x.yml
```
...
...
@@ -31,9 +31,9 @@ python tools/train.py -c configs/faster_rcnn_r50_1x.yml
-
更多参数配置,请参考配置文件。
-
RCNN系列模型CPU训练在PaddlePaddle 1.5.1及以下版本暂不支持,将在下个版本修复。
可通过设置
`--eval`
在训练epoch中交替执行评估(已在在Pascal-VOC数据集上
用
`SSD`
检测器验证,不推荐在COCO数据集上的两阶段模型上执行交替评估)
可通过设置
`--eval`
在训练epoch中交替执行评估, 评估在每个snapshot_iter时开始。
如果验证集很大,测试将会比较耗时,影响训练速度,建议减少评估次数,或训练完再进行评估。
## 评估
...
...
PaddleCV/PaddleDetection/docs/INSTALL.md
浏览文件 @
87d15f1b
...
...
@@ -27,7 +27,7 @@ of your PaddlePaddle is not lower than required. Verify with the following comma
```
# To check PaddlePaddle installation in your Python interpreter
>>> import paddle.fluid as fluid
>>> import paddle.fluid as fluid
>>> fluid.install_check.run_check()
# To check PaddlePaddle version
...
...
PaddleCV/PaddleDetection/docs/INSTALL_cn.md
浏览文件 @
87d15f1b
#
Installation
#
安装文档
---
##
Table of Contents
##
目录
-
[
简介
](
#introduction
)
-
[
PaddlePaddle
](
#paddlepaddle
)
...
...
@@ -26,7 +26,7 @@ PaddleDetection的相关信息,请参考[README.md](../README.md).
```
# 在您的Python解释器中确认PaddlePaddle安装成功
>>> import paddle.fluid as fluid
>>> import paddle.fluid as fluid
>>> fluid.install_check.run_check()
# 确认PaddlePaddle版本
...
...
PaddleCV/PaddleDetection/docs/MODEL_ZOO.md
浏览文件 @
87d15f1b
...
...
@@ -50,8 +50,11 @@ The backbone models pretrained on ImageNet are available. All backbone models ar
| ResNet101-FPN | Mask | 1 | 1x | 39.5 | 35.2 |
[
model
](
https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_r101_fpn_1x.tar
)
|
| ResNet101-vd-FPN | Faster | 1 | 1x | 40.5 | - |
[
model
](
https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_r101_vd_fpn_1x.tar
)
|
| ResNet101-vd-FPN | Faster | 1 | 2x | 40.8 | - |
[
model
](
https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_r101_vd_fpn_2x.tar
)
|
| ResNet101-vd-FPN | Mask | 1 | 1x | 41.4 | 36.8 |
[
model
](
https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_r101_vd_fpn_1x.tar
)
|
| ResNeXt101-vd-FPN | Faster | 1 | 1x | 42.2 | - |
[
model
](
https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_x101_vd_64x4d_fpn_1x.tar
)
|
| ResNeXt101-vd-FPN | Faster | 1 | 2x | 41.7 | - |
[
model
](
https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_x101_vd_64x4d_fpn_2x.tar
)
|
| ResNeXt101-vd-FPN | Mask | 1 | 1x | 42.9 | 37.9 |
[
model
](
https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_x101_vd_64x4d_fpn_1x.tar
)
|
| ResNeXt101-vd-FPN | Mask | 1 | 2x | 42.6 | 37.6 |
[
model
](
https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_x101_vd_64x4d_fpn_2x.tar
)
|
| SENet154-vd-FPN | Faster | 1 | 1.44x | 42.9 | - |
[
model
](
https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_se154_vd_fpn_s1x.tar
)
|
| SENet154-vd-FPN | Mask | 1 | 1.44x | 44.0 | 38.7 |
[
model
](
https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_se154_vd_fpn_s1x.tar
)
|
...
...
PaddleCV/PaddleDetection/docs/MODEL_ZOO_cn.md
0 → 100644
浏览文件 @
87d15f1b
# 模型库和基线
-
Python 2.7.1
-
PaddlePaddle 1.5
-
CUDA 9.0
-
CUDNN 7.4
-
NCCL 2.1.2
## 通用设置
-
SSD模型在VOC数据集中训练和测试,其余所有模型均在COCO17数据集中训练和测试。
-
除非特殊说明,所有ResNet骨干网络采用
[
ResNet-B
](
https://arxiv.org/pdf/1812.01187
)
结构。
-
对于RCNN和RetinaNet系列模型,训练阶段仅使用水平翻转作为数据增强,测试阶段不使用数据增强。
## 训练策略
-
我们采用和
[
Detectron
](
https://github.com/facebookresearch/Detectron/blob/master/MODEL_ZOO.md#training-schedules
)
相同的训练策略。
-
1x 策略表示:在总batch size为16时,初始学习率为0.02,在6万轮和8万轮后学习率分别下降10倍,最终训练9万轮。在总batch size为8时,初始学习率为0.01,在12万轮和16万轮后学习率分别下降10倍,最终训练18万轮。
-
2x 策略为1x策略的两倍,同时学习率调整位置也为1x的两倍。
## ImageNet预训练模型
Paddle提供基于ImageNet的骨架网络预训练模型。所有预训练模型均通过标准的Imagenet-1k数据集训练得到。
[
下载链接
](
https://github.com/PaddlePaddle/models/tree/develop/PaddleCV/image_classification#supported-models-and-performances
)
-
注:ResNet50模型通过余弦学习率调整策略训练得到。
[
下载链接
](
https://paddle-imagenet-models-name.bj.bcebos.com/ResNet50_cos_pretrained.tar
)
## 基线
### Faster & Mask R-CNN
| 骨架网络 | 网络类型 | 每张GPU图片个数 | 学习率策略 | Box AP | Mask AP | 下载 |
| :------------------- | :------------- | :-----: | :-----: | :----: | :-----: | :----------------------------------------------------------: |
| ResNet50 | Faster | 1 | 1x | 35.2 | - |
[
下载链接
](
https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_r50_1x.tar
)
|
| ResNet50 | Faster | 1 | 2x | 37.1 | - |
[
下载链接
](
https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_r50_2x.tar
)
|
| ResNet50 | Mask | 1 | 1x | 36.5 | 32.2 |
[
下载链接
](
https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_r50_1x.tar
)
|
| ResNet50 | Mask | 1 | 2x | 38.2 | 33.4 |
[
下载链接
](
https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_r50_2x.tar
)
|
| ResNet50-vd | Faster | 1 | 1x | 36.4 | - |
[
下载链接
](
https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_r50_vd_1x.tar
)
|
| ResNet50-FPN | Faster | 2 | 1x | 37.2 | - |
[
下载链接
](
https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_r50_fpn_1x.tar
)
|
| ResNet50-FPN | Faster | 2 | 2x | 37.7 | - |
[
下载链接
](
https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_r50_fpn_2x.tar
)
|
| ResNet50-FPN | Mask | 1 | 1x | 37.9 | 34.2 |
[
下载链接
](
https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_r50_fpn_1x.tar
)
|
| ResNet50-FPN | Mask | 1 | 2x | 38.7 | 34.7 |
[
下载链接
](
https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_r50_fpn_2x.tar
)
|
| ResNet50-FPN | Cascade Faster | 2 | 1x | 40.9 | - |
[
下载链接
](
https://paddlemodels.bj.bcebos.com/object_detection/cascade_rcnn_r50_fpn_1x.tar
)
|
| ResNet50-vd-FPN | Faster | 2 | 2x | 38.9 | - |
[
下载链接
](
https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_r50_vd_fpn_2x.tar
)
|
| ResNet50-vd-FPN | Mask | 1 | 2x | 39.8 | 35.4 |
[
下载链接
](
https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_r50_vd_fpn_2x.tar
)
|
| ResNet101 | Faster | 1 | 1x | 38.3 | - |
[
下载链接
](
https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_r101_1x.tar
)
|
| ResNet101-FPN | Faster | 1 | 1x | 38.7 | - |
[
下载链接
](
https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_r101_fpn_1x.tar
)
|
| ResNet101-FPN | Faster | 1 | 2x | 39.1 | - |
[
下载链接
](
https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_r101_fpn_2x.tar
)
|
| ResNet101-FPN | Mask | 1 | 1x | 39.5 | 35.2 |
[
下载链接
](
https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_r101_fpn_1x.tar
)
|
| ResNet101-vd-FPN | Faster | 1 | 1x | 40.5 | - |
[
下载链接
](
https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_r101_vd_fpn_1x.tar
)
|
| ResNet101-vd-FPN | Faster | 1 | 2x | 40.8 | - |
[
下载链接
](
https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_r101_vd_fpn_2x.tar
)
|
| ResNet101-vd-FPN | Mask | 1 | 1x | 41.4 | 36.8 |
[
下载链接
](
https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_r101_vd_fpn_1x.tar
)
|
| ResNeXt101-vd-FPN | Faster | 1 | 1x | 42.2 | - |
[
下载链接
](
https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_x101_vd_64x4d_fpn_1x.tar
)
|
| ResNeXt101-vd-FPN | Faster | 1 | 2x | 41.7 | - |
[
下载链接
](
https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_x101_vd_64x4d_fpn_2x.tar
)
|
| ResNeXt101-vd-FPN | Mask | 1 | 1x | 42.9 | 37.9 |
[
下载链接
](
https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_x101_vd_64x4d_fpn_1x.tar
)
|
| ResNeXt101-vd-FPN | Mask | 1 | 2x | 42.6 | 37.6 |
[
下载链接
](
https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_x101_vd_64x4d_fpn_2x.tar
)
|
| SENet154-vd-FPN | Faster | 1 | 1.44x | 42.9 | - |
[
下载链接
](
https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_se154_vd_fpn_s1x.tar
)
|
| SENet154-vd-FPN | Mask | 1 | 1.44x | 44.0 | 38.7 |
[
下载链接
](
https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_se154_vd_fpn_s1x.tar
)
|
### Yolo v3
| 骨架网络 | 输入尺寸 | 每张GPU图片个数 | 学习率策略 | Box AP | 下载 |
| :----------- | :--: | :-----: | :-----: | :----: | :-------: |
| DarkNet53 | 608 | 8 | 270e | 38.9 |
[
下载链接
](
https://paddlemodels.bj.bcebos.com/object_detection/yolov3_darknet.tar
)
|
| DarkNet53 | 416 | 8 | 270e | 37.5 |
[
下载链接
](
https://paddlemodels.bj.bcebos.com/object_detection/yolov3_darknet.tar
)
|
| DarkNet53 | 320 | 8 | 270e | 34.8 |
[
下载链接
](
https://paddlemodels.bj.bcebos.com/object_detection/yolov3_darknet.tar
)
|
| MobileNet-V1 | 608 | 8 | 270e | 29.3 |
[
下载链接
](
https://paddlemodels.bj.bcebos.com/object_detection/yolov3_mobilenet_v1.tar
)
|
| MobileNet-V1 | 416 | 8 | 270e | 29.3 |
[
下载链接
](
https://paddlemodels.bj.bcebos.com/object_detection/yolov3_mobilenet_v1.tar
)
|
| MobileNet-V1 | 320 | 8 | 270e | 27.1 |
[
下载链接
](
https://paddlemodels.bj.bcebos.com/object_detection/yolov3_mobilenet_v1.tar
)
|
| ResNet34 | 608 | 8 | 270e | 36.2 |
[
下载链接
](
https://paddlemodels.bj.bcebos.com/object_detection/yolov3_r34.tar
)
|
| ResNet34 | 416 | 8 | 270e | 34.3 |
[
下载链接
](
https://paddlemodels.bj.bcebos.com/object_detection/yolov3_r34.tar
)
|
| ResNet34 | 320 | 8 | 270e | 31.4 |
[
下载链接
](
https://paddlemodels.bj.bcebos.com/object_detection/yolov3_r34.tar
)
|
### Yolo v3 基于Pasacl VOC数据集
| 骨架网络 | 输入尺寸 | 每张GPU图片个数 | 学习率策略 | Box AP | 下载 |
| :----------- | :--: | :-----: | :-----: | :----: | :-------: |
| DarkNet53 | 608 | 8 | 270e | 83.5 |
[
下载链接
](
https://paddlemodels.bj.bcebos.com/object_detection/yolov3_darknet_voc.tar
)
|
| DarkNet53 | 416 | 8 | 270e | 83.6 |
[
下载链接
](
https://paddlemodels.bj.bcebos.com/object_detection/yolov3_darknet_voc.tar
)
|
| DarkNet53 | 320 | 8 | 270e | 82.2 |
[
下载链接
](
https://paddlemodels.bj.bcebos.com/object_detection/yolov3_darknet_voc.tar
)
|
| MobileNet-V1 | 608 | 8 | 270e | 76.2 |
[
下载链接
](
https://paddlemodels.bj.bcebos.com/object_detection/yolov3_mobilenet_v1_voc.tar
)
|
| MobileNet-V1 | 416 | 8 | 270e | 76.7 |
[
下载链接
](
https://paddlemodels.bj.bcebos.com/object_detection/yolov3_mobilenet_v1_voc.tar
)
|
| MobileNet-V1 | 320 | 8 | 270e | 75.3 |
[
下载链接
](
https://paddlemodels.bj.bcebos.com/object_detection/yolov3_mobilenet_v1_voc.tar
)
|
| ResNet34 | 608 | 8 | 270e | 82.6 |
[
下载链接
](
https://paddlemodels.bj.bcebos.com/object_detection/yolov3_r34_voc.tar
)
|
| ResNet34 | 416 | 8 | 270e | 81.9 |
[
下载链接
](
https://paddlemodels.bj.bcebos.com/object_detection/yolov3_r34_voc.tar
)
|
| ResNet34 | 320 | 8 | 270e | 80.1 |
[
下载链接
](
https://paddlemodels.bj.bcebos.com/object_detection/yolov3_r34_voc.tar
)
|
**注意事项:**
Yolo v3在8卡,总batch size为64下训练270轮。数据增强包括:mixup, 随机颜色失真,随机剪裁,随机扩张,随机插值法,随机翻转。Yolo v3在训练阶段对minibatch采用随机reshape,可以采用相同的模型测试不同尺寸图片,我们分别提供了尺寸为608/416/320大小的测试结果。
### RetinaNet
| 骨架网络 | 每张GPU图片个数 | 学习率策略 | Box AP | 下载 |
| :----------- | :-----: | :-----: | :----: | :-------: |
| ResNet50-FPN | 2 | 1x | 36.0 |
[
下载链接
](
https://paddlemodels.bj.bcebos.com/object_detection/retinanet_r50_fpn_1x.tar
)
|
| ResNet101-FPN | 2 | 1x | 37.3 |
[
下载链接
](
https://paddlemodels.bj.bcebos.com/object_detection/retinanet_r101_fpn_1x.tar
)
|
**注意事项:**
RetinaNet系列模型中,在总batch size为16下情况下,初始学习率改为0.01。
### SSD on Pascal VOC
| 骨架网络 | 输入尺寸 | 每张GPU图片个数 | 学习率策略 | Box AP | 下载 |
| :----------- | :--: | :-----: | :-----: | :----: | :-------: |
| MobileNet v1 | 300 | 32 | 120e | 73.13 |
[
model
](
https://paddlemodels.bj.bcebos.com/object_detection/ssd_mobilenet_v1_voc.tar
)
|
**注意事项:**
SSD在2卡,总batch size为64下训练120轮。数据增强包括:随机颜色失真,随机剪裁,随机扩张,随机翻转。
PaddleCV/PaddleDetection/ppdet/utils/checkpoint.py
浏览文件 @
87d15f1b
...
...
@@ -28,7 +28,11 @@ from .download import get_weights_path
import
logging
logger
=
logging
.
getLogger
(
__name__
)
__all__
=
[
'load_checkpoint'
,
'load_and_fusebn'
,
'save'
]
__all__
=
[
'load_checkpoint'
,
'load_and_fusebn'
,
'save'
,
]
def
is_url
(
path
):
...
...
PaddleCV/PaddleDetection/ppdet/utils/eval_utils.py
浏览文件 @
87d15f1b
...
...
@@ -90,12 +90,12 @@ def eval_run(exe, compile_program, pyreader, keys, values, cls):
return
results
def
eval_results
(
results
,
feed
,
metric
,
def
eval_results
(
results
,
feed
,
metric
,
num_classes
,
resolution
=
None
,
is_bbox_normalized
=
False
,
resolution
=
None
,
is_bbox_normalized
=
False
,
output_file
=
None
):
"""Evaluation for evaluation program results"""
if
metric
==
'COCO'
:
...
...
@@ -122,5 +122,5 @@ def eval_results(results,
res
=
np
.
mean
(
results
[
-
1
][
'accum_map'
][
0
])
logger
.
info
(
'mAP: {:.2f}'
.
format
(
res
*
100.
))
elif
'bbox'
in
results
[
0
]:
voc_bbox_eval
(
results
,
num_classes
,
is_bbox_normalized
=
is_bbox_normalized
)
voc_bbox_eval
(
results
,
num_classes
,
is_bbox_normalized
=
is_bbox_normalized
)
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录