expAT:双向指数角度三元组损失

Bi-directional Exponential Angular Triplet Loss for RGB-Infrared Person Re-Identification

1. 解决的问题

因为欧氏距离不能有效地测量角度可判别特征嵌入。并且因为角度鉴别特征空间对基于嵌入向量的行人图像分类十分重要。双向指数角度三重损失:通过显式约束嵌入向量之间的夹角帮助学习角度可分离的公共特征空间。

2. 提出的方法

  • 作者提出双向指数角度三元组损失,使用余弦距离来衡量包括角度的距离。
  • 余弦距离不能限制嵌入向量的分布,所以作者提出CSBN来标准化嵌入向量。common space batch normalization。 余弦softmax损失目的是提高模型生成的嵌入向量角度分辨力。

如果正例和anchor的角度大于负例,那么triplet loss的衡量方法可能会导致偏差。
训练阶段,用于分类损失的最终线性层受益于具有辨别力的公共特征空间。

3. 模型详述

通过有效的利用公共空间上的约束最小化模态间隙并获得区分性特征。
模型由特征提取部分和公共空间约束两部分组成。

3.1 特征提取器

与之前的文章一样,特征提取器需要在ImageNet上进行预训练用来捕获纹理和上下文特征,这里使用ResNet50作为主干网络,特征提取器后添加一个全局平均池化操作,然后映射到统一的公共空间,具体地表示如下:
V=CSBN(G(F(I)))\mathbf V = CSBN(\mathcal G(\mathcal F(I))) V=CSBN(G(F(I)))
仅主干网络就足以直接学习特征嵌入。

3.2 公共特征空间约束

双向的三元组损失

