Reid-strong-baseline训练记录

本文详细记录了使用Reid-strong-baseline进行行人重识别(ReID)训练的过程,包括数据集准备、预训练权重下载、训练配置修改及问题解决。在Market1501数据集上,采用softmax_triplet_with_center.yml配置文件进行训练,最终得到的模型在测试中取得了Rank-1精度95.6%,mAP94.0%的优秀成绩。
摘要由CSDN通过智能技术生成

Reid-strong-baseline训练记录

论文:《Bag of Tricks and A Strong Baseline for Deep Person Re-identification》
代码:https://github.com/michuanhaohao/reid-strong-baseline
本例中文件名为:reid-strong-baseline
路径为:/home/user

数据集准备(选择一个即可)

(1)Market1501

数据集链接http://www.liangzheng.org/Project/project_reid.html
将数据集按照如下格式放好
data
market1501 # this folder contains 6 files.
bounding_box_test/
bounding_box_train/

(2)DukeMTMC-reID

数据集链接:https://github.com/layumi/DukeMTMC-reID_evaluation#download-dataset
将数据集按照如下格式放好
data
dukemtmc-reid
DukeMTMC-reID # this folder contains 8 files.
bounding_box_test/
bounding_box_train/

预训练权重下载

创造一个新的代码文件:若使用resnet为预训练权重,则输入(1)中代码,若使用seresnet为预训练权重,则输入(2)中代码
(1)ResNet
from torchvision import models
models.resnet50(pretrained=True)
(2)Senet
import torch.utils.model_zoo as model_zoo
model_zoo.load_url(‘the pth you want to download (specific urls are listed in ./modeling/backbones/senet.py)’)
如图所示
在这里插入图片描述
运行该文件即可下载resnet50预训练权重。

文件路径修改

在pycharm界面依次点击Edit——Find——Find in Files选择查找修改路径
DATASETS.NAMES:数据集名称
DATASETS.ROOT_DIR:数据文件夹路径
OUTPUT_DIR:输出存放路径
MODEL.PRETRAIN_PATH:预训练权重路径
MODEL.NAME:使用模型名称

训练

可以根据个人需求选择不同的训练方式
如readme中的
在这里插入图片描述根据数据集和损失函数选择,以1为例,记得将指令改为
python3 tools/train.py --config_file=‘configs/softmax_triplet.yml’ MODEL.DEVICE_ID “(‘0’)” DATASETS.NAMES “(‘你的数据集名称,如market1501’)” OUTPUT_DIR “(‘你的输出存放路径,如/home/user/reid-strong-baseline/output’)”
或者也可在选择加入不同的teick训练模型,打开.sh文件就可看到对应的训练代码
在这里插入图片描述在这里插入图片描述
本文所采用训练指令如下:
python3 tools/train.py --config_file=‘configs/softmax_triplet_with_center.yml’ MODEL.DEVICE_ID “(‘0’)” MODEL.NAME “(‘resnet50’)” MODEL.PRETRAIN_PATH “(’/home/user/reid-strong-baseline/yuxuanlian/resnet50-19c8e357.pth’)” DATASETS.NAMES “(‘market1501’)” DATASETS.ROOT_DIR “(’/home/user/reid-strong-baseline/data’)” OUTPUT_DIR “(’/home/user/reid-strong-baseline/output’)”

测试

根据不同的测试需求,可以选择不同的测试代码
在这里插入图片描述在这里插入图片描述
本文所采用测试代码如下:
python3 tools/test.py --config_file=‘configs/softmax_triplet_with_center.yml’ MODEL.DEVICE_ID “(‘0’)” DATASETS.NAMES “(‘market1501’)” TEST.NECK_FEAT “(‘after’)” TEST.FEAT_NORM “(‘yes’)” MODEL.PRETRAIN_CHOICE “(‘self’)” TEST.RE_RANKING “(‘yes’)” TEST.WEIGHT “(’/home/user/reid-strong-baseline/output/resnet50_model_120.pth’)”

遇到的问题和解决方法

代码测试时报错:‘Baseline’ object is not iterable
将modeling文件夹中的baseline文件中,最下面的
param_dict = torch.load(trained_path)
替换成
param_dict = torch.load(trained_path).state_dict()
在这里插入图片描述

测试结果

TEST:
FEAT_NORM: yes
IMS_PER_BATCH: 128
NECK_FEAT: after
RE_RANKING: yes
WEIGHT: /home/user/reid-strong-baseline/output/resnet50_model_120.pth
2021-07-08 17:29:34,822 reid_baseline.inference INFO: Enter inferencing
2021-07-08 17:32:23,070 reid_baseline.inference INFO: Validation Results
2021-07-08 17:32:23,071 reid_baseline.inference INFO: mAP: 94.0%
2021-07-08 17:32:23,071 reid_baseline.inference INFO: CMC curve, Rank-1 :95.6%
2021-07-08 17:32:23,071 reid_baseline.inference INFO: CMC curve, Rank-5 :97.7%
2021-07-08 17:32:23,071 reid_baseline.inference INFO: CMC curve, Rank-10 :98.4%

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值