面向驾驶场景的多尺度特征融合目标检测方法
2021-07-28黄仝宇胡斌杰朱婷婷黄哲文
黄仝宇,胡斌杰,朱婷婷,黄哲文
1.华南理工大学 电子与信息学院,广州510640
2.广东白云学院 大数据与计算机学院,广州510450
3.广州市生发科技服务有限公司 技术部,广州510308
近年来,随着人工智能技术的快速发展,涌现一大批基于深度学习的目标检测算法,并被广泛应用于辅助驾驶、视频监控、工业检测与机器人视觉等领域的目标检测任务中。从设计原理来看,基于深度学习的目标检测可分为以R-CNN(Region-Conventional Neural Network)[1]、Fast R-CNN[2]和Faster R-CNN[3]为代表的两阶段目标检测算法(Two-stage Object Detector)以及以YOLO[4-6](You Only Look Once)系列、SSD[7-8(]Single Shot Multibox Detector)为代表的单阶段目标检测算法(One-stage Object Detector)两个类别。其中,两阶段目标检测算法分为两个阶段,第一阶段通过候选区域生成网络(Region Proposal Network,RPN)生成一个有可能包含待检测目标的候选框,第二阶段通过卷积神经网络提取特征来对候选框中候选目标的类别和位置进行判断和预测;单阶段目标检测算法不使用候选区域生成网络,直接在卷积神经网络中提取特征来判断和预测目标分类和位置信息。尽管单阶段目标检测算法在检测速度上有了很大的提高,但是检测精度却不如两阶段目标检测算法。为了提升单阶段目标检测算法精度,2017 年Lin 等人提出RetinaNet[9]算法,通过结合FPN[10(]Feature Pyramid Network,特征金字塔网络)和FCN[11(]Fully Convolutional Networks,全卷积神经网络),并重新定义标准的交叉熵损失,较好地提升了特征提取的效果。2018年Zhang等人基于SSD提出了改进方法RefineDet[12]算法,结合单阶段检测算法和两阶段检测算法的优点,采用一种两步级联回归(two-step cascaded regression)方式来实现目标检测,提升了目标的定位精度和分类效果。江忠钱[13]提出一种基于RefineDet算法的多特征最大值融合的行人检测算法,使得融合层的特征可辩性更强,在小目标和目标遮挡情况下体现出较好的检测性能。岳楷岚[14]以RefineDet 算法为基础框架,结合特征增强和特征融合模块,较好地提升了辅助驾驶系统中小目标行人的检测能力。季一木等人[15]基于RGBD、激光点云与传感器等多种感知技术,提出3D目标检测算法,研究无人驾驶场景下的车辆感知。针对多尺度目标检测存在的问题,Pang等人构建LFIP[16(]Light-weight Featurized Image Pyramid,轻量级特征化的图像金字塔)网络,通过采用轻量级卷积块提取判别性信息更多的多尺度特征图,提升目标分类的准确度。为了增强网络结构的特征提取能力,Liu 等人提出了RFB[17(]Receptive Field Block,感受野块),它通过模拟视觉系统中RFs(Receptive Fields,感受野)的大小和偏心率之间的关系以增强特征的可辨性和模型的鲁棒性。
由于车辆驾驶场景下采集的图像较为复杂,存在小目标、遮挡目标等情况,因此本文基于RefineDet网络模型进行了一系列改进与优化,构建面向驾驶场景的多尺度特征融合的目标检测方法。
1 多尺度特征融合目标检测方法
1.1 网络结构
RefineDet[12-14]网络模型主要由ARM(Anchor Refinement Module,锚点框修正模块)和ODM(Object Detection Module,目标检测模块)两个模块组成,通过TCB(Transfer Connection Block,转换连接模块)连接。其中,ARM 模块通过卷积层提取特征后得到不同尺度的特征图,可以粗略预测和估算目标的位置和得分,过滤不包含目标的负锚点框以减少搜索空间和时间,并初步调整锚点框的大小和位置;ODM 模块是根据修订后的锚点框将结果调整到准确的目标位置并预测多类别标签。可见,RefineDet 网络模型兼备单阶段检测算法和两阶段检测算法的优点,在检测速度和检测精度方面都有较好的表现[12]。然而,由于深层卷积神经网络倾向于提取抽象的语义信息,对小目标特征信息不敏感;而浅层卷积神经网络所提取的小目标特征信息在训练过程中因无法确定是正确的分类而被丢弃,因此RefineDet网络模型存在小目标漏检或误检的情况。
为了保留浅层卷积神经网络提取的小目标特征信息,提升驾驶场景中不同尺寸目标的检测精度,在RefineDet网络结构中的ARM模块嵌入一个轻量级特征化的图像金字塔LFIP[16],记为RefineDet-LFIP。将LFIP网络中生成的多尺度特征图与RefineDet 中的ARM 模块输出的结果相融合,使得特征层的不同尺度的目标信息均可以得到保留,可提升特征层中锚点框初步分类和回归的输出效果,为ODM 模块提供修正的锚点框以便于进一步回归和多类别预测。
为了进一步增强RefineDet网络结构的特征提取能力,在RefineDet网络结构中的ODM模块之后嵌入多分支结构RFB[17],记为RefineDet-RFB。RefineDet-RFB 在目标检测任务中获得不同尺度的感受野以改善主干网络中提取特征的能力。基于RefineDet 网络结构,分别嵌入LFIP网络结构和RFB模块的网络结构记为Refine-Det-LFIP-RFB。如图1所示。
图1 基于改进RefineDet的多尺度特征融合目标检测网络模型
1.1.1 RefineDet-LFIP模块
原LFIP网络是基于SSD框架上设计[16],在RefineDet-LFIP 中,对LFIP 的网络结构进行了一些调整。设输入图像尺寸为320×320×3。为了保留更多有效的多尺度目标的特征信息,首先对输入的图像执行4次迭代下采样(Interative Down Sampling)操作得到一个4 个层级的图像金字塔{i1,i2,i3,i4},每个层级图像in的分辨率与主干网络对应层级输出的特征图保持一致,分别为40×40,20×20,10×10 与5×5。然后,将其输送至一个包含1×1与3×3卷积层、通道不同的轻量级卷积块生成四个不同尺度的特征图,分别为40×40×512,20×20×512,10×10×1 024 与5×5×512,从而使得LFIP[16]网络生成的多尺度特征图与RefineDet 网络结构中ARM 模块对应的主特征图相匹配。其次,对LFIP 网络生成的多尺度特征图与ARM 模块相对应的主特征图进行BN[18](Batch-Norm,归一化)操作,将特征图的值控制在同一范围内。为了增强不同尺度目标的重点特征信息,抑制不重要的特征信息,将归一化后的两种特征图进行对应元素相乘,使得特征图具有更丰富的空间细节信息。再次,经过一个PReLU激活函数和两个3×3的卷积层以生成调制特征图。
记RefineDet 网络结构中第n层的特征图为fn,对应的LFIP网络中的特征图为sn,β(⋅)表示BN操作,φn(⋅)表示PReLU激活函数和两个3×3的卷积层,生成的调制特征图mn。如式(1)所示:
在此基础上,将检测层Conv5_3、Fc7和Conv6_2的调制特征图与前一层的调制特征图融合,可以有效地在较浅层特征中融合多个不同尺度的语义信息,提升对不同尺度目标检测的能力。
记第n层的调制特征mn,第n-1 层的调制特征为mn-1,φn表示3×3卷积层、上采样和BN操作,β(⋅)表示BN操作,γ(⋅)表示PReLU激活函数3×3的卷积层,生成的目标融合特征图为dn,并将特征图dn送至ODM 模块以提取目标信息。dn的表达式如式(2)所示:
由上述的分析可知,RefineDet 网络结构中的ARM模块用于移除不包含目标的负锚点框,并初步调整锚点框的位置和大小。ARM 输出主特征与LFIP 网络生成的多尺度特征融合之后,使得提取的特征信息不仅具有丰富的空间细节信息,而且融合了不同尺度的语义信息,可提升特征层中锚点框初步分类和回归的输出效果,为ODM 模块提供修正的锚点框以便于进一步回归和多类别预测。
在检测速度方面,由于图像金字塔网络中的卷积层相对较浅,且采用最大下采样的尺度比原图缩小了8倍,故而对检测速度影响不大。
1.1.2 RefineDet-RFB
在RefineDet 网络结构中的ODM 模块每个参与最后预测的P3、P4、P5 与P6 特征层后接一个感受野模块RFB[17],采用多种尺寸的卷积核来使感受野多样化。RFB 模块是由多种不同尺寸卷积核的卷积层构成的多分支网络结构。RFB 模块首先采用1×1 卷积降低通道数,然后分别进行1×1、3×3 和5×5 卷积操作以及比率Rate 为1、2 和3 的扩张卷积操作。在此基础上,采用对应元素相加的方式将这些特征图进行融合,以融合不同的特征。最后,通过使用跳层连接操作,将输入特征图与扩大感受野后的特征图进行结合,输送至目标预测模块。
为了减少参数量与计算量,采用两个级联的3×3卷积层替换单个的5×5卷积层。其中,第一层是3×3的卷积层,第二层是一个作用在第一层3×3输出表格上的全连接层[19],如图2所示。
图2 两个级联的3×3卷积替换5×5卷积
设输入特征图尺寸为n×n×cin,卷积核尺寸为k×k,填充(padding)为p,步长(stride)为s,输出通道为cout,经过卷积运算后的输出特征图尺寸为[(n+2p-k)/s+1]×[(n+2p-k)/s+1]×cout,参数量为(cin×k×k+1)×cout,在不考虑激活函数与BN 的计算量的前提下,计算量(乘法次数)为cin×k×k×[(n+2p-k)/s+1]×[(n+2p-k)/s+1]×cout。为了简化运算,设步长为1,填充为0,cin=cout=1。采用单个5×5 卷积与两个级联的3×3卷积的输出特征图尺寸、参数量与计算量的比较如表1所示。
表1 输出特征图尺寸、参数量与计算量的比较
由上面的分析可知,将网络中的5×5卷积替换成两个级联的3×3 卷积,得到输出特征图的尺寸一致,且在当n>10 时,两个级联的3×3卷积的参数量和计算量均少于单个5×5卷积。简而言之,该操作在保持感受野范围的前提下,可以有效减少参数量和计算量[19]。此外,两个3×3卷积层均后接非线性激活函数,具有较好的非线性特点。
为了减少RFB模块的参数量和计算量,将模块中的5×5卷积替换成两个级联的3×3卷积,优化的RFB模块如图3所示。
图3 优化RFB模块
从RefineDet-RFB 的应用效果来看,使用RFB 可融合不同特征,提升RefineDet网络结构的特征提取能力,可以在兼顾检测速度的同时达到较好的效果。
1.2 激活函数
ReLU激活函数虽然解决了饱和非线性激活函数梯度消失的问题,但存在均值偏移和神经元死亡等的问题,影响网络模型的收敛性[20]。本文方法在多层神经网络的激活函数采用带有可学习参数的非线性激活函数PReLU[20-21(]Parametric Rectified Linear Unit,参数化修正线性单元)。PReLU的表达式如式(3)所示:
其中,i表示第i个通道,当xi>0 时,f'(xi)=1,故PReLU函数在xi>0 时,不会造成梯度消失的问题。此外,PReLU 函数解决了ReLU 函数在负半轴为0使网络的稀疏性增加的问题。ReLU与PReLU函数如图4所示。
图4 ReLU函数与PReLU函数的图像
PReLU 函数在负半轴的斜率ai为非预先定义,可以通过反向传播算法进行学习,具有没有神经元死亡和收敛速度更快的特点。如式(4)、(5)、(6)所示:
式中,ε为损失函数,μ为动量,ε为学习率。
1.3 损失函数
RefineDet 的损失函数L由ARM 模块的二分类损失LB-ARM和回归损失LR-ARM以及ODM模块的多分类损失LM-ODM和回归损失LR-ODM组成。为了更好地解决驾驶视觉下的遮挡目标的检测问题,将ODM 模块的回归损失LR-ODM由Smooth L1 Loss 替换为排斥力损失函数Repulsion Loss[22-26]。Repulsion Loss 在CityPersons 数据集上的评估结果表明,在heavy、partial 和bare三种不同程度的遮挡情况下,采用Repulsion Loss 比BaseLine有更好的表现[22]。
Repulsion Loss 损失函数的作用是使预测框(红色虚线)不受其他的目标框(绿色实线)的干扰,尽可能地向对应的目标框(红色实线)靠拢。如图5所示。
图5 遮挡目标的目标框与预测框
Repulsion Loss损失函数由一个吸引项LAttr、两个排斥项LRepGT与LRepBox组成,关系系数α和β用于平衡LRepGT与LRepBox的损失值。一般地,α和β取0.5[22]。如式(7)所示:
为了减少预测框与附近目标框之间的交集,LRepGT采用SmoothLn函数度量预测框与附近目标框的距离,SmoothLn如式(10)所示:
其中,σ∈[0,1],不同σ取值下SmoothLn的函数的曲线如图6所示。
图6 不同σ 取值下SmoothLn 的函数图像
由图可见,水平坐标x表示预测框BP与附近目标框重叠区域在两者合并区域上的占比,纵坐标y则为重叠区域所产生的损失值。Repulsion Loss在σ取0和1时,模型的效果最佳[22]。
在此基础上,构建排斥项LRepGT损失函数的表达式,如式(11)所示:
由式可知,LRepGT随着预测框BP与附近目标框的IoG的增大而增大,随着IoG的减少而减少。为了减少该部分的损失,只需要减少预测框BP与附近目标框重叠区域。因此,预测框越逼近于附近目标框,LRepGT对预测框回归器的惩罚就越大,从而防止预测框移向附近的目标框。
LRepBox为预测框与附近目标的预测框所产生的损失,如式(12)所示:
其中,将正样本P+分为不同的子集,P+=P1⋂P2⋂…⋂表示不同目标的预测框,SmoothLn函数用于度量预测框与在附近目标的预测框的距离,使得不同子集的proposalP的重叠区域尽可能得小。从分母部分可见,只有预测框有重叠区域才计入损失值,如果完全不相邻,则不计入。LRepBox可以降低NMS(Non-Maximum Supression,非极大值抑制)之后将不同回归目标的边界框合并为一的概率,使得本文方法在驾驶场景下目标存在遮挡的情况下更具有鲁棒性。
2 自建数据集
因真实场景与公开的数据集在场景、图像质量和拍摄角度上存在较大差异,为了更好地模拟车辆驾驶视觉,本文方法的实验数据通过车载摄像机采集得到驾驶视角下不同场景的视频,车载采集摄像机如图7 所示。车载摄像机从广东不同城市采集,包含广州、佛山、东莞等城市,涵盖了从上午10:00 至下午17:00 不同的时间段,采集到的200段视频分辨率为1 920×1 080 pixe(l像素点),帧率为每秒25 帧,通过每秒抽取一帧的方式形成图像数据集,共48 260 张图片。从中随机选取9 652张图片作为测试数据集,用于对网络模型的性能评价,其余38 608张图片作为原始训练数据集。进一步,对原图像数据集的目标图像随机进行反转、缩放、亮度变化、对比度变化和饱和度变化等数据扩充,处理后形成训练数据集,共115 824 张图片,自建数据集样本如图8 所示。实验主要对图片中的car(汽车)、bike(自行车、摩托车等)与pedestrian(行人)等交通参与者进行检测。
图7 车载摄像机
图8 自建数据集样本
3 评价指标
本文方法采用AP(Average Precision,平均精度)、mAP(mean Average Precision)和FPS(Frames Per Second)作为评价指标,具体计算和说明为:
(1)AP 为某个类别的平均精确度,对于第i个类别,选取不同的IoU阀值,平均精确度的计算公式为:
其中,p表示精确度,r表示召回率,其几何意义是精确度和召回率所形成的曲线与水平轴围成的面积。
(2)mAP 为数据集中所有类别的平均精度的均值,类别数为m的均值平均精度的计算公式为:
(3)FPS 为每秒检测图像帧数,该指标不仅仅与算法模型的计算量相关,还与实验过程中的硬件性能相关。一般地,如检测速度不小于25 frame/s,可认为该算法模型满足实时性要求。
4 实验与分析
4.1 实验平台
本文实验在32 GB 内存、GeForceGTX 1080 型号GPU、Intel I7-7700型号CPU的硬件平台和Ubuntu 16.04操作系统训练、测试,本文方法基于Caffe深度学习框架。
4.2 模型训练
本文对网络模型采用端对端的方式进行训练。训练的图像大小为320×320,设置mini-batch大小为32,最大迭代次数为20万次,初始学习率base_Lr设为0.01,分别经过50 000、100 000 和150 000 次迭代之后,学习率减少为原来的1/10,动量Momentum 设置为0.9,权值衰减Weight_decay设置为0.000 5。
为了验证采用PReLU激活函数的网络模型收敛速度提高,本文在算法训练过程中分别采用ReLU和PReLU两种激活函数进行训练,如图9所示。
图9 损失值随迭代次数变化情况
随着迭代次数和训练时间的增加,两种方法的损失值逐步降低,整体趋势较为平稳。相对而言,在自建样本集训练过程中,采用PReLU 激活函数的网络模型的收敛速度得到加快。
4.3 实验结果与分析
本文对RefineDet、RefineDet-LFIP、RefineDet-RFB、RefineDet-LFIP-RFB 与本文算法在自建数据集测试子集上进行检测性能比较。其中,评价指标均考虑当IOU(Intersection Over Union,交并比)阈值为0.5 的mAP,而检测速度不含图像读取和缩放图像的时间,仅为网络模型前向传播和输出检测结果的时间。如表2所示。
表2 本文方法与其他方法在测试集上的检测性能比较
由表可见,本文方法在自建测试集中的mAP为85.59%,均优于其他算法;本文方法的FPS 为41.7 frame/s,略低于其他算法,这是由于对网络模型进行了一系列改进与优化所致。本文方法检测速度大于25 frame/s,说明可满足驾驶场景目标检测的应用要求。
本文方法与RefineDet 算法模型在测试集上对car(汽车)、bike(自行车、摩托车等)与pedestrian(行人)的目标检测结果如图10 所示。其中图10(a)为原RefineDet算法模型的检测结果,图10(b)为本文方法的检测结果。从图10可知,在目标遮挡的情况下,本文方法仍然能够有效检测到大部分遮挡目标,并能够检测出交通道路较远处的小目标。从检测效果来看,本文方法较好地解决驾驶视觉下的遮挡目标检测和小目标检测的问题。
图10 RefineDet算法模型与本文方法的检测结果
5 结束语
针对驾驶视觉下目标检测卷积神经网络模型检测精度较低的问题,提出一种基于改进RefineDet 的轻量级目标检测方法。包括:
(1)首先在RefineDet中嵌入LFIP子网络,RefineDet网络结构中ARM 的主特征图与LFIP 网络的多尺度特征图融合之后,提升了特征层中锚点框初步分类和回归的输出效果,为ODM 模块提供修正的锚点框以便于进一步回归和多类别预测。此外,该方法加强了RefineDet网络结构预判特征的辨别力,增强网络特征的提取能力。
(2)使用RFB可融合不同特征,提升RefineDet网络结构的特征提取能力,可以在兼顾检测速度的同时达到较好的效果。
(3)将网络结构中多层神经网络中的激活函数替换为带有可学习参数的非线性激活函数PReLU,可以使得模型更好地收敛,在增加极少量参数的前提下提高准确率。
(4)使用Repulsion Loss 函数作为ODM 模块的回归损失函数,可以更好地解决驾驶视觉下的遮挡目标的检测问题,使目标检测中的某预测框更靠近其对应的目标框,并使该预测框远离附近目标框及预测框。
本文研究可为驾驶视觉下的目标检测提供方法和思路,为后续针对低成本硬件平台、边缘节点实现辅助驾驶场景下的目标检测打下基础。然而,该模型仍然有一些提升空间,其精确度、模型的参数量与计算计算量之间未达到高度一致性,因此在后续研究中将进一步对网络模型进行改进,在减低模型占用系统资源、提高运行效率的同时,进一步提升模型的识别精度,更好服务于驾驶场景下的目标检测任务中。