基于改进门控上下文聚合网络的雾天实时行人检测方法*

2023-05-29 10:00王宇宁关艺搏田韶鹏
汽车工程 2023年5期
关键词:雾天行人卷积

吴 桐,王宇宁,4,关艺搏,田韶鹏,4

(1.武汉理工大学,现代汽车零部件技术湖北省重点实验室,武汉 430070;2.武汉理工大学,汽车零部件技术湖北省协同创新中心,武汉 430070;3.武汉理工大学,湖北省新能源与智能网联车工程技术研究中心,武汉 430070;4.先进能源科学与技术广东省实验室,佛山仙湖实验室,佛山 528200)

前言

在复杂的交通场景中,行人检测技术对智能驾驶汽车起着至关重要的作用,它能时刻检测道路中的行人并确定方位,帮助智能驾驶汽车做出更优的驾驶决策。然而在雾天场景中,雾气的存在往往会严重降低车载相机采集图像的可见度,从而影响行人的检测精度。因此,提升雾天场景下的行人检测精度对降低交通事故的发生率有重要意义。

传统的行人检测方法利用HOG(histogram of oriented gradient)[1]、SIFT(scale-invariant feature transform)[2]等特征提取算子提取行人轮廓和纹理等,然后通过训练特征分类器(支持向量机(SVM)[3]、Adaboost[4]等)来执行检测任务。该类方法鲁棒性差,计算量大,无法满足实际应用中对实时性和准确性的要求。基于深度学习的方法已在行人检测中占领主导地位,其根据检测步骤可分为两大类:一类是基于区域建议的two-stage 检测方法(包括Faster-RCNN[5]、Cascade-RCNN[6]等),另一类是基于回归的one-stage 检测算法(包括YOLO[7]、SSD[8])。前者存在精度高但实时性差的特点,后者提高了检测速度,却牺牲了检测精度。这是由于RCNN 系列、YOLO 系列和SSD 系列等算法均引入了锚框(Anchor)机制,导致了正负样本不均衡,超参数多,计算复杂等问题。而由Zhou 等[9]提出的基于无锚框(Anchor-free)的CenterNet 算法,旨在将检测任务归纳为中心点预测+基于中心的宽高属性偏移问题,超参数少,达到了速度与精度的平衡。

过去的行人检测研究通常在良好的光照和天气下进行,然而对于雾天条件下的研究较少。基于深度学习的检测算法,能在清晰图像上表现出优良的检测性能,然而一旦转移到雾天条件下,其检测精度就会严重退化。为解决雾天场景下行人检测性能差的问题,Hu 等[10]将图像增强建模为一组可微滤波器,结合GAN[11]结构实现端到端的图像增强;Guo等[12]设计弱光图像增强网络Zero-DCE,通过一组像素级曲线参数改善图像光线暗的问题;Liu 等[13]提出了图像自适应检测框架IA-YOLO,利用完全可微的图像处理模块去除图像中特定的天气信息并增强潜在信息。此外,部分研究者使用除雾算法来改善雾天的检测性能。基于大气散射模型[14],早期提出了暗通道先验[15]、最大对比度[16]、颜色衰减先验[17]等方法。鉴于CNN 的成功,Cai 等[18]提出名为DehazeNet 的端到端可训练系统,以模糊图像为输入,生成其中间投射图,随后通过大气散射模型输出清晰图像;Li等[19]重新定义大气散射模型,设计了可直接生成清晰图像的AOD-Net;然而依赖于先验知识的除雾算法应用于真实雾天图像时,会产生固有的性能损失,生成质量低下的除雾图像[20];因此GridDe-hazeNet[21]、GCANet[22]等提出了不依赖于先验的端到端除雾算法,试验证明其在合成雾天和自然雾天数据集上的除雾效果均优于前者。Chen等[23]将不同天气下采集的数据集差异视为域偏移,并基于Faster-RCNN 分别从图像层面和实例层面增设域适应组件,以减少域差异;Zhang 等[24]在此基础上设计DA-YOLO,使算法对不同尺度实例的域偏移具有鲁棒性。总结相关文献可知,现有改善雾天检测性能的方法主要有:(1)对雾天图片采取自适应增强,以揭示目标潜在信息;(2)使用除雾算法来改善图像清晰度;(3)利用域适应提高目标检测算法的跨域鲁棒性。然而将图像处理置于检测任务前,虽然可以明显提高检测精度,但额外的预处理操作增加了时间成本,无法满足实时性[25]。因此,如何在不影响检测效率的同时提高雾天场景下检测算法的泛化性能成为难点。

