文章基本信息

  • 文章名称:Day-Night Cross-domain Vehicle Re-identification
  • 发表会议/年份:CVPR 2024
  • 作者:Hongchao Li, Jingong Chen, Aihua Zheng, Yong Wu, Yonglong Luo
  • 单位:Anhui Normal University, Anhui University

摘要

本文提出了一种新颖的昼夜双域调制(DNDM)车辆再识别框架,解决了跨昼夜性能问题(之前工作都是在良好光照下)。它包括一个夜间域眩光抑制模块和一个双域结构增强模块,以增强低光环境下的车辆特征。通过开发跨域类别感知模块,本文促进了两个域中外观和结构特征的互动,并提供了包含昼夜图像的新数据集DN-Wild和平衡数据集DN-348。实验结果表明,该框架在昼夜跨域车辆再识别中的鲁棒性。

之前工作存在的问题

  • 跨昼夜性能的忽视
  • 热(近)红外摄像机的高成本和环境光干扰(无法像行人重识别转化为VIReID)
  • 数据集中的样本不平衡
  • 跨域特征差异带来的挑战
  • 类别内差异大导致的泛化能力不足

主要贡献/创新

  • 我们提供了两个标准化基准数据集,DN-Wild和DN-348,以促进DN-ReID的研究。这些基准数据集将免费向学术研究公众开放。
  • 我们提出了昼夜双域调制(DNDM)框架,集成了眩光抑制、结构增强和类别感知的训练,以动态调制昼夜跨域车辆特征。
  • 在具有挑战性的基准数据集DN-348和DN-Wild上进行的详尽实验验证了我们的DNDM在昼夜跨域车辆ReID问题上的优越性能和潜力。

方法

Pasted image 20240710100427

3.1 Model Architecture

提出的DNDM框架利用ResNet-50作为骨干网络,从昼夜图像中提取特征。为了解决夜间眩光问题,框架引入了夜间域眩光抑制(Night-domain Glare Suppression, NGS)模块。双域结构增强(Dual-domain Structure Enhancement, DSE)模块聚合局部窗口的梯度,捕捉多样的结构表示。跨域类别感知(Cross-domain Class Awareness, CCA)模块促进昼夜跨域特征的相互作用,增强外观和结构表示在骨干网络各个阶段的有效利用。

3.2 Baseline

昼夜跨域车辆再识别(DN-ReID)旨在检索昼夜环境中感兴趣的车辆。给定一对车辆图像 I={(IDay,INight),y}I = \{(I^{Day}, I^{Night}), y\},其中 IDayI^{Day}INightI^{Night} 分别是输入的白天和夜间车辆图像, yy 是相关的车辆身份标签。由骨干网络编码的相应多阶段特征张量表示为 TsmT_s^m,其中 s{0,1,2,3,4}s \in \{0, 1, 2, 3, 4\}m{Day,Night}m \in \{Day, Night\}。如图3(a)所示,遵循ResNet-50骨干网络,我们使用全局平均池化(GAP)层来获得相应的特征向量 fm=GAP(T4m)f^m = GAP(T_4^m)。网络随后针对交叉熵损失 LceL_{ce} 和三元组损失 LtriL_{tri} 进行优化。交叉熵损失公式如下:

Lce=ylog(Softmax(FCclass(fm))),L_{ce} = -y \log(\text{Softmax}(FC_{class}(f^m))),

其中 FCclassFC_{class} 表示预测分类结果的全连接层,Softmax 是获取归一化概率的函数。值得注意的是,fDayf^{Day}fNightf^{Night} 共享相同的 FCclassFC_{class}。三元组损失公式如下:

Ltri=max(0,dijp+margindikn),L_{tri} = \max(0, d_{ij}^p + \text{margin} - d_{ik}^n),

其中 (i,j,k)(i, j, k) 表示每个训练批次内的一个困难三元组。对于白天锚定样本 iijj 来自相应的夜间正样本集,kk 来自白天负样本集。对于夜间锚定样本 iijj 来自相应的白天正样本集,kk 来自夜间负样本集。dijp/diknd_{ij}^p / d_{ik}^n 表示正/负样本对的成对距离,margin = 0.3 表示三元组距离边界。

