罗 顺,李春国,杨绿溪
(东南大学 信息科学与工程学院,江苏 南京 211189)
目标检测[1-2]是计算机视觉领域的重要研究问题,是理解和分析图像或视频数据的基础,在工业检测、安全防控和目标追踪等领域具有广泛的应用前景。近年来,随着深度学习技术的发展,基于深度学习的通用目标检测技术取得了巨大的进展。
当前基于深度学习的通用目标检测算法主要分为两大类:单阶段检测法和两阶段检测法,单阶段检测法的代表算法有YOLO[3]和SSD[4],两阶段检测法的代表算法有Faster-R-CNN[5]系列。在通用目标检测上,当前的目标检测算法取得了良好的检测效果。然而,在某些应用场景下,采集到的图像背景较为复杂,或者待检测目标带有天然或人工的伪装色,从而导致待检测的前景目标与背景具有高度的相似性,难以区分。对于上述复杂背景下的目标检测任务,目前的通用目标检测算法无法取得良好的检测性能。为了更好地开展复杂背景下目标检测方面的研究,范登平等人[6]构建并公开了包含10 000张图片的复杂背景下目标检测数据集COD10K,为探索复杂背景下的目标检测技术提供了丰富的数据支持。同时,范登平等人提出了基于搜索识别策略的复杂背景下的目标检测算法(Search Identification Network,SINet)。
SINet网络的搜索识别策略在获取复杂背景下目标的大致位置方面具有良好的表现,但是在目标的精确定位和局部细节的甄别方面表现欠佳。为了更好地对复杂背景下目标进行精确的定位和检测,本文在以下两方面做出改进:① 提出了一种渐进式的策略,即由粗到细的一种目标定位方法;② 采用能够模拟人类大脑注意力信号处理机制的双边注意力机制(Bilateral Attention)来加强目标信息的筛选和提取,提高特征融合的效率,进而提高对伪装目标的有效检测,这种改进的SINet算法被命名为Bi-SINet。Bi-SINet在公开数据集COD10K[6]、CAMO[7]和CHAMELEON[6]上都取得了优于SINet的性能。
相对于SINet,Bi-SINet从两方面进行优化改进:① 引入渐进式的检测框架,精细化目标定位过程;② 提出基于双边注意力机制的特征融合模块,从而提高多尺度特征的信息提取效率。
如图1所示,Bi-SINet总体上包含两个主要组成部分:特征提取器和渐进式的检测框架。其中,特征提取器采用ResNet-50网络模型[8],它能针对输入图像提取并输出4层不同尺度的抽象特征,用{f1,f2,…,fk|k=4}来表示。
图1 Bi-SINet模型的整体框架
渐进式的检测框架基于特征提取器输出的每一层抽象特征进行由粗到细的定位和检测,并输出检测结果,用于监督训练。在逐层的识别和检测过程中,更高一层的特征和检测结果会与当前层特征进行融合,利用基于双边注意力的特征融合模块对当前层的检测过程起到指导与优化的作用。
Bi-SINet中的渐进式检测框架是多层监督,且由粗到细,主要由感受野增强模块(Receptive Filed Block,RFB)、基于双边注意力的特征融合模块和检测模块组成。
其中,感受野增强模块是一个包含多个感受野分支的卷积模块[9]。其结构类似GoogleNet[10]中的Inception模块,通过设置多种尺寸卷积核的卷积层与膨胀卷积层组合的方式,模拟不同尺度的感受野。感受野增强模块首先利用不同感受野分支对输入特征fk进行感受野增强,再通过拼接和卷积操作进行融合,进而输出增强特征f′k。增强后的特征在综合不同尺度感受野增强效果的同时,降低了特征的通道数,减少后续检测过程的计算量。
检测模块由一个小型的Unet图像分割网络[11]组成。由于输入特征已经进行了增强,出于降低计算量的目的,检测模块所采用的Unet网络只在编码和解码阶段分别对输入特征进行一次下采样和上采样,输出检测结果predk(k=1,2,3,4)。在基于最低层特征f″1进行检测后,为了进一步提高模型检测的精细程度,检测框架将f″1特征上采样两倍得到特征f″0,输入检测模块进行检测,得到检测结果pred0作为模型最终的检测结果。
为了更加高效地利用多尺度特征,本文提出的渐进式的检测框架在基于第k(k=1,2,3)层感受野增强特征f′k进行检测前,会融合来自更高一层的增强特征f′k+1和识别结果predk+1,对本层的检测过程进行优化和引导。
图2为邻接特征融合模块的内部结构,对于第k+1层传来的增强特征f′k+1,特征融合模块利用双边注意力模块进行特征优化和增强,再将其上采样两倍,使其尺度与当前第k层特征保持一致。对于第k+1层传来的检测结果predk+1,融合模块同样将其上采样两倍,随后将其与经过双边注意力增强的f′k+1相乘,通过全局注意力机制的方式将第k+1层特征中可能与前景目标相关的特征进行增强。最后,将增强后的k+1层特征与当前第k层特征通过拼接卷积的方式进行融合。上述特征融合过程可以表示为:
图2 基于双边注意力机制的邻接特征融合模块
Maskk+1=Up(predk+1),
(1)
Fk+1=Up(BiAtt(f′k+1)),
(2)
f″k=Conv(Cat(f′k,Maskk+1⊗Fk+1)),
(3)
式中,Up(·)表示两倍上采样,BiAtt(·)表示双边注意力模块,Cat(·)表示在通道维度上对特征进行拼接操作,⊗表示矩阵相乘,Conv(·)表示卷积层。
图3为双边注意力机制[12]的内部结构,由图3可知,双边注意力机制的编码过程类似双边滤波,从值和距离的相关性两个角度来考虑某像素点特征与周围像素点特征之间的关系。输入特征分别在值注意力和距离注意力两个分支中完成编码过程,输出的编码特征经过拼接和卷积操作后输出融合结果。
图3 双边注意力机制的内部结构
在计算当前像素点特征的值注意力编码值时,需要综合考虑以当前点为中心,周围像素点的特征与当前像素点特征在值方面的相关性,此处用向量的点积运算来衡量。其计算表达式如下:
(4)
计算当前像素点的距离注意力编码值时,需要考虑以当前像素点为中心,周围像素点特征与当前像素点特征在距离方面的相似度,利用高斯分布和欧式距离来刻画。距离注意力编码过程可以用式(5)表达:
(5)
(6)
式中,d表示两像素点之间的欧式距离,αs为一个平滑参数,在模型中设置为αs=1.5。
为了验证算法Bi-SINet的有效性,本文采用国际公开的数据集COD10K[6]、CAMO[7]和CHAMEMELON[6]进行训练和测试。训练集包含COD10K训练集中的3 040张图片和CAMO训练集中的1 000张图片,共4 040张图片。验证集包含COD10K数据集中的101张图片,测试集包含COD10K测试集中的2 026张图片、CAMO测试集中的250张图片和CHAMEMELON数据集的76张图片。
在本文提出的Bi-SINet中共输出5个尺度上的检测结果{predk|k=0,1,2,3,4}能够在训练阶段对模型提供丰富的监督信息。为了引导模型输出与真实标签近似的检测结果,采用的损失函数综合了交叉熵损失和交并比损失。在复杂背景下难以区分的目标边缘区域,损失函数会分配更高的权重系数。综上所述,Bi-SINet所采用的损失函数Lall如下式所示:
(7)
(8)
(9)
(10)
(11)
式中,Axy表示以坐标(x,y)为中心,周围像素点的集合。
本文采用4个客观评价指标来对算法性能做客观评价:结构指标[14](Structure Measure,SM)、增强对齐指标[15](Enhanced-alignment Measure,EM)、加权的F指标[16](Weighted F-Meausre,WFM)和平均绝对误差[17](Mean Absolute Error,MAE)。其中,SM主要关注结构信息,从目标和区域两个维度来衡量检测结果和真实值之间的结构相似程度;EM在像素层面和图像整体层面衡量检测结果和真实值之间的匹配程度,符合人类的视觉感官;WFM指标是常用的综合考虑检测准确度和召回率的评价指标;MAE能够衡量检测结果和真实标签之间在像素点级别上的误差大小。
全文实验的开展基于Ubuntu 16.04的服务器平台,同时深度学习架构采用Pytorch[18]1.7版本。服务器的主要硬件参数为:AMD Ryzen7 3700x 8核16线程处理器,GeForce RTX 3090显卡和32 GB内存。
在训练阶段,训练集中的图片的大小被调整为384×384,使用随机梯度下降(Stochastic Gradient Descent,SGD)优化器对Bi-SINet模型参数进行更新。采用批量处理数据的方式,在一次参数迭代中随机选择20张图片同时输入模型进行计算。初始学习率设置为0.001,采用多项式衰减[19]的方法在训练中对学习率进行衰减,整个学习过程共进行50轮迭代。
表1显示了Bi-SINet模型和SINet模型在COD10K、CHAMELEON和CAMO数据集的测试集上的测试结果。由表1中数据可以得知:Bi-SINet在各个数据集上,各项评价指标的数值结果上均优于原版的SINet。
表1 Bi-SINet与SINet测试结果对比
具体来看,在COD10K测试集上,Bi-SINet在EM上提高了7%,在WFM上提高了13%,MAE下降了14%。此外,在CAMO和CHAMELEON数据集上Bi-SINet的检测性能也有较大的提升。由此可见本文提出的检测算法Bi-SINet的检测性能优于SINet算法。
本文还从视觉上对比了Bi-SINet算法和SINet算法的性能,图4对比了Bi-SINet和SINet的检测结果。从图4的第1列图片对比可知,Bi-SINet能够在复杂背景下保证检测结果的完整性,这得益于渐进式的检测框架,待检测目标的大体细节在最高层被确定,在由上到下渐进式的检测过程中被逐步推理出来。
从图4第2列和第3列图片可以看出,Bi-SINet能够在前景目标部分边缘区域模糊不清的情况下,依然将待检测目标准确地与背景目标进行区分,保证检测结果的可靠性。第4列对比表明Bi-SINet能够避免复杂背景带来的干扰,将感兴趣目标精确地检测出来。
图4 Bi-SINet和SINet在图像上的检测性能对比
本文针对复杂背景下目标检测算法SINet检测准确度不足的问题,提出了一种改进的检测算法Bi-SINet。相对于SINet,Bi-SINet引入了基于双边注意力机制的特征融合模块,能够更加有效地提取有效特征,同时还引入了一种渐进式的检测框架,能够更加准确地定位目标区域。实验结果表明,相对于SINet,Bi-SINet在各个测试指标上均取得了显著提升,证明了Bi-SINet是一种在复杂背景下的高效目标检测算法。