APP下载

基于反馈机制与空洞卷积的道路小目标检测网络

2023-01-27窦允冲侯进曾雷鸣陈子锐

计算机工程 2023年1期
关键词:空洞金字塔主干

窦允冲,侯进,曾雷鸣,陈子锐

(1.西南交通大学信息科学与技术学院智能感知智慧运维实验室,成都 611756;2.西南交通大学计算机与人工智能学院,成都 611756;3.西南交通大学综合交通大数据应用技术国家工程实验室,成都 611756)

0 概述

近年来,深度学习的快速发展推动了目标检测在汽车自动驾驶领域的研究。汽车在行驶中采集到的高精度街景信息具有多样性,同时当汽车行驶的速度较快时,在一次采集中远处行人、车辆、交通标志及其他物体较小。因此,在自动驾驶领域中,对小目标的检测准确性与速度都有更高的要求。当前对于小目标[1]的定义有2 种:一种是尺寸小于原图尺寸十分之一的目标;另一种是像素点数少于32×32 的目标。目标检测技术在大、中目标上取得了很大的进步,但是在小目标检测中面临极大的挑战。

在利用深度学习进行目标检测前,普遍使用不同分辨率的图像金字塔与不同分辨率的分类器对不同尺度的物体进行滑动检测,实现在较小窗口检测到小目标的目的。由于之前方法效率低、耗时久,GHIASI 和LI等[2-3]提出特征金字塔网络(Feature Pyramid Network,FPN),通过在不同特征层提取特征进行预测,SINGH等[4]借鉴多尺度训练的思想在一定程度上解决了FPN对于较小物体检测效果不理想的问题。为了进一步提高精确度,PANet[5]优化了FPN,增强了多尺度融合信息,Focal Loss[6]网络与Focal Loss V2[7]网络则将困难样本结合FPN 提高网络的检测性能,而R3Det[8]设计了特征精炼模块提高检测精度。

目前,基于深度学习有两种具有代表性的目标检测方法。首先是两阶段的目标检测方法:第一阶段生成候选区域,第二阶段对候选区域进行分类和回归,代表网络有R-CNN 系列网络[9-11]、Cascade R-CNN[12]、D2Det[13]等。D2Det 在R-CNN 的基础上对分类和回归分支进行改进,进一步提高了精度。其次是单阶段目标检测方法,这种方法不使用候选框,直接预测出类别信息和位置信息,单次检测直接得到最终的结果,如YOLO 系列[14-16]、SSD[17]、YOLOx[18]等网络。YOLO 系列网络直接对图片进行网格划分,将检测转化为回归;YOLOv4[19]是对YOLO 与当时其他经典网络的一次借鉴;SSD 网络同时借鉴了单阶段和双阶段的思路,即具有双阶段类似的先验框,也包括单阶段的一次完成目标定位与分类的过程;YOLOx 网络在YOLO 网络基础上对YOLO Head 解耦,同时采用了无锚框。

然而,单阶段目标检测算法和两阶段目标检测算法的小目标检测效果都不如大目标检测。针对该问题,本文选取YOLOv4[19]作为主要检测网络,提出一种改进的YOLOv4-RF 小目标检测算法。

1 相关工作

1.1 YOLOv4 算法

YOLOv4 算法在YOLOv3[16]算法的基础上进行优 化,主要优化为:借 鉴CSPNet[20]思想设计CSPDarkNet53[19],在增加网络深度的同时减少了参数量;为得到更丰富的多尺度信息,在主干网络与Neck 部分增加空间池化金字塔SPP[21]模块,同时不限制网络的输入尺寸;引入路径综合网络(Path Aggregation Network,PANet)[5]代替多层特征金字塔;同时使用当时一些优秀的优化策略,如马赛克数据增强、网络训练方式、Mish 激活函数等。由此形成CSPDarkNet53+SPP+PANet+YOLO Head 的网络结构,在效果上实现了速度与精度结合的最佳平衡。

1.2 空洞卷积

