车辆重识别(CVPR2024昼夜跨域车辆重识别)论文阅读2024/9/13

[1] Day-Night Cross-domain Vehicle Re-identification (CVPR 2024)
作者:Hongchao Li1, Jingong Chen1, Aihua Zheng2, Yong Wu1∗, Yonglong Luo1
单位:1安徽师范大学, 2安徽大学

摘要:
以往的车辆再识别( ReID )研究进展大多报道在良好的光照条件下,而忽略了跨昼夜的性能,这极大地阻碍了相关交通智能应用的发展。本文针对昼夜跨域交通场景,提出了一种新颖的昼夜双域名调制( Day-Night双域名Modulation,DNDM )车辆重识别框架。具体来说,提供了一个独特的夜间眩光抑制模块,以衰减来自原始夜间车辆图像的前大灯眩光。为了增强低光照环境下的车辆特征,我们在特征提取器中提出了双域结构增强模块,增强外观特征之间的几何结构。为了缓解昼夜域差异,我们开发了跨域类别感知模块,以促进外观和结构特征在两个域中的交互。在这项工作中,我们解决了昼夜跨域ReID ( DN-ReID )问题,并提供了一个新的跨域数据集DNWild,包括2,286个身份的昼夜图像,共计85,945张白天图像和54,952张夜间图像。此外,我们还考虑了白天和夜晚样本之间的平衡问题,并提供了一个名为DN - 348的数据集。穷举实验证明了所提框架在DNReID问题中的鲁棒性。

主要贡献:
提出了一种新颖的昼夜双域调制车辆重识别框架,该框架的主干网络为ResNet-50。除了主干网络还包括三个模块,其中夜间眩光抑制模块是用来衰减来自原始夜间车辆图像的前大灯眩光,双域结构增强模块是用来增强低光照环境下的车辆特征,跨域类别感知模块是用来缓解昼夜域差异,促进外观和结构特征在两个域中的交互。

创新点:
夜间眩光抑制( NGS )模块,该模块利用眩光提示来引导注意力向无眩光区域转移,并减少前照灯眩光的影响。双域结构增强模块(DSE模块)的主要思想是通过逐像素梯度从外观特征中提取结构信息,提高昼夜车辆图像对的特征一致性。而跨域类别感知模块(CCA)考虑了白天和夜间域之间的差异。

简介:
在VI - ReID中,Ye等人设计了一种基于加权三元组损失的注意力广义均值池化方法。Liu等人提出了一种记忆增强的单向度量学习方法来学习跨模态度量。Sun等人提出了一种稠密对比学习框架,促进了可见光-红外图像对的像素到像素的稠密对齐。Jiang等人设计了一个跨模态转换器,旨在联合探索VI - ReID的模态级对齐模块和实例级模块。Lu等人提出了一种名为渐进模态共享变压器的方法来减轻模态间隙的不利影响。Yu等人设计了一个模态统一网络,它可以动态地建模模式特异性和模态共享的表示,以缓解跨模态和模态内的变化。尽管这些方法考虑了模态内变化和模态间变化,但它们未能解决夜间车辆图像中前照灯眩光和低光环境所带来的挑战。

框图:
请添加图片描述
请添加图片描述

Cite:
@InProceedings{Li_2024_CVPR,
author = {Li, Hongchao and Chen, Jingong and Zheng, Aihua and Wu, Yong and Luo, Yonglong},
title = {Day-Night Cross-domain Vehicle Re-identification},
booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
month = {June},
year = {2024},
pages = {12626-12635}
}

阅读过程中的疑问:
特征嵌入是什么意思?
什么是模态、单模态、跨模态?

模态(Modality)是指信息或数据的不同形式或类型。在人工智能和数据处理领域,模态通常涉及到如何
表示和处理不同类型的数据,如图像、文本、音频等。

在特征嵌入图中,为什么不同模态之间会有模态间隙、域间隙?
什么是视觉提示(visual prompts)?
什么是类激活图?

什么是下采样?
什么是优化器?

数据增强,随机裁剪
“主干网络用于从白天和夜间图像中提取车辆外观特征张量”,为什么提取的是特征张量?略
交叉熵损失和三元组损失是什么意思?略
“NGS模块使用眩光掩码和可训练的投影向量,在抑制眩光的同时提取夜间特征”,这个眩光掩码和投影向量是什么意思?略
“DSE模块通过利用局部窗口内的特征梯度来学习结构表示。”,局部窗口是什么意思?
“CCA模块通过交换来自白天和夜晚域的类激活图来改善视觉和结构表示。”,这个类激活图是什么意思?怎么交换?略
T m s ∈ RHs×W s×Cs ,这个式子是什么意思?
请添加图片描述
T m s ,s是什么意思?

