下面提供了一些数据集的下载(包括MARS、CUHK03_release、Market1501、MSMT17、MSMT17_V1、DukeMTMC-ReID)
链接:https://pan.baidu.com/s/1QVXAJqW0DiADI0xF2WtkvA
提取码:1111
数据集汇总链接:https://github.com/NEU-Gou/awesome-reid-dataset
ReID包括4个数据集:
训练集、测试集、query、gallery
训练集
他的作用主要是能够训练出一个模型,即特征提取器。训练集是经过标注好的数据集,每个图片都有属于他自己的ID,那么是如何使用这个训练集进行训练的呢,就比如说用的分类损失函数的话,ID就可以作为一个预测值y,训练模型就可以完完全全按照分类问题来训练。当然使用不同的训练策越训练过程是不一样的,但训练集就是这样的,图及标注好的对应的ID。
测试集
测试集说白了和训练集一样,当我们标注完大量数据的时候,一部分可以用来当作训练集,一部分可以用当做测试集。需要注意的是:测试集和训练集的ID是不能够重复的,可以想一下,训练集,是经过不断训练,不调整参数,最终使图片能够对应他的ID,已经经过训练的图片及ID再出现在测试集里,那肯定是正确的,这张图片测试的意义就没了。
query
query集是包含一系列probe的照片的数据集,意思是我们把要检索的目标行人照片的集合称为query。
gallery
gallery是要检索的图库,就比如说,query里面的每个probe都要在gallery里进行检索来找到目标行人。那gallery是由什么组成的呢?我们在获得原始监控视频后,检测到视频里的行人,并用框框框住,这里就是bounding_boxes,每个bounding_boxes当作一个图片,这些图片的集合就是gallery。
网络模型训练时,会用到训练集;测试模型好坏时,会用到测试集和query集。此时测试集也被称作 gallery 集。因此实际用到的子集为,训练集、gallery集和query集。
介绍两个公开数据集
Market1501数据集(2015年)
拍摄地点:清华大学校园
拍摄时间:夏天
摄像头个数:6(室外)
总共拍摄到1501人,32668个检测到的行人矩形框。每个行人至少由2个摄像头捕获到,并且在一个摄像头中可能具有多张图像。
训练集:751人,包含12936张图像,平均每个人有17.2张训练数据。
测试集:有 750 人,包含 19,732 张图像,平均每个人有 26.3 张测试数据。
query :750 个行人,3368 张图片query集的行人图片都是手动标注的图片,从6个摄像头中为测试集中的每个行人选取一张图片,构成query集。测试集中的每个行人至多有 6 张图片,query 集共有 3368 张图片,3368 张查询图像的行人检测矩形框是人工绘制的
gallery: 中的行人检测矩形框则是使用DPM检测器检测得到的
Market1501数据集目录结构:
Market-1501-v15.09.15
├── bounding_box_test
├── 0000_c1s1_000151_01.jpg
├── 0000_c1s1_000376_03.jpg
├── bounding_box_train
├── 0002_c1s1_000451_03.jpg
├── 0002_c1s1_000551_01.jpg
├── gt_bbox
├── 0001_c1s1_001051_00.jpg
├── 0001_c1s1_002301_00.jpg
├── gt_query
├── 0001_c1s1_001051_00_good.mat
├── 0001_c1s1_001051_00_junk.mat
├── query
├── 0001_c1s1_001051_00.jpg
├── 0001_c2s1_000301_00.jpg
└── readme.txt
目录介绍:
1)“bounding_box_test”——用于测试集的 750 人,包含 19,732 张图像,前缀为 0000 表示在提取这 750 人的过程中DPM检测错的图(可能与query是同一个人),-1 表示检测出来其他人的图(不在这 750 人中)
2)“bounding_box_train”——用于训练集的 751 人,包含 12,936 张图像
3)“query”——为 750 人在每个摄像头中随机选择一张图像作为query,因此一个人的query最多有 6 个,共有 3,368 张图像
4)“gt_query”——matlab格式,用于判断一个query的哪些图片是好的匹配(同一个人不同摄像头的图像)和不好的匹配(同一个人同一个摄像头的图像或非同一个人的图像)
5)“gt_bbox”——手工标注的bounding box,用于判断DPM检测的bounding box是不是一个好的box
命名规则:
以 0001_c1s1_000151_01.jpg 为例
1) 0001 表示每个人的标签编号,从0001到1501;
2) c1 表示第一个摄像头(camera1),共有6个摄像头;
3) s1 表示第一个录像片段(sequece1),每个摄像机都有数个录像段;
4) 000151 表示 c1s1 的第000151帧图片,视频帧率25fps;
5) 01 表示 c1s1_001051 这一帧上的第1个检测框,由于采用DPM检测器,对于每一帧上的行人可能会框出好几个bbox。00 表示手工标注框
MSMT17数据集(2018年)
拍摄地点:校园内
拍摄时间:一个月里选择了具有不同天气条件的4天。每天采集3个小时的视频,涵盖了早上、中午、下午三个时间段,总共的原始视频时长为180小时。
摄像头个数:共15个(12个户外、3个室内)
总共得到4101个行人的126441个包围框
训练集:1041个行人共32621个包围框
测试集:3060个行人共93820个包围框
query集:从测试集中随机选出11659个包围框作为query
gallery集:选完query之后剩余的测试集的82161个包围框作为gallery
MSMT17数据集目录结构:
MSMT17
├── bounding_box_test
├── 0000_c1_0002.jpg
├── 0000_c1_0003.jpg
├── 0000_c1_0005.jpg
├── bounding_box_train
├── 0000_c1_0000.jpg
├── 0000_c1_0001.jpg
├── 0000_c1_0002.jpg
├── query
├── 0000_c1_0000.jpg
├── 0000_c1_0001.jpg
├── 0000_c14_0030.jpg
├── _MACOSX
评估协议:
按照训练-测试为1:3的比例对数据集进行随机划分,而不是像其他数据集一样均等划分。这样做的目的是鼓励高效率的训练策略,由于在真实应用中标注数据的昂贵。
测试指标为CMC曲线和mAP. 对于每个query, 可能存在多个正匹配。
MSMT17数据集的特点:
1)相对于market1501具有多更的行人、包围框、摄像头
2)复杂的场景和背景:校园内15个摄像机网络。12个户外摄像机和3个室内摄像机。一个月内选择不同天气条件的4天进行视频采集。每天早上,中午和下午分别拍摄3小时的视频。它比以前的数据集更适合场景模拟,但会带来严重的照明变化。
3)多个时隙导致严重的照明变化:MSMT17包含最多数量的相机,即放置在不同位置的15个相机。它还与室内和户外视频一起构建,并未考虑在以前的数据集中。这些考虑导致复杂的背景和照明变化,也使MSMT17更具吸引力和挑战性。
4)采用faster RCNN作为行人检测器
CUHK03数据集(2014年)
拍摄地点:香港中文大学校园
摄像头个数:10(室内)
训练集:767个行人
测试集:700个行人
从所有摄像头中,为测试集中的每个行人随机选取一张图片,构成 query 集。测试集剩下的行人图片构成 gallery 集。因此,这是一个 multi-shot 的测试协议,每个行人在 gallery 集中有多张图片。不同于旧的测试协议,新的测试协议只执行一次训练集/测试集划分。
CUHK03数据集请看讲解,这位讲的很清楚。行人重识别数据集之 CUHK03 数据集
参考文献
小白入门系列——ReID(一):什么是ReID?如何做ReID?ReID数据集?ReID评测指标?
Deep Learning for Person Re-identification A Survey and Outlook
MSMT17数据集的论文——Person Transfer GAN to Bridge Domain Gap for Person Re-Identification