行人重识别(零)

行人重识别(ReID)


快开题了,挺迷茫的,准备开始用blog记录一下自己的学习过程,为开题做准备,接下来每隔一段时间会更新一篇,内容或多或少,也是逼自己一把!

0. 什么是行人重识别

行人重识别的是属于计算机视觉下的重要的也是当前比较困难的任务。它主要解决的问题是如何在不同的摄像头下找到同一个人,这种问题其实可以看做是一个图像检索的问题,即通过一张行人在一个摄像头下的图像(或视频)作为检索目标,在其余摄像头中找到与之最相似的行人。

1. 为什么要重识别

在监控视频中,由于相机分辨率和拍摄角度的缘故,通常无法得到质量非常高的人脸图片。当人脸识别失效的情况下,ReID就成为了一个非常重要的替代品技术。
Question1:有些目标靠衣服的颜色就可以判断出来了,需要行人重识别么?
首先,衣服颜色确实是行人重识别做出判断一个重要因素,但光靠颜色是不足的。
其次,摄像头之间是有色差,并且会有光照的影响。
最后,有撞衫(颜色相似)的人怎么办

2. 行人重识别流程

ReID 任务过程,主要分为训练和测试两个阶段。下图分别是训练阶段和测试阶段的示意图:
行人重识别(零)

行人重识别(零)
图源:贝壳er

2.1 训练阶段

首先要做的是Detection,也就是检测出行人,这一步数据集已经帮我们做到了;
其次,就是要去训练一个Feature Extraction Network(即特征提取网络,现阶段使用CNN的居多),根据提取到的特征所计算的度量距离得到损失值;
最后选用一个Optimizer(优化器)去迭代寻找loss最小值,并不断更新网络的参数达到学习的效果。

2.2 测试阶段

我们用将待检索的图片(称为query),在大量图库gallery中,根据计算出的特征距离进行升序排序,选出最TOP(即距离最小)的几张图片,来达到目标检索的目的。
具体方法: 用 ReID model 做预测,就是去掉最后的全连接层,然后用网络提取 feature,最后算 query 和 gallery 所有图片 feature 之间的距离。
行人重识别(零)

3. ReID评价指标

3.1 Rank-n

搜索结果中top-n张图有正确结果的概率。

例如: query image为 m1 ,在大小为100的gallery中搜索。

如果识别结果是 m1 、m2、m3、m4、m5……,则此时rank-1的正确率为100%,rank-2的正确率也为100%,rank-5的正确率也为100%;
如果识别结果是m2、 m1 、m3、m4、m5……,则此时rank-1的正确率为0%,rank-2的正确率为100%,rank-5的正确率也为100%;
如果识别结果是m2、m3、m4、m5、 m1 ……,则此时rank-1的正确率为0%,rank-2的正确率为0%,rank-5的正确率为100%
最后求得多个query的Rank-n取平均值。

3.2 mAP

能够反应query image在gallery中所有正确的图片排在检索列表前面的程度,能更加全面的衡量ReID算法的性能。假设query image在gallery中有2张待查询图像,在第一个检索的列表中排序分别为1、3、6、9、10,则ap为( 1/1 + 2/3 + 3/6 + 4/9 + 5/10)/5=0.62;在第二个检索的列表中排序分别为2、5、7,则ap为(1/2 + 2/5 + 3/7)/3=0.44;ap较大时,检索结果都相对靠前,最后对所有query的ap取平均值得到mAP=(0.62 + 0.44)/2 = 0.53。
行人重识别(零)
行人重识别(零)

3.3 CMC

全称为Cumulative Match Characteristic,将一个摄像头采集的图像用作查询集,将其余摄影机采集的图像用作图库集。对于图库集,为每个ID随机采样一张图像。对于查询集,将使用所有图像,获取每个图像的CMC曲线,这里的CMC曲线就是Rank-n与Accuracy的关系曲线,然后对它们进行平均。重复此评估过程100次,并将平均值提交为最终结果。

4. ReID数据集

关于ReID的数据集,网上有很多博主阐述得很清楚,我就不整理了,放上下载链接,文末有数据集具体信息的链接,方便我自己也是方便更多有兴趣的人去学习。

4.1 Market-1501

下载链接 提取码:1111

4.2 DukeMTMC-reID

下载链接 提取码:2222

4.3 CUHK03

下载链接 提取码:3333

5. 参考资料

贝壳er-小白入门计算机视觉系列
行人重识别综述:从哈利波特地图说起
一个强力的ReID basemodel
图像检索:信息检索评价指标