尽管上述骨干网络可以提取车辆特征,但它并不能有效解决车灯眩光、低光环境和域差异带来的挑战。为了解决DN-ReID中的挑战,我们引入了夜间域眩光抑制(NGS)模块、双域结构增强(DSE)模块和跨域类别感知(CCA)模块。

总结

昼夜跨域车辆再识别(DN-ReID)提出了利用骨干网络提取昼夜环境中的车辆特征,优化交叉熵损失和三元组损失。然而,传统方法无法有效解决车灯眩光、低光环境和域差异的问题。为此,本文引入了夜间域眩光抑制(NGS)模块、双域结构增强(DSE)模块和跨域类别感知(CCA)模块,以应对这些挑战。

3.3 NGS

Pasted image 20240710104143

借鉴研究[2, 19]中强调的视觉提示概念,视觉提示的整合在识别任务的确切细节时至关重要。我们提出了一个夜间域眩光抑制(Night-domain Glare Suppression, NGS)模块,该模块利用眩光提示引导注意力到无眩光区域,并减少车灯眩光的影响。给定一个夜间车辆图像 INightI^{Night},我们首先通过卷积块提取特征张量 T0NightT_0^{Night}:

T0Night=Mxp2×2(ReLU(BN(conv7×7(INight)))),T_0^{Night} = M_{xp2\times2}(\text{ReLU}(\text{BN}(\text{conv}_{7\times7}(I^{Night})))),

其中 conv7×7\text{conv}_{7\times7} 表示一个7×7卷积操作,BN表示批归一化操作,ReLU表示修正线性单元,Mxp2×2M_{xp2\times2} 表示2×2最大池化操作。

同时,我们将夜间车辆图像 INightI^{Night} 转换为灰度图像 IG=rgb2gray(INight)I^G = \text{rgb2gray}(I^{Night})。然后,我们应用亮度阈值220来识别夜间图像中的高亮区域。在识别高亮区域后,我们将相邻像素组合成区域,同时丢弃像素较少的区域。最后,我们从初始夜间图像中获得二进制掩码 MGM^G其中1表示受眩光影响的像素,0表示未受眩光影响的像素。该二进制掩码作为输入包含在眩光抑制模块中,并与特征张量 T0NightT_0^{Night} 进行调制。具体来说,我们将特征张量 T0NightT_0^{Night} 与二进制掩码 MGM^G 连接,然后将它们输入到一个可学习的投影向量 VR(C0+1)×1V\in \mathbb{R}^{(C^0+1)\times 1} 中:

M0Night=Sigmoid(concat(T0Night,MG)V),M_0^{Night} = \text{Sigmoid}(\text{concat}(T_0^{Night}, M^G)V),

其中 M0NightRH0×W0×1M_0^{Night}\in\mathbb{R}^{H^0\times W^0\times 1} 表示学习到的域抑制掩码,Sigmoid指的是S形函数。

除了夜间图像外,我们的NGS模块还受到白天图像的指导。基本思想是利用一个虚拟掩码 zeros(MG)\text{zeros}(M^G) 来提示无眩光白天特征和有眩光夜间特征之间的差异:

M0Day=Sigmoid(concat(T0Day,zeros(MG))V),M_0^{Day} = \text{Sigmoid}(\text{concat}(T_0^{Day}, \text{zeros}(M^G))V),

在此过程中,输入之一是 T0NightT_0^{Night}MGM^G 的连接。另一个输入是一个无眩光的白天特征张量 T0DayT_0^{Day},与一个全零掩码 zeros(MG)\text{zeros}(M^G) 连接。基于域抑制掩码 M0mM_0^m,最终的抑制过程可以表示为:

T0m=T0mαM0mT0m,T_0^m = T_0^m - \alpha M_0^m \odot T_0^m,