关于正负例边界的界定:
O=∣d1−d2+ξ∣→0O = | d_1 - d_2 + \xi | \rarr 0 O=d1d2+ξ0
此时三元组损失可以表示为:
Ltriplet′=1N∑(Ia,Ip,In)[D(Va,Vp)−[D(Va,Vn)+ξ]+[x]+=max⁡(x,0)\mathcal L'_{triplet} = \frac 1 N \sum_{(I_a,I_p,I_n)} [\mathbb D(\mathbf {V_a,V_p}) - [\mathbb D(\mathbf {V_a,V_n}) + \xi]_+ \\ [x]_+ = \max (x,0) Ltriplet=N1(Ia,Ip,In)[D(Va,Vp)[D(Va,Vn)+ξ]+[x]+=max(x,0)
那么双向的三元组损失可以表示为:
Ltriplet=Ltripletrgb+Ltripletir=1N∑(Iargb,Ipir,Inir)[D(Vargb,Vpir)−[D(Vargb,Vnir)+ξ]++1N∑(Iair,Iprgb,Inrgb)[D(Vair,Vprgb)−[D(Vair,Vprgb)+ξ]+\mathcal L_{triplet} = \mathcal {L^{rgb}_{triplet} + L^{ir}_{triplet}} \\ = \frac 1 N \sum_{(I^{rgb}_a,I^{ir}_p,I^{ir}_n)} [\mathbb D(\mathbf V^{rgb}_a,\mathbf V^{ir}_p) - [\mathbb D(\mathbf V^{rgb}_a,\mathbf V^{ir}_n) + \xi]_+ \\ + \frac 1 N \sum_{(I^{ir}_a,I^{rgb}_p,I^{rgb}_n)} [\mathbb D(\mathbf V^{ir}_a,\mathbf V^{rgb}_p) - [\mathbb D(\mathbf V^{ir}_a,\mathbf V^{rgb}_p) + \xi]_+ Ltriplet=Ltripletrgb+Ltripletir=N1(Iargb,Ipir,Inir)[D(Vargb,Vpir)[D(Vargb,Vnir)+ξ]++N1(Iair,Iprgb,Inrgb)[D(Vair,Vprgb)[D(Vair,Vprgb)+ξ]+
当界定满足条件时,嵌入向量的夹角是确定的,不同类别的嵌入向量可能比同一类别的嵌入向量具有更加相似的方向,这就使得不同类别的嵌入向量在公共空间中混合在一起无法聚类,特别是在测试数据集中看不见的样本。此时需要一个可分离的公共特征空间,其中包含位于可分离区域的不同类别的嵌入向量。

使用指数角度的三元组损失

首先引入余弦损失:
Lcos=1N∑(Ia,Ip,In)[C(Va,Vp)−[C(Va,Vn)+ξ]+\mathcal L_{cos} = \frac 1 N \sum_{(I_a,I_p,I_n)} [\mathbb C(\mathbf {V_a,V_p}) - [\mathbb C(\mathbf {V_a,V_n}) + \xi]_+ Lcos=N1(Ia,Ip,In)[C(Va,Vp)[C(Va,Vn)+ξ]+
此时,余弦距离表示为:
C(X,Y)=1−cos⁡(X,Y)=1−X⋅Y∥X∥∥Y∥\mathbb C(\mathbf {X,Y}) = 1 - \cos(\mathbf {X,Y}) = 1 - \frac {\mathbf {X\cdot Y}}{\mathbf {\|X\| \|Y\|}} C(X,Y)=1cos(X,Y)=1XYXY
损失函数表示为:
Lcos=1N∑(Ia,Ip,In)[(1−cos⁡(Va,Vp))−(1−cos⁡(Va,Vn))+ξ]+=1N∑(Ia,Ip,In)[cos⁡(Va,Vn)−cos⁡(Va,Vp)+ξ]+\mathcal L_{cos} = \frac 1 N \sum_{(I_a,I_p,I_n)} [(1 - \cos(\mathbf {V_a,V_p})) - (1 - \cos(\mathbf {V_a,V_n})) + \xi]_+ \\= \frac 1 N \sum_{(I_a,I_p,I_n)} [\cos(\mathbf {V_a,V_n}) - \cos(\mathbf {V_a,V_p})+ \xi]_+ Lcos=N1(Ia,Ip,In)[(1cos(Va,Vp))(1cos(Va,Vn))+ξ]+=N1(Ia,Ip,In)[cos(Va,Vn)cos(Va,Vp)+ξ]+
余弦相似性是度量相似程度,余弦距离是度量不同程度,所以二者的关系是用1减去彼此。

上述的损失函数有两个缺陷,一是目标使两个变量趋于正交,这意味着两个cos函数应该趋于0而不是趋于-1,所以采样clamping function来限制他们。其次,cos函数的值域问题导致我们可以将ξ\xiξ设置为1。
LAT′=1N∑(Ia,Ip,In)([cos⁡(Va,Vn)]+−cos⁡(Va,Vp)+1)\mathcal L'_{AT} = \frac 1 N \sum_{(I_a,I_p,I_n)}([\cos (\mathbf {V_a,V_n})]_+ - \cos (\mathbf {V_a,V_p}) + 1) LAT=N1(Ia,Ip,In)([cos(Va,Vn)]+cos(Va,Vp)+1)
那么,多模态的AT loss可以写为:
LAT=1N∑(Iargb,Ipir,Inir)([cos⁡(Vargb,Vnir)]+−cos⁡(Vargb,Vpir)+1)+1N∑(Iair,Iprgb,Inrgb)([cos⁡(Vair,Vnrgb)]+−cos⁡(Vair,Vprgb)+1)\mathcal L_{AT} = \frac 1 N \sum_{(I^{rgb}_a,I^{ir}_p,I^{ir}_n)}([\cos(\mathbf {V^{rgb}_a,V^{ir}_n})]_+ - \cos(\mathbf {V^{rgb}_a,V^{ir}_p}) + 1) \\ + \frac 1 N \sum_{(I^{ir}_a,I^{rgb}_p,I^{rgb}_n)}([\cos(\mathbf {V^{ir}_a,V^{rgb}_n})]_+ - \cos(\mathbf {V^{ir}_a,V^{rgb}_p}) + 1) LAT=N1(Iargb,Ipir,Inir)([cos(Vargb,Vnir)]+cos(Vargb,Vpir)+1)+N1(Iair,Iprgb,Inrgb)([cos(Vair,Vnrgb)]+cos(Vair,Vprgb)+1)
最后,使用指数函数将差距扩大:
LexpAT=α⋅1N∑(Iargb,Ipir,Inir)e([cos⁡(Vargb,Vnir)]+−cos⁡(Vargb,Vpir)+1)+β⋅1N∑(Iair,Iprgb,Inrgb)e([cos⁡(Vair,Vnrgb)]+−cos⁡(Vair,Vprgb)+1)\mathcal L_{expAT} = \alpha \cdot \frac 1 N \sum_{(I^{rgb}_a,I^{ir}_p,I^{ir}_n)} e^{([\cos(\mathbf V^{rgb}_a,\mathbf V^{ir}_n)]_+ - \cos(\mathbf V^{rgb}_a,\mathbf V^{ir}_p)+1)} + \\ \beta \cdot \frac 1 N \sum_{(I^{ir}_a,I^{rgb}_p,I^{rgb}_n)} e^{([\cos(\mathbf V^{ir}_a,\mathbf V^{rgb}_n)]_+ - \cos(\mathbf V^{ir}_a,\mathbf V^{rgb}_p)+1)} LexpAT=αN1(Iargb,Ipir,Inir)e([cos(Vargb,Vnir)]+cos(Vargb,Vpir)+1)+βN1(Iair,Iprgb,Inrgb)e([cos(Vair,Vnrgb)]+cos(Vair,Vprgb)+1)
讨论欧几里得距离和余弦距离
C(X,Y)=1−cos⁡(X,Y)=1−∥X∥2+∥Y∥2−D2(X,Y)2∥X∥∥Y∥\mathbb C(\mathbf {X,Y}) = 1 - \cos (\mathbf {X,Y}) = 1 - \frac {\mathbf {\|X\|^2 + \|Y\|^2 - \mathbb D^2(X,Y)}} {2\|X\|\|Y\|} C(X,Y)=1cos(X,Y)=12XYX2+Y2D2(X,Y)
由于嵌入向量在行人重识别中通常不是L2归一化的,因此欧氏度量和余弦度量具有非常不同的物理意义,并且它们在优化过程中的作用不同。根据我们的实验结果,当对嵌入向量施加L2归一化时,损失函数无法收敛。

提出N-pair损失
L(2+1)−tuplet=log(1+eVaTVn−VaTVp)\mathcal L_{(2+1)-tuplet} = log(1+ e^{\mathbf V^T_a \mathbf V_n - \mathbf V^T_a \mathbf V_p}) L(2+1)tuplet=log(1+eVaTVnVaTVp)

3.3 公共空间的BN操作

BN是通过稳定输入层的分布进而提高训练网络的。BN能够稳定内部激活的分布并平滑优化环境。基于此,文章在公共特征空间上提出共享权重的1D BN层来帮助稳定损失函数的震荡。同时,通过CSBN,对嵌入向量的通道进行归一化、重新规定尺度和可训练参数移位,这有助于重新校准嵌入向量的通道。
V^rawk=Vrawk−E[Vrawk]Var[Vrawk],k∈{1,2,...,K}\hat {\mathbf V}^k_{raw} = \frac {\mathbf V^k_{raw}-E[\mathbf V^k_{raw}]} {\sqrt{Var[\mathbf V^k_{raw}]}} , k \in \{1,2,...,K\} V^rawk=Var[Vrawk]

VrawkE[Vrawk],k{1,2,...,K}
γk=Var[Vrawk],βk=E[Vrawk]\gamma^k = \sqrt{Var[\mathbf V^k_{raw}]},\beta^k = E[\mathbf V^k_{raw}]γk=Var[Vrawk]

,βk=
E[Vrawk]

但是,规范化操作会改变 特征的分布,所以为每个规范化引入上述两个参数,区人保批量规范化可以退化为身份转换。
Vk=CSBN(Vrawk)=γkV^rawk,k∈{1,2,...,K}\mathbf V^k = CSBN(\mathbf V^k_{raw}) \\= \gamma^k \hat {\mathbf V}^k_{raw}, k \in \{1,2,...,K\} Vk=CSBN(Vrawk)=γkV^rawk,k{1,2,...,K}

3.4 Id损失

Lid=−∑i=1Cqilog⁡(pi),qi={1,i=y0,i≠ypi=eVifc∑i=1CeVkfc\mathcal L_{id} = - \sum^C_{i=1}q_i \log(p_i), q_i = \begin {cases} 1,i=y\\ 0, i \neq y \end {cases} \\ p_i = \frac {e^{\mathbf V^{fc}_i}} {\sum^C_{i=1}e^{\mathbf V^{fc}_k}} Lid=i=1Cqilog(pi),qi={1,i=y0,i=ypi=i=1CeVkfceVifc

那么id损失可以表示为:
Lid=−∑i=1Cqi(log⁡(pirgb)+log⁡(piir)),qi={1,i=y0,i≠ypirgb=eF(Vrgb)i∑k=1CeF(Vrgb)k,piir=eF(Vir)i∑k=1CeF(Vir)k\mathcal L_{id} = - \sum^C_{i=1}q_i (\log(p^{rgb}_i) + \log(p^{ir}_i)), q_i = \begin {cases} 1,i=y\\ 0, i \neq y \end {cases} \\ p^{rgb}_i = \frac {e^{\mathbb F (\mathbf V^{rgb})_i}} {\sum^C_{k=1}e^{\mathbb F (\mathbf V^{rgb})_k}},\\ p^{ir}_i = \frac {e^{\mathbb F (\mathbf V^{ir})_i}} {\sum^C_{k=1}e^{\mathbb F (\mathbf V^{ir})_k}} Lid=i=1Cqi(log(pirgb)+log(piir)),qi={1,i=y0,i=ypirgb=k=1CeF(Vrgb)keF(Vrgb)i,piir=k=1CeF(Vir)keF(Vir)i
最后损失函数可以表示为:
L=LexpAT+Lid\mathcal {L = L_{expAT} + L_{id}} L=LexpAT+Lid

4. 实验结果

本实验使用SYSU-MM01和RegDB进行训练,还需要用到Market1501和DukeMTMC数据集。

训练过程如上图所示。

批量采样策略:从一个人的RGB图像和红外图像作为图像对。在批量大小为N的每个小批量中,从整个训练集中随机选择N个锚图像对。然后,对于每个锚定RGB图像,我们从训练集中随机选择一个正红外图像和一个负红外图像,不包括锚定红外图像;对于每个锚定红外图像,我们从训练集中随机选择一个正RGB图像和一个负RGB图像,不包括锚定RGB图像。因此,我们在每个小批量中获得N个元组,共有N×2×3个图像。在每个元组中,来自不同域的同一个人的锚图像用于计算身份损失,而所有图像用于计算排名损失。在训练过程中,采用随机抽样策略遍历所有训练图像。

4.1 消融研究

ID+triplet比ID+triplet+CSBN效果好因为BN操作reshape了嵌入向量的分布,削弱了样本之间基于欧几里得距离度量的约束。
AT+ID可以帮助CSBN有效的提升性能,CSBN稳定了嵌入向量的大小,并帮助重新校准方向。主干网络的影响:

ξ\xiξ阈值参数小于1,公式10的指数部分可能为负,使训练时的梯度减小。
阈值参数大于1,损失可能比较大,影响了身份损失的有效性。
阈值参数等于1,刚好足以保持指数非负,并且可以简化超参数。

expAT损失函数中参数的比例

阈值的影响:

4.2 与SOTA比较

可视化效果:由于红外图像包含很少的颜色信息,因此在处理包含相似轮廓但不同颜色的图像时,模型会产生混淆。
由于监控红外摄像机的成像特性,红外模态中的纹理信息也较差。如第四行查询图像所示,衬衫的格子不可识别,导致对应top-1结果匹配失败。

第三行T9,看起来像是查询,而不是正确匹配T1,因为RGB摄像头没有足够清晰的捕捉腹部的服装图案,而热敏摄像头由于提问的原因在该区域有较高的响应。

大多数手工设计的基于特征的方法是专门为RGB领域设计的,利用红外模式中不可用的颜色信息,因此,RGB方法在IR领域中性能较差。基于深度学习的方法是数据驱动的,能够对不同模式自适应学习几何和语义特征,因此有更强的性能。

更多的细节可以去看论文的对比效果,都比较清晰。

5. 总结

本篇论文提出expAT loss函数,从角度方面对问题进行分析,提取具有角度代表性的embedding vector of images。还采用common space batch normalization帮助损失函数达到稳定并且学习嵌入向量的大小。

行人重识别论文阅读12-Bi-directional Exponential Angular Triplet Loss for RGB-Infrared Person ReID相关推荐

  1. 行人重识别论文阅读2-视频中基于时空相关性和拓扑学习的行人重识别(CTL)

    视频中基于时空相关性和拓扑学习的行人重识别 Spatial-Temporal Correlation and Topology Learning for Person Re-Identificatio ...

  2. 【行人重识别论文阅读笔记——VPM】

    [阅读心得] 行人重识别经典论文--VPM 写在前面 1. Abstract 2. Introduction 3. VPM 3.1 Architecture 3.2 Inference 3.3 Sel ...

  3. [行人重识别论文阅读]无监督学习发展与小结

    Unsupervised domain adaptation (UDA) for person re-ID. UDA methods have attracted much attention bec ...

  4. [行人重识别论文阅读]Fine-Grained Shape-Appearance Mutual Learning for Cloth-Changing Person Re-Identification

    论文地址 论文代码:暂无 文章思想 在上篇文章中我们引入了sketch(行人轮廓图)的思想去解决换衣问题,但是我们会在实践中发现sketch的优劣性严重影响了最后实验结果的好坏.此篇论文的核心思想就提 ...

  5. [行人重识别论文阅读]Invariance Matters: Exemplar Memory for Domain AdaptivePerson Re-identification

    论文链接:https://arxiv.org/abs/1904.01990 代码:https://github.com/zhunzhong07/ECN Abstract 1.传统的无监督方法只关注于缩 ...

  6. 行人重识别论文阅读(2021.7.3-7.11)

    一 各种方法性能比较 Method Key Market  r1 Market mAP Duke r1 Duke mAP (1)BOT global+BNNeck 94.5 84.5 86.4 76. ...

  7. [行人重识别论文阅读]AlignedReID: Surpassing Human-Level Performance in Person Re-Identification

    论文地址: 代码地址: Abstract 摘要部分明确提出了本文的重要思想,利用局部特征学习影响全局特征学习,并指出局部特征的学习方法是通过计算局部特征间的最短距离进而aligned局部特征. 原文: ...

  8. 论文阅读——TR-GAN: Topology Ranking GAN with Triplet Loss for Retinal Artery/Vein Classification

    论文阅读--TR-GAN: Topology Ranking GAN with Triplet Loss for Retinal Artery/Vein Classification 基于对抗神经网络 ...

  9. 行人重识别 代码阅读(来自郑哲东 简单行人重识别代码到88%准确率)

    来自郑哲东 简单行人重识别代码到88%准确率 阅读代码 prepare.py 数据结构 部分代码 一些函数 model.py ClassBlock ResNet50 train.py 一些参数 使用f ...

  10. 行人重识别论文--A Bottom-up Clustering Approach to Unsupervised Person Re-identification

    A Bottom-up Clustering Approach to Unsupervised Person Re-identification 目录 A Bottom-up Clustering A ...

最新文章

  1. vagrant up报错 Warning: Authentication failure. Retrying...解决方案
  2. Oracle RAC禁用DRM
  3. 深入理解分布式技术 - 分布式缓存总结回顾
  4. 图解JVM垃圾回收算法
  5. 蛋白质组学和代谢组学方法在生物标志物发现中的应用 Proteomic and Metabolomic Approaches to Biomarker Discovery
  6. spring的InitializingBean介绍
  7. MybatisPlus实现分页
  8. GraphQL报错:error: NetworkError when attempting to fetch resource.
  9. 技术管理—管理书籍推荐
  10. C++ 定义 string
  11. php scandir sftp,CentOS 下使用SFTP实现网站自动生成FTP账号,实现Chroot功能
  12. SIFT(尺度不变特征变换)算法浅析
  13. dll创建及调用(VS2005)
  14. flutter 推荐插件:path_provider
  15. liferay+portlet+开发实例
  16. mrtg监控硬盘容量,内存占用,CPU占用 二
  17. 2022-2027年中国电动汽车充电站及充电桩行业市场深度分析及投资战略规划报告
  18. html英文期刊参考文献,英文参考文献标准格式
  19. 库存成本计算方法简介
  20. 北京单身狗都去哪儿了

热门文章

  1. 决策树分析,让你的风险应对更专业
  2. Leetcode 741. Cherry Pickup DP
  3. [SharePoint教程系列]安装之后的常见操作 如何打开管理中心
  4. linux网络端口失效( Device eth0 does not seem to be present,delaying initialization)解决方法
  5. java.sql.SQLException:
  6. 批量保存网页_一键下载网页所有图片,把美丽存下来
  7. Python-XML文件读取/添加/修改方法记录(一)
  8. 路由器下一跳地址怎么判断_路由器工作原理(一)
  9. 在vscode中打开PDF文件
  10. 移动支付的方式有哪些拾方易告诉你