针对上述问题,本文中首先以具有优良除雾效果的端到端除雾网络——门控上下文聚合网络(gated context aggregation network,GCANet)为基础,设计一种复合损失函数以优化去雾图像的结构信息,获得更加自然清晰的图像,帮助检测网络学习更准确的目标特征。其次,为获得优秀的检测性能,选择Anchor-free 的CenterNet 作为检测网络;最后将经过改进的GCANet 网络应用于雾天训练数据集的预处理中,送入CenterNet 网络训练。在推理时,直接使用预训练好的CenterNet 网络处理原始带雾图像,得到行人检测结果,并依次在合成雾天数据集Foggy Citypersons 和真实雾天数据集RTTS[26]上进行对比试验,算法流程图如图1所示。

图1 算法流程图

1 改进的GCANet去雾算法

1.1 GCANet概述

以往的去雾算法中,图像预处理方法是基于回归并加上人为设计的先验条件(如大气散射模型、暗通道先验等),通过估计中间传输映射图间接生成清晰图像。本文中采用的GCANet网络不依赖于先验知识,而是采用端到端的方式回归清晰图像和雾天图像之间的残差,最终累加到雾天图像上以生成清晰图像。

GCANet网络主要由编码器、解码器和特征融合3个部分组成,算法的模型结构如图2所示。

图2 GCANet网络结构图

其中解码器和编码器各包含3 个卷积层,且成对称结构。编码器用来提取雾天图像的特征,最后一层卷积对特征图进行一次下采样;相应地,解码器使用一个反卷积层将特征图上采样到原始分辨率,末端两个卷积层将特征图映射到原始图像空间上,以获得清晰图像与雾天图像之间的残差,最终将残差加到雾天图像上得到清晰图像。特征融合部分主要用来聚合更多的上下文信息,并应用门控子网络自适应地将不同深度的特征图进行融合,这些特征图涵盖了丰富的色彩和结构信息,能有效提高清晰图像的视觉效果。其结构上使用了包含分离共享卷积的平滑空洞[27]残差块,能够融合输入特征图中每个单元的相邻信息,缓解传统空洞卷积网格伪影化的情况。

门控子网络G融合不同深度的特征图信息。分别从高、中、低不同深度提取特征图Fl、Fm、Fh,将其作为门控子网的输入,根据学习到的重要性权重Ml、Mm、Mh将特征进行线性组合,如式(1)和式(2)所示。

融合特征图FO最终被送入解码器以获得目标残差。门控子网由一个卷积核大小3×3 的卷积层组成,输入通道数为3。其结构原理如图3所示。

图3 门控子网络结构原理图

1.2 改进的损失函数

针对原始GCANet 算法仅考虑去雾图的像素级特征,忽略了图像内容的整体性,而导致结构信息丢失严重及图像失真的问题,本文中设计一种包含图像重构损失和图像结构相似损失的复合损失函数,同时考虑了高层细节信息(内容特征与全局结构)及底层像素信息。其中图像重构损失采用smooth L1 损失函数,用来反映底层像素信息,其函数表达式为

式中:N为像素点总数;n为像素点位置;i为通道数;γi(n)和分别对应第i通道上像素点n处真实情况和预测到的雾天图像和清晰图像之间的残差;Ei为无雾图像和雾天图像之间的真实残差及模型推理得到的除雾图像和雾天图像之间残差的差距。

图像结构相似损失采用感知损失[28](perceptual loss)反映图像的高层特征信息,其目的是使图像视觉效果更贴近人眼直观感受。具体做法是将真实清晰图像卷积得到的特征图与预测清晰图像卷积得到的特征图作比较,使模型预测图与真实清晰图在语义上更加相似。其表达式为

该损失函数采用在ImageNet 上预训练好的VGG-16[29]网络,取前3 层的特征激活值进行损失计算。式(5)中:j表示输出的特征层位置;Cj、Hj、Wj分别表示第j层特征图的通道数以及高宽和Fj(y)分别对应预测清晰图和真实清晰图在VGG-16的第j个卷积层后得到的特征图。

综上所述,本文采用的复合损失函数公式为

式中:LsmoothL1代表smooth L1 损失;LP代表感知损失;W1和W2表示损失的权重系数,本文均取0.5。

本文设计的复合损失函数相较原始的均方差(MSE)损失函数提升了去雾图与清晰图像间的结构相似性,进一步减少纹理、对比度、色彩保真度以及明暗程度差异。

2 行人检测算法

采用CenterNet 算法作为雾天行人的检测网络。该算法将目标检测任务转化为中心点估计和基于中心点的宽高属性偏移回归问题。结构上,CenterNet网络由特征提取网络、反卷积模块(DeConvolution)和预测网络3个部分组成,如图4所示。