其中 T0mT_0^m 表示经过眩光抑制操作后的昼夜特征,α=0.5\alpha = 0.5 是用于平衡原始特征和弱化特征的超参数。图3(b)展示了我们NGS模块的结果,说明了眩光区域的成功分离。在执行上述操作后,我们将 T0mT_0^m 反馈到骨干网络中以获取相应的特征张量 TsmT_s^m

总结

本文提出的夜间域眩光抑制(NGS)模块利用视觉提示有效减少车灯眩光的影响。通过对夜间图像进行特征提取、灰度转换和亮度阈值处理,我们生成了二进制掩码来识别受眩光影响的区域。该掩码用于调制特征张量,从而增强无眩光区域的特征表示。NGS模块还结合了白天图像信息,以提示昼夜特征之间的差异。最终,通过这些操作,成功实现了昼夜特征的分离和增强,显著提高了车辆再识别的准确性。

代码实现

1

3.4 DSE

Pasted image 20240710105754

常见的车辆再识别网络主要关注提取车辆外观特征。然而,外观特征容易受到低光环境的影响。为了提高昼夜车辆图像对的特征一致性,我们引入了双域结构增强(Dual-domain Structure Enhancement, DSE)模块。DSE模块的主要思想是通过逐像素梯度从外观特征中提取结构信息。具体来说,DSE模块处理中间特征图 TsmT_s^m,并计算每个像素位置 xx 及其周围区域大小为 N×NN \times N 的逐像素非负局部梯度 GG:

G(x,c,d)=max(0,Tsm(x+d,c)Tsm(x,c))G(x, c, d) = \max(0, T_s^m(x + d, c) - T_s^m(x, c))

其中 c[1,Cs]c \in [1, C^s] 表示通道维度的索引,d[dn,dn]×[dn,dn]d \in [-d_n, d_n]\times[-d_n, d_n] 表示每个像素 xx 在其周围区域的邻居位置。区域大小为 N×NN \times Ndn=(N1)/2d_n = (N-1)/2。此外,我们提出了一种特征加权操作,将详细的局部梯度整合成一个简明的结构描述符,使得能够同时从两个域中学习几何结构:

S(x,c,d)=G(x,c,d)1+dG(x,c,d)Tsm(x+d,c),S(x, c, d) = \frac{G(x, c, d)}{1 + \sum_d G(x, c, d)} T_s^m(x + d, c),

S(x,c)=dS(x,c,d),S(x, c) = \sum_d S(x, c, d),

其中 SRHs×Ws×CsS \in \mathbb{R}^{H^s \times W^s \times C^s} 具有与原始特征张量 TsmT_s^m 相同的空间和通道尺寸。梯度引导的特征加权操作将邻居特征聚合成结构特征,从而将其空间维度从 N×NN \times N 降至 1×11 \times 1。这种转换将原始局部梯度 GG 转换为结构描述符 SS。简而言之,结构描述符由加权的外观描述符导出。然后,我们利用结构描述符作为外观描述符的附加输入:

Tsm=Tsm+βS,\overline{T_s}^m = T_s^m + \beta S,

其中 Tsm\overline{T_s}^m 表示结构增强操作后的昼夜特征,超参数 β=0.25\beta = 0.25 用于平衡原始特征和增强特征。

代码实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
class GradientComputation4(nn.Module):
def __init__(self):
super(GradientComputation4, self).__init__()
self.conv_layers = {}
self.relu = nn.ReLU()

def get_masked_conv(self, channels):
if channels not in self.conv_layers:
mask_conv = nn.Conv2d(in_channels=channels, out_channels=channels, kernel_size=5, padding=2, groups=channels, bias=False)
mask = 1 * torch.ones(1, 1, 5, 5)
mask[0, 0, 2, 2] = -24 # 要将所有求和后-最中间24次,所以是1-25次
mask_conv.weight.data = mask.repeat(channels, 1, 1, 1)
for param in mask_conv.parameters():
param.requires_grad = False
self.conv_layers[channels] = mask_conv

return self.conv_layers[channels]

def forward(self, img):
b, c, h, w = img.shape
mask_conv = self.get_masked_conv(c)
mask_conv.cuda()
masked_output = mask_conv(img)
masked_output = self.relu(masked_output)

