章 悦,张亮,2*,谢非,2,杨嘉乐,张瑞,刘益剑,2
(1.南京师范大学电气与自动化工程学院,南京 210023;2.南京智能高端装备产业研究院,南京 210042)
在交通道路安全领域,道路抛洒物如石块、掉落的废旧纸箱、渣土、废旧布等容易引发交通事故,给其他通过的车辆造成安全隐患,同时由于抛洒物大小不固定、种类多样,且道路交通环境相对复杂,这也增加了抛洒物检测及识别的难度。
近年来,随着人工智能和智能交通的发展,越来越多的国内外研究者开始关注道路交通事件及道路抛洒物检测识别问题。Khatoonabadi 等[1]提出了使用自适应运动矢量和时空马尔可夫随机场模型在压缩视频序列中跟踪运动目标,该方法在第一帧中手动选择目标对象,在后续帧中可以通过帧内编码块和全局运动补偿计算的方法检测运动目标;但是这种方法存在计算量大、耗时长的缺陷。Asvadi 等[2]提出了一种先进的车辆系统设计方案,通过传感器测量所得的2.5D特征图描述每帧图像的动态环境,该算法精确度高,但是在恶劣天气条件下检测效果不太理想。汪贵平等[3]使用五帧差分法对高速公路抛洒物进行检测。李清瑶等[4]提出了基于帧间差分自适应法的车辆抛洒物检测,通过连续帧间差分法和均值法等运动目标检测算法进行抛洒物检测。金瑶等[5]提出了一种基于YOLOv3(You Only Look Once v3)改进的城市道路视频中小像素目标检测方法,将深度学习目标检测算法引入到城市道路目标检测中。近年来,国内研究者基于传统图像处理中的特征提取算法[6]或是运动目标跟踪检测算法[7-8],包括帧间差分法[9]、背景减除法[10]和光流法[11]等算法,在一定程度上实现了基于视频图像的道路抛洒物检测,但这些算法在复杂环境下应用效果并不好,且检测精度较低,效率不高。因此,道路抛洒物检测仍然是一个亟待研究的方向,对道路交通安全具有重要意义。
目前实例分割技术已广泛应用在车道线检测方面,对车辆的无人驾驶起到了重要作用。考虑到无人驾驶中算法的通用性,以及车辆避障、路径规划的实际需求,本文以实例分割模型为基础进行优化,实现了对道路抛洒物的多目标检测与识别,并且能够输出道路抛洒物的具体形态特征。相较于之前提出的道路抛洒物检测算法及其他常见实例分割算法,如Mask R-CNN(Mask Region-Convolutional Neural Network)[12],本文算法具有显著的优越性。本文算法的主要工作如下:
1)使用基于全卷积单阶段(Fully Convolutional One-Stage,FCOS)[13]目标检测器优化的实例分割模型CenterMask进行抛洒物检测,与常见实例分割模型相比,FCOS 目标检测器由于其单阶段结构和不需要设定锚框的特性,节省了计算量与耗时。
2)现有实例分割模型中的主干神经网络在处理多尺度目标时往往精度较低,本文算法在考虑耗时与检测精度的同时,使用优化的残差网络ResNet50[14]作为主干神经网络进行图像特征提取,通过引入空洞卷积(Dilated Convolution)[15]进行优化,增加扩张率这一参数以增大感受野,提高了网络对于多尺度目标的特征提取能力,更适用于道路抛洒物检测这一应用场合。
3)对现有模型中边界框回归损失函数进行优化改进,使用距离交并比(Distance Intersection over Union,DIoU)函数作为边界框回归损失函数,在计算真实框与预测框的距离以外还考虑到了两者之间的最小闭包区域及重叠率,能够直接最小化目标框距离,使得收敛更加迅速,目标框回归变得更加稳定。
实例分割模型CenterMask 是一种基于全卷积单阶段(FCOS)目标检测器的实时检测与分割模型,其结构如图1 所示。CenterMask 在使用FCOS 目标检测器进行目标检测的基础上引入空间注意力模块(Spatial Attention Module,SAM)[16]抑制噪声,帮助进行目标聚焦,从而构建空间注意力引导掩膜,改善了目标的分割效果。其优势在于使用了单阶段无锚目标检测器FCOS,FCOS 在检测过程中不使用预先设定的锚框(anchor),避免了二阶段目标检测器,如Faster R-CNN[17]带来的计算资源消耗问题,同时与最广为人知的无锚目标检测器YOLOv1[18]相比,FCOS的召回率有显著提升。
图1 实例分割模型CenterMask结构Fig.1 Structure of instance segmentation model CenterMask
但FCOS 检测精度与基于锚框的目标检测器相比还是较低,原始的CenterMask 模型对于多尺度目标检测的效果还有待提高。
本文采用了优化的CenterMask实例分割模型对采集到的训练集进行训练,生成训练好的模型权重文件及各项参数配置,并使用测试集进行测试,具体流程如图2所示。
图2 道路抛洒物检测整体流程Fig.2 Overall process of road abandoned object detection
主干神经网络选取残差网络,通过卷积计算对输入图像进行特征提取。残差网络中卷积层数越多,其特征提取的效果越好,但卷积层数的增加也会使得反向传播时梯度随着网络层数的增加而消失,网络性能下降,并造成计算资源的占用问题。由于常见道路抛洒物种类有限,所需提取特征并不多,为了避免上述问题并保证特征提取效率,本文采用了ResNet50作为主干神经网络,并采用空洞卷积进行优化,最终输出五个阶段特征图。
ResNet50 的网络结构如图3 所示,其中Conv 表示卷积操作,Batch Norm 表示批正则化操作,ReLU 为激活函数,Max Pool 表示最大池化[19]操作,Avg Pool 表示平均池化操作,Conv Block 代表添加维度的卷积块,ID Block 代表不改变维度的Identity 块,FC(Fully Connected layer)表示全连接层,Conv Block与ID Block的具体结构也如图3所示。
图3 主干神经网络ResNet50结构Fig.3 Structure of backbone neural network ResNet50
空洞卷积向卷积层引入了一个称为“扩张率(Dilation Rate)”的新参数,该参数定义了卷积核处理数据时各值的间距。不包括空洞的原始卷积核如图4(a)所示,扩张率为3 的空洞卷积如图4(b)所示,空洞卷积能够扩大感受野,经过空洞卷积优化的主干网络模型能够有效提高特征提取的精度。
图4 空洞卷积对比示意图Fig.4 Schematic diagram of dilated convolution comparison
道路抛洒物在监测视频中大多以多尺度的形式存在,为了更好地捕捉抛洒物的形状、颜色特征,采用特征金字塔网络(Feature Pyramid Network,FPN)[20]进行多尺度处理。本文采用的CenterMask 模型中,FPN 分为五个特征层,即F3、F4、F5、F6、F7,如图5所示。
图5 主干网络结构与多尺度处理Fig.5 Structure of backbone network and multi-scale processing
其中,F3、F4、F5是由输入图像经过主干神经网络卷积后所得特征图C3、C4、C5再次经过1×1 卷积得来,F6、F7分别由F5、F6经过步长为2 的卷积得到。在进行道路抛洒物检测识别的场景中,使用FPN能发挥其多尺度识别的优势,在很大程度上缓解模糊性。
全卷积单阶段目标检测器FCOS 直接利用了真实框(Ground Truth Bounding Box)中的所有点对边界框进行预测。特征图上的每一个位置(x,y)都可以对应到原图上的一个坐标,如果位置(x,y)落在任意真实框内,那么它就被认定是正样本,否则为负样本。
同时也可以得到一个表示边界框回归偏移量的4 维向量s*=(l*,t*,r*,b*),其中l*、t*、r*、b*分别代表了这一位置的点到真实框左、上、右、下四边的水平距离。
FCOS 目标检测器通过中心度(centerness)分支来抑制低质量的预测框,中心度的定义如下:
FCOS目标检测器输出的训练损失函数定义如下:
式中:qx,y表示位置(x,y)预测得出的分类标签,表示位置(x,y)的真实类别;sx,y表示位置(x,y)所在的边界框坐标,表示位置(x,y)与回归的偏移向量;Npos表示正样本数量;Lcls表示分类损失函数,使用了焦点损失(focal loss)[21];Lreg表示了边界框回归损失函数;λ设置为1用于平衡两类损失;Ι表示指示函数。
本文引入了DIoU 作为边界框回归损失函数。相较于目前广泛应用的IoU函数,DIoU 将重叠率以及尺度都考虑在内,使得目标框回归变得更加稳定,不会在训练过程中出现发散等问题,检测精度更高。其计算过程如下:
式中:B表示预测框,Bgt表示真实框;b、bgt分别表示预测框和真实框的中心点位置;d1表示同时包含了预测检测框和真实框的最小闭包区域的对角线距离,d2表示这两个中心点之间的欧氏距离,d2=ρ2(b,bgt),如图6所示。
图6 DIoU原理示意图Fig.6 Schematic diagram of DIoU principle
同时使用了一种自适应的感兴趣区域(Region of Interest,RoI)[22]分配机制来保证无锚目标检测器对于多尺度目标的检测精度。
式中:K表示感兴趣区域的映射关系;kn表示对应的FPN 层级数量,本文中FPN分为五个层级,所以kn=5;Ainput表示输入图像数据的面积;ARoI表示感兴趣区域的面积。
使用了空间注意力引导掩膜(Spatial Attention-Guided Mask,SAG-Mask)作为掩膜分割分支,经过自适应的感兴趣区域分配机制预测得到的特征将被馈送到四个转换层和空间注意力模块(SAM)中依次处理,具体过程如图1 中所示,其公式描述如式(6)所示:
式中:Osag(Xi)表示输出的空间注意力特征描述子;C3×3表示进行3× 3 的卷积;“∘”表示进行连接聚合;σ表示sigmoid 函数。对输入掩膜分割分支的特征图Xi∈RH×W×Q进行最大池化和平均池化,得到特征fmax,favg∈RH×W×Q,再进行聚合连接输入一个3× 3 的卷积层,并使用sigmoid 函数进行归一化。空间注意力引导特征图Xsag的计算式如式(7)所示:
式中⊗表示进行对应乘积计算。这一步的主要目的是通过空间注意力引导特征去加强原始输入特征。最后,使用了2 ×2 的卷积进行上采样,通过一个1× 1 卷积层预测特定类的掩膜。
使用平均精度(Average Precision,AP)作为性能评价指标,平均精度能够全面表达实例分割模型的分类器性能,目前已经被广泛应用到目标检测算法的评价中。除了平均精度外,本文还采用了检测率作为道路抛洒物检测的性能评价指标。
在平均精度的计算中又包含准确率(Precision)和召回率(Recall)这两个指标,准确率和召回率的计算式如下:
式中:p表示准确率,r表示召回率;TP表示正确划分为正样本的个数;FP表示错误划分为正样本的个数;FN表示错误划分为负样本的个数。平均精度的计算式如下:
式中,AP为平均精度,一般情况下平均精度值越高,分类器性能越好。
检测率是指采用训练好的模型对测试集样本进行测试后,可视化结果中对于抛洒物目标正确检测类别的数量与测试集图像样本中包含的所有抛洒物数量的比例。
为了保证训练模型的准确性,应用了迁移学习的思想,引入预先在COCO 数据集(包括91 类目标,328000 段影像和2500000 个标签的大型物体检测和分割的数据集)训练得到的预训练权重文件。通过迁移学习可以避免训练时网络从零开始学习,加快并优化了模型的学习效率,使得在数据集数量较少的情况下,模型也能够达到较好的训练效果。
为了测试与验证本文算法的有效性,实验中数据集由白天不同时段某城市主干道公路监控视频图像构成。通过分帧处理,挑选出共1000 张图像作为训练集,其中共包括含有石块、废弃纸盒、废弃抛洒布、渣土这四类常见道路抛洒物的图像各250 张,经统计,训练集图像中共有待检测目标4000 个,分别标注为stone、box、cloth、dust四类。训练样本图像的大小统一为1920 × 1080 像素,使用labelme 图像标注工具添加掩膜标签,标注过程如图7(b)所示,并批量生成过程中所需的json文件。
图7 数据集原始图像与标注过程Fig.7 Original image in dataset and labeling process
测试集中通过监控采集的道路抛洒物图像共400 张,其中每类抛洒物的图像各100张。经统计,测试集图像中有4类待检测目标个体,共1196个。
本文实验平台搭建在Windows 10 系统下,环境配置为Python3.6+PyTorch1.1.0-GPU+CUDA10.0。实验参数设置为:1 个GPU,型号为NVIDIA GEFORCE RTX2060;单GPU 同时处理图像数为1;分类个数为1(背景类)+4(石块、废弃纸盒、废弃抛洒布、渣土);迭代步数设置为20,学习率设置为0.001。
使用训练好的模型对测试集包含的四类抛洒物目标进行检测,最终识别与分割的局部结果如图8 所示。从检测与识别结果可知,在四类抛洒物尺度不同、距离监控摄像头远近也不同的情况下,本文所提出的道路抛洒物检测算法能够对抛洒物进行精确的检测与识别。基于空洞卷积优化的主干神经网络扩大了特征感受野的范围,使得对远距离多尺度目标的检测效果更好;基于DIoU 优化的边界框回归损失函数提高了定位精度,使得输出的边界框信息更为准确。
图8 几类常见道路抛洒物识别与分割结果Fig.8 Recognition and segmentation results of several types of common road abandoned objects
3.2.1 不同优化方案消融实验对比
将本文中采用的优化算法进行对比实验,对于同一帧图像中同一目标的识别结果和掩膜得分(mask score)如图9 所示。图9(a)中的mask score 分别为0.70 和0.78,图9(b)中的mask score分别为0.74和0.83,图9(c)中的mask score分别为0.76 和0.85,图9(d)中的mask score 分别为0.80 和0.86。mask score 数值与识别分类结果和掩膜分割的质量相关,mask score数值越高则说明分类识别准确度越高,掩膜分割质量越好,由此可以得出,使用本文所提出的空洞卷积与DIoU共同优化的算法时,主干神经网络对图像特征提取能力增强,边界框回归更为准确,目标识别的分类准确度和掩膜分割质量也相对更好。
图9 同一路段抛洒物识别结果对比Fig.9 Comparison of recognition results of abandoned objects on the same road section
在相同迭代次数的条件下(epochs=40),将空洞卷积引入残差网络ResNet50 中,分别使用原始卷积和空洞卷积优化的ResNet50 作为主干神经网络,同时在损失函数中分别使用原始的IoU 函数与DIoU 进行训练和验证。表1 中给出了4 种模型在边界框检测和掩膜分割两方面的各项评价指标,包括AP、AP50、AP75、APs、APm、APl。其中,AP是交并比取0.5~0.95阈值下的平均精度值,AP50、AP75分别指交并比取0.5 和0.75时的AP 值,APs、APm、APl分别指小、中、大三种不同尺寸目标的AP 值。三种尺寸的划分沿用COCO 数据集评价规范,小尺寸目标指面积小于32 像素×32 像素,中等尺寸目标指面积大于32 像素×32 像素且小于96 像素×96 像素,大尺寸目标指面积大于96像素×96像素。
表1 道路抛洒物检测优化算法结果对比 单位:%Tab.1 Result comparison of optimization algorithms for road abandoned object detection unit:%
由表1 可以看出,使用本文算法时,道路抛洒物检测的平均精度值最高。相较于未经优化的CenterMask,本文所提出的优化算法对不同尺度目标的检测效果较好,边界框检测和掩膜分割平均精度值均有显著提升。本文算法针对小尺度目标进行检测时平均精度(APs)为50.40%,针对大尺度目标进行检测时平均精度(APl)为71.50%,相较于未经优化的模型CenterMask分别提升了3.2个百分点和12.20个百分点。
3.2.2 不同算法性能对比
除对不同优化算法进行消融实验对比外,还将本文提出的优化算法与其他常见实例分割算法在相同测试集上进行对比测试,性能结果如表2 所示,使用不同算法的检测结果如图10所示。
图10 不同算法检测结果对比Fig.10 Detection result comparison of different algorithms
由表2 可以看出,本文算法检测率为94.82%,相较于未经优化的CenterMask 提高了1.43 个百分点,且边界框检测和掩膜分割平均精度分别提高了7.40 个百分点和1.70 个百分点,而单张图像检测平均耗时仅增加0.01 s,在不显著降低原始算法实时性的情况下提升了检测精度。相较于常见实例分割算法Mask R-CNN,本文所提出的算法在平均精度及检测率上均有显著提升,其中在边界框检测上的AP 提高了8.10 个百分点。相较于YOLACT(You Only Look At CoefficienTs),尽管本文所提算法在进行检测识别时单张图像平均耗时相对较长,YOLACT 实时性更好,但存在着目标检测框及掩膜分割效果不好的情况,同时对于小目标的漏检率较高。综合考虑实时性与检测精度可知,本文所提的道路抛洒物识别算法效果更好,更适用于复杂道路环境下抛洒物检测。
表2 不同算法测试性能对比Tab.2 Comparison of test performance of different algorithms
针对道路抛洒物检测,本文提出了基于实例分割模型优化的道路抛洒物检测算法,该算法基于CenterMask 模型使用空洞卷积与DIoU 损失函数进行优化。实验结果表明,在相同的环境配置下,相较于未经优化的实例分割算法,本文所提出的道路抛洒物检测算法在保证运行时间相对较少的同时,有效提高了模型检测和分割的精度,检测率较高,能够精确检测和识别多尺度目标。未来将进一步研究在保证检测和识别精度的同时进一步提高检测效率,增强算法的实时性。