空洞卷积的提出,使传统深层网络中下采样过程的图像分辨率降低、信息丢失等问题得到了较好解决。在消耗相同计算量时,达到扩大感受野与信息不丢失的目的。与标准卷积相比,空洞卷积在卷积核之间增加间隔数,增加的间隔数称为扩张率。设置不同的扩张率会得到不同的感受野,从而获得多尺度信息。扩张率为1,2,4 的空洞卷积示意图如图1 所示。在相同参数量的情况下,由图1(a)可以看出扩张率为1 的空洞卷积和标准卷积相同;图1(b)的空洞卷积感受野为5×5;同理,经过图1(a)、图1(b)和图1(c)进行卷积后,得到的感受野为15×15,比3 个标准卷积后得到的感受野要大。

图1 扩张率为1、2、4 的空洞卷积Fig.1 Cavity convolution with expansion rates of 1,2 and 4

1.3 递归特征金字塔

递归特征金字塔[22]在特征金字塔和主干网络之间建立反馈连接,将第i次提取的特征反馈到主干网络,作为主干网络第i+1 次的部分输入。多级递归特征金字塔可以递归地增强FPN,不断提升FPN 的表示能力。FPN 的特征计算公式为:

其中:B为主干网络;Bi表示第i个阶段;F函数为自顶向下的FPN,Fi表示第i个特征层。得到第i层输出特征fi,加入反馈连接后,得到的递归特征金字塔公式为:

其中:Ri(fi)为反馈后的输出,然后送入自下而上的主干网络。RFP 反馈特征示意图如图2 所示。

图2 RFP 反馈特征图Fig.2 RFP feedback characteristic diagram

2 算法优化

2.1 优化后网络的整体结构

本文主要从主干网络、特征金字塔网络、损失函数、目标框的聚类分析等方面对YOLOv4算法进行优化,以提高面向自动驾驶的小目标检测精度与速度。YOLOv4-RF 网络整体结构如图3 所示,主干网络部分由于反馈机制需要二次提取特征,考虑到原CSPDarkNet5 会使整个网络架构太复杂,参考YOLOv5 中BottleNeckCSP结构对CSPDarkNet53 进行轻量化减枝。为保留更多的小目标信息,本文结合空洞卷积和递归特征金字塔,同时获得了更加丰富的特征信息。通过对KITTI 数据集进行分析,发现数据集中的小目标及个数较少的目标属于困难样本。受RetaiNet[6]网络的启发,对原网络中置信度损失和类别损失均使用Focal Loss 损失函数。同时在锚框设定时,发现KITTI 数据集的锚框与coco的有较大的差距。因此,本文采用K-means++自主生成的预测框尺寸,更好地适应数据集。

图3 YOLOv4-RF 网络结构Fig.3 YOLO4-RF network structure

本文目标检测网络结构的具体设计如下:

1)为保留更多待检测物体的特征信息,对特征图进行多尺度采样。同时,采用空洞卷积替代池化层来减少信息损失。基于以上,设计一个空洞卷积特征金字塔网络ASPP 替换YOLOv4 中SPP 模块。

2)为更好地提取多尺度的特征信息,在特征金字塔网络与主干网络之间引入反馈机制,使用二级递归特征金字塔对提取后的特征进行处理。每个反馈层均由从上至下的特征层融合得出,同时在每个反馈分支都添加ASPP 模块,对融合的特征信息做进一步处理。此部分工作可使YOLOv4 处理小目标的漏检和误检问题得到改善。

3)由于引入带有反馈机制的特征金字塔网络,需要部分的主干网络二次提取特征,训练与推理时间明显增加。基于此,对YOLOv4 主干网络CSPDarkNet53进行轻量化。从深度和宽度对CSPDarkNet53 网络进行缩减:在主干网络中减少BottleNeckCSP模块的个数,对于BottleNeckCSP 的卷积核个数也进行缩减。同时针对减少主干网络轻量化后带来特征提取能力不足的问题,在自顶向下的特征金字塔网络中加入BottleNeckCSP 模块。