sum_output = masked_output / 24.0 # 做平均

x = 0.9 * img + 0.25 * sum_output # 然后按照该式子进行加权就可以了

return x

总结

双域结构增强(DSE)模块通过逐像素梯度从车辆图像的外观特征中提取结构信息,以提高昼夜图像对的特征一致性。DSE模块计算每个像素及其周围区域的局部梯度,将局部梯度整合成结构描述符,并将其作为附加输入,增强外观特征表示。通过这种方式,DSE模块在低光环境下改善了车辆再识别的鲁棒性和准确性。

3.5 CCA

Pasted image 20240710111233

在我们的网络中,我们首先使用ResNet-50从昼夜跨域车辆图像中提取外观特征。然后,我们应用眩光抑制模块来减少夜间图像中车灯眩光的影响。此外,我们引入结构增强模块来改进外观特征。然而,这些模块未能考虑昼夜域之间的差异。

为了应对昼夜域间差异,我们为DN-ReID问题引入了跨域类别感知(Cross-domain Class Awareness, CCA)模块。给定昼夜跨域车辆特征 TsmRHs×Ws×CsT_s^m \in \mathbb{R}^{H^s \times W^s \times C^s},其中 s{1,2,3,4}s \in \{1,2,3,4\},我们使用卷积层将其转换为投影 PsmP_s^m。这个调整旨在匹配全连接层 FCclassFC_{class} 的输入大小,如公式(1)所述。数学表达如下:

Psm=BN(conv1×1(Tsm)),P_s^m = \text{BN}(\text{conv}_{1 \times 1}(T_s^m)),

其中 conv1×1\text{conv}_{1 \times 1} 表示1×1卷积操作,BN表示批归一化操作。受类激活映射(CAM)操作的启发,CAM可以突出类特定的判别区域。我们引入投影 PsmP_s^m 来计算昼夜图像的类激活映射:

Aim=Sigmoid(FCclass(Psm)),A_i^{m} = \text{Sigmoid}(FC_{class}(P_s^m)),

其中 CC' 代表训练集中类的总数。对于第 yy 类的类激活映射分别表示为 AyDayA_y^{Day}AyNightA_y^{Night},其中 yy 表示车辆身份标签。Sigmoid函数用于归一化CAM。

为了促进昼夜跨域特征的相互作用,我们建议在训练阶段交换昼夜样本的类感知信息:

PsDay=PsDayAyNight,P_s^{Day} = P_s^{Day} \odot A_y^{Night},

PsNight=PsNightAyDay,P_s^{Night} = P_s^{Night} \odot A_y^{Day},

其中 \odot 表示元素级别的乘法。重要的是,这种交换过程仅在训练阶段发生,测试阶段不交换类激活映射。为了确保 PsDayP_s^{Day}PsNightP_s^{Night} 具有相同的通道数,我们将 conv1×1+BN+ReLU\text{conv}_{1 \times 1} + \text{BN} + \text{ReLU} 操作纳入CCA模块。结果特征表示为:

Tsm=Tsm+ReLU(BN(conv1×1(Psm))).T_s^m = T_s^m + \text{ReLU}(\text{BN}(\text{conv}_{1 \times 1}(P_s^m))).

总体损失

我们采用广泛使用的ResNet-50作为骨干网络。在第一个块之前集成了提出的夜间域眩光抑制(NGS)模块。此外,我们在每个卷积块之后集成了双域结构增强(DSE)模块和跨域类别感知(CCA)模块。整个网络以端到端方式进行训练。总体损失函数如下:

L=Lce+Ltri.\mathcal{L} = \mathcal{L}_{ce} + \mathcal{L}_{tri}.

总结

跨域类别感知(CCA)模块旨在解决昼夜域之间的差异。通过将车辆特征转换为投影并计算类激活映射,CCA模块促进了昼夜样本之间的特征交互。结合夜间域眩光抑制(NGS)模块和双域结构增强(DSE)模块,CCA模块增强了车辆再识别系统在昼夜跨域场景中的鲁棒性。通过端到端训练,网络在特征提取和域适应方面表现出色,显著提升了再识别的准确性。