图4 CenterNet网络结构

(1)特征提取网络 本文采用轻量的ResNet-18[30](Residual Network-18)作为特征提取网络。为提升收敛速度,训练过程中所有BN 层均参与训练。提取特征前对输入图片进行resize处理,获得通道数为3、尺寸大小为512×512 的图片。然后送进ResNet-18 输出下采样32 倍的特征图,通道数变为2 048,尺寸大小为16×16。

(2)反卷积模块 由3 个反卷积组构成,每组包含一个可变形卷积(deformable convolution v2,DCN v2)和一个反卷积。该模块利用3次上采样,最终输出大小为128×128、通道数为64 的高分辨率特征图。该特征图将整张图片划分为128×128 个区域,每个区域对应一个特征点,用来确定物体中心是否落在该区域。

(3)预测网络 预测网络拥有3 个分支,分别输出中心点热图(heatmap)、物体宽高(size)及中心点与热力点的偏移情况(offset)。

根据CenterNet 网络的检测原理,训练得到行人检测模型的总损失Ldet,是热图损失Lk、中心点偏移损失Loff和尺寸损失Lsize的加权和,如式(7)所示。

式中行人检测的热图损失函数参考Focal Loss[31]构造而成,以缓解正负样本不均衡。中心点偏移损失使用L1 Loss 构造,以弥补输入图像真实框中心点映射到低分辨率图像过程中坐标位置向下取整导致的位置偏移。尺寸损失函数同样使用L1 Loss构造。

在预测阶段中,按类别在热图上提取峰值点。峰值点的具体筛选是采用一个3×3 的最大池化层获取热图中的中心点,并保留前100 个点值大于(或等于)其8 个相邻点值的中心点。每个中心点记为整形坐标(xi,yi),根据检测到的置信度Y^xiyic筛选最终结果。回归产生的预测框如下:

3 试验

3.1 试验配置

本文提出模型的训练及测试均在Ubuntu20.04系统下,运行内存为16 GB,使用NVIDIA GeForce RTX 3060型GPU,并行计算架构版本为CUDA11.1。采用python3.7 和基于PyTorch1.8.0 的深度学习框架。

3.2 数据集

除雾算法和检测算法分别对应低级图像处理任务和高级检测任务,两种算法训练时所用到的数据集及标注信息存在较大差异。考虑到收集大量成对的真实世界雾天图像和无雾图像的不实际性,且交通场景下的行人检测是在室外条件下进行,本文中使用大规模合成数据集RESIDE[31]中的户外训练集(OTS)训练去雾网络,以适应室外条件的去雾任务。

针对雾天条件下行人检测算法的训练和测试,分别采用合成的雾霾城市行人数据集Foggy Citypersons和真实世界任务驱动测试集RTTS。

本文中将Foggy Cityscapes[32]数据集图片和Citypersons[33]标注文件得到的组合数据集命名为Foggy Citypersons。Foggy Cityscapes 数据集是基于Cityscapes[34]生成的合成雾天驾驶场景数据集,合成数据集包含5种版本,对应不同的模拟衰减系数β以产生不同的雾气浓度。本文选取β∈{0.005,0.01,0.02}3 种版本,并从中随机取样,获得一组混合的浓雾、中雾、薄雾图像,包含训练图2 975 张,验证图500 张。由于检测类别专注于行人,注释信息采用COCO 格式的Cityscapes 子集Citypersons 的标注文件,该标注文件中仅包含人类的类别,Citypersons 按照行人遮挡情况将数据集进一步分割成3 个子集,分别是Reasonable、Smaller、Heavy,本文不考虑行人的遮挡情况,训练时只使用Reasonable。

RTTS[26]是一个真实的雾天数据集,可用于检测任务。其包含4 322 张从网络上收集的自然雾天图像,图像视角主要以行人及驾驶员等交通参与者的第一视角为主,涵盖丰富的交通场景,且每张图像都对目标类别及位置进行了标注。标注类别包括行人、汽车、摩托车等5 种类别,这里只采用行人一种类别。

3.3 GCANet网络训练及去雾结果分析

利用OTS户外训练集训练改进的GCANet网络,参数设置如下:输入图像尺寸调整为512×512。整个网络采用Adam 优化器训练,批次训练大小(batch size)为12,衰减系数β1、β2默认值为0.9 和0.999。学习率设置为0.001,epoch 为10,每两个epoch 学习率衰减为原来的一半。

