崔海朋,姜英昌
(青岛杰瑞工控技术有限公司,山东青岛 266000)
海上小目标重识别是指在跨摄像头跨场景下小型渔船等目标的识别与检索,即给定一个要查询的目标,确定这个目标是否在不同的时间出现在另一个地方,由不同的摄像头捕捉到。在货港非作业船只监控、渔港越界捕捞等领域有着广阔的应用前景。
传统的目标重识别方法利用手工设计的图像特征,如KISSME[1]、XQDA[2]、ACF[3]等,然而基于手工设计的特征表示有限,难以满足复杂场景下的目标重识别要求,难以获取令人满意的结果。近年来,随着卷积神经网络的蓬勃发展,基于深度学习的目标重识别方法增进了表征信息的提取,促进了度量学习方法的革新,提升了在各个数据集上的检索性能。自Yi等[4]首次应用深度神经网络解决ReID任务以来,接着已有无数方法(2017年Zhang等[5];2020年Lawen等[6];2018年Sun等[7];2017年Zhu等[8];2018年Fu等[9])及其他方法相继出现,然而,由于在现实场景中,常常存在光照、摄像机视角、复杂背景以及目标部分遮挡等多种因素的存在,往往会导致目标的检索性能大幅度下降,无法准确地识别目标。现有的一些重识别方法通过各种形式的卷积神经网络来学习区分嵌入和相似性度量[10-11]。但是这些模型只提取全局特征,未能很好地解决较大的类内差异,常导致检索性能大幅下降,比那些采用细节和局部特征的模型效率要低[12]。人们已经开发了一部分嵌入局部信息的深度学习模型[13-15],通过提取和比较行人的局部特征,试图解决由各种内在因素和外在影响引起的问题。但是这些方法利用附加的骨骼关键点或姿态估计模型来防止任意失准和背景杂波,这意味着需要大量的标记训练数据。
针对海上小目标识别,本文提出了一种基于通道和空间注意力网络来进行海上小目标重识别,它能自动选择有效的特征并抑制不太有用的特征。同时对输入图像进行平均分块,分别从局部和全局进行特征提取,使得该算法更有利于海上小目标的重识别。
通常,目标重识别一般可以分为基于身份的方法和基于验证的方法。识别模型搜索数据集中的目标,并分析哪个目标与查询中的目标是一致的,而验证模型则确定给定的一对目标是否是同一个目标。因此,这些模型具有不同的输入、特征提取和训练损失函数。为了学习更多的判别特征和扩大模型的泛化能力,许多最新的方法将这两个模型结合起来[11],并通过实验证明了它们的性能。然而,融合方法并没有充分考虑类内和类间的距离。针对这一问题,提出了一种多损失函数作为验证任务的损失函数,以约束分类误差和类距离。多损失函数度量特征与其对应的类中心在特征空间中的距离,以考虑类内聚集和类间分离。
鉴于基于卷积基线网络的分块(PCB)取得的优异效果[7],引入简单的平均分块的策略,有助于关注特征的细粒度信息,同时不要额外的先验知识匹配图像。具体来说,与PCB分块不同的是,分块策略是在不同的规模上进行的,而且是本着由粗到细的一个过程,将骨干网输出的三维特征向量进行分割,为了方便,直接等分成上、下两部分以及上、中、下三部分,同时为了调控全局间的关系,保留了全局的特征信息。通过该均等分块的方式,可以驱动模型从不同的细粒度更好地关注练样本中本身存在的自然相似性特征。
同时,将骨干网中引入空间和通道注意力[16]来强化关键的特征信息而不需要额外的辅助信息,注意模块自动学习和建模卷积特征通道之间以及空间下的相互依赖关系,能够有效地增强重要特征、抑制无关特征,同时该模块能够改善摄像机视角、目标部分遮挡以及检测器误差等问题带来的干扰。因此借助嵌入注意力机制,目标重识别的整个网络集中于有效的信道信息和空间信息,通过对卷积特征通道间的关系以及空间关系进行特征重标定和学习,可以有选择地突出贡献特征,抑制无用特征,提升了模型的判别能力。
在本节中详细介绍本文提出的基于卷积注意力机(CBAM)的目标重识别方法。具体来说,该模型将基于通道和空间注意力机制集成在重识别的骨干网中即ResNet50,对输入的特征图进行自适应特征细化。然后对最终的特征向量进行均等分块,从全局和局部分别进行优化,并采用端到端的方式进行训练,整个模型的架构如图1所示。其中,经骨干网获得的特征向量,为了获取更详细的全面的特征信息,从多粒度特征向量出发,进行全局和局部的划分优化。采用以ResNet50为基础,融入基于通道和空间注意力机制CBAM对目标特征关键信息进行强化,接着对最终输出的特征向量进行均等硬划分,得到多粒度的特征向量,进而从全局和局部对模型优化。最后采取多损失函数度量及进行模型优化,同时将梯度中心化算法融入Adam优化器中,加快模型的训练速度。
图1 基于注意力机制的海上小目标重识别模块
假设存在有标签的数据集{Xs,Ys},包括NS张目标图像,每个目标xi的身份是y i,该数据集总共有M类目标样本。本文的目的是给出查询目标样本xi,在指定的图像库中检索到该指定目标的过程。
注意力机制借助少量的参数,可以减少无关信息的干扰,从而提取更加有效的特征,进而提高重识别模型的判别性。本文将CBAM机制引入特征向量中,从通道和空间两个维度上,在没有显著增加计算量和参数量的前提下提升网络模型的特征提取能力。
如图1所示,针对ResNet50作为骨干网,输出前,在每个ResBlock的后面加上该模块,进行顺序排列通道注意力模块和空间注意力模块,并分别表示为。
(1)通道注意力模块
为了有效地计算通道维度下的特征,得到有意义的输入图像。同时对当前多个特征图沿空间分别使用平均池化和最大池化来收集独特的物体特征,从而得到更细的通道注意力,计算过程如下:
式中:σ为激活函数;M L P为多层感知器;F i为上述的三维特征图,总共有p+1部分,F i为在经过ResNet50中每个ResBlock后输出的特征张量;分别为将特征向量沿空间轴进行平局池化和最大池化后所得的特征向量。
(2)空间注意力模块
作为对通道注意力的补充,该注意力模块主要为了找到最具信息量的部分。为了计算空间注意力,有效地突出信息区域,沿着通道方向应用平均池化和最大池化操作,并将它们连接起来生成一个有效的特征描述符。
式中:f7×7为滤波器大小为7×7的卷积运算;分别为将特征向量沿通道轴进行平局池化和最大池化后所得的特征描述符,通过使用两个池化操作聚合成一个特征图。
如图2所示,为了从全局和局部分别获取更加详细的特征信息,引入了均等划分的策略,通过该方式,获取不同粒度下的特征向量,多粒度的特征向量包含全局和局部信息,使用几个部分级别的特征用于综合详细地描述重识别任务中的目标匹配。
图2 均等硬划分下的多粒度输出
具体来说,当输入一张目标图像x i后,经过融合CBAM注意力机制的骨干网得到一个激活后的三维张量特征,首先将完整的特征向量作为一个输出,保证模型对全局的一个掌控;接着,采用二等分和三等分硬划分策略,将特征输出分别垂直划分为两个垂直块和3个垂直块,从而得到5个垂直张量块,将其特征输出分别记为和。
最终为了挖掘到局部关键信息同时掌握全局的信息变化,将整个特征向量和5个被分割的局部三维特征图输入,即此时共有6部分输入。
经过均等划分后,从局部和全局两个方面引入多损失函数,进行优化目标模型。同时为了有效地优化模型,从两方面考虑重识别任务,一方面,将它作为一项识别任务,即识别输入目标的身份(数据集的标签);另一方面,将其作为验证任务,即确定两个输入的目标是否为同一个身份。
对于前一个任务,从表征学习的角度出发,即将目标重识别任务直接当作一个识别分类问题来看待。在给定数据标签的情况下,针对目标重识别网络模型的每部分输出,使用软交叉熵函数来优化目标重识别。如下所示:
式中:n为数据集中目标的身份数;为预测的ID;yi为真正的目标身份标签。
后者是验证任务,关于该任务,一般都将其作为二分类问题。尽管交叉熵在目标重识别中表现良好[17],但是它没有明确规定对于目标中正对和负对应该以怎样的方式存在,这可能会导致属于同一个目标的实例形成一个非常大的集群,同一个身份的目标的类内距离很大,而不同的类之间的距离在学习的特征空间中不够远。针对此,引入一个新的损失函数,通过样本间的约束(三元组损失[18])和样本与样本所属类的类型之间的约束(距离损失),该函数进一步限制图像对的距离。
式中:λ1和λ1为距离损失和三元组损失的权重系数;N为训练批次的大小;ck为样本xi所属的特征类型。
为自适应变量,其更新公式如下:
该公式进行使用批次中的样本进行随时更新样本所属的类心。所以针对目标重识别模型来说,总的损失为:
式中:λ1和λ1为距离损失和三元组损失的权重系数。
与特征图标准化BN[12]和权值标准化WS[13]这些对权值梯度简介操作的方法不同,梯度中心化GC(Gradient Centralization)方法直接作用于权值梯度,梯度中心化GC对权值梯度进行零均值化,通过计算梯度向量的均值来约束模型的损失函数,能够使得网络的训练更加稳定,并且能提高网络的泛化能力,如图3所示。本文将梯度中心算法引入Adam优化器,对权重和输出的特征进行正则化,从而使得重识别模型的训练更加有效稳定。
图3 梯度中心化
在此,以全连接层为例,在已有网络模型反向传播梯度的基础上,对每个列向量中移除各自对应的平均值,从而实现每个列向量的中心化,计算公式如下:
式中:∇w i L为梯度;∇w i为权重向量;i为梯度矩阵中的第i列向量,j表示第i列向量中的第j个元素。
本文在结合注意力机制的基础上,充分考虑到了数据本身的复杂性和优化的有闲心,提出了一种有效的基于注意力机制的目标重识别方法。在特征学习过程中,将CBAM融合到ResNet50的每个模块中提取到具有关键信息的特征向量;并在基础上对最终的特征输出进行均等硬划分策略,从全局和局部多粒度下,更加全面地关注描述重识别中的匹配任务。在接下来的工作中,将采用基于真实场景下的数据来对上述模型进行训练和优化,并采用真实数据集测试模型的性能。