在人体图像识别/人体目标重识别(Person Re-identification, Re-ID)领域,往往采用度量学习方法,如三元组损失函数(Triplet Loss),来拉近同类特征,推远异类特征。在这个过程中,一般在训练和测试(检索)阶段都采用欧氏度量。想法很自然:训练阶段最小化同类样本之间的欧氏距离,推远异类样本之间的欧氏距离,检索时也采用欧氏距离,这样一来训练目标和最终目标便达成了一致,符合直觉。
但是,在刚刚被IEEE Transactions on Image Processing接受的一篇文章Bi-directional Exponential Angular Triplet Loss for RGB-Infrared Person Re-Identification中,作者用大量的实验表明,由于神经网络的特性,这样的作法在跨模态/单模态Re-ID的度量学习问题上未必是最优的,并提供了一个适用于跨模态/单模态人体目标重识别任务的即插即用的方案(“expAT Loss”),基于余弦度量实现了更优的学习效果。该方法未来可以广泛应用于分类、识别、检索等相关任务。
问题分析
在文中,作者指出基于欧氏度量的度量学习有以下两个问题:
- 基于欧氏度量的度量学习无法在共同特征空间中把不同类别的特征向量在角度维度拉开,为每个类别形成自己的角度空间。其一个潜在后果是,当测试阶段模型对所未见过的样本生成的特征向量模长产生波动,会导致不同类别特征无法区分。
- 基于欧氏度量的度量学习损失函数无法与分类任务网络最后一层的线性分类器(Linear Layer)有效配合。其原因具体如下:
假设分类任务有
对于其中一个特征向量
而在给定
方法介绍
为了解决这两个问题,文章指出,在跨模态和单模态的人体目标再识别Re-ID问题中,都可以单纯使用余弦度量来进行度量学习,使得特征向量在共同特征空间角度可分,并更好地结合softmax loss共同训练,从根本上解决这个矛盾。
然而,纯粹使用余弦度量来进行度量学习有一个明显的问题,就是完全忽视了特征向量模长的影响。在文章的实验中也可以看到,无论是跨模态还是单模态任务,如果单纯把三元组损失函数改成余弦版本或者直接归一化特征向量模长,性能一塌糊涂,说明至少在模型的训练过程,对特征向量模长的监督也是重要的。为了灵活地规范化共同特征空间中特征向量的模长,文章受近年BN各种变种和特殊用法的启发,提出对共同特征空间进行去除bias的批归一化,并把这种做法称为”共同空间批归一化“(Common Space Batch Normalization,CSBN)。经过CSBN,特征向量的模长被规范化,实验表明该方法可以使得余弦度量”起死回生“,产生显著超越基于欧氏度量的三元组损失函数的性能。
论文所提出方法的组成可以分为两部分:指数角度三元组损失函数(Exponential Angular Triplet Loss, expAT)和共同特征空间批归一化(Common Space Batch Normalization),两者结合才能有效地纯粹依赖余弦度量来进行度量学习。
损失函数设计
损失函数公式的设计遵循的原则是:
- 指数项非负
- 鼓励负样本对的特征向量正交而非负相关
- 跨模态建模
具体公式formulation过程和框架请看原文。最终对于单模态RGB Re-ID任务,指数角度三元组损失函数(expAT)的公式是:
对于跨模态RGB-IR Re-ID任务则是:
实验结果
从论文的实验结果上看,对于跨模态问题,由于迥异的模态需要依靠度量学习来拉近不同模态特征的特征分布,该方法效果更为显著。然而对于单模态的人体目标再识别问题,该方法也可以在一个很强的baseline的基础上看到进一步的性能提升。另外值得注意的是,虽然训练过程基于余弦度量学习+softmax loss的方法,在测试阶段检索时却只需用传统欧氏度量求特征距离即可,无需归一化求余弦距离。
红外-彩色跨模态Re-ID:
从红外-彩色跨模态Re-ID的Ablation Study中主要可以看到以下几点:
- 在仅使用expAT或者仅使用CSBN时,性能都远不如基于欧氏度量的triplet loss
- 两者结合则产生了远超triplet loss的性能,缺一不可
- CSBN作用在triplet loss上会有反效果,符合上述讨论,因为CSBN归一化弱化了基于欧氏度量的度量学习损失函数对特征模长的约束
作者还与下面几种(部分为审稿人提出的)较为相近的方法进行了公平的比较(同样的网络框架、训练技巧等等),结果显示所提出的方法展现了明显更优的性能:
彩色单模态Re-ID:
为了验证方法的有效性,作者基于一个"strong baseline"在单模态Re-ID任务上也进行了plug-and-play的实验(只加CSBN和expAT不调别的参数),结果如下图。可以看到所提出的方法在各项指标性能均有稳定提升。
值得注意的是,在单模态任务的ablation study中,同样可以观察到:CSBN与expAT必须同时使用,才能达到令人满意的性能提升。
讨论与延伸
- 除了人体目标再识别,基于欧氏距离的深度度量学习在图像检索、分类、识别等等领域应用广泛,然而根据工业界的经验分享,在基于CNN的大规模图像分类任务中度量学习损失函数往往提升有限,其中一个原因是否是如上文指出的,基于欧氏距离的度量学习损失函数本身没法很好地与线性分类层和softmax loss配合导致的呢?本文提出的纯粹基于余弦度量的损失函数配合共同特征空间批归一化的方法,可以帮助线性分类层构建角度可分的特征空间,进而为解决这个问题提供思路。
- 对于一些新型的网络结构,如加法网络,最后分类层是基于L1距离构建,是否仍然适用于这种纯粹基于余弦度量的损失函数,也是一个可以尝试的实验。
论文和代码
目前被接收论文已经挂在arXiv,跨模态和单模态的训练和测试代码均已开源在 expAT-Github,抱着求知的态度,欢迎大家在Github上提出issue,共同讨论!
Hanrong Ye, Hong Liu, Fanyang Meng, and Xia Li, Bi-directional Exponential Angular Triplet Loss for RGB-Infrared Person Re-Identification, IEEE Transactions on Image Processing