Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
s920243400
PaddleDetection
提交
5fe3b7bd
P
PaddleDetection
项目概览
s920243400
/
PaddleDetection
与 Fork 源项目一致
Fork自
PaddlePaddle / PaddleDetection
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PaddleDetection
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录