Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleDetection
提交
5fe3b7bd
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看板
未验证
提交
5fe3b7bd
编写于
5月 15, 2020
作者:
Q
qingqing01
提交者:
GitHub
5月 15, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Update some docs (#683)
上级
3697a31e
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
43 addition
and
22 deletion
+43
-22
README.md
README.md
+7
-3
README_en.md
README_en.md
+7
-1
deploy/README.md
deploy/README.md
+2
-1
deploy/python/README.md
deploy/python/README.md
+4
-0
docs/CHANGELOG.md
docs/CHANGELOG.md
+7
-7
docs/advanced_tutorials/TRANSFER_LEARNING_cn.md
docs/advanced_tutorials/TRANSFER_LEARNING_cn.md
+5
-1
docs/tutorials/GETTING_STARTED_cn.md
docs/tutorials/GETTING_STARTED_cn.md
+11
-9
未找到文件。
README.md
浏览文件 @
5fe3b7bd
...
...
@@ -15,6 +15,10 @@
特性:
-
模型丰富:
PaddleDetection提供了丰富的模型,包含目标检测、实例分割、人脸检测等100+个预训练模型,涵盖多种数据集竞赛冠军方案、适合云端/边缘端设备部署的检测方案。
-
易部署:
PaddleDetection的模型中使用的核心算子均通过C++或CUDA实现,同时基于PaddlePaddle的高性能推理引擎可以方便地部署在多种硬件平台上。
...
...
@@ -27,6 +31,7 @@
基于PaddlePaddle框架的高性能内核,在模型训练速度、显存占用上有一定的优势。例如,YOLOv3的训练速度快于其他框架,在Tesla V100 16GB环境下,Mask-RCNN(ResNet50)可以单卡Batch Size可以达到4 (甚至到5)。
支持的模型结构:
| | ResNet | ResNet-vd
<sup>
[
1
](
#vd
)
</sup>
| ResNeXt-vd | SENet | MobileNet | HRNet | Res2Net |
...
...
@@ -98,8 +103,8 @@
-
[
数据预处理及自定义数据集
](
docs/advanced_tutorials/READER.md
)
-
[
搭建模型步骤
](
docs/advanced_tutorials/MODEL_TECHNICAL.md
)
-
[
配置模块设计和介绍
](
docs/advanced_tutorials/CONFIG_cn.md
)
-
[
IPython Notebook demo
](
demo/mask_rcnn_demo.ipynb
)
-
[
迁移学习教程
](
docs/advanced_tutorials/TRANSFER_LEARNING_cn.md
)
-
[
IPython Notebook demo
](
demo/mask_rcnn_demo.ipynb
)
-
[
模型压缩
](
slim
)
-
[
压缩benchmark
](
slim
)
-
[
量化
](
slim/quantization
)
...
...
@@ -130,8 +135,7 @@
本项目的发布受
[
Apache 2.0 license
](
LICENSE
)
许可认证。
## 版本更新
v0.3.0版本已经在
`05/2020`
发布,增加anchor-free、EfficientDet和YOLOv4等多个模型,推出移动端、服务器端实用高效多个模型,重构预测部署功能,提升易用性,修复已知诸多bug等,
详细内容请参考
[
版本更新文档
](
docs/CHANGELOG.md
)
。
v0.3.0版本已经在
`05/2020`
发布,增加Anchor-free、EfficientDet和YOLOv4等多个模型,推出移动端、服务器端实用高效多个模型,例如移动端将YOLOv3-MobileNetv3加速3.5倍,服务器端优化两阶段模型,速度和精度具备较高性价比。重构预测部署功能,提升易用性,修复已知诸多bug等,详细内容请参考
[
版本更新文档
](
docs/CHANGELOG.md
)
。
## 如何贡献代码
...
...
README_en.md
浏览文件 @
5fe3b7bd
...
...
@@ -21,6 +21,12 @@ and multi-platform deployment.
Features:
-
Rich models:
PaddleDetection provides rich of models, including 100+ pre-trained models
such as object detection, instance segmentation, face detection etc. It covers
the champion models, the practical detection models for cloud and edge device.
-
Production Ready:
Key operations are implemented in C++ and CUDA, together with PaddlePaddle's
...
...
@@ -111,8 +117,8 @@ The following is the relationship between COCO mAP and FPS on Tesla V100 of repr
-
[
Guide to preprocess pipeline and custom dataset
](
docs/advanced_tutorials/READER.md
)
-
[
Models technical
](
docs/advanced_tutorials/MODEL_TECHNICAL.md
)
-
[
Introduction to the configuration workflow
](
docs/advanced_tutorials/CONFIG.md
)
-
[
IPython Notebook demo
](
demo/mask_rcnn_demo.ipynb
)
-
[
Transfer learning document
](
docs/advanced_tutorials/TRANSFER_LEARNING.md
)
-
[
IPython Notebook demo
](
demo/mask_rcnn_demo.ipynb
)
-
[
Model compression
](
slim
)
-
[
Model compression benchmark
](
slim
)
-
[
Quantization
](
slim/quantization
)
...
...
deploy/README.md
浏览文件 @
5fe3b7bd
...
...
@@ -3,7 +3,7 @@
`PaddleDetection`
目前支持使用
`Python`
和
`C++`
部署在
`Windows`
和
`Linux`
上运行。
## 模型导出
训练得到一个满足要求的模型后,如果想要将该模型接入到C++预测库,需要通过
`tools/export_model.py`
导出该模型。
训练得到一个满足要求的模型后,如果想要将该模型接入到C++
服务器端预测库或移动端
预测库,需要通过
`tools/export_model.py`
导出该模型。
-
[
导出教程
](
../docs/advanced_tutorials/deploy/EXPORT_MODEL.md
)
...
...
@@ -20,3 +20,4 @@ yolov3_darknet # 模型目录
## 预测部署
-
[
1. Python预测(支持 Linux 和 Windows)
](
./python/
)
-
[
2. C++预测(支持 Linux 和 Windows)
](
./cpp/
)
-
[
3. 移动端部署参考Paddle-Lite文档
](
https://paddle-lite.readthedocs.io/zh/latest/
)
deploy/python/README.md
浏览文件 @
5fe3b7bd
# Python端预测部署
Python预测可以使用
`tools/infer.py`
,此种方式依赖PaddleDetection源码;也可以使用本篇教程预测方式,先将模型导出,使用一个独立的文件进行预测。
本篇教程使用AnalysisPredictor对
[
导出模型
](
../../docs/advanced_tutorials/deploy/EXPORT_MODEL.md
)
进行高性能预测。
在PaddlePaddle中预测引擎和训练引擎底层有着不同的优化方法, 下面列出了两种不同的预测方式。Executor同时支持训练和预测,AnalysisPredictor则专门针对推理进行了优化,是基于
[
C++预测库
](
https://www.paddlepaddle.org.cn/documentation/docs/zh/advanced_guide/inference_deployment/inference/native_infer.html
)
的Python接口,该引擎可以对模型进行多项图优化,减少不必要的内存拷贝。如果用户在部署已训练模型的过程中对性能有较高的要求,我们提供了独立于PaddleDetection的预测脚本,方便用户直接集成部署。
...
...
docs/CHANGELOG.md
浏览文件 @
5fe3b7bd
...
...
@@ -5,16 +5,16 @@
### v0.3.0(05/2020)
-
模型丰富度提升:
-
添加Efficientdet-D0模型,速度与精度优于竞品。
-
添加anchor-free模型FCOS,精度优于竞品。
-
新增yolov4预测模型,精度对齐竞品;新增yolov4在pascal voc数据集上finetune模型,精度达到85.5%。
-
新增YOLOv4预测模型,精度对齐竞品;新增YOLOv4在Pascal VOC数据集上微调训练,精度达到85.5%。
-
YOLOv3新增MobileNetV3骨干网络,COCO数据集精度达到31.6%。
-
添加anchor-free模型CornernetSqueeze,精度优于竞品, 优化模型的COCO数据集精度38.2%, +3.7%,速度较yolo_v3 darknet快5%。
-
添加服务器端实用目标检测模型cascade_rcnn_resnet50_vd_fpn_dcn,速度与精度优于竞品EfficientDet。
-
添加Anchor-free模型FCOS,精度优于竞品。
-
添加Anchor-free模型CornernetSqueeze,精度优于竞品,优化模型的COCO数据集精度38.2%, +3.7%,速度较YOLOv3-Darknet53快5%。
-
添加服务器端实用目标检测模型CascadeRCNN-ResNet50vd模型,速度与精度优于竞品EfficientDet。
-
移动端推出3种模型:
-
SSDLite系列模型:
ssdlite-mobilenet_v3 large模型与ssdlite-mobilenet_v3 small模型,精度优于竞品。ssdlite-mobilenet_v1
模型,精度优于竞品。
-
yolo v3:yolov3_mobilenet_v3裁剪模型
,速度和精度均领先于竞品的SSDLite模型。
-
Faster RCNN:cascade_rcnn_mobilenet_v3 large_fpn
推出输入图像分别为320x320和640x640的模型,速度与精度具有较高性价比。
-
SSDLite系列模型:
SSDLite-Mobilenetv3 small/large
模型,精度优于竞品。
-
YOLOv3移动端方案: YOLOv3-MobileNetv3模型压缩后加速3.5倍
,速度和精度均领先于竞品的SSDLite模型。
-
RCNN移动端方案:CascadeRCNN-MobileNetv3经过系列优化,
推出输入图像分别为320x320和640x640的模型,速度与精度具有较高性价比。
-
预测部署重构:
-
新增Python预测部署流程,支持RCNN,YOLO,SSD,RetinaNet,人脸系列模型,支持视频预测。
...
...
docs/advanced_tutorials/TRANSFER_LEARNING_cn.md
浏览文件 @
5fe3b7bd
...
...
@@ -2,7 +2,11 @@
迁移学习为利用已有知识,对新知识进行学习。例如利用ImageNet分类预训练模型做初始化来训练检测模型,利用在COCO数据集上的检测模型做初始化来训练基于PascalVOC数据集的检测模型。
在进行迁移学习时,由于会使用不同的数据集,数据类别数与COCO/VOC数据类别不同,导致在加载开源模型(如COCO预训练模型)时,与类别数相关的权重(例如分类模块的fc层)会出现维度不匹配的问题;另外,如果需要结构更加复杂的模型,需要对已有开源模型结构进行调整,对应权重也需要选择性加载。因此,需要检测库能够指定参数字段,在加载模型时不加载匹配的权重。
### 选择数据
在进行迁移学习时,由于会使用不同的数据集,数据类别数与COCO/VOC数据类别不同,导致在加载开源模型(如COCO预训练模型)时,与类别数相关的权重(例如分类模块的fc层)会出现维度不匹配的问题;另外,如果需要结构更加复杂的模型,需要对已有开源模型结构进行调整,对应权重也需要选择性加载。因此,需要在加载模型时不加载不能匹配的权重。
在迁移学习中,对预训练模型进行选择性加载,支持如下两种迁移学习方式:
...
...
docs/tutorials/GETTING_STARTED_cn.md
浏览文件 @
5fe3b7bd
...
...
@@ -3,9 +3,9 @@
关于配置运行环境,请参考
[
安装指南
](
INSTALL_cn.md
)
## 训练/评估/
推断
## 训练/评估/
预测
PaddleDetection提供了训练/评估/
推断三个功能的使用脚本
,支持通过不同可选参数实现特定功能
PaddleDetection提供了训练/评估/
预测
,支持通过不同可选参数实现特定功能
```
bash
# 设置PYTHONPATH路径
...
...
@@ -16,7 +16,7 @@ python tools/train.py -c configs/faster_rcnn_r50_1x.yml
# GPU评估
export
CUDA_VISIBLE_DEVICES
=
0
python tools/eval.py
-c
configs/faster_rcnn_r50_1x.yml
#
推断
#
预测
python tools/infer.py
-c
configs/faster_rcnn_r50_1x.yml
--infer_img
=
demo/000000570688.jpg
```
...
...
@@ -34,10 +34,10 @@ python tools/infer.py -c configs/faster_rcnn_r50_1x.yml --infer_img=demo/0000005
| --fp16 | train | 是否使用混合精度训练模式 | False | 需使用GPU训练 |
| --loss_scale | train | 设置混合精度训练模式中损失值的缩放比例 | 8.0 | 需先开启
`--fp16`
后使用 |
| --json_eval | eval | 是否通过已存在的bbox.json或者mask.json进行评估 | False | json文件路径在
`--output_eval`
中设置 |
| --output_dir | infer | 输出
推断
后可视化文件 |
`./output`
|
`--output_dir output`
|
| --output_dir | infer | 输出
预测
后可视化文件 |
`./output`
|
`--output_dir output`
|
| --draw_threshold | infer | 可视化时分数阈值 | 0.5 |
`--draw_threshold 0.7`
|
| --infer_dir | infer | 用于
推断
的图片文件夹路径 | None | |
| --infer_img | infer | 用于
推断
的图片路径 | None | 相较于
`--infer_dir`
具有更高优先级 |
| --infer_dir | infer | 用于
预测
的图片文件夹路径 | None | |
| --infer_img | infer | 用于
预测
的图片路径 | None | 相较于
`--infer_dir`
具有更高优先级 |
| --use_tb | train/infer | 是否使用
[
tb-paddle
](
https://github.com/linshuliang/tb-paddle
)
记录数据,进而在TensorBoard中显示 | False | |
| --tb
\_
log_dir | train/infer | 指定 tb-paddle 记录数据的存储路径 | train:
`tb_log_dir/scalar`
infer:
`tb_log_dir/image`
| |
...
...
@@ -145,9 +145,9 @@ python -m paddle.distributed.launch --selected_gpus 0,1,2,3,4,5,6,7 tools/train.
-
R-CNN和SSD模型目前暂不支持多GPU评估,将在后续版本支持
### 模型
推断
### 模型
预测
-
设置输出路径 && 设置
推断
阈值
-
设置输出路径 && 设置
预测
阈值
```
bash
export
CUDA_VISIBLE_DEVICES
=
0
...
...
@@ -160,4 +160,6 @@ python -m paddle.distributed.launch --selected_gpus 0,1,2,3,4,5,6,7 tools/train.
`--draw_threshold`
是个可选参数. 根据
[
NMS
](
https://ieeexplore.ieee.org/document/1699659
)
的计算,
不同阈值会产生不同的结果。如果用户需要对自定义路径的模型进行推断,可以设置
`-o weights`
指定模型路径。
不同阈值会产生不同的结果。如果用户需要对自定义路径的模型进行预测,可以设置
`-o weights`
指定模型路径。
此预测过程依赖PaddleDetection源码,如果您想使用C++进行服务器端预测、或在移动端预测、或使用PaddleServing部署、或独立于PaddleDetection源码使用Python预测可以参考
[
模型导出教程
](
../advanced_tutorials/deploy/EXPORT_MODEL.md
)
和推理部署。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录