ReID网络:MGN网络(3) - 数据组织

1. 概述

首先ReID不仅仅可以搞行人,当然也可以处理其他目标,这个是大家需要领会的一点。

用于ReID的行人数据集,一般是有多段同一目标在不同时间的采样序列组成。例如同一个行人,间隔5秒采集一张图像,连续采集30张。或同一行人,在一个时间段的不同场景下采集几十张图像,都是可以作为训练、评估数据集的。当然,像Object Detection一样,想要尽量少的数据集又追求比较好的效果,那一定是要考虑特定场景了。

2. Market1501数据集

Market1501数据集最早在论文Person Re-Identification Meets Image Search中提出。时至今日,该数据集也是一个用于研究ReID的不错的入门数据集。

Market 1501 的行人图片采集自清华大学校园的 6 个摄像头,一共标注了 1501 个行人。其中,751 个行人标注用于训练集,750 个行人标注用于测试集,训练集和测试集中没有重复的行人 ID,也就是说出现在训练集中的 751 个行人均未出现在测试集中。Market1501数据集基本信息如下。

训练集:751 个行人,12936 张图片

测试集:750 个行人,19732 张图片

query 集:750 个行人,3368 张图片。query 集的行人图片都是手动标注的图片,从 6 个摄像头中为测试集中的每个行人选取一张图片,构成 query 集。测试集中的每个行人至多有 6 张图片,query 集共有 3368 张图片。

一般情况下,用于ReID的数据集会划分为训练集、验证集、Query、Gallery四个部分。即在训练集上进行模型的训练,训练过程中使用验证集进行验证,得到模型后对于每个Query在Gallery中找出前N个与其相似的图片。匹配方式一般就是对Query中的目标在Gallery中的图片礼勇模型提取特征并通过相似度算法计算相似度

3. MGN的数据组织逻辑

由于MGN采用了Triplet计算损失,因此在组织训练数据时,有特殊的处理方式。

首先MGN拥有的Market1501类(Market1501.py)用于对整个数据集进行预处理,预组织。主要工作包括提取图像列表,行人ID以及索引,创建行人与图像索引的字典。同时提供__getitem__接口。

提供的RandomSampler类用于实际的所采样量列表生成。MGN在采样训练batch的时候有两个参数需要关注,分别是“batchid”和“batchimage”,前者表示采样几个行人,后者表示每一个行人采样多少样张。RandomSampler中首先会创建一个列表字典(defaultdict(list)),创建以行人ID为key,以该ID对应的图像索引为列表的字典项。

之后使用_sampler静态成员进行统一ID的图像采样。

ReID网络:MGN网络(3) - 数据组织_第1张图片

你可能感兴趣的:(ReID,计算机视觉,深度学习,ReID,Market1501)