APP下载

注意力和多重特征融合的图像局部特征检测及描述∗

2021-10-27梁水波刘紫燕袁浩孙昊堃梁

传感技术学报 2021年8期
关键词:描述符注意力卷积

梁水波刘紫燕袁 浩孙昊堃梁 静

(贵州大学大数据与信息工程学院,贵州 贵阳550025)

图像特征的检测及描述在计算机视觉任务中起着至关重要的作用,例如目标检测[1]、图像检索[2]、三维重建[3]、姿态估计[4]以及同时定位与建图(Simultaneous Location and Mapping,SLAM)[5]等,其性能直接影响后续过程的效果,具有重要的理论价值和实践意义。

一般来说,标准的局部图像特征算法包含两个模块,即图像特征点检测和描述子。提取图像中感兴趣的点,这些点被称作特征点。对于每个特征点,其内部图像位置通过检测模块确定,而其描述子则是通过描述模块总结本地上下文信息来计算,并生成一个标识性的向量来代表这个区域的特征。好的局部图像特征应具有特征检测重复率高、速度快。特征描述对光照、旋转、视点变化等图像变换具有鲁棒性强、特征描述符维度低、易于实现快速匹配等特点。设计一个对各种图像变换具有高度鉴别性和鲁棒性的优秀图像局部特征检测算法并不是一件容易的工作。

早期局部特征的方法主要是手工制作,具有代表性的方法包括SIFT[6]、SURF[7]、ORB[8]、KAZE[9]、AKAZE[10]、BRISK[11]等。尽管手工制作的特征在各种计算机视觉任务中得到了广泛的应用,但是随着模型表示能力的提高,由于其基于规则的算法设计性质无法进一步提高性能,且手工制作的方法在极端外观环境下往往表现不佳,如白天与黑夜之间、季节和弱纹理等场景。

随着硬件和深度学习技术的不断发展,基于深度学习的特征提取和描述算法发展迅猛,效果与传统手工设计的方法相比也能达到不错的效果。然而,当前基于深度神经网络(Deep Neural Networks,DNN)方法的计算成本仍然很高,尤其是在大规模的数据集上。在如自动驾驶汽车、机器人、智能摄像机等应用场景,由于系统和应用平台的限制,标准的深度学习模型很难应用起来。图像局部特征检测与描述任务作为基础任务,自然不能耗费太多的软硬件资源。

针对上述问题,本文提出了一种结合注意力和多层特征融合的特征提取与描述算法。首先将RGB图像序列输入网络中,通过多层卷积神经网络和注意力机制模块后,将提取的特征分别操作进行多任务学习,最后,网络的输出分别为128维张量作为描述以及两个衡量可靠性和重复性的置信度图。本文提出的算法构建的网络可进行端到端的训练,与当前主流的深度学习方法相比,模型大小仅为1MB的情况下同时达到很好的效果。

本文的主要贡献有以下几点:①提出了一种更加浅层但结果表现优良的图像局部特征检测与描述框架,联合估计图像的特征点及其描述,且模型参数大小仅为1MB,远小于当前流行的网络。②在共享层中(Backbone)将残差块与膨胀卷积相结合,不对图像进行采样和池化损失信息的条件下,在有限的层数以及不增加网络参数的同时获得更大的感受野和多尺度的特征。通过设计的跳跃连接,将低层信息与高层信息相融合。③将通道注意力运用在此类任务中,基本不增加模型的复杂度的同时能提取更加优良的特征。

1 相关工作

在本节中,我们简要回顾众所周知的局部特征检测算法,这些特征可以分为四大类:手工制作的方法和三种基于DNN的方法。

1.1 手工制作的方法

