APP下载

一种基于YOLOX 改进的路侧目标检测方法∗

2024-01-23任明武

计算机与数字工程 2023年10期
关键词:池化全局注意力

周 庆 任明武

(南京理工大学计算机科学与工程学院 南京 210094)

1 引言

车路协同是指通过车辆与其他车辆、路侧感知设备进行通讯,以实现汽车与道路之间的信息交互。车路协同系统在感知层面主要分为两类:车端感知和路端感知。路端感知一般采用相机、激光雷达、毫米波雷达和各类环境传感器来实现信息采集,同时还有信号灯、交通标识线等交通设施辅助。路端感知的主要设备之一是激光雷达,能够提供目标的距离信息,缺点是成本较高且可靠性较低,在雨雪等恶劣天气条件下使用受限。另一设备是相机,优点是成本较低且传感器的分辨率较高,相较于激光雷达能提供更多有效信息,缺点是无法提供目标距离等3D信息。

基于以上原因,本文使用路侧相机设备采集的可见光图像,检测行人车辆等目标,对行车环境进行智能感知,具有十分广泛的应用前景和重要的研究意义。近年来由于深度学习技术的发展,主流的图像目标检测由基于手工特征的传统方法转变为基于卷积特征的深度方法。因此本文主要研究基于深度学习技术的目标检测方法。

根据是否有预先定义的锚框,深度学习目标检测可以分为anchor-based 方法和anchor-free 方法。Anchor-based 方法会在图像上平铺大量的锚框,预测目标框和这些先验框的偏差。anchor-free 方法没有预设的锚框,可分为基于关键点[1]和基于中心点[2]两种方式。Anchor-base 方法存在许多与锚框相关的超参数不易优化,且大量的锚框会导致计算复杂度增加;anchor-free 方法则不需要调优相关超参数,且避免了IOU 计算,使得训练过程内存占用更低。综上,本文选择了最新的anchor-free目标检测方法YOLOX[3]作为基准模型。

人类的注意力机制是从直觉中得到,是一种利用有限的注意力资源从大量信息中快速筛选出高价值信息的手段。深度学习中的注意力机制借鉴了人类的注意力思维方式,被广泛地应用在自然语言处理[4]和图像识别[5]等任务中。YOLOX 模型中并没有使用attention 模型,因此本文使用了注意力机制对其主干网络特性进行加强。

YOLOX 模型中对于判断前背景的物体分支,是直接对所有预测样本进行计算,可能存在正负样本不平衡的问题。论文RetinaNet[6]提出了一种新的损失函数focal loss,对容易分类的大量负样本降低其损失权重,可以克服正负样本不平衡的问题。因此本文使用了focal loss对YOLOX 模型的物体损失函数进行改进。

2 YOLOX模型

2.1 网络结构

YOLOX 是由旷视科技于2021 年提出的目标检测方法,将近年来目标检测领域的最新进展与YOLO 系列进行了集成组合,性能得到了大幅提升,同时保持了较高的检测速度。YOLOX 基于YOLOv3 模型[7],提出了解耦头、数据增强、anchorfree和SimOTA这四项改进。

由于YOLOv4[8]模型对于anchor-based 方法可能有一些过度优化,作者选择了YOLOv3 作为基准模型,并在backbone 后面添加了一个SPP 模块[9],即空间金字塔池化,整体网络结构如图1所示。SPP模块使用{1*1,5*5,9*9,13*13}的最大池化,与直接使用最大池化相比,有效地增加了backbone特征的接收范围,显著地分离了最重要的上下文特征。

图1 YOLOX网络结构图

模型的损失函数由三部分构成,如下式所示:

其中λ为平衡系数,Lreg为用于边界框回归的IOU损失,Lobj为用于判断物体概率的BCE 损失,Lcls为用于目标分类的BCE损失。

2.2 解耦头和数据增强

在目标检测中,分类与回归任务经常会产生冲突,因此检测头的解耦已被广泛使用。然而,YOLOv3 的检测头仍处于耦合状态,如图2 上方所示。作者通过实验发现,将检测头解耦会显著改善模型的收敛速度,因此将检测头替换为轻量解耦头。解耦头包含一个1×1 卷积,用于通道降维,后接两个3×3 卷积的并行分支,分别用于分类和回归以及物体,如图2所示。

图2 YOLOv3与YOLOX检测头结构图

作者使用了Mosaic 与Mixup[10]两种数据增强策略以进一步增强性能。Mosaic 数据增强参考自CutMix[11],选择四张图片,通过随机缩放、随机裁剪和随机排布的方式进行拼接,有助于小目标的检测。Mixup 数据增强是在一张图片做了Mosaic 之后,随机选择另一张图片,将两张图以一定的比例对RGB 值进行混合,模型需要检测出两张图中所有的目标。该方法可以在几乎不增加计算开销的情况下,稳定提升检测精度。

2.3 Anchor-free和SimOTA

