当前位置:   article > 正文

【Torchreid】行人重识别deep-person-reid源码测试(一)_行人重识别代码

行人重识别代码

一、简介

deep-person-reid是一个针对Person re-identification问题的训练框架。它基于深度学习框架PyTorch,提供了规范的代码组织结构,适用于reid问题的实验拓展。本文就自己第一次训练测试过程进行记录。
项目gituhb仓库地址:https://github.com/KaiyangZhou/deep-person-reid
项目文档:https://kaiyangzhou.github.io/deep-person-reid/

二、环境和数据集准备

2.1 从github上下载源码到本地服务器

cd deep-person-reid-master
  • 1

2.2 conda创建虚拟环境

conda create --name torchreid python=3.7
  • 1

2.3 激活虚拟环境

conda activate torchreid
  • 1

2.3 安装需求包

之后如果运行是还缺其他包再pip安装

pip install -r requirements.txt
  • 1

2.4 安装pythorch

根据自己的配置安装对应torch版本
在终端输入nvcc -V查看自己的cuda版本。如我是10.2
在这里插入图片描述
上官网找到pythorch安装命令
如我安装的pytorch1.8.0版本,使用命令即可安装。

conda install pytorch1.8.0 torchvision0.9.0 torchaudio==0.8.0
cudatoolkit=10.2 -c pytorch

在这里插入图片描述

2.5 下载Market1501数据集

Google Drive

下载解压后文件夹下内容应该是这样的。
在这里插入图片描述
文件名应该是

Market-1501-v15.09.15

修改为

market1501

三、训练

在scripts/下创建文件start_train_main.py
在这里插入图片描述

参考官方文档,代码如下:

import torchreid 

datamanager = torchreid.data.ImageDataManager(
	# 修改成自己下载的market1501数据集路径
    root="../Dataset/",
    sources="market1501",
    targets="market1501",
    height=256,
    width=128,
    batch_size_train=32,
    batch_size_test=100,
    transforms=["random_flip", "random_crop"]
)

model = torchreid.models.build_model(
    name="resnet50",
    num_classes=datamanager.num_train_pids,
    loss="softmax",
    pretrained=True
)

model = model.cuda()

optimizer = torchreid.optim.build_optimizer(
    model,
    optim="adam",
    lr=0.0003
)

scheduler = torchreid.optim.build_lr_scheduler(
    optimizer,
    lr_scheduler="single_step",
    stepsize=20
)

engine = torchreid.engine.ImageSoftmaxEngine(
    datamanager,
    model,
    optimizer=optimizer,
    scheduler=scheduler,
    label_smooth=True
)

engine.run(
    save_dir="log/resnet50",
    max_epoch=60,
    eval_freq=10,
    print_freq=10,
    test_only=False
)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50

如果报错没有torchreid module问题,在最前面加入

import sys 
# 修改成自己的项目路径
sys.path.append('../deep-person-reid-master')
  • 1
  • 2
  • 3

最后运行代码:

python scripts/start_train_main.py 
  • 1

此过程需要大量时间,根据个人机器情况不定。

训练结束会在log/resnet50/model/生成自己的训练模型。
在这里插入图片描述

四、测试

在scripts/下创建文件start_test.py文件。
在这里插入图片描述
讲训练代码复制进行,随后如下图38、39行所示增加两行代码,38行为自己的模型路径。
在这里插入图片描述
然后修改engine.run()如下。
在这里插入图片描述
最后运行代码:

python scripts/start_test.py 
  • 1

测试结束后会在log/resnet50/visrank_market1501/下生成可视化结果。
在这里插入图片描述

四、参考

行人重识别(ReID) ——数据集描述 Market-1501

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/136649
推荐阅读
相关标签
  

闽ICP备14008679号