将训练好的模型分别应用于合成的雾天数据集Foggy Citypersons 和真实雾天数据集RTTS,以适应后续的行人检测任务。图5 展示了两组数据集处理前后的图像对比情况(左上方3 组图像为RTTS,分别对应RTTS 数据集的薄雾、中雾、浓雾不同除雾效果;另两组为Foggy Citypersons)。

图5 除雾示例图

从视觉比较看,不同浓度雾气的交通场景图像经过改进GCANet 处理后,均生成了质量较好的去雾图像,减弱了雾气对行人特征的遮挡,产生了自然曝光且清晰的细节,行人特征的识别度提高。其中,薄雾情况下的除雾效果更加彻底;针对雾气较大的中雾及浓雾情况,近处的除雾效果较好,远处雾气存留较为明显。

考虑自然雾天图像没有作为参照的清晰图像,本文通过合成雾天图像的处理情况客观验证改良模型的有效性,因此使用Foggy Citypersons 数据集进行测试目的之一是以便将改进的去雾算法与基线进行定量比较。使用峰值信噪比(peak signal-to-noise ratio,PSNR)和结构相似性(structural similarity,SSIM)来定量评估处理前后的图像质量。其中PSNR 是基于像素误差衡量雾天图像与处理图像之间的相似性,PSNR 越大,则表示图像质量越好。给定一组大小为M×N的带雾图像I和处理图像J,PSNR的计算公式为

式中MSE表示雾天图像与处理图像之间的均方误差,即

SSIM 是基于亮度、对比度和结构3 个方面衡量图片的失真程度以及两张图像的相似性的指标,该值越大,则表明图像越相似。对于一组图像M和K,SSIM的计算公式为

式中:α、β、γ代表亮度、对比度和结构在SSIM 衡量中的占比;μM、μK分别为M、K均值分别为M、K方差;σMK为M、K的协方差。

对比过程中以合成雾天数据集合成前对应的原始清晰图像作为基准图像,从Foggy Citypersons 数据集中分别选取500 张薄雾、中雾、浓雾图像,并依次在改进前后的除雾模型上进行除雾处理。在不同雾天浓度图像的数据集中,计算单张去雾图像与对应基准图像间的SSIM 及PSNR,并计算其平均值,以分析不同雾天浓度下的除雾效果;同时,计算Foggy Citypersons 数据集的平均SSIM 及PSNR 值以反映除雾模型的整体除雾效果。改进前后的GCANet 模型在Foggy Citypersons 数据集上的除雾图像质量评估见表1。

表1 图像质量评估对比

通过表1 可知,用改进GCANet 模型处理的Foggy Citypersons 数据集图像的PSNR 和SSIM 值相比原始GCANet模型整体上提高了1.87和0.11。对于不同浓度雾天图像的除雾效果,改进GCANet 模型在薄雾、中雾、浓雾上的SSIM值分别提升了0.06、0.07 和0.06,PSNR 值分别提升了2.63、0.63 和0.37。综上,改进后的除雾模型针对不同浓度雾天图像的除雾效果均得到提升,去雾图像的失真情况得到改善,处理图像的对比度、色彩保真度以及明暗程度都获得了改善,揭示了更多目标信息。

3.4 CenterNet训练与检测结果分析

3.4.1 合成雾图训练与消融试验

用于恶劣天气条件下行人检测的数据集较少,目前许多相关研究使用合成数据集作为参考。本节采用Foggy Citypersons 数据集训练模型,进一步分析改良去雾模型对于后续行人检测任务的影响。

为验证改良GCANet 算法和CenterNet 算法结合起来的有效性,分别使用原始雾天图像、原始GCANet算法处理后图像和改良GCANet算法处理后图像对CenterNet进行训练,获得3种不同模型,并在雾天图像上进行行人检测,训练过程参数设置一致。具体的模型设置如表2所示。

表2 模型具体设置

训练策略:本文将微调的方法用于CenterNet 网络。首先,在ImageNet 上训练特征提取的主干算法ResNet-18;然后在COCO 数据集上对检测网络进行训练。这些工作无须从头训练,而是使用CenterNet中预训练好的模型来完成。下一步,将预训练模型的完全训练权重从80 个类别抽样到单个类别(行人)在Foggy Citypersons 的2 975 张训练图上进行微调。训练轮次为140,批次训练大小(batch size)为8,学习率设为5×10-4,在第90 和120 个轮次时,学习率依次下降为5×10-5和5×10-6。

行人检测算法常用AP50(Average Precision)、MR-2(log-average miss rate)和召回率(Recall)中的一个或多个作为性能评价标准。其中MR-2值越小,反映检测精度越高;AP50和Recall 值越大,反映检测精度越高。本节以MR-2值作为Foggy Citypersons 数据集上的评价指标。雾天图像中的行人检测性能使用Foggy Citypersons 的500 张验证集分别在3 个模型上进行测试,获得的MR-2值如表3所示。

