Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
weleen committed Aug 23, 2021
1 parent 5c32e4d commit 0b9892c
Show file tree
Hide file tree
Showing 4 changed files with 47 additions and 11 deletions.
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,9 @@ log/
log
logs/
logs
models/
datasets/*
**/*.c
**/*.linux-x86_64*
**/*.egg-info
**/*.egg
**/*.egg
42 changes: 35 additions & 7 deletions projects/MGH/README.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,22 @@
# 项目
CAP文件夹中包含**When Vision Meets Meta Information: Meta Hypergraph Guided Network for Unsupervised Re-identification**的具体实现,
MGH文件夹中包含**MGH: Metadata Guided Hypergraph Modeling for Unsupervised Person Re-identification**的具体实现。

该项目以AAAI2021文章**Camera-aware Proxies for Unsupervised Person Re-Identification**为基础,针对行人重识别的无监督领域自适应问题进行了如下修改:
1. 使用超图对聚类标签进行了修正;
2. 增加了基于memory的listwise loss,用于近似优化mAP。

整体的pipeline为**特征提取->聚类->赋伪标签->训练**的循环执行。

## 说明

### 环境配置
项目根目录为
```
ROOT_DIR
```
环境配置请参考项目根目录下
```
docs/GETTING_STARTED.md
$ROOT_DIR/docs/GETTING_STARTED.md
```
建议使用conda进行项目管理,需要注意的是安装apex建议通过编译的方式,在CUDA版本较高的情况下apex目前没有提供安装包。
在运行make.sh时,编译了Cython文件用于加速测试,也编译了GNN Re-ranking。
Expand All @@ -19,13 +25,35 @@ docs/GETTING_STARTED.md
本项目在Market1501、DukeMTMC-reid、MSMT17上进行了验证。
数据集配置请参考路径
```
datasets/README.md
$ROOT_DIR/datasets/README.md
```

### 运行
代码运行入口为projects/CAP/train_net.py
训练与测试脚本分别为projects/CAP/train.sh和projects/CAP/test.sh,
如需要进行修改,请参考以上两个文件。
### 训练
代码运行入口为projects/MGH/train_net.py
训练脚本为projects/MGH/train.sh,
执行训练脚本
```bash
cd $ROOT_DIR
bash projects/MGH/reproduce.sh
```

### 测试
测试脚本为projects/MGH/test.sh,
执行测试脚本前请下载已经训练好的模型models.zip并解压至$ROOT_DIR/models,文件目录如下
```
.
├── duke
│   └── model_duke.pth
├── market
│   └── model_market.pth
└── msmt17
└── model_msmt17.pth
```
运行测试脚本
```bash
cd $ROOT_DIR
bash project/MGH/test.sh
```

