Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
s920243400
PaddleDetection
提交
d174b1c2
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看板
未验证
提交
d174b1c2
编写于
7月 12, 2022
作者:
Z
zhiboniu
提交者:
GitHub
7月 12, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update attr docs (#6404)
* update attr docs * update more * update docs
上级
b29aa30f
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
108 addition
and
34 deletion
+108
-34
deploy/pipeline/docs/tutorials/attribute.md
deploy/pipeline/docs/tutorials/attribute.md
+7
-1
deploy/pipeline/docs/tutorials/attribute_en.md
deploy/pipeline/docs/tutorials/attribute_en.md
+7
-1
docs/advanced_tutorials/customization/attribute.md
docs/advanced_tutorials/customization/attribute.md
+41
-18
docs/advanced_tutorials/customization/mtmct.md
docs/advanced_tutorials/customization/mtmct.md
+53
-14
未找到文件。
deploy/pipeline/docs/tutorials/attribute.md
浏览文件 @
d174b1c2
...
...
@@ -28,7 +28,7 @@ ATTR: #模
enable: False #功能是否开启
```
2.
图片输入时,启动命令如下
2.
图片输入时,启动命令如下
(更多命令参数说明,请参考
[
快速开始-参数说明
](
./QUICK_STARTED.md#41-参数说明
)
)。
```
python
#单张图片
python
deploy
/
pipeline
/
pipeline
.
py
--
config
deploy
/
pipeline
/
config
/
infer_cfg_pphuman
.
yml
\
...
...
@@ -43,9 +43,15 @@ python deploy/pipeline/pipeline.py --config deploy/pipeline/config/infer_cfg_pph
```
3.
视频输入时,启动命令如下
```
python
#单个视频文件
python
deploy
/
pipeline
/
pipeline
.
py
--
config
deploy
/
pipeline
/
config
/
infer_cfg_pphuman
.
yml
\
--
video_file
=
test_video
.
mp4
\
--
device
=
gpu
\
#视频文件夹
python
deploy
/
pipeline
/
pipeline
.
py
--
config
deploy
/
pipeline
/
config
/
infer_cfg_pphuman
.
yml
\
--
video_dir
=
test_videos
/
\
--
device
=
gpu
\
```
4.
若修改模型路径,有以下两种方式:
...
...
deploy/pipeline/docs/tutorials/attribute_en.md
浏览文件 @
d174b1c2
...
...
@@ -28,7 +28,7 @@ ATTR: #modul
enable: False #whether to enable this model
```
2.
When inputting the image, run the command as follows:
2.
When inputting the image, run the command as follows
(please refer to
[
QUICK_STARTED-Parameters
](
./QUICK_STARTED.md#41-参数说明
)
for more details)
:
```
python
#single image
python
deploy
/
pipeline
/
pipeline
.
py
--
config
deploy
/
pipeline
/
config
/
infer_cfg_pphuman
.
yml
\
...
...
@@ -43,9 +43,15 @@ python deploy/pipeline/pipeline.py --config deploy/pipeline/config/infer_cfg_pph
```
3.
When inputting the video, run the command as follows:
```
python
#a single video file
python
deploy
/
pipeline
/
pipeline
.
py
--
config
deploy
/
pipeline
/
config
/
infer_cfg_pphuman
.
yml
\
--
video_file
=
test_video
.
mp4
\
--
device
=
gpu
\
#directory of videos
python
deploy
/
pipeline
/
pipeline
.
py
--
config
deploy
/
pipeline
/
config
/
infer_cfg_pphuman
.
yml
\
--
video_dir
=
test_videos
/
\
--
device
=
gpu
\
```
4.
If you want to change the model path, there are two methods:
...
...
docs/advanced_tutorials/customization/attribute.md
浏览文件 @
d174b1c2
...
...
@@ -10,22 +10,25 @@
| Attribute | index | length |
|:----------|:----------|:----------|
| 'Female' | [0] | 1 |
| 'AgeOver60', 'Age18-60', 'AgeLess18' | [1, 2, 3] | 3 |
| 'Front','Side','Back' | [4, 5, 6] | 3 |
| 'Hat','Glasses' | [7, 8] | 2 |
| 'HandBag','ShoulderBag','Backpack','HoldObjectsInFront' | [9,10,11,12] | 4 |
| 'ShortSleeve','LongSleeve','UpperStride','UpperLogo','UpperPlaid','UpperSplice' | [13,14,15,16,17,18] | 6 |
| 'LowerStripe','LowerPattern','LongCoat','Trousers','Shorts','Skirt&Dress' | [19,20,21,22,23,24] | 6 |
| 'boots' | [25] | 1 |
| 'Hat','Glasses' | [0, 1] | 2 |
| 'ShortSleeve','LongSleeve','UpperStride','UpperLogo','UpperPlaid','UpperSplice' | [2, 3, 4, 5, 6, 7] | 6 |
| 'LowerStripe','LowerPattern','LongCoat','Trousers','Shorts','Skirt&Dress' | [8, 9, 10, 11, 12, 13] | 6 |
| 'boots' | [14, ] | 1 |
| 'HandBag','ShoulderBag','Backpack','HoldObjectsInFront' | [15, 16, 17, 18] | 4 |
| 'AgeOver60', 'Age18-60', 'AgeLess18' | [19, 20, 21] | 3 |
| 'Female' | [22, ] | 1 |
| 'Front','Side','Back' | [23, 24, 25] | 3 |
举例:
[0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0]
第一组,位置[0, 1]数值分别是[0, 1],表示'no hat'、'has glasses'。
第
一组,位置[0]数值是0,表示'female'
第
二组,位置[22, ]数值分别是[0, ], 表示gender属性是'male', 否则是'female'。
第
二组,位置[1,2,3]数值分别是 0、1、0, 表示'Age18-60'
第
三组,位置[23, 24, 25]数值分别是[0, 1, 0], 表示方向属性是侧面'side'。
其他组依次类推
...
...
@@ -39,11 +42,12 @@
1) 使用检测框,标注图片中每一个人的位置。
2) 每一个检测框(对应每一个人),包含一组26位的属性值数组,数组的每一位以0或1表示。对应上述26个属性。例如,如果图片是'Female',则数组第
一位为0,如果满足'Age18-60',则位置[1,2,3]对应的数值是[0,1,0], 或者满足'AgeOver60',则相应数值为[1,0,
0].
2) 每一个检测框(对应每一个人),包含一组26位的属性值数组,数组的每一位以0或1表示。对应上述26个属性。例如,如果图片是'Female',则数组第
22位为0,如果满足'Age18-60',则位置[19, 20, 21]对应的数值是[0, 1, 0], 或者满足'AgeOver60',则相应数值为[1, 0,
0].
标注完成后利用检测框将每一个人截取成单人图,其图片与26位属性标注建立对应关系。也可先截成单人图再进行标注,效果相同。
## 模型优化
## 模型训练
数据标注完成后,就可以拿来做模型的训练,完成自定义模型的优化工作。
...
...
@@ -74,7 +78,7 @@ train.txt文件内为所有训练图片名称(相对于根路径的文件路
### 修改配置开始训练
首先执行以下命令下载训练代码
:
首先执行以下命令下载训练代码
(更多环境问题请参考
[
Install_PaddleClas
](
https://github.com/PaddlePaddle/PaddleClas/blob/release/2.4/docs/en/installation/install_paddleclas_en.md
)
):
```
shell
git clone https://github.com/PaddlePaddle/PaddleClas
...
...
@@ -127,6 +131,22 @@ python3 tools/train.py \
-c ./ppcls/configs/PULC/person_attribute/PPLCNet_x1_0.yaml
```
训练完成后可以执行以下命令进行性能评估:
```
#多卡评估
export CUDA_VISIBLE_DEVICES=0,1,2,3
python3 -m paddle.distributed.launch \
--gpus="0,1,2,3" \
tools/eval.py \
-c ./ppcls/configs/PULC/person_attribute/PPLCNet_x1_0.yaml \
-o Global.pretrained_model=./output/PPLCNet_x1_0/best_model
#单卡评估
python3 tools/eval.py \
-c ./ppcls/configs/PULC/person_attribute/PPLCNet_x1_0.yaml \
-o Global.pretrained_model=./output/PPLCNet_x1_0/best_model
```
### 模型导出
使用下述命令将训练好的模型导出为预测部署模型。
...
...
@@ -138,9 +158,9 @@ python3 tools/export_model.py \
-o Global.save_inference_dir=deploy/models/PPLCNet_x1_0_person_attribute_infer
```
导出模型后,
将PP-Human中提供的部署模型
[
PPLCNet_x1_0
](
https://bj.bcebos.com/v1/paddledet/models/pipeline/PPLCNet_x1_0_person_attribute_945_infer.tar
)
中的
`infer_cfg.yml`
文件拷贝
到导出的模型文件夹
`PPLCNet_x1_0_person_attribute_infer`
中。
导出模型后,
需要下载
[
infer_cfg.yml
](
https://bj.bcebos.com/v1/paddledet/models/pipeline/infer_cfg.yml
)
文件,并放置
到导出的模型文件夹
`PPLCNet_x1_0_person_attribute_infer`
中。
使用时在PP-Human中的配置文件
`./deploy/pipeline/config/infer_cfg_pphuman.yml`
中修改新的模型路径
使用时在PP-Human中的配置文件
`./deploy/pipeline/config/infer_cfg_pphuman.yml`
中修改新的模型路径
`model_dir`
项,并开启功能
`enable: True`
。
```
ATTR:
model_dir: [YOUR_DEPLOY_MODEL_DIR]/PPLCNet_x1_0_person_attribute_infer/ #新导出的模型路径位置
...
...
@@ -153,19 +173,22 @@ ATTR:
上述是以26个属性为例的标注、训练过程。
如果需要增加、减少属性数量,则需要:
1)标注时需增加新属性类别信息或删减属性类别信息;
2)对应修改训练中train.txt所使用的属性数量和名称;
3)修改训练配置,例如
``PaddleClas/blob/develop/ppcls/configs/PULC/person_attribute/PPLCNet_x1_0.yaml``
文件中的属性数量,详细见上述
`修改配置开始训练`
部分。
增加属性示例:
1.
在标注数据时在26位后继续增加新的属性标注数值;
2.
在train.txt文件的标注数值中也增加新的属性数值。
3.
注意属性类型在train.txt中属性数值列表中的位置的对应关系需要时固定的,例如第
1-3位表示年龄,所有图片都要使用1-3
位置表示年龄,不再赘述。
3.
注意属性类型在train.txt中属性数值列表中的位置的对应关系需要时固定的,例如第
[19, 20, 21]位表示年龄,所有图片都要使用[19, 20, 21]
位置表示年龄,不再赘述。
<div
width=
"500"
align=
"center"
>
<img
src=
"../../images/add_attribute.png"
/>
</div>
删减属性同理。
例如,如果不需要年龄属性,则位置[1
,2,3]的数值可以去掉。只需在train.txt中标注的26个数字中全部删除第1-3
位数值即可,同时标注数据时也不再需要标注这3位属性值。
例如,如果不需要年龄属性,则位置[1
9, 20, 21]的数值可以去掉。只需在train.txt中标注的26个数字中全部删除第19-21
位数值即可,同时标注数据时也不再需要标注这3位属性值。
docs/advanced_tutorials/customization/mtmct.md
浏览文件 @
d174b1c2
...
...
@@ -22,7 +22,7 @@
### 数据标注
理解了上面
`
属性
标注`
格式的含义后,就可以进行数据标注的工作。其本质是:每张单人图建立一个标注项,对应该行人分配的id。
理解了上面
`标注`
格式的含义后,就可以进行数据标注的工作。其本质是:每张单人图建立一个标注项,对应该行人分配的id。
举例:
...
...
@@ -34,7 +34,7 @@
标注完成后利用检测框将每一个人截取成单人图,其图片与id属性标注建立对应关系。也可先截成单人图再进行标注,效果相同。
## 模型
优化
## 模型
训练
数据标注完成后,就可以拿来做模型的训练,完成自定义模型的优化工作。
...
...
@@ -69,31 +69,70 @@ bounding_box_train.txt文件内为所有训练图片名称(相对于根路径
### 修改配置开始训练
该任务的训练功能集成在
[
PaddleClas
](
https://github.com/PaddlePaddle/PaddleClas
)
套件中。
首先执行以下命令下载训练代码(更多环境问题请参考
[
Install_PaddleClas
](
https://github.com/PaddlePaddle/PaddleClas/blob/release/2.4/docs/en/installation/install_paddleclas_en.md
)
):
```
shell
git clone https://github.com/PaddlePaddle/PaddleClas
```
需要在配置文件
[
softmax_triplet_with_center.yaml
](
https://github.com/PaddlePaddle/PaddleClas/blob/develop/ppcls/configs/reid/strong_baseline/softmax_triplet_with_center.yaml
)
中,修改的配置项如下:
```
image_root: "./dataset/" 训练图片根路径
cls_label_path: "bounding_box_train" 训练文件列表
```
```
class_num: &class_num 751 #行人id总数量
Head:
name: "FC"
embedding_size: *feat_dim
class_num: &class_num 751 #行人id总数量
DataLoader:
Train:
dataset:
name: "Market1501"
image_root: "./dataset/" #训练图片根路径
cls_label_path: "bounding_box_train" #训练文件列表
Eval:
Query:
dataset:
name: "Market1501"
image_root: "./dataset/" #评估图片根路径
cls_label_path: "query" #评估文件列表
```
注意:
1.
这里image_root路径+bounding_box_train.txt中图片相对路径,对应图片存放的完整路径。
然后运行以下命令开始训练。
```
#多卡训练
export CUDA_VISIBLE_DEVICES=0,1,2,3
python3 -m paddle.distributed.launch \
--gpus="0,1,2,3" \
tools/train.py \
-c ./ppcls/configs/reid/strong_baseline/softmax_triplet_with_center.yaml
#单卡训练
python3 tools/train.py \
-c ./ppcls/configs/reid/strong_baseline/softmax_triplet_with_center.yaml
```
训练完成后可以执行以下命令进行性能评估:
```
#多卡评估
export CUDA_VISIBLE_DEVICES=0,1,2,3
python3 -m paddle.distributed.launch \
--gpus="0,1,2,3" \
tools/eval.py \
-c ./ppcls/configs/reid/strong_baseline/softmax_triplet_with_center.yaml \
-o Global.pretrained_model=./output/strong_baseline/best_model
#单卡评估
python3 tools/eval.py \
-c ./ppcls/configs/reid/strong_baseline/softmax_triplet_with_center.yaml \
-o Global.pretrained_model=./output/strong_baseline/best_model
```
### 模型导出
...
...
@@ -103,16 +142,16 @@ python3 -m paddle.distributed.launch \
```
python3 tools/export_model.py \
-c ./ppcls/configs/reid/strong_baseline/softmax_triplet_with_center.yaml \
-o Global.pretrained_model=output/strong_baseline/best_model \
-o Global.pretrained_model=
./
output/strong_baseline/best_model \
-o Global.save_inference_dir=deploy/models/strong_baseline_inference
```
导出模型后,
然后将PP-Human中提供的部署模型
[
REID模型
](
https://bj.bcebos.com/v1/paddledet/models/pipeline/reid_model.zip
)
中的infer_cfg.yml文件拷贝
到新导出的模型文件夹'strong_baseline_inference'中。
导出模型后,
下载
[
infer_cfg.yml
](
https://bj.bcebos.com/v1/paddledet/models/pipeline/REID/infer_cfg.yml
)
文件
到新导出的模型文件夹'strong_baseline_inference'中。
使用时在PP-Human中的配置文件infer_cfg_pphuman.yml中修改
使用时在PP-Human中的配置文件infer_cfg_pphuman.yml中修改
模型路径
`model_dir`
并开启功能
`enable`
。
```
REID:
model_dir: [YOUR_DEPLOY_MODEL_DIR]/strong_baseline_inference/
enable: True
```
然后可以使用。
然后可以使用。
至此完成模型开发。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录