APP下载

基于改进CenterNet的交通场景目标检测技术研究

2023-01-18赵奉奎成海飞苏珊珊

关键词:池化神经网络函数

赵奉奎,成海飞,苏珊珊,张 涌

(南京林业大学 汽车与交通工程学院,江苏 南京 210037)

0 引 言

随着我国社会经济的迅猛发展,机动车数量越来越多,各式多样的交通工具给人们出行带来极大便利的同时还存在着许多交通安全隐患。数据统计显示,全球每年因交通事故的受伤人数已达到数千万人,大概有80%以上的交通事故是由于驾驶员来不及反应而导致的[1]。如果汽车能够在行驶过程中提前检测到周围障碍物的情况,便能够在事故发生前提醒驾驶员注意周围路况,从而在源头上减少交通安全事故发生。

目标检测[2]已经成为汽车自动驾驶的关键研究内容和重要前提。卷积神经网络的提出[3],解决了传统图像处理方法需要手动提取特征的问题,为目标分类、检测和分割提供了强有力的工具[4]。当前目标检测框架均基于卷积神经网络,其计精度及检测速度得到很大程度上提高[5]。目前目标检测算法可分为Anchor-based算法[6]和Anchor-free算法[7]。其中,Anchor-based算法[8]是在预测过程中利用锚框计算预测边界框的尺寸信息,应用较为广泛的有RetinaNet[9]、SSD[10]、Faster R-CNN[11]、You Only Look Once(YOLO)系列[12]等,即在图片上设定大量的先验框,网络的预测结果会对先验框进行调整获得预测框。先验框很大程度上提高了网络的检测能力,但基于框锚的目标检测算法会将目标全部可能存在的位置和分类结果列举出来,将会涉及到大量的标识与训练,设定过程繁琐且低效,因而运行速度较低,不仅消耗大量的时间还需要额外的后处理。基于Anchor-free算法有CornerNet算法[13]、CenterNet算法[14]等,此类算法利用深度卷积神经网络,采用了关键点预测的方法,在预测时无需生成大量锚框,通过关键点获得目标的位置及类别,能够改善锚框带来的各种问题,减少了检测时带来的计算量,极大提高了目标检测的速度和精度。

笔者对CenterNet目标检测算法进行改进,将ReLU函数改进为LeakyReLU函数,解决其神经元死亡问题以达到更高的识别性能,从而可以准确识别交通场景目标,实时检测道路情况,为防撞系统提供有效的目标信息[15]。同时,得到YOLOV4目标检测网络中空间金字塔池化(spatial pyramid pooling,SPP)的启发,在CenterNet目标检测算法中ResNet-50主干网络之后增加了SPP结构,增大了感受野,从而可以更好提取交通场景目标的特征信息,提高道路实时检测精度[16]。

1 CenterNet目标检测算法原理

CenterNet用边界框中心点代表目标,通过对关键点估算预测中心点,并利用中心点处提取的图像特征回归目标的尺寸和维度等信息实现目标预测。因此,基于CenterNet的目标检测实际上是一种关键点估算的问题。在预测时,将图像输入到卷积神经网络中,卷积神经网络输出热力图,热力图中的峰值点即为目标中心点,之后根据图像特征回归边界框的高和宽。

(1)

(2)

(3)

(4)

Ldet=Lk+λsizeLsize+λoffLoff

(5)

(6)

CenterNet目标检测算法全部的输出都是直接通过关键点估计来产生,图像特征在每个峰值处可直接回归预测出预测框的宽和高,对其进行调整后即可获得预测框,无需根据交并比IOU(intersection over union)进行非极大值抑制的运算。对关键点的提取可完全取代非极大值抑制,并可利用3×3最大池化层的高效运算。

CenterNet目标检测算法可使用ResNet-18,ResNet-101,DLA-34或Hourglass-104作为主干网络提取图像特征。

2 CenterNet目标检测算法改进

2.1 激活函数优化

ResNet是文献[18]提出的一种用于图像分类的深度神经网络,能够在不增加网络复杂度的情况下增加网络深度,提高网络模型准确率。ResNet有18、34、50、101和152层等不同深度的网络结构,综合考虑网络深度、浮点运算数量和在ImageNet上的错误率,采用50层深度神经网络ResNet作为主干网络,替代原CenterNet中的主干网络提取网络提取车辆的特征。

为利用非线性函数描述神经网络提取的特征,神经网络通过仿射变换后需要紧跟非线性激活函数。神经网络常用的激活函数主要有Sigmoid函数、Tanh函数、ReLU函数、LeakyReLU等。CenterNet目标检测算法原文中所使用的激活函数为ReLU函数,ReLU函数的表达式如式(7):

