Reid Strong Baseline 代码解析

目录

1 设置自己的数据集

1.1使用作者提供的dataset格式

1.2新建dataset格式

 2 测试时设置是否只采用跨相机的样本

 3 训练

 3.1 修改模型

3.1.1参数解读

3.1.2使用自己的模型

 4测试

5本篇博客的不足


1 设置自己的数据集

1.1使用作者提供的dataset格式

也就是说不修改输入输出格式,直接改路径

1)修改数据集的路径。红色部分是之前的,绿色部分是修改后的。我这里使用的的是绝对路径。

   

2)检查数据集格式和正则化规则

假设使用的数据为1501格式的数据集。

configs/softmax_triplet_with_center.yml:

 则去找到其对应的class。

data/datasets/__init__.py

训练集和测试集的路径是在代码中设置的 

data/datasets/market1501.py

下面是正则化规则,也就是如何根据文件名读取标签,输出为文件路径,人物id,相机id

data/datasets/market1501.py

 

 检查上述规则是否符合自己的数据集,不符合则修改代码。market1501 数据集的格式为pid_camid_frameid.jpg

1.2新建dataset格式

market1501返回了三项,但没有返回frame id。作者测试时只把跨相机的样本作为gallery,但我考虑全部样本.。因此我需要frame id 这个属性,测试时把不同frame id 的全部图像作为gallery,也就是除去他本身外的所有图像。

(1)新建一个类Market1501_ignore_cam,类似于market1501.py中的代码,只不过改下正则化规则。然后在_init_.py 中引用此类。

 (2)修改dataloader

 (3)修改train和test 的读数据部分

 

 engine/inference.py:

 

  

 2 测试时设置是否只采用跨相机的样本

  utils/reid_metric.py

 3 训练

训练修改cfg文件

tools/train.py

 3.1 修改模型

修改name  预训练类型 目前有self imagenet random 三种。random不指定预训练路径。

3.1.1参数解读

 

 self 是自己的模型,类型为self时会接续训练,只需把start设置为0,则可以当作第0个epoch。

 数据集 名称 batch数 线程数

 

  数据集resize后的大小 以及数据增强

 

 模型保存路径

 

  更多参数对照configa/defaults.py添加到yaml文件。例如 MODEL是组名,NECK等是属性名。

 

3.1.2使用自己的模型

首先将配置文件的model name 改为定义的模型名称

然后去modeling/baseline.py定义该模型,并赋值给self.base

inplane是网络最后一层输出的通道数目

 4测试

修改权重路径

权重模型要和MODEL一致。

此时OUTPUT_DIR为测试结果保存的路径

5本篇博客的不足

笔者暂时没搞懂代码中的  ignite.engine 的使用方法。另外,没涉及数据增强和Rerank。

本文修复了作者的若干bug,若有代码需求请在评论区回复。

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
### 回答1: person_reid_baseline_pytorch是一个基于PyTorch框架的人员识别基线模型。它可以用于训练和测试人员识别模型,以识别不同人员之间的差异和相似之处。该模型提供了一些基本的功能,如数据加载、模型训练、模型测试等,可以帮助用户快速搭建和测试自己的人员识别模型。 ### 回答2: person_reid_baseline_pytorch是一个基于PyTorch框架的人体重识别模型。该模型采用卷积神经网络(Convolutional Neural Network,简称CNN)架构,采用多个卷积层和池化层进行特征提取,最后经过全连接层得到人物特征向量,实现了对人体进行识别。 该模型的训练数据集一般采用Market1501数据集,它包含超过1501个不同身份的超过32000张图片,是一个非常大且具有代表性的数据集,训练出的模型能够具有很好的泛化能力。 在训练过程中,除了使用标准的交叉熵损失作为损失函数外,还使用Triplet Loss作为损失函数的一种变形。该损失函数能够比较好地处理重识别中的最大间隔问题,并且能够实现对同一身份的多张图片之间的特征相似度比较。 对于测试集的预测部分,该模型采用的是余弦相似度进行特征向量相似度计算,相似度越高则说明两个图片中的人物越有可能是同一个人,可以实现良好的识别结果。 总的来说,person_reid_baseline_pytorch基于PyTorch框架实现的人体重识别模型,通过CNN架构进行特征提取,使用Triplet Loss进行训练,使用余弦相似度进行特征向量相似度计算,能够实现对人体进行高效准确的识别。 ### 回答3: person_reid_baseline_pytorch 是一个基于 PyTorch 框架的行人重识别算法基线模型,它实现了一个简单但功能齐全的行人重识别框架,可以训练和测试基于清晰照片的行人重识别任务。 该模型包含了基本卷积神经网络(CNN)的搭建和训练,其中包括几个关键部分:数据加载、模型定义、训练和测试。它使用数据增强技术和三元损失函数来训练模型,目的是使相同人的图像对与不同人的图像对之间的距离最大化。 person_reid_baseline_pytorch 采用 Market-1501 数据集进行测试,并在该数据集上取得了不错的结果。该数据集包含 1501 个行人,共有 12936 张图像,其中包括 6 种视角和多种行为。该算法读取图像数据并将之前处理后的行人图像输入神经网络,以便为每个图像计算行人的特征向量。然后,使用相关算法来比较图像对的距离,并确定它们是否属于同一人。该算法的性能指标包括准确度、精度和召回率等。 总之,person_reid_baseline_pytorch 提供了一个简单但完整的框架和基线模型,可以作为进一步解决行人重识别问题的基础。无论是学术界还是商业界,这种算法都有广泛的应用前景。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值