这是一篇综述性文章,本文从closed-world和open-world两个方面较细致地分析了Re-ID,并展望了前景。这次的心得写得较长,也算是一个总结。
首先,作者通过将Re-ID分为封闭世界(closed-world)的ReID和开放世界(open-world)的Re-ID来陈述,如下表,通俗地说,closed-world指的就是较为理想的环境下的实验,比如单模态的数据集、正确框出的行人box,open-world指的是更贴近现实应用场景的实验,比如跨模态、直接利用原始视频流或图片帧设计end-to-end的系统、不利用标注数据。其次,作者设计了一个强大的baseline——AGW,无论是单模态还是跨模态行人重识别,该方法都达到了SOTA,本文也提出了新的性能评价指标——mINP,来对CMC/mAP进行补充。最后,作者讨论了行人重识别任务中重要但尚在发展路上的问题。
Closed-world | Open-world |
---|---|
Single-modality Data | Heterogeneous Data |
Bounding Boxes Generation | Raw Images/Videos |
Sufficient Annotated Data | Unavailable/Limited Labels |
Correct Annotation | Noisy Annotation |
Query Exists in Gallery | Open-set |
综述框架 { closed-world Re-ID { 特征表示学习 { 全局特征 局部特征 辅助特征 video-based 深度度量学习 排序优化 open-world Re-ID { 异构(跨模态)Re-ID 端到端Re-ID 半监督/无监督Re-ID Noise-Robust Re-ID Open-set Re-ID 展望 { mINP度量 AGW 尚待研究 \text{综述框架} \begin{cases} \text{closed-world Re-ID} \begin{cases} \text{特征表示学习} \begin{cases} \text{全局特征}\\ \text{局部特征}\\ \text{辅助特征}\\ \text{video-based} \end{cases}\\ \text{深度度量学习}\\ \text{排序优化} \end{cases}\\ \text{open-world Re-ID} \begin{cases} \text{异构(跨模态)Re-ID}\\ \text{端到端Re-ID}\\ \text{半监督/无监督Re-ID}\\ \text{Noise-Robust Re-ID}\\ \text{Open-set Re-ID} \end{cases}\\ \text{展望} \begin{cases} \text{mINP度量}\\ \text{AGW}\\ \text{尚待研究} \end{cases} \end{cases} 综述框架⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧closed-world Re-ID⎩⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎧特征表示学习⎩⎪⎪⎪⎨⎪⎪⎪⎧全局特征局部特征辅助特征video-based深度度量学习排序优化open-world Re-ID⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧异构(跨模态)Re-ID端到端Re-ID半监督/无监督Re-IDNoise-Robust Re-IDOpen-set Re-ID展望⎩⎪⎨⎪⎧mINP度量AGW尚待研究
这一类Re-ID通常有这些特点:1)行人图像往往是单模态的;2)行人由包围框表示,不少box都属于同一人(可能会使某个人识别正确率偏高,也理想化);3)有足够的标注数据进行有监督训练(非常理想化);4)标注通常正确率很高;5)不少数据集的query都在gallery中,或者说他们来自于同一组camera,现实中可能提供摄像机从未“见过”的图片(不存在于数据集中的新的身份)。
当前的特征表示学习有:1)基于全局特征的——从整张图片提取特征向量或利用注意力机制,注意力机制可以用于“关注”单张图片的关键部分,也可以用于“关注”多张图片中的关键图片;2)基于局部特征的——如果两张图片中行人是错位的,那么使用局部特征效果更好,原来的基于part的Re-ID大概归为两种:第一种是利用姿态信息来定位part,第二种是直接对图片分块,或是按照身体部位进行“软分割”(比如PCB+RPP),后来有学者关注结合全局特征与局部特征,也取得了不错的效果;3)利用辅助特征:比如语义描述或用GAN生成图像,或是一些图像增强技巧;4)基于视频的Re-ID则更接近于现实应用场景,往往关注视频流或多张图的时序(temporal)特征。
度量学习就是指对比样本相似度来判断它们是否为一类/一个对象,现在已经被loss function代替。Re-ID常用的loss有下列中三种:Identity loss,其实就是多分类交叉熵损失,公式(1);Verification loss,其实就是判断样本对是/否为同一类/身份,公式(2)是它的基本形态——contrastive loss,多数学者常把Identity损失与Verification损失结合,结合后如公式(3);Triplet loss,同类样本距离拉近,不同类样本push远,公式(4)。
L i d = − 1 n ∑ i = 1 n log ( p ( y i ∣ x i ) ) (1) \mathcal{L}_{i d}=-\frac{1}{n} \sum_{i=1}^{n} \log \left(p\left(y_{i} \mid x_{i}\right)\right)\tag{1} Lid=−n1i=1∑nlog(p(yi∣xi))(1)
L con = ( 1 − δ i j ) { max ( 0 , ρ − d i j ) } 2 + δ i j d i j 2 (2) \mathcal{L}_{\text {con}}=\left(1-\delta_{i j}\right)\left\{\max \left(0, \rho-d_{i j}\right)\right\}^{2}+\delta_{i j} d_{i j}^{2}\tag{2} Lcon=(1−δij){ max(0,ρ−dij)}2+δijdij2(2)
δ i j \delta_{ij} δij表示二值判断(如 x i x_i xi和 x j x_j xj属于同一类则为1,否则为0), d i j d_{ij} dij是欧氏距离, ρ \rho ρ是阈值, f i j = ( f i − f j ) 2 f_{ij}=(f_i-f_j)^2 fij=(fi−fj)2, f i f_i fi和 f j f_j fj是 x i x_i xi和 x j x_j xj的嵌入特征。
L v e r i ( i , j ) = − δ i j log ( p ( δ i j ∣ f i j ) ) − ( 1 − δ i j ) log ( 1 − p ( δ i j ∣ f i j ) ) (3) \mathcal{L}_{v e r i}(i, j)=-\delta_{i j} \log \left(p\left(\delta_{i j} \mid f_{i j}\right)\right)-\left(1-\delta_{i j}\right) \log \left(1-p\left(\delta_{i j} \mid f_{i j}\right)\right)\tag{3} Lveri(i,j)=−δijlog(p(δij∣fij))−(1−δij)log(1−p(δij∣fij))(3)
L t r i ( i , j , k ) = max ( ρ + d i j − d i k , 0 ) (4) \mathcal{L}_{t r i}(i, j, k)=\max \left(\rho+d_{i j}-d_{i k}, 0\right)\tag{4} Ltri(i,j,k)=max(ρ+dij−dik,0)(4)
此外,作者还讲到了一个OIM(Online Instance Matching) loss,这个损失在 [ 1 ] ^{[1]} [1]中出现。
排序优化对于提高测试阶段的检索性能很重要,目前最主要的排序优化就是re-ranking,re-ranking是一类算法,实现re-ranking的方法多种多样,下图是re-ranking算法的一种:将初次从gallery中检索到的排名靠前的图片作为query继续检索。其实现在被很多Re-ID学者广泛采用的是k-reciprocal encoding重排序 [ 2 ] ^{[2]} [2],即对于query检索出来的候选图像,选择某张图像的k-nearest,如果包含了query图,则认为该候选图像更有可能是True match。
此外,作者讲到了排序融合(rank fusion)——即整合多种方法得到的排序结果来作为最终结果,这个词我还是首次见。
排序优化之后作者还介绍了Re-ID数据集,都是很常见的图片或视频数据集,数据集的整合介绍见,接着介绍了评估方法——当然是最常见的CMC(rank-n)和mAP,最后列举了一些SOTA方法,如下图,而且这些算法还都是2019年甚至更早的,准确率都被刷得很高。
这一类Re-ID更接近现实应用场景,通常有以下特点:1)数据不再是一种,是异构(如跨模态)的;2)以end-to-end方式实现,不用再对原始数据进行复杂的处理,给定输入即可输出;3)无需大量标签;4)即使标注不那么正确,模型也具有鲁棒性;5)open-set,即出现新的身份,系统也应正确处理。
异构指的是数据不单单是一种,可以是多种模态的图,可以是分辨率差异较大的图。作者提到了三种异构Re-ID:1)基于深度图的,即利用包含行人骨架、形状信息的图进行Re-ID,也可以与原始图片联合进行识别;2)从文本到图像的,给定语言描述即可进行识别,更多学者的做法是图像为主、语言描述为辅;3)跨模态的,这种Re-ID也是当前热点,主要是基于红外图-RGB图两种模态来研究;4)跨解析度(resolution)的,即不同分辨率或不同质量的图像。
端到端的Re-ID即不用再对视频流/原始图片流处理,直接拿来输入即可获得结果,是比较理想的方式,当然现在也有不少end-to-end的模型。
原来用于Re-ID的深度模型基本上都是靠着带标签的数据完成训练的,不符合实际应用场景,于是采用无标签/少量标签数据得到性能较强的Re-ID成为了一个热点,而且这可以省去手工标注的花费。
目前也有学者做无监督域自适应(Unsupervised Domain Adaptation),即:在带标签数据集上训练出的模型迁移到无标签的数据集上应用。现在无监督Re-ID识别准确率也已经很高了,预计很快就能封顶。
对于Re-ID,由于采集数据和标注困难,noise是不可避免的,作者将noise-鲁棒
Re-ID分为三类:具有很大偶然性的部分遮挡、样本本身的noise(如行人包围框检测不对、背景环境的干扰)、标签noise(图像数量大,标注错误是大概率事件)。
对于一个全新的身份,系统不应当将他识别为数据集中的身份,这对安保工作是至关重要的。比如一个公司的人脸识别门禁,错误地将外人识别为公司内部员工,这是很危险的,这就是Open-Set问题。因为现有的Re-ID数据集,query集中的身份一定能在gallery集中找到,这是与实际不符的。
当前常用的CMC和mAP无法表示模型对难样本的检测能力,如下图,两个检测结果,rank-1都是100%,但是它们的AP却不相同,list 1的AP比list 2高,但是很明显对于10个目标,list 1找到所有正确样本要比list 2付出得更多,或者说它把最难的样本排得更靠后,这样来看AP就不合理了,这就是作者提出mINP的动机。
NP是指negative penalty,即负样本的惩罚/代价,它定义为公式(5), R i h a r d R_i^{hard} Rihard表示最难样本的排序位置, ∣ G i ∣ \left|G_{i}\right| ∣Gi∣表示query i i i的正确匹配图片数量,所以越小的NP越代表更好的性能,为了更直观对比模型性能,定义inverse negative penalty:INP=1-NP,mINP即所有检测序列的INP的均值,类似mAP和AP的关系,见公式(6)。
N P i = R i h a r d − ∣ G i ∣ R i h a r d (5) \mathrm{NP}_{i}=\frac{R_{i}^{h a r d}-\left|G_{i}\right|}{R_{i}^{h a r d}}\tag{5} NPi=RihardRihard−∣Gi∣(5)
m I N P = 1 n ∑ i ( 1 − N P i ) = 1 n ∑ i ∣ G i ∣ R i h a r d (6) \mathrm{mINP}=\frac{1}{n} \sum_{i}\left(1-\mathrm{NP}_{i}\right)=\frac{1}{n} \sum_{i} \frac{\left|G_{i}\right|}{R_{i}^{h a r d}}\tag{6} mINP=n1i∑(1−NPi)=n1i∑Rihard∣Gi∣(6)
其实我在想,INP不就是正确匹配数量比上最后一个识别正确的样本排位?还是说定义NP有什么其他高级的数学依据?不过综合多种方法在部分数据集上的rank和mAP来看,mINP还是可以作为模型性能衡量标准的,而且mINP值普遍比mAP和rank小不少。
AGW的Backbone是ResNet-50,网络结构也很简单,只不过加入了A、G、W三块,“A”指的是Non-local Attention (Att) Block,“G”指的是Generalized-mean (GeM)Pooling,“W”指的是Weighted Regularization Triplet (WRT) loss。用AGW实现跨模态Re-ID的代码在Github开源。
Non-local Attention Block是非局部的注意力块,具体在 [ 3 ] ^{[3]} [3]中,主要就是获得各个位置feature的加权和,如公式(7), W z W_{z} Wz代表学习到的权值矩阵, ϕ ( . ) \phi(.) ϕ(.)代表non-local操作, + x i +x_i +xi代表残差学习策略。
z i = W z ∗ ϕ ( x i ) + x i (7) \mathbf{z}_{i}=W_{z} * \phi\left(\mathbf{x}_{i}\right)+\mathbf{x}_{i}\tag{7} zi=Wz∗ϕ(xi)+xi(7)
Generalized-mean Pooling即广义平均池化(机翻),具体在 [ 4 ] ^{[4]} [4]中,对于细粒度的检索问题,传统的平均池化和最大池化并不能提取特定域的辨别性特征,于是才加入GeM池化,如公式(8), p k p_k pk是池化超参,可以在BP过程学习,当 p k → ∞ p_{k} \rightarrow \infty pk→∞时,GeM池化接近max pooling,当 p k = 1 p_{k}=1 pk=1时接近average pooling。
f = [ f 1 ⋯ f k ⋯ f K ] T , f k = ( 1 ∣ X k ∣ ∑ x i ∈ X k x i p k ) 1 p k (8) \mathbf{f}=\left[f_{1} \cdots f_{k} \cdots f_{K}\right]^{T}, f_{k}=\left(\frac{1}{\left|\mathcal{X}_{k}\right|} \sum_{x_{i} \in \mathcal{X}_{k}} x_{i}^{p_{k}}\right)^{\frac{1}{p_{k}}}\tag{8} f=[f1⋯fk⋯fK]T,fk=(∣Xk∣1xi∈Xk∑xipk)pk1(8)
除了原有的带softmax交叉熵损失的identity loss外,作者还整合了Weighted Regularization Triplet loss,即加权正则化三元组损失,如公式(9),其中(i,j,k)表示batch中的mined hard triplet, P \mathcal{P} P是对应的正样本集, N \mathcal{N} N是负样本集。
L w r t ( i , j , k ) = log ( 1 + exp ( w i p d i j p − w i n d i k n ) ) w i p = exp ( d i j p ) ∑ d p ∈ P exp ( d p ) , w i n = exp ( − d i k n ) ∑ d n ∈ N exp ( − d n ) (9) \begin{aligned} \mathcal{L}_{w r t}(i, j, k)=\log \left(1+\exp \left(w_{i}^{p} d_{i j}^{p}-w_{i}^{n} d_{i k}^{n}\right)\right)\\ w_{i}^{p}=\frac{\exp \left(d_{i j}^{p}\right)}{\sum_{d^{p} \in \mathcal{P}} \exp \left(d^{p}\right)}, w_{i}^{n}=\frac{\exp \left(-d_{i k}^{n}\right)}{\sum_{d^{n} \in \mathcal{N}} \exp \left(-d^{n}\right)} \end{aligned}\tag{9} Lwrt(i,j,k)=log(1+exp(wipdijp−windikn))wip=∑dp∈Pexp(dp)exp(dijp),win=∑dn∈Nexp(−dn)exp(−dikn)(9)
下图是AGW在两个跨模态Re-ID数据集上的表现,准确率直逼之前的那篇cm-SSFT [ 5 ] ^{[5]} [5]。有一个不理解的问题是,作者说超过了SOTA,但是我看文中准确率并未达到上的很多SOTA方法,不知道文中的“SOTA”或者说大多数论文的“SOTA”标准是什么,或者说从哪里来。
作者在最后结合了目前Re-ID社区现状阐述了一些有潜力的方向。
硬件方面:Re-ID的快速检索,提到了哈希查找;还有压缩网络模型使其轻量化,提到了模型蒸馏(Model distillation);能适应常用设备配置,甚至是手机,这才是Re-ID落地成产品的必经之路。
数据相关的方面:现有模型大多不能适应多数据集,泛化能力较差,数据集之间的domain gap也比较大,盲目增大数据集规模和多源性并不能从本质解决问题;跨模态的数据,现代摄像设备网上往往切换为红外模式,而多数犯罪分子又独爱夜间活动,模型能适应跨模态的数据是至关重要的;数据集手工标注费时费力,如何尽可能减少模型训练对标注的依赖也是个问题;此外,无论是GAN生成的数据还是完全人造的数据,都和实际生活中的数据存在gap,这也值得讨论;现实生活中,加一个摄像头减一个摄像头是不可避免的,模型怎样来适应呢?
总得来说,这篇综述还是不错的,而且作者给出了源码,现阶段本文是可以作为Re-ID入门后快速上手来细读的,但是作者的AGW方法好像并不是SOTA,而且新的标准mINP总感觉在哪里见过只不过名字不同(机器学习?深度学习教程里的?),不知道这个新的标准会不会被后来的学者采纳,就让时间来检验它吧!
[1] T. Xiao, S. Li, B. Wang, L. Lin, and X. Wang, “Joint detection and identification feature learning for person search,” in Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pp. 3415–3424, 2017.
[2] Z. Zhong, L. Zheng, D. Cao, and S. Li, “Re-ranking person re-identification with k-reciprocal encoding,” in Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pp. 1318–1327, 2017.
[3] X. Wang, R. Girshick, A. Gupta, and K. He, “Non-local neural networks,” in Proceedings of the IEEE conference on computer vision and pattern recognition, pp. 7794–7803, 2018.
[4] F. Radenović, G. Tolias, and O. Chum, “Fine-tuning cnn image retrieval with no human annotation,” IEEE transactions on pattern analysis and machine intelligence, vol. 41, no. 7, pp. 1655–1668, 2018.
[5] Y. Lu, Y. Wu, B. Liu, T. Zhang, B. Li, Q. Chu, and N. Yu, “Cross-modality person re-identification with shared specific feature transfer,” in Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition,pp. 13379–13389, 2020.