Skip to content

Commit 40d2dff

Browse files
authored
ppvehicle tutorials template (PaddlePaddle#6578)
* ppvehicle tutorials template * rename pphuman docs * update quickstart
1 parent befeaeb commit 40d2dff

31 files changed

+252
-61
lines changed

README_cn.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -423,9 +423,9 @@
423423
- 二次开发教程
424424
- [目标检测](docs/advanced_tutorials/customization/detection.md)
425425
- [关键点检测](docs/advanced_tutorials/customization/keypoint_detection.md)
426-
- [多目标跟踪](docs/advanced_tutorials/customization/mot.md)
427-
- [行为识别](docs/advanced_tutorials/customization/action.md)
428-
- [属性识别](docs/advanced_tutorials/customization/attribute.md)
426+
- [多目标跟踪](docs/advanced_tutorials/customization/pphuman_mot.md)
427+
- [行为识别](docs/advanced_tutorials/customization/pphuman_action.md)
428+
- [属性识别](docs/advanced_tutorials/customization/pphuman_attribute.md)
429429

430430
### 课程专栏
431431

README_en.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -418,9 +418,9 @@ The comparison between COCO mAP and FPS on Qualcomm Snapdragon 865 processor of
418418
- Custumization
419419
- [Object detection](docs/advanced_tutorials/customization/detection.md)
420420
- [Keypoint detection](docs/advanced_tutorials/customization/keypoint_detection.md)
421-
- [Multiple object tracking](docs/advanced_tutorials/customization/mot.md)
422-
- [Action recognition](docs/advanced_tutorials/customization/action.md)
423-
- [Attribute recognition](docs/advanced_tutorials/customization/attribute.md)
421+
- [Multiple object tracking](docs/advanced_tutorials/customization/pphuman_mot.md)
422+
- [Action recognition](docs/advanced_tutorials/customization/pphuman_action.md)
423+
- [Attribute recognition](docs/advanced_tutorials/customization/pphuman_attribute.md)
424424

425425
### Courses
426426

configs/mot/ocsort/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
- **mix_mot_ch**数据集,是MOT17、CrowdHuman组成的联合数据集,**mix_det**是MOT17、CrowdHuman、Cityscapes、ETHZ组成的联合数据集,数据集整理的格式和目录可以参考[此链接](https://github.com/ifzhang/ByteTrack#data-preparation),最终放置于`dataset/mot/`目录下。为了验证精度可以都用**MOT17-half val**数据集去评估。
2727
- OC_SORT的训练是单独的检测器训练MOT数据集,推理是组装跟踪器去评估MOT指标,单独的检测模型也可以评估检测指标。
2828
- OC_SORT的导出部署,是单独导出检测模型,再组装跟踪器运行的,参照[PP-Tracking](../../../deploy/pptracking/python)
29-
- OC_SORT是PP-Human和PP-Vehicle等Pipeline分析项目跟踪方向的主要方案,具体使用参照[Pipeline](../../../deploy/pipeline)[MOT](../../../deploy/pipeline/docs/tutorials/mot.md)
29+
- OC_SORT是PP-Human和PP-Vehicle等Pipeline分析项目跟踪方向的主要方案,具体使用参照[Pipeline](../../../deploy/pipeline)[MOT](../../../deploy/pipeline/docs/tutorials/pphuman_mot.md)
3030

3131

3232
## 快速开始

configs/pphuman/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ PaddleDetection团队提供了针对行人的基于PP-YOLOE的检测模型,用
1717

1818

1919
# PP-YOLOE 香烟检测模型
20-
基于PP-YOLOE模型的香烟检测模型,是实现PP-Human中的基于检测的行为识别方案的一环,如何在PP-Human中使用该模型进行吸烟行为识别,可参考[PP-Human行为识别模块](../../deploy/pipeline/docs/tutorials/action.md)。该模型检测类别仅包含香烟一类。由于数据来源限制,目前暂无法直接公开训练数据。该模型使用了小目标数据集VisDrone上的权重(参照[visdrone](../visdrone))作为预训练模型,以提升检测效果。
20+
基于PP-YOLOE模型的香烟检测模型,是实现PP-Human中的基于检测的行为识别方案的一环,如何在PP-Human中使用该模型进行吸烟行为识别,可参考[PP-Human行为识别模块](../../deploy/pipeline/docs/tutorials/pphuman_action.md)。该模型检测类别仅包含香烟一类。由于数据来源限制,目前暂无法直接公开训练数据。该模型使用了小目标数据集VisDrone上的权重(参照[visdrone](../visdrone))作为预训练模型,以提升检测效果。
2121

2222
| 模型 | 数据集 | mAP<sup>val<br>0.5:0.95 | mAP<sup>val<br>0.5 | 下载 | 配置文件 |
2323
|:---------|:-------:|:------:|:------:| :----: | :------:|

deploy/pipeline/README.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -70,19 +70,19 @@ PP-Human支持图片/单镜头视频/多镜头视频多种输入方式,功能
7070

7171
## 📚 文档教程
7272

73-
### [快速开始](docs/tutorials/QUICK_STARTED.md)
73+
### [快速开始](docs/tutorials/PPHuman_QUICK_STARTED.md)
7474

7575
### 行人属性/特征识别
7676

77-
* [快速开始](docs/tutorials/attribute.md)
78-
* [二次开发教程](../../docs/advanced_tutorials/customization/attribute.md)
77+
* [快速开始](docs/tutorials/pphuman_attribute.md)
78+
* [二次开发教程](../../docs/advanced_tutorials/customization/pphuman_attribute.md)
7979
* 数据准备
8080
* 模型优化
8181
* 新增属性
8282

8383
### 行为识别
8484

85-
* [快速开始](docs/tutorials/action.md)
85+
* [快速开始](docs/tutorials/pphuman_action.md)
8686
* 摔倒检测
8787
* 打架识别
8888
* [二次开发教程](../../docs/advanced_tutorials/customization/action_recognotion/README.md)
@@ -93,17 +93,17 @@ PP-Human支持图片/单镜头视频/多镜头视频多种输入方式,功能
9393

9494
### 跨镜跟踪ReID
9595

96-
* [快速开始](docs/tutorials/mtmct.md)
97-
* [二次开发教程](../../docs/advanced_tutorials/customization/mtmct.md)
96+
* [快速开始](docs/tutorials/pphuman_mtmct.md)
97+
* [二次开发教程](../../docs/advanced_tutorials/customization/pphuman_mtmct.md)
9898
* 数据准备
9999
* 模型优化
100100

101101
### 行人跟踪、人流量计数与轨迹记录
102102

103-
* [快速开始](docs/tutorials/mot.md)
103+
* [快速开始](docs/tutorials/pphuman_mot.md)
104104
* 行人跟踪
105105
* 人流量计数与轨迹记录
106106
* 区域闯入判断和计数
107-
* [二次开发教程](../../docs/advanced_tutorials/customization/mot.md)
107+
* [二次开发教程](../../docs/advanced_tutorials/customization/pphuman_mot.md)
108108
* 数据准备
109109
* 模型优化

deploy/pipeline/README_en.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -74,19 +74,19 @@ Click to download the model, then unzip and save it in the `. /output_inference`
7474

7575
## 📚 Doc Tutorials
7676

77-
### [A Quick Start](docs/tutorials/QUICK_STARTED.md)
77+
### [A Quick Start](docs/tutorials/PPHuman_QUICK_STARTED.md)
7878

7979
### Pedestrian attribute/feature recognition
8080

81-
* [A quick start](docs/tutorials/attribute.md)
82-
* [Customized development tutorials](../../docs/advanced_tutorials/customization/attribute.md)
81+
* [A quick start](docs/tutorials/pphuman_attribute.md)
82+
* [Customized development tutorials](../../docs/advanced_tutorials/customization/pphuman_attribute.md)
8383
* Data Preparation
8484
* Model Optimization
8585
* New Attributes
8686

8787
### Behavior detection
8888

89-
* [A quick start](docs/tutorials/action.md)
89+
* [A quick start](docs/tutorials/pphuman_action.md)
9090
* Falling detection
9191
* Fighting detection
9292
* [Customized development tutorials](../../docs/advanced_tutorials/customization/action_recognotion/README.md)
@@ -97,17 +97,17 @@ Click to download the model, then unzip and save it in the `. /output_inference`
9797

9898
### ReID
9999

100-
* [A quick start](docs/tutorials/mtmct.md)
101-
* [Customized development tutorials](../../docs/advanced_tutorials/customization/mtmct.md)
100+
* [A quick start](docs/tutorials/pphuman_mtmct.md)
101+
* [Customized development tutorials](../../docs/advanced_tutorials/customization/pphuman_mtmct.md)
102102
* Data Preparation
103103
* Model Optimization
104104

105105
### Pedestrian tracking, visitor traffic statistics, trace records
106106

107-
* [A quick start](docs/tutorials/mot.md)
107+
* [A quick start](docs/tutorials/pphuman_mot.md)
108108
* Pedestrian tracking,
109109
* Visitor traffic statistics
110110
* Regional intrusion diagnosis and counting
111-
* [Customized development tutorials](../../docs/advanced_tutorials/customization/mot.md)
111+
* [Customized development tutorials](../../docs/advanced_tutorials/customization/pphuman_mot.md)
112112
* Data Preparation
113113
* Model Optimization

deploy/pipeline/docs/tutorials/QUICK_STARTED.md renamed to deploy/pipeline/docs/tutorials/PPHuman_QUICK_STARTED.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -159,29 +159,29 @@ PP-Human v2整体方案如下图所示:
159159

160160
### 行人检测
161161
- 采用PP-YOLOE L 作为目标检测模型
162-
- 详细文档参考[PP-YOLOE](../../../../configs/ppyoloe/)[检测跟踪文档](mot.md)
162+
- 详细文档参考[PP-YOLOE](../../../../configs/ppyoloe/)[检测跟踪文档](pphuman_mot.md)
163163

164164
### 行人跟踪
165165
- 采用SDE方案完成行人跟踪
166166
- 检测模型使用PP-YOLOE L(高精度)和S(轻量级)
167167
- 跟踪模块采用OC-SORT方案
168-
- 详细文档参考[OC-SORT](../../../../configs/mot/ocsort)[检测跟踪文档](mot.md)
168+
- 详细文档参考[OC-SORT](../../../../configs/mot/ocsort)[检测跟踪文档](pphuman_mot.md)
169169

170170
### 跨镜行人跟踪
171171
- 使用PP-YOLOE + OC-SORT得到单镜头多目标跟踪轨迹
172172
- 使用ReID(StrongBaseline网络)对每一帧的检测结果提取特征
173173
- 多镜头轨迹特征进行匹配,得到跨镜头跟踪结果
174-
- 详细文档参考[跨镜跟踪](mtmct.md)
174+
- 详细文档参考[跨镜跟踪](pphuman_mtmct.md)
175175

176176
### 属性识别
177177
- 使用PP-YOLOE + OC-SORT跟踪人体
178178
- 使用StrongBaseline(多分类模型)完成识别属性,主要属性包括年龄、性别、帽子、眼睛、上衣下衣款式、背包等
179-
- 详细文档参考[属性识别](attribute.md)
179+
- 详细文档参考[属性识别](pphuman_attribute.md)
180180

181181
### 行为识别:
182182
- 提供四种行为识别方案
183183
- 1. 基于骨骼点的行为识别,例如摔倒识别
184184
- 2. 基于图像分类的行为识别,例如打电话识别
185185
- 3. 基于检测的行为识别,例如吸烟识别
186186
- 4. 基于视频分类的行为识别,例如打架识别
187-
- 详细文档参考[行为识别](action.md)
187+
- 详细文档参考[行为识别](pphuman_action.md)
Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
# 快速开始
2+
3+
## 目录
4+
5+
- [环境准备](#环境准备)
6+
- [模型下载](#模型下载)
7+
- [配置文件说明](#配置文件说明)
8+
- [预测部署](#预测部署)
9+
- [参数说明](#参数说明)
10+
- [方案介绍](#方案介绍)
11+
- [车辆检测](#车辆检测)
12+
- [车辆跟踪](#车辆跟踪)
13+
- [车牌识别](#车牌识别)
14+
- [属性识别](#属性识别)
15+
16+
17+
## 环境准备
18+
19+
环境要求: PaddleDetection版本 >= release/2.4 或 develop版本
20+
21+
PaddlePaddle和PaddleDetection安装
22+
23+
```
24+
# PaddlePaddle CUDA10.1
25+
python -m pip install paddlepaddle-gpu==2.2.2.post101 -f https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.html
26+
27+
# PaddlePaddle CPU
28+
python -m pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple
29+
30+
# 克隆PaddleDetection仓库
31+
cd <path/to/clone/PaddleDetection>
32+
git clone https://github.com/PaddlePaddle/PaddleDetection.git
33+
34+
# 安装其他依赖
35+
cd PaddleDetection
36+
pip install -r requirements.txt
37+
```
38+
39+
1. 详细安装文档参考[文档](../../../../docs/tutorials/INSTALL_cn.md)
40+
2. 如果需要TensorRT推理加速(测速方式),请安装带`TensorRT版本Paddle`。您可以从[Paddle安装包](https://paddleinference.paddlepaddle.org.cn/v2.2/user_guides/download_lib.html#python)下载安装,或者按照[指导文档](https://www.paddlepaddle.org.cn/inference/master/optimize/paddle_trt.html)使用docker或自编译方式准备Paddle环境。
41+
42+
## 模型下载
43+
44+
45+
## 配置文件说明
46+
47+
PP-Vehicle相关配置位于```deploy/pipeline/config/infer_cfg_ppvehicle.yml```中,存放模型路径,完成不同功能需要设置不同的任务类型
48+
49+
功能及任务类型对应表单如下:
50+
51+
| 输入类型 | 功能 | 任务类型 | 配置项 |
52+
|-------|-------|----------|-----|
53+
| 图片 | 属性识别 | 目标检测 属性识别 | DET ATTR |
54+
| 单镜头视频 | 属性识别 | 多目标跟踪 属性识别 | MOT ATTR |
55+
| 单镜头视频 | 属性识别 | 多目标跟踪 属性识别 | MOT VEHICLEPLATE |
56+
57+
例如基于视频输入的属性识别,任务类型包含多目标跟踪和属性识别,具体配置如下:
58+
59+
```
60+
61+
```
62+
63+
**注意:**
64+
65+
- 如果用户需要实现不同任务,可以在配置文件对应enable选项设置为True, 其basemode类型会在代码中开启依赖的基础能力模型,比如跟踪模型。
66+
- 如果用户仅需要修改模型文件路径,可以在命令行中加入 `--model_dir det=ppyoloe/` 即可,也可以手动修改配置文件中的相应模型路径,详细说明参考下方参数说明文档。
67+
68+
69+
## 预测部署
70+
71+
```
72+
# 车辆检测,指定配置文件路径和测试图片
73+
python deploy/pipeline/pipeline.py --config deploy/pipeline/config/infer_cfg_ppvehicle.yml --image_file=test_image.jpg --device=gpu [--run_mode trt_fp16]
74+
75+
# 车辆跟踪,指定配置文件路径和测试视频,在配置文件```deploy/pipeline/config/infer_cfg_ppvehicle.yml```中的MOT部分enable设置为```True```
76+
python deploy/pipeline/pipeline.py --config deploy/pipeline/config/infer_cfg_ppvehicle.yml --video_file=test_video.mp4 --device=gpu [--run_mode trt_fp16]
77+
78+
# 车辆跟踪,指定配置文件路径,模型路径和测试视频,在配置文件```deploy/pipeline/config/infer_cfg_ppvehicle.yml```中的MOT部分enable设置为```True```
79+
# 命令行中指定的模型路径优先级高于配置文件
80+
python deploy/pipeline/pipeline.py --config deploy/pipeline/config/infer_cfg_ppvehicle.yml --video_file=test_video.mp4 --device=gpu --model_dir det=ppyoloe/ [--run_mode trt_fp16]
81+
82+
# 车辆属性识别,指定配置文件路径和测试视频,在配置文件```deploy/pipeline/config/infer_cfg_ppvehicle.yml```中的ATTR部分enable设置为```True```
83+
python deploy/pipeline/pipeline.py --config deploy/pipeline/config/infer_cfg_ppvehicle.yml --video_file=test_video.mp4 --device=gpu [--run_mode trt_fp16]
84+
85+
```
86+
87+
### 参数说明
88+
89+
| 参数 | 是否必须|含义 |
90+
|-------|-------|----------|
91+
| --config | Yes | 配置文件路径 |
92+
| --model_dir | Option | 各任务模型路径,优先级高于配置文件, 例如`--model_dir det=better_det/ attr=better_attr/`|
93+
| --image_file | Option | 需要预测的图片 |
94+
| --image_dir | Option | 要预测的图片文件夹路径 |
95+
| --video_file | Option | 需要预测的视频 |
96+
| --camera_id | Option | 用来预测的摄像头ID,默认为-1(表示不使用摄像头预测,可设置为:0 - (摄像头数目-1) ),预测过程中在可视化界面按`q`退出输出预测结果到:output/output.mp4|
97+
| --device | Option | 运行时的设备,可选择`CPU/GPU/XPU`,默认为`CPU`|
98+
| --output_dir | Option|可视化结果保存的根目录,默认为output/|
99+
| --run_mode | Option |使用GPU时,默认为paddle, 可选(paddle/trt_fp32/trt_fp16/trt_int8)|
100+
| --enable_mkldnn | Option | CPU预测中是否开启MKLDNN加速,默认为False |
101+
| --cpu_threads | Option| 设置cpu线程数,默认为1 |
102+
| --trt_calib_mode | Option| TensorRT是否使用校准功能,默认为False。使用TensorRT的int8功能时,需设置为True,使用PaddleSlim量化后的模型时需要设置为False |
103+
| --do_entrance_counting | Option | 是否统计出入口流量,默认为False |
104+
| --draw_center_traj | Option | 是否绘制跟踪轨迹,默认为False |
105+
106+
## 方案介绍
107+
108+
PP-Vehicle v2整体方案如下图所示:
109+
110+
<div width="1000" align="center">
111+
<img src="../../../../docs/images/ppvehicle.png"/>
112+
</div>
113+
114+
115+
### 车辆检测
116+
- 采用PP-YOLOE L 作为目标检测模型
117+
- 详细文档参考[PP-YOLOE](../../../../configs/ppyoloe/)[检测跟踪文档](ppvehicle_mot.md)
118+
119+
### 车辆跟踪
120+
- 采用SDE方案完成车辆跟踪
121+
- 检测模型使用PP-YOLOE L(高精度)和S(轻量级)
122+
- 跟踪模块采用OC-SORT方案
123+
- 详细文档参考[OC-SORT](../../../../configs/mot/ocsort)[检测跟踪文档](ppvehicle_mot.md)
124+
125+
### 属性识别
126+
- 使用PP-YOLOE + OC-SORT跟踪车辆
127+
- 详细文档参考[属性识别](ppvehicle_attribute.md)
128+
129+
### 车牌识别
130+
- 使用PaddleOCR特色模型ch_PP-OCRv3_det+ch_PP-OCRv3_rec模型,识别车牌号码
131+
- 详细文档参考[属性识别](ppvehicle_plate.md)

deploy/pipeline/docs/tutorials/action.md renamed to deploy/pipeline/docs/tutorials/pphuman_action.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
[English](action_en.md) | 简体中文
1+
[English](pphuman_action_en.md) | 简体中文
22

33
# PP-Human行为识别模块
44

@@ -68,7 +68,7 @@ python deploy/pipeline/pipeline.py --config deploy/pipeline/config/infer_cfg_pph
6868
--device=gpu \
6969
--model_dir kpt=./dark_hrnet_w32_256x192 action=./STGCN
7070
```
71-
4. 启动命令中的完整参数说明,请参考[参数说明](./QUICK_STARTED.md)
71+
4. 启动命令中的完整参数说明,请参考[参数说明](./PPHuman_QUICK_STARTED.md)
7272

7373

7474
### 方案说明
@@ -127,7 +127,7 @@ python deploy/pipeline/pipeline.py --config deploy/pipeline/config/infer_cfg_pph
127127
--video_file=test_video.mp4 \
128128
--device=gpu
129129
```
130-
4. 启动命令中的完整参数说明,请参考[参数说明](./QUICK_STARTED.md)
130+
4. 启动命令中的完整参数说明,请参考[参数说明](./PPHuman_QUICK_STARTED.md)
131131

132132
### 方案说明
133133
1. 使用目标检测与多目标跟踪获取视频输入中的行人检测框及跟踪ID序号,模型方案为PP-YOLOE,详细文档参考[PP-YOLOE](../../../../configs/ppyoloe/README_cn.md),跟踪方案为OC-SORT,详细文档参考[OC-SORT](../../../../configs/mot/ocsort)
@@ -183,7 +183,7 @@ python deploy/pipeline/pipeline.py --config deploy/pipeline/config/infer_cfg_pph
183183
--video_file=test_video.mp4 \
184184
--device=gpu
185185
```
186-
4. 启动命令中的完整参数说明,请参考[参数说明](./QUICK_STARTED.md)
186+
4. 启动命令中的完整参数说明,请参考[参数说明](./PPHuman_QUICK_STARTED.md)
187187

188188
### 方案说明
189189
1. 使用目标检测与多目标跟踪获取视频输入中的行人检测框及跟踪ID序号,模型方案为PP-YOLOE,详细文档参考[PP-YOLOE](../../../../configs/ppyoloe/README_cn.md),跟踪方案为OC-SORT,详细文档参考[OC-SORT](../../../../configs/mot/ocsort)
@@ -202,7 +202,7 @@ python deploy/pipeline/pipeline.py --config deploy/pipeline/config/infer_cfg_pph
202202
<img src="https://user-images.githubusercontent.com/22989727/178769370-03ab1965-cfd1-401b-9902-82620a06e43c.gif" width='1000'/>
203203
</div>
204204

205-
具体使用请参照[PP-Human检测跟踪模块](mot.md)`5. 区域闯入判断和计数`
205+
具体使用请参照[PP-Human检测跟踪模块](pphuman_mot.md)`5. 区域闯入判断和计数`
206206

207207
### 方案说明
208208
1. 使用多目标跟踪获取视频输入中的行人检测框及跟踪ID序号,模型方案为PP-YOLOE,详细文档参考[PP-YOLOE](../../../../configs/ppyoloe/README_cn.md),跟踪方案为OC-SORT,详细文档参考[OC-SORT](../../../../configs/mot/ocsort)
@@ -255,7 +255,7 @@ python deploy/pipeline/pipeline.py --config deploy/pipeline/config/infer_cfg_pph
255255
--video_file=test_video.mp4 \
256256
--device=gpu
257257
```
258-
4. 启动命令中的完整参数说明,请参考[参数说明](./QUICK_STARTED.md)
258+
4. 启动命令中的完整参数说明,请参考[参数说明](./PPHuman_QUICK_STARTED.md)
259259

260260

261261
### 方案说明

0 commit comments

Comments
 (0)