随着对行业的逐渐了解,何正伟开始在田间做起了示范田。虽然撒可富在四川已经有了一定的渠道基础,但由于近年来农作物价格很不理想,农户们对于肥料价格十分敏感,对于走高端路线的撒可富来说,并不占优势。在何正伟看来,撒可富过硬的质量是打开局面的突破口。利用撒可富肥效长、同等用量肥效更强的特点,何正伟与中阿公司商议在柑橘种植区推出40公斤小包装产品,经过试验,不仅能保证肥效,甚至优于同类50公斤产品。真正帮助农户减肥增效,增产增收。

2.2 网络算法改进

2.2.1 轻量化的CSPDarkNet53

YOLOv4 中CSPDarkNet53 实际含有73 层卷积层,而本文所使用的特征金字塔包含反馈连接,得到预测的特征图时,要经过主干网络两次提取,这就显得原来的特征网络过深,耗时较长,不能满足自动驾驶领域对目标检测的速度要求。因此,本文着重对CSPDarkNet53 中的BottleneckCSP 部分在宽度和深度方面进行简化。对BottleNeckCSP 的轻量化分为两种,分别为CSP1 和CSP2。其中,CSP1 包含多个残差结构(ResNet),CSP2 包含多个空洞卷积进行采样。对于两种CSP 中的卷积核个数进行相应减少,从而达到宽度和深度的轻量化。具体在低目标信息采用CSP2,同时在原SPP,现有的ASPP 后加一层CSP2,加深网络而不增加较多的计算量,得到CSPDarkNet-Lite。

CSPDarkNet53 中CSP 模块均是通过堆叠BottleNeck 残差结构以增加网络深度。由表1 可以看出,本文对CSP模块在深度和宽度方面进行了轻量化。由于反馈网络的存在,使得轻量化后的网络仍能得到较好的精确度。

表1 CSPDarkNet-Lite 网络结构Table 1 CSPDarkNet-Lite network structure

2.2.2 空洞卷积池化金字塔

当前主流的目标检测网络都使用一些比较深层的主干网络,如ResNet[23]、ResNext[24]、DenseNet[25]、CSPDarkNet53 等。这些网络普遍的问题是网络模型的感受野会随着深度的加深而扩大,以及小目标的位置信息在高层特征图中缺失严重。在YOLOv4中,SPP 使用池化层在多个尺度进行采样,虽然会对主干网络提取的特征进行多尺度融合,但也会造成信息的损失。针对这一问题,本文结合空洞卷积的特点,使用不同空洞率的空洞卷积代替池化层形成空洞空间池化金字塔(Atrous Spatial Pyramid Pooling,ASPP)[26],达到增大不同感受野同时保留大量目标位置信息的目的。空洞率分别为1、3、3、1 的ASPP结构如图4 所示。

图4 ASPP 结构Fig.4 ASPP structure

2.2.3 二级递归特征金字塔网络

YOLOv4 采用PANet 网络进行路径增强和聚合,对来自FPN 的信息重复处理,使底层的定位信息更容易传播。FPN 和PANet 网络均反映了特征信息的重复使用和细化的重要性。为获得更加丰富的定位信息,本文设计二级递归特征金字塔(Recurisive Feature Pyramid,RFP)网络,其结构如图5 所示。

图5 二级递归特征金字塔网络结构Fig.5 Two-level recursive feature pyramid network structure

本文从FPN 层增加了FPN 到主干网络的反馈连接,使主干网络二次训练对应的特征层,在反馈训练时也包含了PANet 的自底向上的传播。为解决主干网络轻量化后输出特征表达能力不足的问题,本文在特征金字塔每个特征层自顶向下传播中增加一个CSP2 结构,即在反馈时,每个特征层都先经过CSP2模块,经过ASPP 获得多尺度特征信息并调整输出尺寸,然后送入原主干网络。为减少参数量,本文在反馈时共享原卷积层的参数,比PANet 少了一个特征金字塔层的参数。

