Infrared-Visible Cross-Modal Person Re-Identification with an X Modality (AAAI 2020)
Infrared-Visible Cross-Modal Person Re-Identification with an X Modality (AAAI 2020)
1. Motivation
- 可见光图像包含颜色、外观等信息,波长较短;红外图像包含结构和轮廓信息,波长较长,两个模态差异大
- 当前存在的方法都有以下弊端:对参数敏感,难收敛,计算量大。如何减少两个模态间的差异成为了解决跨模态行人重识别的关键问题。
- 大部分方法都是将两个模态图像映射到同一个特征空间,如图 (a) 所示(颜色一样的为同一个id的行人),直接映射的方式,难以很好的把两个模态的同一个id聚类到一起,因此本文提出了一个引入中间模态X,用轻量级网络,以自监督的方式学习到可见光和红外图像的知识。如图 (b) 所示,将难的双模态的跨模态 ReID 任务转化为较为容易的三模态的跨模态 ReID 任务。
2. Method
X Modality
- 简述
相对于其他方法(cmGAN,AlignGAN)用GAN方法学习判别性特征,GAN更为复杂、难训练,而本文提出的 X 模态是一种用轻量级网络,以自监督方式,额外代价可忽略不计的生成器生成的中间辅助模态,更为容易训练。
- 组成
由两个 1x1 的卷积和一个 ReLU 激活层构成,可见光图像作为输入, 先用一个 1x1 卷积处理为单通道图像,再用另外一个 1x1 卷积进行升维,恢复成三通道图像。ReLU 激活层用于提高网络的非线性表达能力。
优点
- 可以用可见光图像的标签作为训练标签,以一种自监督方式进行训练
- GAN方式的重建信息包括通道维度和空间维度信息,这样会破坏原始的空间结构信息,且复杂难以优化。而本文的轻量级网络只对通道信息进行恢复,简单且容易训练。
Testing
在测试阶段,选择红外图像(IR)作为查询,可见光图像(RGB)作为候选集,检索出与查询图像距离(欧氏距离)和最小的RGB图像和X模态图像,返回其索引,公式如下:
Overall
本文方法:先用一张RGB图像生成X模态的图像,然后将RGB、IR、X三个模态的图像分别输入同一个backbone(ResNet-50)中,使用模态间(CMG)和模态内(MRG)两个约束进行训练。接下来介绍 CMG 和MRG 两个约束:
- CMG



跨模态约束(CMG)包含两个部分,分别是 IR 模态和 X 模态之间的 cross 损失和 IR 模态和 RGB 模态之间的 cross 损失。这里的 cross 损失与Triplet 损失相似,其目的是将两个模态间同一个ID行人的图像距离拉近,不同ID的距离拉远。从而达到 IR-X、 IR-RGB 跨模态间的正样本距离拉近。
- MRG

对于 IR 模态:



模态内约束(MRG)由三个模态的损失构成,这里只说明 IR 模态下的损失,其余两个模态同理可得。IR 模态内的损失由两部分构成,一个是 id 损失,一个是 triplet 损失,相对于 CMG 比较简单。
- Optimization

上式为整个网络训练损失函数,其中,$ \lambda $ 是 CMG 的权重系数,用于衡量跨模态约束的对整体性能提升的贡献。
3. Experiments
I. Comparison with sota

总体来说,在两个数据集上都取得较为明显的提升。


与 cmGAN, D$ ^2 $RL , AlignGAN 使用同一个 backbone, 本文的方法在 SYSU-MM01 上提升更多。
II. Ablation study

其中 Baseline 表示只使用两个模态内的损失 $ \mathcal{L}_V $ 和 $ \mathcal{L}_I $ 进行训练; Baseline + X 表示引入 X 模态后,使用模态内的损失 $ \mathcal{L}_V $、 $ \mathcal{L}_I $ 和 $ \mathcal{L}_X $ ; Baseline + X + CMG 表示在使用模态内损失的基础上加入模态间损失 CMG。 由表可见,引入 X 模态有助于降低两个模态的差异性,使用 CMG 损失能进一步提升跨模态 ReID 任务的性能。
III. Discussions
A closer look at X


由上图知,可见光图像的三个颜色通道的统计是相似的,然而在 X 模态中,R 通道的强度比 G、B两个通道更强,可视化的视觉效果就是,X模态的图像偏红,介于 RGB 和 IR 两个模态之间,验证了通过引入中间模态有助于减小跨模态之间的鸿沟。

Table 5 展示了用其他方案生成的模态替代 X 模态的实验结果。其中 Mean 表示将 RGB 图像进行逐通道计算均值,Gray 表示将 RGB 图像转化为灰度图,V 表示选取 RGB 图像的 HSV 颜色空间中的 V 信息; Y 表示选取 RGB 图像的 YCbCr 颜色空间中的 Y信息。由实验可知,采用轻量级网络生成的 X 模态效果最佳。
IV. Parameter analyse