SIFT是局部图像描述领域的一项里程碑式的工作,已被广泛应用于许多视觉应用中,并在很大程度上促进后续在该领域提出的许多局部图像描述符的发展,如广泛应用于行人检测的颜色直方图。SIFT的效果虽然很好,但其缺点是如果不借助硬件加速或专门的图像处理器很难实现。SURF算子是针对SIFT的上述缺点,通过使用积分图像技术来逼近SIFT,以加快其计算速度。ORB特征描述算法的运行时间远优于SIFT与SURF,可用于实时性特征检测。具有尺度与旋转不变性,同时对噪声及透视仿射也具有不变性。KAZE算法采取非线性扩散滤波相比于SIFT与SURF算法提高了可重复性和独特性。但是KAZE算法缺点在于计算密集,在移动端实时性要求难以满足,AKAZE是在KAZE基础上进行改进的。BRISK算法中构造了图像金字塔进行多尺度表达,因此具有较好的旋转不变性、尺度不变性,较好的鲁棒性等。

1.2 基于DNN的两阶段方法

通过使用顺序连接的神经网络,模仿手工制作的局部特征算法先检测图像中的关键点,然后通过裁剪和汇总局部上下文信息来计算每个关键点周围的描述符。Ono等人[12]利用warp的方式去构建以双图像为输入的自监督网络,加入空间变换网络(Spatial Transformer Networks,STN)结构保证了一定的旋转和尺度不变。每个网络都包含其训练策略,分别针对检测器或描述符进行优化。基于两阶段的方法的主要缺点是计算效率低下,因为顺序连接的网络无法共享大量的计算和参数,也无法完全实现并行计算。

1.3 基于DNN的一阶段方法

通常将骨干网与两个轻量级的头分支连接起来,由于骨干网络在检测器和描述符计算中共享大多数计算,因此这种算法可以大大减少运行时间。DeTone等人[13]利用两个独立的解码器对共享编码器进行检测和描述,将随机单应性生成的合成形状和图像对被用来训练这两个部分。Dusmanu等人[14]将深度特征图的通道内和通道间的局部最大值被定义为关键点,相同的图用于描述符。Noh等人[15]提出了DELF,这是一种针对图像检索的方法,通过使用大规模地标图像数据集训练的注意力机制,将局部特征作为分类损失的副产品进行学习。Lin等人[16]对特征点检测和描述的工作流程进行了详细论述,指明了潜在的发展趋势。Revaud等人[17]的目标是学习关键点,这些关键点不仅可重复而且可靠,并且具有可靠的描述符,由于其联合训练可靠性和重复性,网络也取得了不错的效果。

1.4 基于DNN的单个检测器或描述方法

还有许多方法仅专注于基于DNN的检测器或描述符,如文献[18-19]。由于检测器或描述符都将影响彼此的性能,因此我们通常整体上采用一种局部特征算法。这些方法可以视为可插拔模块,并且可以在两阶段算法中使用。本文主要侧重于开发基于DNN的一阶段的模型。

2 本文方法

2.1 本文的网络结构

本文所提出的网络参照文献[17]的中获得可靠性和重复性的方式(下文称为R2D2),其训练了一个全卷积神经网络,输入一张大小为N×H的图片,网络对其预测三个输出。第一个是三维张量X∈ℝH×W×D,每个像素对应一组密集的D维,作为描述符;第二个是可重复性置信度图S∈[0,1]H×W,其目标是提供稀疏与可重复的关键点位置;第三个输出是关联的可靠性置信度图R∈[0,1]H×W,表示描述符Xij每个像素(i,j)的估计可靠性,即判别性,其中i=1..W和j=1..H。R2D2是对L2-Net[20]网络进行改进的,与L2-Net相比,其将最后的8×8卷积层替换为3个2×2卷积层,从而将权重数量减少了5倍,从而获得了相似或稍高的精度。对于局部特征检测这种低级任务,作为多数任务的基础,该网络模型在使用全尺寸的全卷积神经网络的条件下,层数太多导致提取的特征冗余性太大,占用了比较多的内存,所耗费的硬件资源也是巨大的。

我们的全卷积模型也是在全尺寸图像上运行,并在一次前向传递中共同计算兴趣点的位置和相关描述符,通过训练得到的可靠性置信度图和可重复性置信度图,选取两者乘积大于阈值的点进行排序作为特征点,描述则为对应位置的128维向量。本文参照R2D2中获取可靠性和重复性的损失函数,与其不同的是本文的工作主要体现在基础网络特征提取部分,即如何在更少的卷积层数下获得更好的特征。