作者使用了anchor-free机制,特征图中的每个点只预测一个目标框且直接输出四个值,即中心点相较于左上角的偏移和框的长宽。anchor-free 机制减少了模型的参数量,节省了计算资源,使其速度更快性能更好。参考FCOS[12],作者将落入真实框范围内的点定为正样本,这样一个真实框通常只有一个正样本,忽略了临近的其他可能的正样本。因此作者还将落入真实框中心点一定区域范围(根据下采样倍数而定)内的点定为正样本,使得一个真实框可以有多个正样本。

通过以上步骤获得初步的正样本后,作者使用SimOTA 方法进行了精细化筛选,为每个真实框分配全局最优的正样本。OTA是一种标签分配策略[13],从全局角度分析标签分配并将其转化为最优运输问题。然而最优运输问题求解会增加25%的训练时间,因此作者将其简化为动态top-k 问题,称为SimOTA,得到近似解。相比于OTA,SimOTA 可以缩短训练时间,避免额外的超参数优化,并在大多数情况下不影响精度。

3 基于Attention 和Focal loss 改进的YOLOX模型

3.1 SENet和CBAM

Attention,即注意力机制,已经被广泛应用于计算机视觉领域中。它用于高效地关注图像中的重要区域,可以看作是基于输入特征的动态权重调整过程。本文使用了SENet[14]和CBAM[15]两种Attention,对YOLOX 特征金字塔中的特征进行关注与加强。

SENet 首先提出了通道注意力机制,核心是一个SE(squeeze and excitation)模块,用于收集全局信息、捕获通道关系并提升表征能力,其结构如图3所示。

图3 SE模块结构图

SE 模块分为两部分:压缩(squeeze)操作和激励(excitation)操作。首先,压缩操作通过全局平局池化收集全局空间信息;然后,激励操作通过使用全连接层和非线性层(ReLU 和sigmoid)捕获通道关系并输出一个注意力向量;最后,将输入特征的每个通道乘以注意力向量中对应的元素来进行缩放。给定一个输入特征X,通道数为C,使用下式计算其输出Y:

其中zc表示经过压缩操作后第c 个通道的值,s表示经过激励操作后的注意力向量,δ表示ReLU 函数,σ表示sigmoid 函数。为了降低模型复杂度以及提升泛化能力,激励操作使用了两个全连接层的bottleneck结构,第一层用于降维,r为降维系数。

为了增强信息通道和重要区域,Woo等提出了卷积注意力CBAM 模块。该模块将通道注意力和空间注意力串联起来,解耦通道注意力图和空间注意力图以提高计算效率,使用全局池化来聚合空间全局信息,其结构如图4所示。

图4 CBAM模块结构图

CBAM 模块分为两个子模块:通道和空间。给定输入特征图X∊ℝH×W×C,依次计算出一维的通道注意力向量sc∊RC和二维的空间注意力图ss∊ℝH×W。通道子模块类似于SE 模块,不同之处在于它使用了不止一种池化操作来聚合全局信息。具体来说,它使用了两个平行分支,分别为平均池化和最大池化,如下式所示:

其中GAPs和GMPs分别表示空间域中的全局平局池化和全局最大池化。空间子模块对特征的空间关系进行建模,是对通道注意力的补充。与通道注意力不同,它使用大核的卷积层来生成注意力图,如下式所示:

其中GAPc和GMPc表示通道域中的全局池化,Conv表示卷积操作,[]表示通道上的串联。整个注意力过程由下式所示:

3.2 Focal loss

Focal loss 是一种动态缩放的交叉熵(cross entropy)损失,其核心在于降低简单样本的损失权重,以目标检测为例,就是那些落在背景且比较容易分类的大量样本。缩放的调节系数随着正确分类的置信度增加而减小,可以在训练期间自动降低简单样本的贡献,使得模型更加专注于困难样本。为了控制简单样本和困难样本的权重,为交叉熵损失加上一个调节系数,得到focal loss,定义如下:

其中γ≥0 为专注超参数,(1 -pt)γ为调节系数。当γ=0 时,focal loss就等于交叉熵损失。

该损失具有两个重要性质:1)当样本被错误分类时pt较小,调节系数接近于1,损失不受影响;而当样本被正确分类时pt较大,调节系数接近于0,这样简单样本的损失权重就被降低了。2)专注参数γ平滑地调节了简单样本降低权重的比例,其值越大调节系数的影响就越大,等于0 时就是交叉熵损失。直观地说,调节系数减少了简单样本的损失贡献,同时拓宽了得到小损失样本的范围。

3.3 模型改进

YOLOX 模型中没有使用attention,因此本文引入SE 模块和CBAM 模块对其进行改进。模型中的neck 特征金字塔用于接收来自主干网络浅层的位置特征和深层的语义特征,只使用了上采样和级联操作进行融合,存在改进空间。此外,由于物体损失是对所有预测框进行计算的,使用原始的交叉熵损失可能会造成大量的简单背景样本损失叠加,超过少量的困难前景样本,使得模型偏向于背景样本,训练困难。