实验结果

Pasted image 20240710151541

DN-348上的测试结果

比较了DNDM和最先进的VI-ReID方法在DN-348数据集上的性能。DNDM在处理夜间车辆图像时表现更佳,尤其是在昼夜转换和夜昼转换设置中显著优于VI-ReID方法。通过夜间领域眩光抑制和双领域结构增强,DNDM有效提升了夜间车辆图像的特征学习能力。研究表明,DN-ReID在夜间匹配车辆图像方面具有挑战性,但潜力巨大。

DN-Wild上的测试结果

本文比较了DNDM和最先进的方法在DN-Wild数据集上的性能。DNDM在昼夜转换和夜昼转换设置中均表现出色,显著优于ReID强基线BOT。通过眩光抑制、结构增强和类别感知的训练,DNDM有效地学习了昼夜跨域特征。然而,PMT在DN-Wild数据集上的表现不如在DN-348数据集上,这表明仅考虑域间差异是不够的,需解决样本不平衡问题。总体上,DNDM在大规模数据集上显示了强泛化能力。

消融实验

Pasted image 20240710152045

每个组件的有效性

通过在DN-348数据集上的消融研究,本文验证了NGS、DSE和CCA模块对模型性能的显著贡献。单独启用NGS模块时,Rank-1性能达到69.0%;启用NGS和DSE模块时,性能提升至69.9%;三者结合时,性能达到70.7%。这些结果证明了各模块单独及联合使用时的一致性性能提升。

ResNet-50的哪个阶段插入DSE模块和CCA模块的影响

Pasted image 20240710152432

本文分析了在ResNet-50的不同阶段插入DSE和CCA模块对性能的影响。实验表明,随着模块在ResNet-50各阶段的逐步集成,DN-348数据集的Rank-1分数从69.6%提升至70.7%,mAP从47.0%提升至47.5%。这些结果验证了昼夜双域调制框架在学习昼夜跨域信息以提升DN-ReID性能方面的有效性。

Other Analysis

超参数分析:为了评估两个超参数的影响,我们进行了定量比较并在图4中报告了结果。α和β的不同值显着影响NGS和DSE模块的性能。据观察,当 α 和 β 值分别设置为 0.5 和 0.25 时,可实现最佳性能。

Pasted image 20240710152644

可视化研究:为了进一步分析我们DNDM的有效性,我们在DN-348数据集上进行实验,以计算跨身份和同身份距离的频率。图5(a,b)分别显示了基线方法和提出的DNDM获取的距离分布。将图5(b)与图5(a)进行比较,我们可以观察到δ1 < δ2。这表明使用所提出的方法,跨身份和同身份距离显著分离。

此外,我们使用T-SNE方法在二维特征空间中可视化了20辆车的特征分布。在图5(c,d)中,可以明显看出,所提出的DNDM显著减少了同一身份白天和夜间图像之间的距离,并成功地最小化了域间差异。

总结

据我们所知,这是首个解决昼夜跨域车辆重识别(DN-ReID)问题的研究。我们贡献了两个新的DN-ReID数据集,并提出了一种创新的DN-ReID方法。与白天到白天的车辆重识别相比,DN-ReID面临车灯眩光、低光环境和域间差异带来的挑战。因此,我们提出了昼夜双域调制(DNDM)网络,该网络结合了眩光抑制、结构增强和类别感知的学习,以动态调制昼夜跨域车辆特征。广泛的实验表明,所提出方法具有良好的性能。

此外,基于我们的研究,我们强调了DN-ReID的几个重要发现。首先,为夜间的车辆图像注释是一项挑战。其次,增强夜间车辆图像中的特征被证明是有效的。最后,考虑昼夜跨域数据识别相同ID的能力是值得的。未来,我们将增强上述组件,以推进DN-ReID的最新技术,并探索无标签的DN-ReID。


本站由 @anonymity 使用 Stellar 主题创建。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。