本文的网络由一个共享骨干Nb和两个轻量级头分支组成,即一个检测分支Ndet和一个描述符分支Ndes。网络结构如图1所示。骨干Nb由两个卷积层和4个如图2所示的基础残差模块组成,残差模块由卷积层、激活函数以及批归一化组成,其在提取特征的同时还能加快网络的收敛。

图1 本文的网络结构示意图

图2 基本残差模块

在骨干网络中嵌入通道注意力模块以及设计多重特征融合结构,从输入图像I∈RH×W中提取特征映射F∈ℝC×H×W。描述符分支Ndes与检测器分支Ndet都以共享骨干Nb的128维张量作为输入,对于描述符分支Ndes,输入经过ℓ2范数后得到128维的特征图作为描述符X。对于检测器分支Ndet,输入经过逐像素平方x2、1×1卷积层和softmax运算,得到每个描述符的可靠性置信度值R∈[0,1]H×W,同样的运算,将softmax替换成softplus,得到可重复性置信度值S∈[0,1]H×W。

对于仅有五层的骨干网络,在有限的层数下最大化提取感兴趣特征,使网络轻量的同时达到更好的效果,本文使用只含一层卷积层的基础残差块来构建骨干网络。得益于这种联合网络结构,检测器和描述符可以共享大多数参数和计算。

2.2 注意力机制

计算机视觉(Computer Vision)中的注意力机制(Attention Mechanism)的基本思想就是让系统学会注意力,能够忽略无关信息而关注重点信息。注意力模块可嵌入到卷积神经网络中进行一种简单而又有效的注意力机制部署。注意力模块主要包含有通道注意力模块、空间注意力模块以及两者的结合。最近,通道注意力机制被证明在改善深度卷积神经网络的性能方面具有巨大的潜力。本文受文献[21]的启发,将通道注意力模块集成到本文所提出的网络架构的特征提取中,以提升有效特征图中的有效通道,抑制对当前任务影响较小的特征通道,从图像中提取更有效的特征,用于后续的特征点提取和描述。本文使用的通道注意力模块结构如图3所示。

图3 通道注意力模块

给定输入一张图片,并假设这张图片在神经网络内部的某个特征图X∈ℝH×W×C作为输入,经过不降低维数的通道全局平均池化(GAP),把一个特征图x从大小为H×W×C变成1×1×C,通过执行大小为K的快速一维卷积来生成通道的权值,其中K通过通道维度C的函数自适应地确定。最后将所计算得到的通道的权值与特征图逐元素相乘,得到经过通道注意力的特征图¯x。

将通道注意力机制与所提出的网络相结合,在卷积运算的基础上融合注意力机制,使得网络能够自主地更加关注更具有信息量的特征以及特征区域,并且可以学习到不同通道间相互关联性,从而在不增加太多网络复杂度的同时使得网络提取到的特征更加优良。

2.3 多重特征融合与跳跃连接

本文在不改变图像输出特征图尺寸的前提下,网络对图像不进行下采样和池化操作,因此缺少多尺度信息。本文在骨干网络部分依次使用膨胀率为1、2、4、8、16的膨胀卷积[22],图4分别为膨胀率为1、2、4的卷积核示意图。本文在骨干网络前3层使用的卷积核大小为3×3,后两层的卷积核则为2×2。膨胀卷积在不做池化操作损失信息的情况下,指数级增加感受野,让每个卷积输出都包含较大范围的信息不需要增加模型参数(反而降低了模型参数),有效地增大了模型感受野的同时也获得了多尺度的信息。

图4 膨胀卷积核

本文使用不同的膨胀率的膨胀卷积来提取多个尺度下的特征,逐层传递多尺度信息,但随着卷积层的层数增多,膨胀率的增大,特征逐渐抽象,会减弱部分细节信息。通过跳跃连接将低层的语义信息与高级的语义信息相融合,使网络在层数很少的情况下提取到的特征更加优良。其中骨干网络的具体参数如表1所示。

表1 Backbone卷积参数