y=max(0,x)

(7)

该函数能够解决梯度消失的问题,且实现收敛速度较快,在计算上较为高效,相对于Sigmoid函数梯度的计算,ReLU函数梯度取值只有0或1,且ReLU将负值截断为0,避免了无用信息的干扰,为网络引入了稀疏性,进一步提升了计算效率。

ReLU函数曲线如图1(a),该函数为分段线性函数。当x>0,其梯度不为0,可用于权重更新;当x<0时,f(x)=0,其梯度为0,权重无法更新,相当于其输出为0,神经元不会被激活,从而使得网络变得稀疏,可进行高效率计算。

图1 ReLU和LeakyReLU函数图像Fig. 1 ReLU and LeakyReLU function image

通常激活函数的输入值有一项偏置值,假设偏置值太小,以至于输入激活函数的值总是负的,那么反向传播过程经过该处的梯度恒为0,对应的权重和偏置参数此次无法得到更新。如果对于所有的样本输入,该激活函数的输入都是负的,该神经元无法学习,称为神经元“死亡”。尽管稀疏性可以提升计算高效性,但同样可能阻碍训练过程,网络稀疏会使ReLU在训练时不够稳定,很容易出现神经元“死亡”现象。当一个相当大的梯度流过采用ReLU作为激活函数的神经元时,该神经元更新参数后不会输出有效数据,梯度将会永远为0。

LeakyReLU的提出可以解决ReLU神经元“死亡”的问题,其函数表达式如式(8)。式中α为一个很小的常数,保留了一些负轴的值,使得负轴的信息不会全部丢失。

(8)

LeakyReLU函数图像如图1(b)。LeakyReLU与ReLU很相似,仅在输入小于0的部分有差别。ReLU输入小于0的部分数值为0,而LeakyReLU输入小于0的部分数值为负值,且有微小的梯度。在反向传播过程中,对于LeakyReLU激活函数,输入小于0的部分可以计算得到梯度,避免了神经元的“死亡”现象。

基于以上分析,将CenterNet目标检测网络中的激活函数由ReLU改为LeakyReLU,以提高算法的目标检测性能。

2.2 空间金字塔池化

大感受野可以感知到整个物体,感知到物体周围的环境,进而增加图像像素点和激活函数之间的连接数量[19]。空间金字塔池化(spatial pyramid pooling,SPP)是一种增加感受野的常用手段,事实上在CNN普及之前,SPP是图像分类和图像检测领域的一种关键技术。考虑到SPP的显著特性,将其应用在CNN的环境中,将CNN层之后的池化层代替为SPP层,它将图像从细到粗进行分割,并结合其中的局部特征,具体来说,它将特征映射从主干分割成几个d×d块,d∈Z是正整数。SPP的每个空间箱中,它们汇集了每个过滤器的响应,从而使CNN接受任何尺度的输入信息,极大增加了网络模型的尺度不变性,有效抑制了模型的过拟合,典型网络模型如图2。空间金字塔池化通过采取多个不同池化核的最大池化操作来保证固定的特征向量输出,从而实现任何尺度的输入。设定不同的池化尺寸,再按照不同的池化尺寸进行池化操作,最后合并不同的池化结果,即得到空间金字塔池化的结果。

图2 空间金字塔池化层Fig. 2 Pool layer of space pyramid

笔者由YOLOV4目标检测主干网络CSPdarknet53最后一个卷积特征层得到启发,利用SPP增大感受野,融合多尺度特征,更好地分离出交通场景中最显著的上下文特征信息。在CenterNet中,利用主干特征提取网络Resnet50,获取了一个初步的特征层,其大小为16×16×2 048,SPP结构就添加在该特征层之后,再分别利用三个不同尺度的最大池化操作进行处理,该最大池化的池化核大小分别为13×13、9×9、5×5,同时,池化操作得到的特征层作为下面三次上采样的输入特征层。

3 实验与结果分析

3.1 实验环境

计算机处理器为Intel i9-9900K CPU,主频3.60 GHz,内存32 G,显卡型号Nvidia GeForce RTX 2080 Ti,采用Ubuntu 18.04操作系统,使用主流深度学习框架Keras搭建神经网络。网络输入大小为512×512,训练时Batch_size设置为4,初始学习率为0.001,训练100轮。网络模型的训练采用VOC数据集,利用实际场景图片对网络模型进行测试。

3.2 评价指标

精确率和召回率是最常用的两个目标检测算法评价指标。精确率是指正确识别为正类的目标在所有判定为正类的目标中所占的比例,记为Pr;召回率是指被正确识别为正类的目标在所有正类目标中所占的比例,记为Re。精确率和召回率的计算公式分别如式(9)、式(10):