### 代码结构
本项目仿照fastreid中其他项目,继承fastreid已有类及其函数。
Expand Down
7 changes: 7 additions & 0 deletions projects/MGH/reproduce.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#!/bin/bash
# market
CUDA_VISIBLE_DEVICES=0 python projects/CAP/train_net.py --num-gpus 1 --config-file projects/CAP/configs/Market1501/BoT_R50.yml OUTPUT_DIR logs/MGH/market1501 PSEUDO.NAME "dbscan_hg_lp" CAP.LOSS_IDENTITY.SCALE 1.0 CAP.LOSS_IDENTITY.START_EPOCH 5 CAP.LOSS_CAMERA.SCALE 1.0 CAP.LOSS_CAMERA.START_EPOCH 0 CAP.LOSS_CAMERA.WEIGHTED True CAP.LOSS_INSTANCE.SCALE 10.0 CAP.LOSS_INSTANCE.START_EPOCH 5 CAP.LOSS_INSTANCE.NAME "smoothaploss" CAP.LOSS_INSTANCE.LIST_LENGTH 1000
# dukemtmc
CUDA_VISIBLE_DEVICES=0 python projects/CAP/train_net.py --num-gpus 1 --config-file projects/CAP/configs/DukeMTMC/BoT_R50.yml OUTPUT_DIR logs/MGH/dukemtmc PSEUDO.NAME "dbscan_hg_lp" CAP.LOSS_IDENTITY.SCALE 1.0 CAP.LOSS_IDENTITY.START_EPOCH 5 CAP.LOSS_CAMERA.SCALE 1.0 CAP.LOSS_CAMERA.START_EPOCH 0 CAP.LOSS_CAMERA.WEIGHTED True CAP.LOSS_INSTANCE.SCALE 100.0 CAP.LOSS_INSTANCE.START_EPOCH 5 CAP.LOSS_INSTANCE.NAME "smoothaploss" CAP.LOSS_INSTANCE.LIST_LENGTH 1000
# msmt
CUDA_VISIBLE_DEVICES=0 python projects/CAP/train_net.py --num-gpus 1 --config-file projects/CAP/configs/MSMT17/BoT_R50.yml OUTPUT_DIR logs/MGH/msmt17 PSEUDO.NAME "dbscan_hg_lp" CAP.LOSS_IDENTITY.SCALE 1.0 CAP.LOSS_IDENTITY.START_EPOCH 5 CAP.LOSS_CAMERA.SCALE 1.0 CAP.LOSS_CAMERA.START_EPOCH 0 CAP.LOSS_CAMERA.WEIGHTED True CAP.LOSS_INSTANCE.SCALE 100.0 CAP.LOSS_INSTANCE.START_EPOCH 5 CAP.LOSS_INSTANCE.NAME "smoothaploss" CAP.LOSS_INSTANCE.LIST_LENGTH 1000
6 changes: 3 additions & 3 deletions projects/MGH/test.sh
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# testing
CUDA_VISIBLE_DEVICES=0 python projects/MGH/train_net.py --eval-only --num-gpus 1 --config-file projects/MGH/configs/Market1501/BoT_R50.yml OUTPUT_DIR logs/MGH/market1501_test MODEL.WEIGHTS logs/CAP/BoT_R50_new/market1501_hg_knn_camera_1.0identity5_weighted_1.0camera0_10.0instance_smoothaploss5/model_0018399.pth CAP.ST_TEST True
CUDA_VISIBLE_DEVICES=1 python projects/MGH/train_net.py --eval-only --num-gpus 1 --config-file projects/MGH/configs/DukeMTMC/BoT_R50.yml OUTPUT_DIR logs/MGH/dukemtmc_test MODEL.WEIGHTS logs/CAP/BoT_R50/dukemtmc_hg_1.0identity5_weighted_1.0camera0_10.0instance_smoothaploss5/model_0019599.pth CAP.ST_TEST True
CUDA_VISIBLE_DEVICES=2 python projects/MGH/train_net.py --eval-only --num-gpus 1 --config-file projects/MGH/configs/MSMT17/BoT_R50.yml OUTPUT_DIR logs/MGH/msmt17_test MODEL.WEIGHTS logs/CAP/BoT_R50_k1_30_w_cls/msmt17_hg_1.0identity5_weighted_1.0camera0_10.0instance_smoothaploss5/model_0019999.pth CAP.ST_TEST True
CUDA_VISIBLE_DEVICES=0 python projects/MGH/train_net.py --eval-only --num-gpus 1 --config-file projects/MGH/configs/Market1501/BoT_R50.yml OUTPUT_DIR logs/MGH/market1501_test MODEL.WEIGHTS models/market/model_market.pth CAP.ST_TEST True
CUDA_VISIBLE_DEVICES=1 python projects/MGH/train_net.py --eval-only --num-gpus 1 --config-file projects/MGH/configs/DukeMTMC/BoT_R50.yml OUTPUT_DIR logs/MGH/dukemtmc_test MODEL.WEIGHTS models/duke/model_duke.pth CAP.ST_TEST True
CUDA_VISIBLE_DEVICES=2 python projects/MGH/train_net.py --eval-only --num-gpus 1 --config-file projects/MGH/configs/MSMT17/BoT_R50.yml OUTPUT_DIR logs/MGH/msmt17_test MODEL.WEIGHTS models/msmt/model_msmt.pth CAP.ST_TEST True

0 comments on commit 0b9892c

Please sign in to comment.