2.4 损失函数

我们将可重复性视为一项自我监督的任务,并对网络进行训练,使其可重复性置信度S中局部最大值位置是自然图像变换的协变量,如视点或光照变化。设I和I′为同一场景的两个图像,并令U∈ℝH×W×2为它们之间的地面真实性对应,如果I和I′是自然图像,则可以使用现有的光流或立体匹配算法来估计U,或者如果I是用已知的变换例如通过合成生成的,则可以精确地获得U。令S和S′分别为图像I和I′的重复性图,S′U是根据U从图像I′变形的热图。遵循S中的所有局部最大值都与S′U中的局部最大值相对应。关键思想是最大化S和S′U之间的余弦相似度(以下称为cosim)。当cosim(S,S′U)最大化时,它们的热图(heatmaps)是相同的,并且它们的最大值完全对应。为了防止遮挡等问题影响性能,本文将一幅图像分为许多小补丁,在小补丁上计算平均余弦相似度。定义重叠的补丁为P={p},包含[1..W]×[1..H]中的所有N×N个补丁,并将损失定义为:

式中:S[p]∈ℝN2表示从S提取的矢量化(展平)的N×N补丁p,S′U[p]同理。通过使S与S′U保持恒定的值将会保持最小,为了避免这个,我们采用了第二种损失函数,如公式2所示,该函数试图使可重复性图的局部峰值最大化。

最后,所得的可重复性损失由两个图像的第一损失和第二损失的加权总和组成,如公式3所示。

为了增强可靠性,我们的网络不仅会计算可重复性图S,而且还会联合提取密集的局部描述符X并针对每个描述符Xij∈ℝD预测置信度值Rij∈[0,1],估计其可靠性(即判别力)。目的是让网络学会在使描述符具有高置信度或低置信度的尽可能高的区分度之间进行选择,在这种情况下,丢失对描述符的影响将很小,例如对于不能被充分区分的区域。

描述符匹配问题可以看作是排名优化问题,即给定两个图像I和I′,在I′中搜索来I的每个描述符作为查询,并通过增加距离对I′中的所有描述符进行排名。给定一批真实的图像补丁,它们使用卷积神经网络来计算其描述符。然后,计算批次中所有补丁描述符之间欧几里得的距离矩阵。矩阵中的每一行都可以解释为第一个图像的查询补丁与第二个图像的所有补丁之间的距离,充当数据库文档。因此,训练包括最大化针对批次B中每个查询q并在整个批次中计算平均的AP。本文训练可靠性的损失函数如式(4)、式(5)所示。

式中:AP是平均精度,κ∈[0,1]是一个超参数,表示每个补丁的最小预期AP。

3 实验结果及分析

3.1 实验平台及数据集

本文实验平台如下:操作系统为Ubuntu16.04,深度学习框架为pytorch1.4,CPU为Intel i5-7500,内存为16GB,GPU为NVIDIA GeForce 1070,显存为8G。

本文的模型是在图像来源于网络的Oxford and Paris retrieval数据集和包含来自德国亚琛老城区图像的Aachen Day-Night数据集上训练的。

在HPatches数据集上对我们的模型进行验证,它是此任务中最受欢迎和最大的数据集。它包括116个图像序列,其中每个序列由一个参考图像和五个目标图像组成,参考图像和目标图像之间的单应性已经过仔细校准。该数据集还可以进一步分为57个包含大光照变化的序列和59个大视角变化的序列。

采用Adam优化器进行优化,其中数据批次大小(batch size)为4,学习率为0.001,权重衰减为0.0005,循环(epoch)为25。

3.2 评价指标

对于特征点提取这种任务,模型需要足够小、足够快、能耗足够低。本文参照平均匹配精度(Mean Matching Accuracy,MMA)对 模 型 进 行 比 较,在Hpatches数据集上,以MMA分数作为评价指标,其中MMA分数是考虑多个像素错误阈值的图像对中正确匹配的平均百分比。

3.3 实验结果及分析

从表2中可以看出基于DNN的方法的训练数据(约束越小越好),模型大小(越小越好)以及描述符的维度(越小越好)。