4. Conclusion
本文亮点在于引入一个中间模态 X,旨在减少两个模态间的差异性,更好的学习到两个模态间的联系。
X 模态是由一个轻量级网络,以自监督方式生成的,额外计算量可忽略不计。
Infrared-Visible Cross-Modal Person Re-Identification with an X Modality (AAAI 2020)的更多相关文章
- 关于Delphi错误:Cannot make a visible window modal
Delphi的fsMDIChild类型的窗体是不能使用ShowModal的,否则会弹出"Cannot make a visible window modal"异常, 但是把fsMD ...
- {ICIP2014}{收录论文列表}
This article come from HEREARS-L1: Learning Tuesday 10:30–12:30; Oral Session; Room: Leonard de Vinc ...
- Image Processing and Computer Vision_Review:Local Invariant Feature Detectors: A Survey——2007.11
翻译 局部不变特征探测器:一项调查 摘要 -在本次调查中,我们概述了不变兴趣点探测器,它们如何随着时间的推移而发展,它们如何工作,以及它们各自的优点和缺点.我们首先定义理想局部特征检测器的属性.接下来 ...
- 2016CVPR论文集
http://www.cv-foundation.org/openaccess/CVPR2016.py ORAL SESSION Image Captioning and Question Answe ...
- CVPR2016 Paper list
CVPR2016 Paper list ORAL SESSIONImage Captioning and Question Answering Monday, June 27th, 9:00AM - ...
- Kendo UI使用笔记
1.Grid中的列字段绑定模板字段方法参数传值字符串加双引号: 上图就是个典型的例子,openSendWin方法里Id,EmergencyTitle,EmergencyDetail 三个参数,后两个参 ...
- [转]Angular——提示框
本文转自:https://blog.csdn.net/whm18322394724/article/details/80177950 版权声明:本文为博主原创文章,未经博主允许不得转载. https: ...
- (转)Awesome Knowledge Distillation
Awesome Knowledge Distillation 2018-07-19 10:38:40 Reference:https://github.com/dkozlov/awesome-kno ...
- 论文笔记之:Learning Cross-Modal Deep Representations for Robust Pedestrian Detection
Learning Cross-Modal Deep Representations for Robust Pedestrian Detection 2017-04-11 19:40:22 Moti ...
随机推荐
- vue项目按需加载的3种方式
本文重要是路由打包优化: 原理:利用webpack对代码进行分割是懒加载的前提,懒加载就是异步调用组件,需要时候才下载. 1.vue异步组件技术 vue-router配置路由,使用vue的异步组件技术 ...
- [每日一题系列] LeetCode 1013. 将数组分成和相等的三个部分
题目: 给你一个整数数组 A,只有可以将其划分为三个和相等的非空部分时才返回 true,否则返回 false. 形式上,如果可以找出索引 i+1 < j 且满足 (A[0] + A[1] + . ...
- 机器学习实战:意大利Covid-19病毒感染数学模型及预测
作者:Gianluca Malato deephub翻译组:刘欣然 当今世界正在与一个新的敌人作斗争,那就是Covid-19病毒. 该病毒自首次在中国出现以来,在世界范围内迅速传播.不幸的是,意大利的 ...
- nginx显示静态html爆502 bad gateway的错误提示
在centos的服务器上,没有启动php-fcgi. 本来是想设置显示一个静态文件目录的,用不着php,于是就关闭了php-fcgi. 结果打开爆了一个大大的nginx502 bad gateway的 ...
- ReentrantLock 源码分析以及 AQS (一)
前言 JDK1.5 之后发布了JUC(java.util.concurrent),用于解决多线程并发问题.AQS 是一个特别重要的同步框架,很多同步类都借助于 AQS 实现了对线程同步状态的管理. A ...
- ARM WIFI AP 模式 使用 iptables nat 转发 通过 LAN 网线上网
编译内核,支持 iptables 和 forward 和 nat. 编译内核,使用新内核启动arm 开发板. 编译内核支持 iptables-> Networking support (NET ...
- gcc错误[Error] ld returned 1 exit status
出现这个错误的原因是:(目前遇见两种情况了) 你的编译器正在执行刚刚的程序还没关:小黑框还在. 解决措施:关闭就好. 定义的函数和调用的函数名字不一样,也会造成产生这种错误!!!代码如下: bool ...
- 【Weiss】【第03章】练习3.25:数组模拟队列
[练习3.25] 编写实现队列的例程,使用 a.链表 b.数组 Answer: 在这章一开头就已经写了个链表的队列例程了,所以实际上只要做b小题就可以. 数组模拟队列和链表的两点小不同是: ①.数组空 ...
- main.c(53): error: #268: declaration may not appear after executable statement in block
这个问题是在编译STM32的程序时遇到的,这个错误的原因是对于变量的声明不能放在可执行语句后面,必须在主函数开头声明变量.在程序中声明一个变量时,需要在可执行语句之前声明,否则会出现以上错误.
- 奇思妙想-java实现另类的pipeline模式
磕叨 在公司做项目是见到前辈们写的一端任务链的代码,大概如下 Runnable task = new TaskA(new TaskB(new TaskC(new taskD()))); task.ru ...