一种雨雾背景的DeRF-YOLOv3-X目标检测方法*

2022-11-22 05:07杨坤志闫潇宁许能华陈晓艳
传感技术学报 2022年9期
关键词:残差卷积图像

杨坤志,闫潇宁,孙 健,许能华,陈晓艳*

(1.天津科技大学电子信息与自动化学院,天津 300222;2.深圳市安软科技股份有限公司,广东 深圳 518131)

目标检测作为图像处理和计算机视觉领域的主要应用研究方向,是解决图像分割、场景理解、目标跟踪等高级视觉任务的基础。目标检测需要对检测图像的前景和背景都理解并处理,然而在实际应用中,目标大多都不是在一个清晰明快的环境下出现,采集的图片质量往往非常容易受到天气状况的影响。如果将这些恶劣天气下采集到的图片直接进行算法检测,效果会大打折扣,很容易出现误识别或识别失败的情况。目前对于目标检测算法的关注点主要是在优化算法性能上,所用的研究数据多是采集于晴朗天气下的高质量图像,没有考虑现实应用中的各类突发不良天气的影响,在实际使用时,检测效果往往不理想。因此,对于复杂环境下的目标检测,改进目标检测网络,并消除恶劣天气带来的负面影响,对于算法适应性的提升是十分必要的。

目前,在已有的去雨算法研究中,基于深度学习的方法发挥着主导作用,比如:Eigen等[1]提出利用卷积神经网络来解决图像去雨问题;Yang等[2-3]通过建立循环结构的卷积神经网络来去雨。

去雾的主流算法原理是大气散射原理,根据数学模型实现去雾的处理,如:He等[4]提出通过DCP算法定位雾气位置,并计算出大气光的值,然后将雾气图和大气散射模型联结,得到去雾图像;Cai等[5]在卷积神经网络的基础上设计了层数更深的网络DehazeNet;Li等[6]提出了一个基于CNN的去雾算法AODNet。

基于深度学习的目标检测算法大多分为两种思路,一种是两阶段(Two Stage)法,先生成候选框,再对候选框内的物体用算法进行检测;另一种是一阶段(One Stage)法,将整个检测过程融合在一起,直接给出检测结果,如YOLO(You Only Look Once)系列[7-9]、SSD(Single Shot MultiBox Detector)系列[10]。YOLO系列检测算法自2016年发展至今,检测精度显著提高,但对雨雾背景的复杂场景目标检测性能会显著降低。

对此,提出一种新的目标检测模型DeRFYOLOv3-X(Derain and Defog-YOLOv3-Xception)。在YOLOv3的基础上,引入最新提出的Xception网络[11],改进基础特征提取网络,提升小目标检测能力,降低参数量,同时改进其回归损失函数,使得目标框回归更加稳定;同时通过添加融合残差网络和负映射深度细节DDN网络进行去雨处理,添加端到端的多尺度GridDehazeNet网络进行去雾处理。

1 方法

本文提出的目标检测模型DeRF-YOLOv3-X主要分为两个部分:图像预处理模块和目标检测网络,其流程图如1所示。

图1 DeRF-YOLOv3-X目标检测模型流程图

1.1 去雨方法

本文采用深度细节网络(Deep Detail Network,DDN)[12]进行雨背景的滤除。图像建模为:

式中:Xdetail表示细节层,Xbase表示基础层。

随后对有雨图像进行引导滤波处理,使得图像中基础层被去掉,只留下了包含雨线和物体形状的细节层。

训练网络采用残差网络和负映射(Negative Residual Mapping,Neg-Mapping)相结合,这种结构保证了输入信息可以通过所有的参数层传播,有助于训练网络。与干净图像相比,雨天图像的残差像素值区间明显缩小,这意味着可以将残差引入网络来帮助学习映射,因此将残差作为网络的输出。所以将负映射定义为清晰图和雨图之间的差异,负映射通过Skip Connection把输入直接加到输出,跳过中间的参数层,直接在整个网络中传播无损信息,使得传播更深,特征更多。残差网络能够缩小输入和输出之间的映射长度,让结构更深的网络训练起来比较简单。同时,采用残差网络也能够生成更深一层次的特征。将图片的细节层作为残差网络的输入,细节层的稀疏性不仅可以使得参数量减少,也能提高去雨的质量。

