在跨鏡頭的狀況下,依人行特徵(衣服、包包、頭像等)找出相同人物的方法
Ubuntu 環境建置請參考:
使用code:
https://github.com/michuanhaohao/reid-strong-baseline
實作
取得 source code
git clone https://github.com/michuanhaohao/reid-strong-baseline.git
安裝 virtualenv
pip3 install virtualenv
建立虛擬環境
cd reid-strong-baseline
virtualenv reidEnv
source ./reidEnv/bin/activate
成功進入虛擬環境

安裝套件
- pytorch>=0.4
- torchvision
- ignite=0.1.2 (Note: V0.2.0 may result in an error)
- yacs
pip3 install --upgrade pip
pip3 install torch torchvision torchaudio
pip3 install pytorch-ignite
pip3 install yacs
安裝完成使用 pip3 list 檢查

準備數據集
測試時官方連結失效,另外搜尋了該數據集並分享
下載後解壓縮至 data 底下
data
market1501 # this folder contains 6 files.
bounding_box_test/
bounding_box_train/
......
下載 DukeMTMC-reID 並於 data 底下建立 dukemtmc-reid 資料夾,解壓縮檔案
data
dukemtmc-reid
DukeMTMC-reID # this folder contains 8 files.
bounding_box_test/
bounding_box_train/
......
參考 ./modeling/backbones/senet.py 下載預訓練模型
import torch.utils.model_zoo as model_zoo
model_zoo.load_url('http://data.lip6.fr/cadene/pretrainedmodels/senet154-c7b49a05.pth',model_dir='./model_zoo')
model_zoo.load_url('http://data.lip6.fr/cadene/pretrainedmodels/se_resnet50-ce0d4300.pth',model_dir='./model_zoo')
model_zoo.load_url('http://data.lip6.fr/cadene/pretrainedmodels/se_resnet101-7e38fcc6.pth',model_dir='./model_zoo')
model_zoo.load_url('http://data.lip6.fr/cadene/pretrainedmodels/se_resnet152-d17c99b7.pth',model_dir='./model_zoo')
model_zoo.load_url('http://data.lip6.fr/cadene/pretrainedmodels/se_resnext50_32x4d-a260b3a4.pth',model_dir='./model_zoo')
model_zoo.load_url('http://data.lip6.fr/cadene/pretrainedmodels/se_resnext101_32x4d-3b2fe3d8.pth',model_dir='./model_zoo')
模型將會被下載在 ./model_zoo 必須修改 config/defaults.py 中資料
修改 softmax_triplet.yml 為本機路徑
PRETRAIN_PATH: '/media/david/500g/share/reid-strong-baseline/model_zoo/resnet50-19c8e357.pth'
...
...
...
OUTPUT_DIR: "/media/david/500g/share/reid-strong-baseline/log/gu/reid_baseline_review/Opensource_test/market1501/Experiment-all-tricks-256x128-bs16x4-warmup10-erase0_5-labelsmooth_on-laststride1-bnneck_on"
修改 Expriment-all_tricks-without_center-market.sh
python3 tools/train.py --config_file='configs/softmax_triplet.yml' MODEL.DEVICE_ID "('0')" DATASETS.NAMES "('market1501')" DATASETS.ROOT_DIR "('/media/david/500g/share/reid-strong-baseline/data')" OUTPUT_DIR "('/media/david/500g/share/reid-strong-baseline/log/gu/reid_baseline_review/Opensource_test/market1501/Experiment-all-tricks-256x128-bs16x4-warmup10-erase0_5-labelsmooth_on-laststride1-bnneck_on')"
訓練
執行 sh ./Expriment-all_tricks-without_center-market.sh
發生錯誤
ValueError: Argument save_interval is deprecated and should be None. This argument will be removed in 0.5.0.Please, use events filtering instead, e.g. Events.ITERATION_STARTED(every=1000)
修改 engine/trainer.py 第 156行
checkpointer = ModelCheckpoint(output_dir, cfg.MODEL.NAME, n_saved=10, require_empty=False)
正確執行後,開始訓練

輸入 watch -n 1 -d nvidia-smi 檢視 GPU 狀態

測試
續待…