表2 基于DNN的训练数据,模型大小和描述符的维数

本文的训练数据虽然由两种类型的训练数据组成,但是在模型的大小和描述符的维度上取得了很大的优势,模型的权重大小为比较数据中最小。模型的权重大小对于网络的部署起着至关重要的作用,综合下来,我们的模型在其他基于DNN的方法中取得了很不错的效果。

为了验证本算法的性能,将本文的模型与现有技术进行比较,选择7种流行的基于深度学习方法,即LF-Net[12]、SuperPoint[13]、D2-Net[14]、DELF[15]、R2D2[17]、带有HesAffNet[23]区域的HardNet++描述符(HAN+HN++)[24]、带有RootSIFT描述符的手工制作的Hessian仿射检测器[25]。图5展示了所有图像对中每个阈值的平均分数。比较方法中不包括单个检测器或描述符算法,因为它们的组合是多种多样的,并且很难与上述方法进行公平的比较。

图5 对HPatches数据集图像对的评估结果

图5 对比了照明和视点变化的结果,以及在HPatches数据集上的整体性能。可以观察到,我们的方法在模型大小仅仅只有1 MB大小的情况下明显优于现有的技术,在2~6阈值内总体上的MMA值分别为0.57、0.71、0.78、0.81、0.83,与R2D2相比,分别提升了2.3%、2.4%、1.9%、1.4%、1.1%。但是DELF对于光照变化的表现最佳,可以解释的是,其使用固定的关键点网格,且该图像子集没有空间变化。对于R2D2在视点变化的表现,我们的网络也仅此于它的效果。我们的方法明显优于联合检测器和描述符,例如D2-Net。综合下来,我们的方法在模型大小更低的条件下,取得了不错的表现。

本文的模型在NVIDIA GeForce 1070 GPU上训练一个epoch需要花费约50 min,对比R2D2网络,同样的硬件条件下,其训练一个epoch需要花费约80 min,两者对比更加证明了模型大小对于推理的时间的影响,综合下来,本文的模型具有较大优势。

3.4 图片检测结果

在平均匹配精度的结果上,本文的方法在不考虑模型大小的条件下与R2D2的表现接近。随机抽取了两张图片对这样中算法的检测结果进行对比,结果如图6~图9所示。

图6 R2D2的提取检测结果及热图

图9 本文网络模型的提取检测结果及热图

如图6~图9所示,展示了两种方法提取的特征点的对比,图6和图8是R2D2提取得到的结果,图7和图9是本文网络提取的结果。每幅图的左边为输入的图像以及检测到的关键点,图中间为提取到的可重复性热图,图的右边为图的可靠性热图,均为覆盖在原始图像上的样式。其中图中的交叉点就是特征点,其可重复且可靠。可以看出,R2D2在图6与图8中,在水面和天空中提取了一些特征点,这些特征点对于现实应用是不能匹配的。而对比本文的网络,得益于网络能提取更加优良的特征,尽管很小,本网络仍然能够区分天空和水面区域是无法匹配的区域,大大减少在此类区域下的特征点,且表现比R2D2算法更加优良。

图7 本文网络模型的提取检测结果及热图

图8 R2D2的提取检测结果及热图

4 结语

为了减轻基于深度学习的图像局部特征检测与描述模型参数大和内存资源消耗大的问题,本文提出了一种更加轻量的局部特征检测网络,通过注意力机制模块以及多层特征融合使网络在层数很少的情况下,最大限度的获得优良的特征。下一步计划是将网络应用在视觉里程计领域,移植到移动机器人上以构建实时的视觉里程计和SLAM系统。

猜你喜欢

描述符注意力卷积
让注意力“飞”回来
基于结构信息的异源遥感图像局部特征描述符研究
基于3D-Winograd的快速卷积算法设计及FPGA实现
基于AKAZE的BOLD掩码描述符的匹配算法的研究
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
Linux单线程并发服务器探索
“扬眼”APP:让注意力“变现”
利用CNN的无人机遥感影像特征描述符学习
A Beautiful Way Of Looking At Things