(9)

(10)

式中:TP为正确识别为正类的目标个数;FP为错误识别为正类的目标个数;FN为错误识别为负类的目标个数。

在实际的应用过程中,精确率和召回率无法同时满足要求,因此使用平均精度AP值综合考虑两个指标,从而衡量神经网络的性能。AP计算公式如式(11):

(11)

式中:N为测试集中图片数量;Pr(k)为第k张图片的Pr值;ΔRe(k)为从k-1张图片到k张图片Re值的变化情况。

针对具有C类目标的具体任务时,一般采用平均AP值,即mAP,来衡量网络的性能,其计算如式(12):

(12)

在实际运用时需要综合考虑精确率和召回率,F1是精确率和召回率的调和平均,其值的大小能够综合反映模型检测能力以及查全性能,F1值越高代表模型的检测性能越好,公式如式(13)。

(13)

采用以上指标对所提出的算法进行验证分析。

3.3 改进CenterNet目标算法后的性能分析

对激活函数进行优化后,针对交通场景对网络重新进行训练,并计算神经网络的召回率、准确率、mAP以及F1数值进行分析。置信度为0.3时,CenterNet和改进后的CenterNet各参数指标如表1。

表1 ResNet-50和改进后的CenterNet的召回率、准确率、AP值以及F1值Table 1 The Pr, Re, AP value and F1 value of CenterNet and the improved CenterNet

由表1可知:相比于CenterNet网络模型,采用改进后的CenterNet网络模型在F1值、AP值、精确率和召回率上都有显著提升。改进后的算法虽然在检测为汽车时精确度略有降低,由99.05%下降为98.13%,检测为汽车的召回率从48.37%提高到了60.88%,AP值提高了0.57%,在实际应用中,不能仅仅通过对物体检测所得到的精确率和召回率的观察获得结论,这两个指标相互对立,一个指标的提高,另一个指标就会下降,因此需要通过观察综合指标mAP以及F1的值判断改进算法后的优化效果。

由表1可以看出,相较于原始CenterNet网络模型,改进后的CenterNet在汽车检测的综合评价指标F1值提高了0.1,mAP提高了4.17%;检测自行车和公交车的精确率不变,均为100%,其召回率分别提高了11.90%和35.44%,AP分别提高了2.47%和11.43%,两者的F1值分别提高了0.11和0.33;检测摩托车的各项指标都得到了提高,其精确率由97.22%提高至98.48%,召回率提高了7.32%,AP值提高0.46,综合性指标F1提高了0.06。

以上五种交通场景目标的平均F1值由0.576变为0.714,提高13.8%,综合性指标mAP值从原来改进前的83.13%提高到了87.35%,模型检测速度FPS由原来的95.5略微下降至94.8,但其他各项性能指标均提升明显,表明笔者所改进的CenterNet网络模型有效提高了目标检测性能和查全性能,增强了模型的检测能力,同时对于目标遮挡问题有明显的改善。

检测实例如图3。图3(a)为未改进CenterNet网络检测结果,该网络能够检测大部分目标,但是有一辆电动车漏检。图3(b)为改进后CenterNet网络检测结果,该网络能够检测图中所有目标,且多数目标检测概率提高。对比图3(a)和图3(b)可知,对激活函数进行改进后,目标检测算法的检测能力得到了有效的提高。

图3 检测效果比较Fig. 3 Comparison of detection results

4 结 语

研究了交通场景目标检测算法,提出了基于改进CenterNet的目标检测算法, 将CenterNet网络中的ReLU激活函数改进为LeakyReLU函数,同时利用SPP结构修改了主干网络ResNet-50,对神经网络进行训练后进行测试,试验结果表明,与原CenterNet网络相比,改进的神经网络对绝大多数交通场景目标的F1值、精确度、召回率和mAP都有显著提高,仅有汽车的精确度由99.05%下降为98.13,下降幅度为0.009%,基本保持不变,考虑到增加网络结构深度会略微降低检测速度的原因,除FPS指标略有下降外,其他性能指标提升明显,说明改进的算法有效改进了原算法的目标检测性能。通过对实际拍摄图片的测试发现,改善了目标漏检、目标遮挡等情况。

猜你喜欢

池化神经网络函数
面向神经网络池化层的灵活高效硬件设计
基于Sobel算子的池化算法设计
卷积神经网络中的自适应加权池化
二次函数
第3讲 “函数”复习精讲
二次函数
函数备考精讲
神经网络抑制无线通信干扰探究
基于卷积神经网络和池化算法的表情识别研究
基于神经网络的拉矫机控制模型建立