基于以上信息,本文修改了YOLOX 模型的特征金字塔部分,经过组合实验,在上采样前的特征图后面加入SE 模块,以加强其通道关系;在送入检测头的的特征图前面加入CBAM 模块,以同时加强其通道关系和空间关系;修改后的特征金字塔结构如图5 所示。本文将物体分支的损失函数由交叉熵损失替换为了focal loss,以解决前景和背景样本比例不平衡,造成训练困难的问题。

图5 修改后的YOLOX特征金字塔结构图

4 实验结果及分析

为了尽可能贴近真实的车路协同的应用场景,本文在两处城市结构化道路场景进行路侧视频数据的采集。一处场景为学校大门口一条东西向道路,双向四车道,路宽约15m,两侧有人行道和非机动车道,校门口左右两边分别有一条南北向斑马线,如图6(a)所示。另一处场景为一条丁字型路口,左二右三共五车道,路宽约18m,两侧有人行道和非机动车道,有一条南北向和一条东西向斑马线,如图6(b)所示。

图6 路侧数据采集场景

采集设备为可见光相机设备,1200 万像素,f/1.8 光圈。将设备放置在可移动支架上,架设高度符合路侧数据需求,镜头对准道路区域,模拟路侧感知场景。在上述两处场景各采集两段视频,时间均为4min,帧率为30fps,图像大小为1920*1080,总共四条视频序列。采集时间为下午14 点到17 点,天气为多云、正常光线。

使用上述方案采集路侧可见光图像数据后,本文使用CVAT 标注工具进行了路侧目标的标注。本文标注了行人、自行车、电动自行车和汽车这四类目标,总计1500张图像和14218个边界框。各类别具体的边界框数目如表1 所示。为了验证目标检测模型的泛化性能,选择视频序列1、2、4 为训练集,视频序列3为测试集。

表1 路侧目标检测数据集统计信息

本文在自建的路侧数据集上评估改进后的YOLOX 目标检测方法,其中训练集共1200 张,训练集共300 张。模型的backbone 为DarkNet-53,超参数均使用默认设置。模型使用SGD 训练300 个epoch,采用Cosine 学习率机制。输入图像缩放大小为640*640,使用mosaic 和mixup 数据增强,并在最后15个epoch关掉。模型未改动的部分使用COCO 数据集[16]预训练过的权重进行初始化,新增的attention 模块使用默认初始化。训练时使用两张TITAN V显卡,batch大小为16。

为了验证两种模块组合的检测性能,本文在特征金字塔的不同部分增加不同的attention 模块,SE_CBAM 表示先在上采样前增加SE 模块,然后在融合特征图后增加CBAM 模块,CBAM_SE 与之相反。模型在测试集上的检测结果如表2所示。

表2 attention模块组合的检测结果

从表中可以看出,两种模块组合的性能提升比较明显,参数量和计算量略微增加,但幅度不大。具体来说,SE_CBAM 提升了5.4%,CBAM_SE 提升了4.3%;得益于上采样前的SE 模块,SE_CBAM 在小目标上的性能损失较小,而特征图后的CBAM 模块又进一步提升了大目标的检测,综合性能比CBAM_SE要好。

为了获得最优的focal loss超参数,本文在不增加attention 模块的情况下,仅改变物体损失为focal loss。实验选取了几个不同的专注参数γ,取值范围为[0 .2,4]。模型在测试集上的检测结果如表3所示。

表3 不同专注参数下的检测结果

从表中可以看出,当专注参数小于1 时,检测指标急剧下降,原因可能是损失过小,模型陷入局部最优;当专注参数大于等于1 时,因为简单样本的损失被降权,困难样本损失占据主导地位,使得模型优化更好,检测指标有所提升,其中最优参数为γ=2,较baseline提升了2.2%。

通过上述实验选择了最优的attention 组合和focal loss 超参数之后,本实验将两种改进结合起来,称为YOLOX-A模型,其检测结果如表4所示。

表4 改进YOLOX-A模型的检测结果

从表中可以看出,改进后的YOLOX-A 模型除小目标外的检测指标都高于原始模型,其中mAP指标提升了5.6%,验证了本文改进的有效性。

5 结语

本文提出了一种改进的YOLOX模型用于路侧目标检测,使用SE 模块和CBAM 模块对模型的主干特征进行加强,并将物体分支的损失替换为focal loss 以消除正负样本不平衡的影响。本文构建了一个小规模的路侧可见光图像数据集,经过训练改进YOLOX-A 模型在测试集上的检测指标优于原始模型。本文只使用了单帧的路侧图像进行检测,没有利用多帧的图像信息,后续工作可以在这一方面进行提升。

猜你喜欢

池化全局注意力
面向神经网络池化层的灵活高效硬件设计
基于Sobel算子的池化算法设计
Cahn-Hilliard-Brinkman系统的全局吸引子
量子Navier-Stokes方程弱解的全局存在性
让注意力“飞”回来
卷积神经网络中的自适应加权池化
基于卷积神经网络和池化算法的表情识别研究
落子山东,意在全局
“扬眼”APP:让注意力“变现”
A Beautiful Way Of Looking At Things