1.2 去雾方法

本文采用GridDehazeNet[13]网络进行雾背景的滤除,该网络由三个模块构成,分别是预处理模块、主干模块和后处理模块。预处理模块是可训练的,经过训练的预处理模块能够更能有适应性输入,同时多样性也能好;针对以往多尺度预估策略中出现频率很高的瓶颈困难,主干部分在网格网络上实现了一种在注意力基础上的多尺度估计;后处理模块可以减少最终输出中的参数量。

同时考虑到各个特征图重要程度不完全一致,为了准确地利用各个尺度得到的特征图,引入了Channel-Wise Attention,在特征融合的过程中准确地调节各个尺度的权值,其表达形式为:

式中:表示第i个信道的融合特征,Fir和Fic分别表示第i个通道,第r行和第c列的特征图,air和aic分别表示相应的注意力权重。

损失函数采用Smooth L1 Loss和感知损失(Perceptual Loss)[14]。

Smooth L1 Loss的表达形式为:

感知损失的表达形式为:

式中:ϕj()表示与处理后无雾图像联系的特征图,Cj,Hj,Wj代表ϕj()的尺寸。

网络总的损失函数由Smooth L1 Loss和Perceptual Loss联合而成:

式中:λ是调节两个不同损失的相对权值参数,这里设置为0.04。

1.3 YOLOv3-X网络

1.3.1 特征提取网络

为了提高复杂环境目标检测中的特征提取能力,减少模型的参数,提升模型的泛化能力,本文对YOLOv3算法的特征提取网络(Backbone)进行改进,将原模型中的骨干网络Darknet-53替换为Xception网络,名为YOLOv3-X,如图2所示。

图2 YOLOv3-X网络结构图

Xception由36个卷积层构成了网络主体部分,并将所有的卷积层划分成14个模块,除了Block1和Block14,其他12个模块都添加了残差连接,这就让网络结构定义和修改起来十分便捷。数据首先输入至Entry flow,然后重复8次Middle flow里的操作,最终通过Exit flow。Conv代表标准卷积,Separable Conv代表深度可分离卷积,每一个卷积层和深度可分离卷积层后面都跟有一个BN层。网络采用最大池化,激活函数选择ReLU。

Xception的独特之处在于采取深度可分离卷积(Depthwise Separable Convolution)来更替原网络中的卷积层,这么做的好处是可以在损失精度不多的情况下大幅度降低参数量和计算量,同时各个操作之间减少耦合,充分利用计算力,用较小的尺寸达到了很好的效果。

图2中,CBL即Conv2D_BN_Leaky;RSB和RBS分别为激活函数层(ReLU)、深度可分离卷积层(Separable Conv)和批归一化层(BN)的不同组合。Concat是张量拼接,将Xception中间层和后面上采样进行拼接,拼接会扩充张量的维度。不同于Darknet-53,YOLOv3-X网络是在Block14层之后经过CBL和卷积得到13×13特征图,感受野较大,适合检测较大目标;在Block13层中最大池化层之前输出并处理得到26×26特征图,感受野中等,适合检测中等尺度的目标;在Block4层中输出并处理得到52×52特征图,感受野最小,适合检测小尺寸的图像。另外,深层特征通过上采样并利用Concat层与浅层特征进行拼接,因此26×26特征图同时也包括着13×13特征的语义信息。类似地,52×52尺寸的特征图之中也有26×26、13×13特征图的语义信息。

2 实验验证

2.1 训练数据集

由于本文要解决的是雨雾天气下目标检测带来不利影响这一问题,本文数据集来源于某科技股份有限公司部署监控摄像头的采集,包括城市道路、乡村道路、居民区和学校等复杂场景,总共采集了26 946张图片,其中23 846张用作训练集,2 600张用作验证集,500张用作测试集,图片分辨率为1 920×1 080,数据集命名为IFC2。采集到的所有图片都手动标记行人(Person)和车辆(Vehicle)。