s 代表特征图的不同阶段或层次(stage)。具体而言,s 的取值范围为 {0, 1, 2, 3, 4},表示从网络的
不同层(如不同的卷积层)提取的特征。s=0 通常表示输入层或最底层的特征。s=1,2,3,4 代表逐渐向上
抽象的特征图,可能对应于更高层次的特征表示。

滤波器不就是卷积核吗,就只是换个名字而已
那么这个 7x7 ,64的卷积层,这个7x7是什么意思?

这个7×7指的是卷积核的大小,64指的是卷积核的数量

之前提到的残差块,那么这个残差块中的“1×1,64”是什么意思?

这是个1×1的卷积层,1×1是卷积核的大小,64指的是输出通道数(卷积核的数量)

那么这个1×1的卷积层的作用是啥?

维度调整:1×1 卷积用于改变特征图的通道数,比如从一个较高的通道数减少到 64,或者增加通道数。
特征组合:它可以通过权重组合不同的特征,从而提取更复杂的表示。
计算效率:这种小尺寸的卷积核计算量较小,有助于提高网络的效率。

假设有一个5×5,通道数为3的图片,它与一个1×1的卷积核进行卷积,那么这个图片的每一个通道与卷积核的每一个通道卷积之后再经过激活函数处理,得到特征图,然后各个通道的特征图相加,是这样吗?

正确的顺序是:每个输出通道的特征图在经过卷积和激活函数处理后,保持为独立的特征图,然后再将它们
进行相加。也就是说,激活函数是在特征图生成后应用的,而不是在所有特征图相加之后进行处理。这样可
以确保每个通道的非线性特征都得以保留。

对于ResNet的残差块,为什么在残差块内部要增加特征图的通道数,在两个残差块之间要减小特征图的通道数?

增加特征图的通道数
1,特征表达能力:通过增加通道数,可以提取更丰富和复杂的特征。这有助于模型学习更多的特征表示,尤
其是在较深的网络层中。,
2,信息传递:更高的通道数可以容纳更多的信息,帮助网络在更深的层次上保持有效的信息传递。
减小特征图的通道数
1,计算效率:在两个残差块之间减小通道数可以减少计算负担,降低模型复杂度,从而提高训练和推理的效
率。
2,维度匹配:当连接不同层的特征图时,需要保证它们的通道数一致。通过适当的卷积层调整通道数,确保
跳跃连接(skip connection)的顺利进行。
总之,增加和减小特征图的通道数是为了在保持信息丰富性的同时,控制计算复杂度,确保模型的高效性和
可训练性。

一个 5×5 的输入特征图,通道数为 64,经过全局平均池化层处理之后,得到的输出特征图的大小将是 1×1×64。首先,经过池化后的输出特征图的通道数取决于输入特征图的通道数,然后全局平均池化指的是将每一个通道的特征图的尺寸作为感受野,然后对这张图的像素值求平均数作为这个通道最终得到的输出特征图。

什么是感受野?

感受野指的是如果想要得到一个输出值,那么我需要选取输入特征图的多大的区域来进行计算

具体解释一下ResNet-50各部分

1, 输入层
输入图像:通常为 RGB 图像,尺寸如 224x224。
2,卷积层和最大池化层
Conv1:一个 7x7 的卷积层,使用 64 个滤波器,步幅为 2,负责提取低层特征。
Max Pooling:一个 3x3 的最大池化层,步幅为 2,减少特征图的尺寸,增加感受野。
3,残差块(Residual Block)
ResNet-50 的核心在于残差块,这些块通过跳跃连接(skip connection)实现残差学习
,减轻了深层网络的训练难度。
基本结构:每个残差块通常包含两个 3x3 的卷积层(Conv2),后面接一个短路连接。
Batch Normalization 和 ReLU:在每个卷积层后进行批归一化和激活函数 ReLU 的操作,有助于加速
训练和提高稳定性。
4,堆叠残差块
ResNet-50 由多个残差块组成,具体层次如下:
Conv2_x:包含 3 个残差块,输出通道数为 64。
Conv3_x:包含 4 个残差块,输出通道数为 128。
Conv4_x:包含 6 个残差块,输出通道数为 256。
Conv5_x:包含 3 个残差块,输出通道数为 512。
每个阶段的第一个残差块通常会增加通道数,并通过 1x1 的卷积层来实现维度匹配。
5,全局平均池化层
在所有残差块之后,使用全局平均池化层来将特征图的每个通道转换为一个单一的数值,
减小特征图的维度。
6,全连接层
最后,将池化后的特征输入到一个全连接层,以进行分类。输出层通常与任务的类别数量相对应
(如 ImageNet 数据集有 1000 类)。
7,跳跃连接(Skip Connection)
在每个残差块中,输入通过卷积层处理后,与输入直接相加,这种连接方式使得网络可以更容易地学习
到恒等映射,从而加深网络而不会导致梯度消失的问题。
总结:ResNet-50 通过深度学习、残差学习和跳跃连接,能够有效训练非常深的网络,同时保留高效的
特征学习能力。每个部分都在整体架构中发挥着关键作用,使其在各种视觉任务中表现出色。

