郭意凡,杨大伟,毛 琳
(大连民族大学 机电工程学院,辽宁 大连 116650)
视频目标检测是指对连续视频序列进行分析和处理,从而检测和识别出特定目标,输出目标类别和位置。当前视频目标检测算法存在对移动目标无法准确定位问题,其由于对目标位置信息提取不够充分,从而影响后续目标分类和识别,使得目标检测产生误差。
随着自动驾驶技术的发展,许多学者致力于视频目标检测算法的改进研究,提出大量有价值的视频目标检测算法[1]。视频目标检测算法主要分为双阶段和单阶段目标检测算法。双阶段视频目标检测算法先通过区域生成网络(Region Proposal Network,RPN)生成一系列候选框,再对候选框进行分类和回归。双阶段检测法最早可以追溯到由Ren等[2]提出的一种端到端目标检测框架Faster R-CNN网络,该网络以VGG-16为主干,使用RPN和池化操作生成候选框并对其筛选达到定位目标的目的。但定位不精确,对小目标的检测效果不佳。在此基础上,He等[3]提出Mask R-CNN网络,增加实例分割的能力,它共享与Faster R-CNN相同的特征提取网络,使目标检测和实例分割之间共享计算,进而提高速度和效率。Mask R-CNN网络通过引入掩码分支生成与每个目标实例对应的像素级掩码,解决目标定位问题;设计了RoIAlign操作,使用双线性插值方法从特征图中准确提取与候选框对应的多尺度特征,避免信息损失,提高像素级别的定位精度。然而,其对高分辨率图像的检测效果欠佳。
基于以上缺点,学者们提出基于回归思想的单阶段检测法,直接在特征图上进行密集的分类和边界框回归,避免双阶段算法候选框生成过程中的误差。Redmon等[4]提出基于YOLO(You Only Look Once)的目标检测算法,在单次前向传播过程中,将输入图像划分为固定大小的网格单元。每个网格单元负责预测一个或多个边界框,通过使用卷积神经网络提取特征,并在每个网格单元上同时预测边界框位置和类别,避免重复计算和多阶段处理。但网络结构较为简单,对小目标定位效果较差。之后Redmon等[5]提出YOLOv3算法,引入多尺度预测和训练策略,对不同尺度特征图进行处理以检测不同尺寸目标。其通过融合低层特征与高层特征,利用低层和高层特征的语义信息,提升对小目标的位置检测能力。但在锚框预测严格情况下,预测精度仍然不够。对此Ge等[6]提出YOLOX,继承上述多尺度预测策略,采用具有更多卷积层和特征通道的网络结构;将检测过程解耦为目标分类和目标框回归两个独立任务,使用无锚方式进行目标框回归简化算法设计;采用自适应训练策略逐步增加训练分辨率并增强多尺度数据,使得模型能适应不同尺度的目标和场景,提高模型泛化能力。但是在现实世界的视觉场景中,一旦模型完成最新帧处理,周围环境就有可能发生变化,因此通过检测前一帧的位置信息辅助当前帧预测十分必要。Yang等[7]在Ge等的基础上,提出基于流感知的视频目标检测网络(Real-time Object Detection for Streaming Perception),该网络引入特征金字塔(Feature Pyramid Network,FPN)模块[8]。FPN通过引入侧边连接,实现跨层级的信息传递,将高层语义信息传递给低层,从而弥补低层细节信息不足。此外,该网络利用目标在连续帧之间的运动信息预测目标位置,采用双流感知模块(Dual Flow Perception,DFP)提取静态流中的语义特征和动态流中的运动特征,但动态流和静态流获取的特征直接拼接,缺少上下文信息之间的语义关联。
单阶段和双阶段检测法均采用深度卷积神经网络(Convolutional Neural Network,CNN)等特征提取模型从图像中学习丰富的特征表示,适用于涵盖多个类别的目标检测任务。然而对于姿态变化、遮挡等情况,二者都缺乏对边缘细节特征的提取,导致检测结果不稳定或错误。综合以上问题,本文提出一种视频目标检测中位置注意力网络(Position Attention Network,PA-Net)。PA-Net采用位置注意力机制(Coordinate Attention,CA)[9],在横向和纵向上根据检测目标的位置信息计算相应注意力分数,并将此分数赋予不同区域的特征。根据物体边缘与背景像素的显著差异调整特征的注意力权重分布,加强对边缘的感知能力,突出目标边缘位置,提高目标定位准确性。
检测误差图如图1。现有的视频目标检测算法采用无锚检测,在移动目标场景下主要存在无法精确定位目标位置的问题,造成检测框与真值框有偏差的现象,图中虚线框处即为检测误差区域。该现象是由于无锚检测方法对目标定位能力有限所导致。在基于锚框的传统检测方法中,锚框通常覆盖目标的不同部分,用于预测目标框的位置和大小。这种设计可以利用不同宽高比的锚框适应不同大小和形状的目标,从而提高边缘特征的覆盖范围。无锚检测不使用预定义的锚框作为参考,直接使用中心点到边界的距离回归物体边界框以简化设计。无锚检测方法在生成检测框时通常依赖于目标的边缘特征,边缘特征能够提供目标与背景之间明显的分界线,有助于确定目标的位置和边界。由于没有预设锚框辅助回归目标存在的区域,基于无锚的检测方法需要从图像中学习并提取目标特征以准确框定目标。如果目标具有复杂的几何变化,如形状变化、姿态变化或尺度变化,或因遮挡等因素使得目标与背景区分度低,这种方法在一定程度上无法适应上述情形,导致无法准确定位目标边缘。
图1 检测误差图
因此,本文引入一种位置注意力机制增强对目标边缘的关注程度,充分提取与目标边缘相关的特征。位置注意力利用上下文信息推断目标不同区域的重要性并根据其重要性分配相应权重。目标边缘包含丰富的形状、结构等视觉特征,通过捕捉上述特征能够有效识别前景和背景的轮廓差异,因此目标边缘被视为图像中的重要区域。CA可为目标边缘这一重要区域分配更多权重,增强边缘区域的特征表达,有助于减少检测框在目标边界的定位误差。
位置注意力网络通过将特征图各位置像素值与水平和垂直两个空间方向的注意力权重相乘,调整对目标不同部分的关注度,捕获位置信息,准确突出感兴趣区域的边缘,改善在目标移动情形下出现定位偏移而检测目标不准问题。位置注意力网络结构图如图2。
图2 位置注意力网络
位置注意力网络在保持原始特征不变情况下,通过残差结构[10]缩小特征提取过程中的特征差异,增强特征表示能力;在X和Y两个空间维度使用全局平均池化将每个通道的特征图转化为一个标量值,从而减少特征图维度,降低模型计算复杂度;卷积模块在不同位置的特征关系和空间结构捕捉方面具有显著作用;通过引入非线性变换获得不同特征的权重值,并将权重值与相应特征匹配。
PA-Net算法采用位置注意力网络捕捉目标位置的空间关系和动态变化,使模型更敏感地对目标移动做出响应,从而精准框定目标。PA-Net网络结构图如图3。
图3 PA-Net网络结构
PA-Net分为主干、双流感知模块、位置注意力模块以及下游任务(分类、目标、回归)四部分。
(1)主干包括CSPDarkNet-53[11]网络和FPN。CSPDarkNet-53网络对输入视频帧进行处理,处理后的视频帧输入到特征金字塔模块,通过在底层特征图和顶层特征图之间建立连接融合不同分辨率的特征图,以保留多尺度的语义和细节信息。公式如(1)所示:
N=P(M)。
(1)
式中:M表示输入视频帧的特征数;P表示CSPDarknet-53主干网络中的二维卷积、不同尺度的池化、残差块结构和FPN操作;N表示经主干网络和特征金字塔多层级特征提取操作输出的多尺度特征图。残差连接使得特征更快传递,减少特征丢失;多尺度特征提取可获得更全面的特征表示,提高模型对小尺寸和大尺寸目标的检测能力。
(2)双流感知模块由2D卷积构成。主干输出的多尺度特征图通过上下采样操作产生多分辨率特征图并将其进行跳跃连接,再使用2D卷积提取特征图中的静态特征和动态特征,实现对目标基本语义信息和运动状态的捕获。静态特征和动态特征拼接后得到K2、K1、K0三个不同尺寸的特征图,其空间尺寸分别为8×8、4×4、2×2。
(3)位置注意力模块对特征图K1进行处理。较小尺寸的特征图包含物体的轮廓等关键信息较多,较大尺寸的特征图包含物体的纹理等细节特征居多[4],特征图尺寸过大或过小均会对目标检测效果造成影响。因此,为寻求轮廓和纹理信息提取中的平衡点,采用位置注意力模块提取特征图K1的位置信息。该模块流程如下:
首先,通过残差单元补充损失信息;
其次,使用全局平均池化在水平和垂直方向分别对每个通道进行一维特征编码操作,建立水平和垂直两个方向的特征关联,产生一对方向感知特征图。方向感知特征图计算过程如下:
(2)
(3)
第三,水平和垂直两个方向的感知特征图沿空间维度进行拼接,通过F1函数和非线性变换在两个方向上对空间信息进行编码生成空间特征图。公式如下所示:
f=δ(F1(concat(zh,zw)))。
(4)
第四,中间特征图沿水平和竖直两个空间维度被分成两个独立的张量,通过Fh和Fw变换,分别将两个张量变换为相同通道数的注意力权重输出。公式如下所示:
gh=σ(Fh(Rh(f)));
(5)
gw=σ(Fw(Rw(f)))。
(6)
式中:Rh(f)和Rw(f)分别表示将f按照横向和纵向两个空间维度划分的水平和竖直分量;Fh和Fw为1×1卷积核;σ为sigmoid函数;gh和gw分别表示水平和竖直维度的注意力权重。通过计算水平和垂直方向的注意力权重,并将其应用于相应的特征张量,为下一步实现对关键信息的强调,从而增强或减弱特定区域特征表示做准备。
第五,原始特征图与水平和竖直两个方向的注意力权重相乘得到空间位置注意力块输出,即:
(7)
(4)经过位置注意力模块进行权重调整的输出特征图与K2、K0相结合输入至分类、目标、回归模块输出最终的预测结果。分类、目标、回归模块采用SiLU激活函数(Sigmoid-Weighted Linear Unit)[12]捕捉和表达目标关键区域特征。视频帧输出即为分类、目标和回归结果。
本文算法实验运行环境硬件配置为NVIDIA-GeForce2080Ti显卡,软件系统为Ubuntu18.04,深度学习框架为Pytorch1.8.1。本文使用视频自动驾驶数据集Argoverse-HD[13]进行训练,该数据集包含多段1 920×1 200像素的高分辨率视频帧,帧率为30fps,使用中心RGB摄像头采集数据,采用Li等[14]提供的对所采集数据的检测注释,为数据集中的对象添加详细标记。通过比较模型预测的边界框和实际注释的边界框,可以计算模型的交并比、准确率等指标。模型训练以COCO预训练模型为基础进行微调,从而适应不同类别的检测。所有检测结果都是在验证集上计算以评估模型性能,验证集的数据来自视频自动驾驶数据集Argoverse-HD中的24个视频,每个视频时长为15~30秒不等,帧总数为15 062,目标类别包括人、汽车、交通灯、停车标志等。
训练阶段的BatchSize(批尺寸)设置为4,测试阶段的BatchSize设置为8。学习率为0.001×BatchSize/64,在训练第一个epoch(周期)时,采用基于热身策略(warm-up strategy)的余弦调度(cosine schedule)不断调整学习率,之后的训练过程中学习率稳定在3.125×10-6。模型训练参数设置与StreamYOLO算法相同,训练周期为15,权重衰减为0.000 5,随机梯度下降(stochastic gradient descent,SGD)动量为0.9。图像基本输入尺寸为600×960像素,但图像长度在800到1 120像素之间均匀分布,未使用任何数据增强(如马赛克,混合,水平翻转等),保证特征图馈送到相邻帧时能够对齐。测试阶段,输入图像大小保持在600×960像素。
PA-Net算法使用交并比(Intersection over Union,IoU)、流精度(Streaming Average Precision,sAP)[14]作为评估指标。实验将所有类别目标的IOU分别设为0.5:0.95、0.5、0.75。根据目标尺寸将目标分为小目标、中目标、大目标三个类别,分别用s、m和l表示。sAP计算公式如下:
(8)
式中:Q为总类别数;AP为精确度的均值。流精度越大,表示检测框与真实目标框重叠程度越高,目标检测越精准。
为验证本文算法较于基准算法StreamYOLO的优越性,设置相同环境与超参数,测试不同交并比下所有目标的检测效果,结果见表1。
表1 不同交并比下测试结果对比 %
从表1中能够看出,本文提出的PA-Net算法在Argoverse-HD数据集上相对于原始的StreamYOLO算法取得显著的检测精度提升。在IOU阈值分别为0.5:0.95、0.5和0.75的情况下,PA-Net算法的检测精度比原始算法分别提升0.3%、0.1%和0.6%。在IOU阈值设置为0.5:0.95的情况下对不同尺寸目标进行测试,结果见表2。
表2 不同尺寸目标下测试结果对比 %
在小目标、中等目标和大目标中的实验结果表明,PA-Net算法对不同尺寸目标的检测效果有所改善,尤其对中等目标的检测效果最佳。目标尺寸过小,其在图像中占据的像素较少,容易被噪声所覆盖,使得检测效果降低。目标尺寸大,其边界更加清晰明显,使得检测相对容易。中等目标尺寸介于二者之间,在与二者的对比之中,运用本文提出的注重位置变化的算法,使得检测精度提升达到1%。在Argoverse-HD数据集上验证StreamYOLO算法和本文算法的可视化结果对比如图4。
图4 可视化结果对比
本文使用四组现实户外场景图像对比原算法与PA-Net算法的检测效果,图中虚线框表示原算法与本文算法检测对比区域。图4第(1)行可以看出StreamYOLO算法中卡车的检测框明显向下偏移,PA-Net则完整覆盖卡车;图4第(2)行中StreamYOLO出现明显漏检、错检情况,PA-Net改善了此情况;图4第(3)行在面对诸如人体等具有复杂形状和姿态的目标时,StreamYOLO对物体边缘细节特征提取不充分,未能将目标各部分全部捕捉在检测框内,譬如第(3)行左图中行人的手部在检测框外。PA-Net对边缘特征的关注度更强,使得框定效果更加准确,如第(3)行右图所示行人手部被包围在检测框内;图4第(4)行中,在昏暗场景下PA-Net的检测框也能比StreamYOLO更加贴合目标物体边界,并且检测精度更高。
与原始StreamYOLO算法相比,本文所提出的PA-Net算法通过在大小适中的特征图上增强对位置信息的提取,在适度的布局特征和细节特征中捕获更多位置信息,尤其注重边缘特征的提取。在移动目标相对较多,尺寸多样,目标存在遮挡等情况下,预测框更接近真值框,目标检测表现较为客观。
为证明空间位置注意力在位置信息提取上的有效性,探究空间位置注意力连接方式是否影响空间位置信息获取的准确度问题,对所提出的网络模型进行消融实验。实验分为7组,测试在不同尺度特征图上运用空间位置注意力提取特征对目标检测精度的影响。CA在三种尺寸的特征图K2、K1、K0中的连接方式如图5。
(a)CA-K2型连接方式 (b)CA-K0型连接方式 (c)CA-K1型连接方式
图5a中CA-K2型连接方式指在尺寸为8×8的特征图上加入空间位置注意力,探究对位置信息的提取能力。图5b中CA-K0型连接方式是在2×2的特征图上加入空间位置注意力。图5c中CA-K1型连接方式在4×4的特征图中引入空间位置注意力。其余四种连接方式分别是在大小为8×8和4×4的两个特征图上同时添加空间位置注意力,即CA-K2+CA-K1型连接方式;在4×4和2×2两个尺寸的特征图上同时添加空间位置注意力,即CA-K1+CA-K0型连接方式;在8×8和2×2的两个特征图上添加空间位置注意力,即CA-K2+CA-K0型连接方式;将空间位置注意力同时加入8×8、4×4和2×2三张特征图上,即CA-K2+CA-K1+CA-K0型连接方式。消融实验在不同交并比下的sAP值见表3。
表3 CA不同连接方式实验结果对比 %
对比实验结果表明,CA-K2型连接方式与原始算法相比检测性能略有提升,CA-K0型连接方式性能有所下降。8×8的特征图具有相对较高的分辨率,可以较好地保留目标细节和位置信息。通过应用CA,网络可以更准确关注目标特定位置的信息。2×2的特征图尺寸相对较小且分辨率较低,侧重于图像的结构和布局,丧失大部分目标细节特征,应用CA会引入更多噪声或不准确的位置信息。由CA-K2与CA-K0的对比可得纹理细节信息对于检测准确度的重要性。CA-K2+CA-K1较于基准算法效果有所下降,CA-K1+CA-K0效果有所提升,对比发现细节特征过多,缺乏整体布局信息,造成图像中目标和环境之间缺少上下文和语义信息。CA-K2+CA-K0效果同样下降,8×8的特征图更细粒度,2×2的特征图更粗粒度,同时在其中引入CA使得较细粒度的特征图引入过多的位置信息,较粗粒度的特征图引入过少的位置信息,这种不平衡导致网络难以正确融合和利用不同分辨率的特征图。CA-K2+CA-K1+CA-K0性能略微下降,8×8、4×4和2×2的特征图皆通过下采样从原始输入图像得到,其中的特征存在重叠和相关性,同时在三个特征图上添加CA产生过多冗余信息,增加网络计算复杂性。综上所述,本文的PA-Net算法使用CA-K1型连接方式增强位置信息的提取效果最佳。PA-Net算法使特征图既拥有局部细节,又具有整体结构。只在K1支路加入CA降低计算量,加速模型收敛,改善原始算法StreamYOLO中边缘特征提取不完整的缺陷,取得最大检测性能提升。
本文针对StreamYOLO视频目标检测算法中移动目标边缘细节特征提取不充分问题,提出PA-Net网络,通过引入位置注意力结构增强特征图中边界区域特征表达,使得网络更加敏锐感知目标边界。与StreamYOLO算法相比,PA-Net算法改善了移动目标定位存在误差的问题,在交并比为0.5:0.95、0.5和0.75下,sAP指标分别提升0.3%、1.6%和0.6%,基本实现较高的目标检测性能,对漏检、错检现象也具有一定改善作用,能够应用于机器人和自动驾驶等领域。后续将进一步提高目标模糊和背景复杂等场景中的目标检测效果和鲁棒性。