2.2 实验环境

本文的实验环境如下:服务器硬件配置为Intel Xeon CPU E5-2630 V4@2.20GHz、NVIDIA GeForce GTX 1080Ti 11GB以及128GB内存,网络采用Python实现,版本为3.6.8,深度学习框架Pytorch版本为1.8.1,CUDA版本为11.4。

2.3 实验结果

本实验分为3个部分,第一部分将本文提出的改进后的目标检测模型YOLOv3-X与原始YOLOv3进行检测性能对比,分析改进的有效性。第二部分对去雨、去雾算法处理前后的图片分别进行检测,主要验证这两种图像处理算法的有效性。第三部分是DeRF-Yolov-X网络测试,并与YOLOv3原型进行比较,从总体上评价本文方法的有效性。

2.3.1 网络结构改进对比

在ImageNet数据集上,与常见的网络Darknet系列、ResNet系列进行比较,比较结果如表1所示,网络后面的数字代表结构层数。

表1 特征提取网络准确率比较

表中Top-1 Accuracy代表预测结果和实际结果进行对比的准确率,Top-5 Accuracy是把预测结果中概率最大的前五个与实际结果进行对比的准确率。由表可见,无论是Top-1还是Top-5,Xception表现最佳。

为了证明改进特征提取网络与改进损失函数方法在检测算法YOLOv3上的有效性,本部分进行了改进后的YOLOv3-X模型与原始YOLOv3模型在同一测试集上的对比实验,测试集为数据集IFC2的500张测试图片。测试结果如表2所示。

表2 YOLOv3-X与YOLOv3在测试集上结果

从表中数据可以看出,无论是单独的行人和车辆各类AP值还是总体的mAP值,本文所提出的改进后的YOLOv3-X都优于YOLOv3。YOLOv3-X模型mAP达73.17%,高于相同训练集训练得到的YOLOv3 mAP值70.95%。具体到每一类的平均精度也有不同程度的提升,特别是对于车辆的检测上,由改进前的80.82%提升到85.00%,相比增加了4.18个百分点。此外,在提升检测能力的同时,检测模型大小也有一定的优化。YOLOv3-X的模型大小为166 MB,比YOLOv3的235 MB降低了30%,节省了一定的存储空间,有利于后续模型部署。

图3展示了YOLOv3和改进后YOLOv3-X两个模型对同一张图片的检测效果,图3(a)是原始YOLOv3的检测结果图,图3(b)是本文提出方法所得到的检测结果图。从图中可以看出,两个模型对于距离较近、轮廓清晰的行人和车辆都能够准确地识别,但是当行人和车辆距离摄像头较远,目标较小或者存在遮挡现象时,例如图3(a)和3(b)中道路上行驶的和左侧树后被遮挡的车辆,本文提出的方法都能够有效地识别出来,而YOLOv3则会出现漏检问题,造成检测精度的下降,影响后续的应用。

图3 YOLOv3和YOLOv3-X检测效果图

2.3.2 雨雾处理方法前后实验对比

本部分在上一节对于结构改进对比实验的基础上,分别对待检测图片应用去雨、去雾方法前后进行对比实验,验证这两种方法对于检测性能提高的有效性。

①去雨方法

为了准确评估去雨方法的效果,本文从RS数据集中选择了34张不同场景下包含行人和车辆的图片,在对图片进行标注后作为本部分测试集。

表3列举了去雨前后分别使用YOLOv3和本文YOLOv3-X方法的检测mAP值。在应用了去雨方法之后,无论是YOLOv3还是本文提出的YOLOv3-X检测模型,mAP值都有一定的提高。YOLOv3的mAP值由49.07%提升至52.98%,YOLOv3-X方法的mAP值由50.43%提升至54.99%,证明了去雨方法的有效性。

表3 去雨前后图片的mAP对比

②去雾方法

由于训练数据集所对应的测试集没有雾天气下的图像数据,所以,为了准确评估去雾方法的能力,本文从网上多个公开数据集和网络图片中选择了39张不同场景下包含行人和车辆的图片,在对图片进行标注后作为本部分测试集。