表3 基于合成雾天图像的模型性能对比

由表3 可知,在Foggy Citypersons 数据集上,模型C 的行人检测的MR-2值相对模型A 和模型B 分别降低了3.17 和0.31。可得出结论,加入改进GCANet 算法去雾处理的模型C 在合成雾天数据集上的行人检测性能高于模型A和模型B。

图6~图8 为Foggy Citypersons 验证集样本分别在模型A、模型B 和模型C 上的检测结果。观察图6和图7 可知,模型B 对于行人的漏检情况要少于模型A。同时对比图7 和图8 可知,模型C 相比模型B进一步改善了漏检情况,且检测到的行人置信度更高。

图6 模型A检测结果展示

图7 模型B检测结果展示

图8 模型C检测结果展示

3.4.2 真实雾图训练与消融试验

使用合成雾天图像训练的模型应用于真实雾天环境检测的过程中,存在跨域不适应性,因此在真实雾图上进行对比试验能进一步验证将改良GCANet算法和CenterNet 算法结合起来的有效性。基于此,本节分别使用真实雾天数据集RTTS 的雾天图像和经改良GCANet 算法处理后的无雾图像对CenterNet进行训练。随机将RTTS 中带标注的4 322 张图像按6∶1∶1 的比例分为训练集、验证集与测试集,图片数量分别为3 242、540 和540,训练类别仅为“行人”。

训练参数设置及训练策略参照3.4.1 节,具体模型设置同表2。本节采用AP50作为评价指标,即IOU 值取0.5 时计算平均精度。使用RTTS 的540 张测试集分别在3 个模型上进行测试,得到的模型AP50值如表4所示。

表4 基于真实雾天图像的模型性能对比

由表4 可知,模型C 在RTTS 数据集上行人检测的AP50值相对模型A 和模型B 分别提高了6.03和0.55。

图9~图11 分别为模型A、模型B 和模型C 在真实雾天测试集样本上的检测结果。对比可知,模型C 在真实雾天场景下仍能有效减少漏检,提升目标置信度。因此,加入改进GCANet 算法去雾处理的模型C 在真实雾天数据集上的行人检测性能高于模型A和模型B。

图9 模型A检测结果展示

图10 模型B检测结果展示

图11 模型C检测结果展示

3.4.3 检测算法对比试验

选 取Faster-RCNN[5]、YOLOX[35]、RetinaNet[31]3种主流行人检测模型分别与改进GCANet 除雾网络相结合,并依次在Foggy Citypersons 和RTTS 数据集上进行对比试验。3 种模型的训练及测试过程与所提方法一致,分别以“G+F”“G+Y”“G+R”表示上述3种模型。试验结果见表5。

表5 不同雾天行人检测模型的测试结果

从表5 可知,在Foggy Citypersons 数据集的对比试验中,本文方法的MR-2相比G+F 和G+R 分别降低了6.05 和1.75,比G+Y 高0.25;在RTTS 数据集上,本文方法的AP50相比G+F 和G+R 分别提高10.42和4.21,比G+Y 低2.48;因此本文方法的检测精度较高,仅次于改进GCANet 与YOLOX 的去雾方法。从检测速度方面看,本文方法的检测速度最快,实时性最佳。综上,改进的GCANet 除雾网络和CenterNet 相结合的方法在雾天条件下具有较好的检测性能。

4 结论

针对雾霾天气下行人检测算法性能严重降低的情况,提出将改进的GCANet 除雾网络和CenterNet相结合的方法。首先,对端到端的GCANet 除雾网络的损失函数进行改良,优化除雾图像的结构细节及图像质量以帮助CenterNet 学习更准确的目标特征。然后基于改进的GCANet 除雾网络和CenterNet相结合的方法训练得到行人检测模型,并应用于雾天的行人检测。经试验,该方法在合成雾天数据集Foggy Citypersons 和真实雾天数据集RTTS 上的MR-2和AP50值分别达到了9.65 和86.11,提高了检测算法在恶劣天气下的泛化性能,更好地发挥了CenterNet检测模型的优势。

猜你喜欢
雾天行人卷积
基于3D-Winograd的快速卷积算法设计及FPGA实现
毒舌出没,行人避让
为什么在雾天不适宜进行晨练
从滤波器理解卷积
路不为寻找者而设
微波辐射计对昆明雾天的监测及应用
基于傅里叶域卷积表示的目标跟踪算法
我是行人
雾天高速公路交通安全风险评估
一种基于卷积神经网络的性别识别方法