在ResNet中,跳跃连接是每个残差块的输入直接加到这个残差块的输出吗?

是的

残差块内部卷积的步幅是多少?

在 ResNet 的残差块内部,卷积层的步幅(stride)通常有以下几种情况:
1,默认步幅:大多数情况下,卷积层的步幅设置为 1。这适用于大多数的卷积操作,以确保输出特征图的
空间尺寸与输入特征图相似。
2,下采样:在某些特定情况下,例如在网络的某些层中进行下采样时,卷积层的步幅可以设置为 这通常
发生在特征图尺寸需要减半的地方,以实现降维。
3,跳跃连接调整:当使用步幅为 2 的卷积层时,通常会在残差块中使用 1×1 的卷积层来调整跳跃
连接的尺寸,以确保输入和输出的通道数相匹配。
总之,残差块内部卷积的步幅一般为 1,只有在特定情况下会设置为 2。

批归一化:

工作原理
均值和方差计算:在每个小批量上计算输入的均值和方差。
归一化处理:将输入数据归一化,使其均值为 0,方差为 1。
可学习参数:通过缩放和偏移操作,允许模型恢复部分信息,使其更具灵活性。
可以理解为对每层输出进行一定调整使得输出不要过大,也不要过小

权重初始化:初始化w,b
什么是正样本?什么是负样本?

正样本
定义:正样本是指与特定基准样本(通常是锚点或查询样本)相似或属于同一类的样本。
示例:在人脸识别任务中,如果基准样本是某个人的照片,那么所有同一个人不同角度或表情的照片都
可以视为正样本。
负样本
定义:负样本是指与特定基准样本不相似或不属于同一类的样本。
示例:继续以人脸识别为例,如果基准样本是某个人的照片,那么任何其他人的照片都可以视为负样本。

Meanwhile, we convert the nighttime vehicle image INight to a grayscale image IG = rgb2gray(INight).解释一下
请添加图片描述
Then, we apply a brightness threshold of 220 to identify the highlighted pixels in the night image. After identifying the highlighted pixels, we combine the adjacent pixels into regions while discarding regions with fewer pixels.解释一下
请添加图片描述
Then, we apply a brightness threshold of 220 to identify the highlighted pixels in the night image. After identifying the highlighted pixels, we combine the adjacent pixels into regions while discarding regions with fewer pixels.解释一下
请添加图片描述
Specifically, we concatenate feature tensor T Night 0 ∈ RH0×W 0×C0 with the binary mask MG ∈ RH0×W 0×1, and then we feed them to a learnable projection vector V ∈ R(C0+1)×1. Mathematically, M Night 0 = Sigmoid(concat(T Night 0 , M G)V ), (4) where M Night 0 ∈ RH0×W 0×1 represents the learned domain suppression mask, and Sigmoid refers to the sigmoid function.解释一下
请添加图片描述
这个可学习的投影向量是怎么给出的?

随机初始化

请添加图片描述
(这个所学习到的掩码是对原始图像的高亮区域进行抑制的,通过和原始图像的特征图相乘来进行抑制)

请添加图片描述
现在有一个向量(a,b,c),这个向量与前面这个张量相乘,请给出结果
请添加图片描述
可以看出权重向量与(特征图和二值掩码的结合物)相乘并不会破坏图像数据

假设T(m,0)是一个3×3×3的张量,然后数据分别为(1-9,1.1-9.1,1.2-9.2),M(G)二值掩膜数据分别为(101,001,110),权重向量V=(a,b,c,d),那么将T(m,0),M(G)级联,并与V相乘得到的结果为请添加图片描述
假设激活函数不处理,那么M(m,0)就是上图,请添加图片描述
针对于这个公式,我们只需关注M(m,0)。首先对于M(m,0),不要管数据的存放的形式,特征和高亮像素都在这里了,不管权重向量采用高斯分布或者均匀分布,得到的值都是大致在(-1,1)范围内,都是比较小的,那么说明在权重初始化阶段就对高亮像素进行抑制了,那么对于反向传播调整权重向量的参数来说,如果调整的值变小,说明抑制欠缺,如果调整的值变大,说明抑制过度。当然最坏的情况下, 也有可能值变得很大,说明对眩光区域不仅不需要抑制,反而还需要增强。

ResNet网络结构图:
请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值