表4列举的是YOLOv3和本文YOLOv3-X方法分别应用去雾方法前后的检测mAP值,从表中可以看出,无论是将去雾方法应用在YOLOv3上还是本文改进的YOLOv3-X方法上,检测mAP值都有一定程度的提高。对于YOLOv3方法,在对去雾之前的图片直接进行检测时,mAP值为40.23%,然而对去雾之后的同一张图片进行检测时,mAP值提升到了42.07%,有着一定程度的提升。同样,用本文改进的YOLOv3-X模型检测去雾前后的图像,mAP值同样有提高,从41.43%提升至44.45%。

表4 去雾前后图片的mAP对比

2.3.3 DeRF-YOLOv3-X

上述两小节分别比较了YOLOv3算法模型改进前后的检测效果,以及去雨、去雾算法对于检测能力的提升,本节将改进后的算法YOLOv3-X和雨雾处理方法相结合构成DeRF-YOLOv3-X网络,探讨DeRF-YOLOv3-X网络对于雨雾天气下目标检测能力的提升作用。图4直观展示了DeRF-YOLOv3-X的网络检测mAP值比较图。其中,图中左侧条柱的mAP值是由YOLOv3直接对有雨和有雾图像进行检测所得到的,右侧条柱的mAP值则是由DeRFYOLOv3-X直接对有雨和有雾图像进行检测得到的。从图可以看出,无论是针对雾天还是雨天,本文提出的DeRF-YOLOv3-X对于检测性能均有一定的提升作用。

图4 DeRF-YOLOv3-X与YOLOv3的mAP值比较

图5则展示了雨天DeRF-YOLOv3-X与YOLOv3的检测效果。图5第一列是YOLOv3的检测结果,第二列是DeRF-YOLOv3-X的检测结果。可以看出,DeRF-YOLOv3-X成功地减小了雨对于检测的影响,大大提升了目标的可见度。在第一行图片对比中,在雨的影响下,画面正中央停放的车辆未能准确检测出来,造成很严重的漏检。同样,第二行图像中的行人及第三行图像中停放的车辆也都受雨的影响未能检出,大大影响了使用。然而在应用DeRFYOLOv3-X之后,上述受雨天气影响的未被检出的目标都被成功检测到。

图5 雨天DeRF-YOLOv3-X与YOLOv3检测结果比较

图6则展示了雾天DeRF-YOLOv3-X与YOLOv3的检测效果图。图6第一列是YOLOv3的检测结果,第二列是DeRF-YOLOv3-X的检测结果。在雾的干扰下,小目标会更难被检测到,例如雾的存在使得图6(a)中道路远端的两辆车没有被检出,而在去雾后的图6(b)中被成功检出。雾的存在也会在目标很多的情况下导致一定程度的漏检,具体如图6(c)、图6(d)、图6(e)、图6(f)两个场景下的检测结果所示。

图6 雾天DeRF-YOLOv3-X与YOLOv3检测结果比较

3 结论

本文针对雨雾天气场景下的目标检测,通过添加基于残差网络和负映射结合的深度细节网络DDN和基于注意力机制的多尺度去雾网络GridDehazeNet,对图片进行去雨去雾,有效地减少雨雾天气带来的不利影响;然后,将YOLOv3算法的特征提取网络改进为Xception,解决现有的YOLOv3算法在雨雾天气下存在部分目标漏检的问题,而且模型的参数量也有一定程度的减小,同时将回归损失函数改进为DIoU[16],解决了IoU对预测框和真实框的重叠程度反映不够精细的问题。

猜你喜欢
残差卷积图像
基于全卷积神经网络的猪背膘厚快速准确测定
多级计分测验中基于残差统计量的被试拟合研究*
基于残差-注意力和LSTM的心律失常心拍分类方法研究
用于处理不努力作答的标准化残差系列方法和混合多层模型法的比较*
融合上下文的残差门卷积实体抽取
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
浅析p-V图像中的两个疑难问题
巧用图像中的点、线、面解题