2.2.4 K-means++与Focal Loss

在对KITTI 数据集进行分析后,本文对原类别进行调整,除去杂项及其他项后,剩余7 个类别。通过对处理后的类别进行分析,本文融合其中的一些类别形成最终的3 个类别。与COCO 数据集和Pascal Voc2012数据集相比,KITTI数据集的宽高比更大。由于K-means算法存在依赖初始值的缺点,为获得更加精确、稳定的尺寸,本文采用K-means++自主生成的预测框尺寸。根据模型结构,对KITTI数据集标签进行聚类,生成9组不同的宽高组合,聚类结果如表2 所示。

表2 KITTI anchor 聚类结果Table 2 KITTI anchor clustering result

由于小目标含有像素少、易受干扰等原因,YOLOv4 的损失函数不能很好地表达小目标的损失在所有损失中的占比,导致不能更好地训练小目标。因此,在边界框回归损失上,本文和YOLOv4一致,采用CIoU 损失函数。但由于存在正负样本比例失衡,以及困难样本(小目标)等问题,本文对YOLOv4 中的置信度损失和分类损失均采用Focal Loss 损失函数,利用Focal Loss 中的调节因子调整正负样本以及困难样本的权重。Focal Loss 损失函数(见式(5))是在标准交叉熵损失函数(见式(3))的基础上进行改进,增加了正负样本权值αt与难易样本权值(1-pt)γ。式(3)、式(4)中p表示预测样本为1 的概率。

综上,本文使用K-means++聚类预测框,使用CIOU 损失函数对边界框进行回归损失,使用Focal Loss 对置信度和类别计算损失,加快回归速度,增强网络的鲁棒性。

3 实验结果与分析

3.1 数据分析与预处理

本文实验采用德国卡尔斯鲁厄理工学院和丰田美国技术研究院联合创办的KITTI 数据集[27],其中包含8 个类别,共有训练集7 481 张图片、测试集7 518 张图片。数据集中Misc 类别为杂项,图6(a)为去除Misc 后训练集的类别分布图。从图6(a)可以看出类别数量具有较大差距,最少的仅有199 个目标,而最多的达到25 942 个目标。为使图片更好地应用于自动驾驶算法训练及验证,本文先通过随机裁剪、放大、光度变化等方法对数量较少的类别扩增1.5 倍,再对数据集中不同类别进行融合为一类,最后分为Car、Person、Cyclist 这三个类别。处理后的数据集类别数量如图6(b)所示。由于训练集的数量较少,本文在训练时采用Mosia 数据增强,以增强网络的鲁棒性并减少类别的不平衡。

图6 KITTI 数据集类别分布Fig.6 KITTI dataset category distribution

3.2 评价标准

本文从准确率、召回率、平均准确率(mean Average Precision,mAP)以及各类别的P-R曲线图衡量模型的整体性能,其中:P表示正确检测的目标个数在所有检测目标中占有的比例,即准确率;R表示正确检测的目标在全部目标中占有的比例,即召回率。

由于置信度的影响,目标检测标准中单一的P或R都不能作为评价标准,因此本文采用P-R曲线图进行定性分析,在数值上采用mAP 定量分析模型精度。公式如下:

在式(6)和式(7)中:TP表示对样本中检测正确的个数(True Positive);FP则与此相反,表示误检的个数(False Positive);FN为样本中漏检的个数(False Negative)。在式(8)中:样本中类别的数量表示为N;Pn为该类的AP 值。

3.3 训练策略

由于数据集的尺寸较大,本文网络的输入尺寸采用640×640,训练时对图片进行放缩处理,同时启用马赛克数据增强。训练时分为两个阶段:先进行150 个epoch 冻结训练;再进行200 个epoch 解冻训练。冻结阶段冻结主干网络,占用的显存较少,仅对网络进行微调,此时设置batch_size 为8。解冻阶段不冻结主干网络,网络的所有参数都会发生改变,占用的内存较大,此时设置batch_size 为4。学习率在冻结阶段初始化为0.001,解冻阶段初始化为0.000 1,两阶段均采取每个epoch 更新一次学习率,乘法因子为0.94。

本文实验环境为:Pytorch1.6 深度学习框架,Intel Core I7,NVIDIA GeForce GTX1080Ti,显存32 GB。

3.4 消融实验

为了更全面地评估本文的改进部分,对YOLOv4 网络进行消融实验,将改进后的主干网络以及特征金字塔分别加入到YOLOv4 网络中,其他的与YOLOv4 保持一致,YOLOv4 作为对照组,共组成3 组对照组合,消融实验结果如表3 所示。从表3中可以看出:仅使用改进后的RFP 模块对检测的精确度有明显提升,但是模型规模增大了55 MB;在对主干网络进行轻量化后,虽然精确度仅增加1.4,但模型规模缩小了138 MB。

表3 模块消融实验结果Table 3 Result of module ablation experiment

3.5 预测结果分析

通过消融实验发现,本文算法在KITTI 数据集类别上预测的结果要稍高于YOLOv4。为进一步评价网络的综合性能,首先在KITTI 数据集上,针对各个类别的准确率和复杂街景的4 组预测图,将本文提出的算法YOLOv4-RF 与YOLOv4[19]进行对比。然后从KITTI 数据集各类别的P-R曲线图评价算法的预测能力。从表4 中可以看出,在Cyclist 类别上本文算法与YOLOv4 算法的精确度保持一致,而在其余类别上本文算法的精确度稍高于YOLOv4。再从图7(b)与图7(a)中的4 组对照图片可以看出,在复杂街景中,本文算法对小目标物体的检测能力与定位能力要优于YOLOv4。

表4 YOLOv4 与YOLOv4-RF 算法的精确度比较Table 4 Comparison of accuracy between YOLOv4 and YOLOv4-RF algorithms

图7 KITTI 数据集测试结果对比Fig.7 Comparison of test results on KITTI data set

最后,在召回率R取值0,0.01,0.02,0.03,…,1时,采用插值方法计算出精确度,画出KITTI 数据集各类别的P-R曲线图。对比图8(a)与图8(b)可知,本文算法的各类别曲线在相同的取值R下,精确度基本都高于YOLOv4,进一步表明本文算法具有更强的预测能力。由此可见本文算法在性能上优于YOLOv4 算法。

图8 各类别P-R 曲线Fig.8 P-R curve of various classes

3.6 对比实验

本文选取YOLOv3、YOLOv4、RetinaNet50 这3 种经典网络作为对照组进行性能对比。然后在KITTI 数据集上从准确率、召回率以及mAP 上对比4 种算法的性能,如表5 所示,可以看出,YOLOv4-RF在精度上明显优于其他算法。

表5 YOLOv4-RF 与其他算法的综合比较Table 5 Comprehensive comparison between YOLOv4-RF and other algorithms %

4 结束语

现有深度学习算法在自动驾驶领域应用时存在小目标漏检、误检、检测精度及速度不高的问题。对此,本文提出一种改进算法YOLOv4-RF 对主干网络进行轻量化以增加推理速度。加入空洞卷积池化金字塔,获得更加丰富的上下文信息,提高小目标检测的准确性。此外,使用二级递归金字塔增加反馈机制,得到表达更好的输出特征。实验结果表明,YOLOv4-RF 在综合性能上具有较大优势。后续将部署高准确度的轻量化模型到嵌入式设备,设计更轻量化和推理速度更快的模型。

猜你喜欢

空洞金字塔主干
“金字塔”
抓主干,简化简单句
锻造过程中大截面塑料模具钢中空洞缺陷的闭合行为
Great Vacation Places
如何避免想象作文空洞无“精神”
海上有座“金字塔”
金字塔是用金子造的吗
左主干闭塞的心电图表现
空洞的眼神
血管内超声在冠心病左主干病变介入诊疗中的指导价值研究