基于深度学习的飞溅水检测
SWNet:一种基于深度学习的道路飞溅水检测方法
摘要
恶劣天气条件严重威胁交通安全,尤其是在路面有积水的雨天,可能导致车辆碰撞、人员受伤和碰撞致死。基于监控视频的自动飞溅水检测是一种有效预防交通事故的可行方法。然而,监控视频存在光照变化、照明条件和复杂背景等方面的显著差异,给自动识别带来了巨大困难。本文提出了一种基于深度学习的新方法用于检测飞溅水。据我们所知,这是首个基于深度学习开展此项研究的工作。本文创新性地提出了一种有效的语义分割网络SWNet,用于提取潜在的溅水区域。该网络采用编码器‐解码器结构,以捕捉飞溅水的视觉特征。SWNet通过重用池化索引并采用轻量级解码器,实现了高效率。借助多尺度特征融合结构,SWNet融合了粗粒度语义信息和详细外观信息,显著提升了准确性并优化了边缘分割效果。针对飞溅水与背景之间分布不平衡的问题,采用了飞溅水加权交叉熵损失。此外,设计了一个飞溅水注意力模块,通过注意力机制整合全局上下文信息,专注于移动车辆和飞溅水的显著区域。在新采集的溅水数据集上进行的实验表明,所提出的方法具有良好的有效性与效率,优于先进方法。
索引词 —飞溅水检测,智能交通系统,语义分割,深度学习。
I. 引言
ADVERSE 天气条件对交通安全有显著影响[1]–[3],尤其是在雨天的高速公路上。湿滑路面会降低车辆牵引力和操控性,从而显著增加车辆碰撞、人员受伤和碰撞致死的风险。当存在水坑和积水时,这种情况更为严重。

在路面上,当车辆行驶在水面上时,可能会完全失去与路面的接触,导致车辆失控并立即面临滑出车道的危险。积水越深,车辆失去牵引力的速度就越快。据报道,美国每年发生超过589.1万起车辆碰撞事故,其中约21%的事故与天气相关,而在所有与天气相关的车辆碰撞事故中,约75%发生在湿滑路面,47%发生在降雨期间[4]。车辆在路面上驶过深积水时尤其危险,特别是在高速行驶的高速公路上,可能导致刹车失灵、打滑、翻车等严重事故。然而,从驾驶员的视觉角度很难分辨出路面上的积水和水坑。对于管理部门而言,他们无法知晓深积水的存在及其具体位置,这对行车安全构成潜在威胁。因此,作为智能交通系统的一个重要且有意义的应用,湿滑路面和积水的自动检测对于地面交通管理中心的气象监测至关重要,特别是针对高速公路。当系统自动检测到路面上出现严重积水时,可立即通知相关部门,及时采取适当措施以防止潜在风险。
现有的湿滑路面检测方法主要依赖于双极化相机和近场雷达等特殊传感器[5],[6]。然而,此类设备通常不适用于积水检测,并且在恶劣天气条件下无法提供足够的检测准确性。近年来,为满足安全与安保监控需求,交通系统中已广泛使用了数以万计摄像头的视频监控系统,为监测交通状况[7]提供了便利手段。随着视频监控系统的普及以及深度学习技术的广泛应用,已开发出多种智能交通系统(例如城市大脑[8]),包括自动车辆检测[9]–[11], 、行人检测[12], 、交通流量预测[13],[14], 、交通信号控制[15], 、事件检测[16], 、障碍物检测[17],等。尽管此前已有针对恶劣天气检测的解决方案,如天气状况预测[18],[19],、天气分类[20],,但在水体检测[21]–[23],、水害检测[3],[24]以及湿地区域和积水检测[5]方面的研究仍较少。此外,现有方法主要采用传统方案,无法准确检测高速公路路面上的积水/积水区域。
湿滑路面和积水检测在交通监控视频中仍然是一个具有挑战性的任务,由于复杂道路环境、多样的视觉外观、各种光照变化、复杂背景以及不同的摄像机视角所致。在高速公路相邻车道上,积水区域往往不一致,一些区域存在深积水,而其他区域路面上仅有浅水,这种情况十分常见。从图1第一行可以看出,对于驾驶员和监控摄像头而言,从视觉角度很难分辨出路面的积水情况。此外,仅通过静态图像或视频在没有移动车辆的情况下也难以判断水坑的深度。尽管静态路面上的积水难以识别,但当车辆快速驶过水坑时,会在车辆后方产生明显的飞溅水花,如图1第二行所示,在这种情况下很容易判断水坑的存在。飞溅水花的程度取决于车辆的行驶速度、车辆重量以及水坑的深度。通常,产生的飞溅水花范围越大,表明该区域的积水越深。因此,我们探索通过检测车辆驶过积水区域时其后方产生的飞溅水花,来间接实现对积水或水坑及其深度的检测。这样,积水检测问题就转化为飞溅水检测问题。与汽车、道路等具有清晰边界的普通物体不同,路面上的积水形状不规则、边界模糊,视觉外观与暗云相似,并具有半透明特性,这使得飞溅水检测成为一个极具挑战性的任务。遗憾的是,目前针对路面飞溅水的检测研究尚不充分,这也正是本工作的研究动机所在。
由于飞溅水具有特殊的性质,直接对其对应区域进行分类是一项具有挑战性的任务。因此,最直接的方法是将飞溅水检测转化为语义分割问题,从而能够准确检测并分离图像中不同语义的内容,无论其形状如何。现有的大多数语义分割方法,如FCN[25],、SegNet[26]和 DeepLab[27]–[29],,通常专注于从无约束的自然图像中分割一般物体。然而,道路上的飞溅水具有不一致的形状、模糊边界以及半透明的视觉特征。这与一般物体完全不同。此外,语义分割属于像素级分类,耗时较长。对于智能交通监控而言,需要实时处理以满足事件检测的要求。由于存在数据分布不平衡、划分精度和实时效率等问题,现有方法无法直接应用于飞溅水检测。因此,我们旨在探索一种有效且高效的方法,用于在复杂路面上检测和提取具有挑战性的溅水区域。
本文提出了一种基于深度学习的飞溅水检测方法,称为SWNet,该方法创新性地融合了多尺度特征融合、加权交叉熵损失和飞溅水注意力模块,以实现高效且有效的飞溅水检测。该框架如图2所示。语义分割在整幅图像上进行,以在像素级别检测并分割溅水区域。本文创新性地提出了一种高效的轻量级分割网络,该网络采用轻量级解码器并重用池化索引以实现高效率。采用多尺度特征融合来结合编码器和解码器中的特征,弥补池化操作造成的信息损失,并为高层特征提供更详细的定位信息。通过采用多尺度特征融合,SWNet集成了粗粒度语义信息和详细外观信息,显著提高了准确性并优化了边缘分割。此外,设计了一种针对飞溅水的加权损失,以应对飞溅水检测中分布不平衡的问题。通过控制溅水区域和背景区域的损失贡献,在反向过程中更新这两类权重时实现了平衡。此外,采用了注意力机制来关注显著区域。通过飞溅水注意力模块,从编码器中的低层特征中选择全局上下文以引导解码器中的高层特征。这样,利用详细外观和位置信息为粗粒度语义信息提供引导,实现精确像素定位。
本工作的贡献如下:
- 本文提出了一种基于深度学习的飞溅水检测方法(命名为SWNet),旨在解决路面湿滑路面和积水检测的问题。据我们所知,这是首个基于深度学习的飞溅水检测工作。
- 为了缓解由于池化操作导致的信息损失、数据分布不平衡以及定位不准确的问题,本文创新性地设计了一种有效的飞溅水检测模型,该模型融合了多尺度特征融合、加权交叉熵损失和飞溅水注意力模块。
- SWNet是一种高效分割网络,采用轻量级解码器并重用池化索引以实现高效率和实时检测。
- 收集并标注了一个名为SWSet的新型飞溅水数据集,该数据集包含7,387张图像,涵盖了不同的高速公路场景。这是学术界首个飞溅水检测数据集。
本文组织如下。第二节简要概述了相关工作。第三和第四节分别详细阐述了所提出的方法和实验对比。最后,本文以总结收尾。
II. 相关工作
A. 恶劣天气检测
对雨、雾、风和雪等恶劣天气条件的自动检测一直是智能交通系统(ITS)[18],[30]中的重要课题。传感器和雷达被用于解决这些问题。合成孔径雷达结合基于高斯过程的时间插值方法用于湿地地表水检测[6]。一种经济高效的远程传感器被用于冬季路面状态检测[31]。然而,这些设备大多过于昂贵且操作不便[31]。
随着计算机视觉的发展,基于视觉的恶劣天气检测与预测[20],[32],[33]已得到研究。监控视频被用于恶劣天气检测,例如天气状况预测[18],[19]和天气分类[20]。通过使用条纹方向直方图在图像序列中检测雨和雪[34]。为汽车导航提出了一种自动雾检测方法[35]。在[34],中,经典的高斯混合模型被用于将图像序列中的前景与背景分离,并利用前景模型检测雨雪的存在。深度学习架构被应用于大雨和雨streak积累情况下的去雨问题[36]。然而,这些现有工作不适用于湿滑路面检测和积水检测。
水域与危险检测[5],[21]–[24]此前已被探索,这些方法遵循使用手工设计特征的传统方法。在[5],中提出了一种立体相机来检测潮湿区域和水坑,其中采用传统特征进行分类。借助部分偏振器,提出了用于自动驾驶汽车的水体检测方法,该方法利用天空反射、纹理、反射和视差像素等多种线索。在[24],中假设水坑具有均匀的天空反射。因此,利用颜色恒常性和纹理来检测水域。然而,湿滑路面以及积水的深度难以识别。
最近,基于深度学习的湿滑路面和危险检测解决方案较少被探索。在[3]中采用语义分割方法来检测水坑。通过分析周围环境的各种外观和反射,将反射注意力嵌入全卷积网络(FCN)中,以体现水面反射的物理特性,从而提高检测性能。条件生成对抗网络(cGAN)被用于处理水害检测[37],,其中也将反射注意力集成到网络中以提升性能。然而,上述方法不适用于高速公路积水检测。高速公路的水面与水坑有很大不同,其表面反射相对较弱且不够明显。
B. 基于深度学习的语义分割
语义分割是指将图像中的每个像素分配给其所属对象的类别标签,以实现对场景的高层语义理解,这是计算机视觉中的一个基本问题。飞溅水检测与语义分割相关。
近年来,深度学习在各种应用中取得了具有竞争力的性能,并已被应用于语义分割。反卷积网络[38]探索了用于语义分割的多层反卷积网络,并取得了良好的性能。SegNet[26]为图像分割设计了与反卷积网络类似的编码器‐解码器结构,通过利用池化索引进行非线性上采样,提升了性能。一种高效的语义分割网络ENet[39]实现了实时分割在ResNet、SqueezeNet和轻量级解码器结构下进行语义分割。ICNet[40]在适当的标签引导下引入多分辨率分支,以减少像素级标签推理的大量计算,旨在实现实时分割。DeepLab[41]中提出了空洞卷积[27]–[29]来替代池化操作,从而扩大感受野并良好地融合上下文信息,同时避免信息损失。PAN[42]提出通过注意力机制整合全局上下文信息用于语义分割。在高层输出上执行空间金字塔注意力结构,提供全局上下文作为引导,用于从低层特征中选择类别定位细节。BiSeNet[43]集成了丰富空间信息和较大感受野,并通过一种新的特征融合模块高效地结合二者。文献[14]提出了一种基于深度学习和RGB‐D图像的交通场景语义分割方法。重要性感知语义分割[10]被提出以强调自动驾驶车辆分割中的关键物体。文献[44],提出一种均匀内容自适应下采样技术,该技术学习优先对目标类别的语义边界附近的位置进行采样。然而,这些方法不适用于本任务。本文提出一种新型语义分割网络,以考虑飞溅水特有的视觉特征。
与基于图像的方法不同,基于视频的分割方法(例如 [45]–[47])利用视频的时间信息来捕捉相邻帧之间的相关性。在[45],中提出了一种结合长短期记忆网络(LSTM)流程的三维卷积神经网络(3D CNN),用于基于视频的前景分割,该方法在编码器‐解码器框架下实现。通过将时空线索与适当的特征图相结合,以捕捉前景对象表示。为了提高语义分割网络的准确性,文献[46]提出了一种基于视频预测的方法,通过预测未来帧以及未来标签来合成新的训练样本。TDNet[47]是一种为快速准确的视频语义分割而设计的时序分布式网络,它将深度CNN视为多个较浅子网络,并将这些子网络分布在连续帧上以实现快速特征提取。
注意力机制通常用于语义分割,以从通道中提取权重,然后将这些权重添加到目标特征中。尽管注意力模块已在 SENet[48]和PAN[42],中使用,但所提出的方法 SWNet在本质上与它们不同。SENet中的注意力机制是自注意力机制,它从一组特征图中提取注意力权重,而提取的权重作用于这些特征图。PAN的注意力机制则从高层特征中提取注意力权重,并利用提取的注意力权重来引导低层特征以实现精确分类。与此不同的是,SWNet中的注意力权重是从低层特征中提取的,而提取的权重被用来向高层特征提供外观细节,旨在提高网络的定位能力。
III. 飞溅水检测
A. 框架
通过综合考虑飞溅水的特殊视觉特性、数据分布不平衡、分割准确性和效率要求等因素,本文提出了一种新型语义分割网络SWNet,用于高效且有效地进行飞溅水检测,如图2所示。所提出的SWNet框架包含四个主要组成部分:编码器‐解码器结构、池化索引复用、多尺度特征融合和飞溅水注意力模块。受语义分割能够准确分离图像中形状不一致的不同语义的启发,本文提出一种轻量级语义分割网络来提取潜在的溅水区域,该网络基于编码器‐解码器结构以捕捉飞溅水的特殊视觉特征。SWNet的编码器通过卷积层和池化操作进行下采样以提取特征;相反,解码器则执行上采样操作,将特征图恢复至原始输入尺寸,从而使分割图与输入图像大小一致。采用多尺度特征融合方法整合高层语义和细节视觉外观,以补偿由池化操作引起的信息损失。此外,设计了加权损失以缓解溅水分割中的分布不平衡问题。同时,设计了一个飞溅水注意力模块以捕获代表性特征。该注意力模块作用于包含丰富细节信息的低层特征,为高层特征提供引导。最后,来自解码器的特征图被送入softmax层进行分类,预测结果用于计算交叉熵损失。
由于语义分割是在像素级别上进行的,耗时较长,SWNet通过重用池化索引并采用轻量级解码器来减少参数数量,从而实现高效率。编码器中生成的池化索引被传递给解码器,以便在上采样过程中重用这些池化索引,如图2中的紫色线条所示。常见的语义分割模型在解码器中采用密集卷积层,计算成本高,无法满足实时处理的需求。为了实现飞溅水的实时检测,设计了具有较少卷积层的轻量级解码器,以进一步减少参数数量并加速网络的前向和反向传播。这些策略降低了计算代价。
B. SWNet的基本结构
SWNet的基本结构由三个主要部分组成:编码器‐解码器结构、轻量级解码器和池化索引复用。
1) 编码器-解码器结构:
为了捕捉飞溅水的特殊视觉特征,所提出的SWNet采用编码器‐解码器结构构建。通过该结构,网络具有识别细节的优点。

SWNet的编码器由预训练的VGG16[49],的前13层组成,包括卷积、批归一化、ReLU和池化层,其作用是作为特征提取器。卷积、批归一化和ReLU层的序列在图2中用蓝色块表示,最大池化层用绿色块表示。相应地,解码器由卷积、批归一化、ReLU和最大非池化层组成。最大非池化层在图2中用红色块表示。解码器中的每一层在编码器中都有对应的层。通过将VGG16的预训练权重作为SWNet的初始值,利用数据迁移大大加快了训练过程。
2) 轻量级解码器:
大多数语义分割网络(如SegNet[26], UNet[50]和DeconvNet[38])采用编码器‐解码器结构,通过在上采样过程中使用解码器中的密集卷积层来进行像素级分类以实现分割。然而,密集卷积层包含大量参数,这非常耗时。与现有方法不同,SWNet提出了一种精心设计的轻量级解码器,可实现高效率。该解码器将最后池化层的特征图作为输入,并使用非池化层对特征图进行上采样。解码器的输出是与输入图像大小相同的特征图,随后将其送入softmax层进行像素级分类,以生成最终的分割图,在图2中被标记为黄色块。在本研究中,轻量级解码器在每个上采样步骤中仅采用一个 3 × 3卷积层,显著减少了参数数量。
3) 池化索引重用:
softmax分类和损失计算是逐像素进行的,这意味着每个像素都被视为一个训练样本。由于语义分割执行的是像素级分类,该过程需要消耗大量的计算资源。由于池化索引在下采样过程中被存储,因此可以在上采样时重用以跳过训练过程。为了提高效率,编码器中通过最大池化操作生成的池化索引会在解码器的上采样过程中被重用,如图2中的紫色线条所示。生成的稀疏特征图随后通过可训练滤波器进行卷积以得到密集特征图。池化索引的重用具有改善边界划分的优点,从而保证了准确性[26]。
在此基本结构下,多尺度特征融合、加权交叉熵损失和飞溅水注意力模块被创新性地提出用于飞溅水检测,将在接下来的小节中详细阐述。
C. 多尺度特征融合(MSFF)
在语义分割中,池化操作扩大了感受野并整合了上下文信息。然而,在池化过程中分辨率会降低,这导致信息损失[41],不利于飞溅水分割。如图1所示,飞溅水具有模糊边界和半透明特性,这给飞溅水的边缘分割带来了很大困难。如果由于池化操作而弱化了这些边界细节,则边缘将更难被识别。为了解决这一问题,采用多尺度特征融合方法,将浅层和深层的多尺度特征图进行融合,其中浅层池化层的下采样图与非池化层的上采样图相结合。其动机在于,浅层下采样图能够捕获更多飞溅水的细节信息。通过该结构,结合了浅层外观信息和深层语义信息,从而提高了飞溅水检测的性能。
在最近的一项研究[51], 中,提出了一种利用多视角感受野和编码器‐解码器卷积神经网络进行交通与监控应用中视频前景物体自动检测的方法。该方法在编码器‐解码器结构中集成了早期、中期和晚期阶段具有残差特征融合的卷积核多视角。它克服了传统深度学习模型由于固定视角感受野学习导致的前景区域边界划分不清晰的缺点。通过结合物体边界的细节和语义信息,所提出的多尺度特征融合模块在细化边界划分方面具有与[51]相当的能力。不同之处在于,多尺度特征融合模块依赖于多尺度特征的融合,而工作[51]则基于多视角感受野。
为了融合特征图,进行了池化和上采样操作,以使它们具有相同尺寸的特征。编码器中较大尺寸的特征图与解码器中较小尺寸的特征图通过逐元素加法相结合,以整合粗粒度语义信息和详细外观信息。它们的输出随后作为输入送入下一个上采样层。在本研究中,使用了远离输入端的两个浅层模块进行多尺度特征融合,这些模块为高层特征图提供了局部信息和语义信息。编码器的第三和第四层的特征图分别与解码器的第四和第五层的特征图相结合,从而实现了最佳性能。
SWNet中的池化层和非池化层构造如下:{p1 − p2 − p3 − p4 − p5 − up5 −up4 −up3 −up2 −up1},其中 pi和upi分别表示第ith个池化层和非池化层,i ∈{1, 2, 3, 4, 5}。相应地,特征图定义如下:{F1 −F2 −F3 −F4 −F5 −F′ 5 −F′ 4 −F′ 3 −F′ 2 −F′ 1} ,其中Fi和F′ i 分别是编码器中第ith个最大池化层和解码器中上采样层生成的特征图。多尺度特征融合方法按公式1计算,
$$ F′ i= F′ i ⊕ Fi−1, (1) $$
其中 ⊕ 指的是逐元素加法,且 i ∈{4, 5}。
D. 加权交叉熵损失(WCEL)
在溅水分割中存在严重的样本不平衡问题,因为只有小部分区域是飞溅水,而大部分区域是背景区域。这种不平衡情况通常会导致训练失败,因为飞溅水的损失贡献容易被背景所淹没。现有方法如HED[52]和焦点损失[53]通过在损失函数中添加权重来应对该问题。为了缓解飞溅水检测中的数据不平衡问题,本文提出了一种基于飞溅水分布特征的简单加权交叉熵损失。考虑到飞溅水区域仅占整幅图像的一小部分,将权重设为飞溅水与图像的尺寸比例,以降低其损失贡献。具体公式如下:
$$ CE(pij)=−y × logpsw(i,j) − wi ×(1 − y)× logpb(i,j) (2) $$
其中,CE(pij)表示图像Ii中第jth个像素的交叉熵损失。psw 和pb 分别表示该像素属于飞溅水和背景的概率。y = 1 和y= 0 分别表示飞溅水和背景。由于以这种方式计算得到的权重会非常小,因此进行四次方根运算以增大权重wi,其公式如下:
$$ wi= \sqrt[4]{\frac{|SWi|}{|Ii|}} (3) $$
其中 |SWi| 表示图像Ii中溅水区域的像素数量。 |Ii| 是图像Ii的图像大小。
E. 飞溅水注意力模块(SWAM)
注意力机制已广泛应用于计算机视觉中以识别图像中的显著性区域,例如SENet[48]和PAN[42]。在本研究中,显著区域指的是监控视频中的移动车辆及其相应的飞溅水区域。通过设计的注意力机制,网络能够更精确地识别飞溅水的位置,从而进一步提升分割精度。
本文提出了一种飞溅水注意力模块(SWAM),用于关注显著区域(即潜在的溅水区域),使这些区域具有高响应。由于深度模型浅层中的特征包含丰富的细节信息,因此在编码器中对这些浅层特征执行飞溅水注意力模块,以选择定位细节的显著特征,并将其传递给解码器中的语义特征作为引导,从而实现精确分割。
所提出的飞溅水注意力模块的结构如图3所示。SWAM由一个全局池化层、一个 1× 1卷积层(后接批归一化、ReLU非线性和sigmoid激活层)组成。首先进行全局平均池化

为高层特征提供全局上下文以选择类别定位细节作为引导。
编码器中每个通道的特征被映射到注意力位置的全局响应,如图3中不同颜色所示。由低层特征生成的全局上下文通过 1 × 1卷积结合批归一化和ReLU非线性来构建,以捕获通道间的相关性。其输出被送入sigmoid进行激活,然后与解码器中的高层特征相乘,生成校准的特征通道,也称为注意力图。通过飞溅水注意力模块,网络能够聚焦于溅水区域并捕捉重要的特征表示,实现精确的溅水分割。
首先在编码器中的特征图Ll上执行全局平均池化操作,该操作将每个二维特征图lc(i,j)(位于第cth个通道的位置(i,j))压缩为一个响应值vc,其中lc ∈Ll。其计算方式为:
$$ vc= \frac{1}{W × H} \sum_{i=0}^{H} \sum_{j=0}^{W} lc(i,j) (4) $$
H和W分别表示lc的高度和宽度。通过这种方式,高响应值具有相应特征通道的全局感受野。1 × 1卷积将响应值作为输入,并学习通道之间的复杂相关性。cth通道uc的卷积输出由:计算得出
$$ uc= r(b(g(kc, vc))) (5) $$
其中kc表示 1 × 1卷积中的cth滤波核。g(kc, vc)表示对特征图v 1 × 1使用滤波核kc进行的卷积操作。b(g(kc, vc))和r(b(g(kc, vc)))分别表示批归一化b(·)和ReLU激活函数 r(·)。
随后,执行sigmoid操作 δ以生成权重,用于表示每个特征通道的重要性。这些权重通过逐通道乘法 ϕ传递到解码器,以指导包含高层特征的特征图Hl。最终输出的cth通道oc由:计算得出
$$ o_c= h_c ⊕ ϕ(δ(uc) , hc) (6) $$
其中 δ(uc)表示对特征图uc进行sigmoid操作, ϕ(δ(uc),hc)表示 δ(uc)与 hc之间的逐通道乘法。 ⊕表示逐元素加法。
在注意力机制方面,SWAM与最先进的方法SENet[48]和PAN[42],具有相似的思想,但SWAM在两个方面本质上不同于它们,即注意力结构和特征通道。首先,注意力结构完全不同。SENet中的结构由全局池化层、全连接层、ReLU非线性和sigmoid激活组成。在我们提出的 SWAM中,全连接层被替换为 1 × 1卷积层,以便能够接收任意输入尺寸的特征图以拟合通道间的相关性,并添加了批归一化以实现参数归一化,旨在加速训练过程。在 PAN中,使用全局池化层和1× 1卷积层(包含批归一化和 ReLU非线性)来构建注意力模块,而不使用sigmoid激活。其次,通过所选引导信息进行校准的特征通道不同。SENet的注意力结构可视为一种自注意力结构,因为该注意力模块从一个特征通道中提取通道注意力,并用于引导同一特征通道。PAN中的通道注意力是从高层特征的通道中提取的,用于引导低层通道。相反,我们的方法从低层特征的通道中提取通道注意力,并用于高层特征的通道。
F. 实现细节
1) 实现细节:
所提出的SWNet框架基于编码器‐解码器结构,如表I所示。编码器和解码器的实现细节解释如下: 编码器是一个没有全连接层的VGG16主干网络。它由卷积层、批归一化、ReLU非线性和最大池化层组成。它将360× 480图像作为输入,然后将其传递给CNN网络进行特征提取。总体而言,编码器包含5个模块,如表I所列,其中卷积层与批归一化和ReLU非线性组合构成Lcbr。第一和第二模块Ld1和Ld2分别由两个Lcbr模块加上一个最大池化层组成。第三、第四和第五模块Ld3、Ld4和Ld5分别由三个Lcbr模块加上一个最大池化层组成。
解码器将编码器的输出作为输入,并将其传递给上采样块。上采样块将分辨率恢复到原始输入大小,此处为 360×480。每个上采样块Lui,i ∈{1, 2, 3, 4, 5}在表I中由一个Lcbr模块和一个非池化层组成。这些上采样块是轻量级的,大大减少了参数数量。
2) 模型训练:
SWNet使用语义分割的开源框架PyTorch‐SemSeg[54]实现。为了训练模型,采用自适应矩估计(Adam)作为优化器,批量大小为6,权重衰减为0.0005。预训练的VGG16模型被用作特征提取器。训练过程在200,000次迭代后结束。学习率初始化为0.001,然后每50,000次迭代减少10倍。注意力模块的参数数量为349,120,约340.84KB。
SWNet采用端到端训练,前向传播包含三个步骤。首先,将图像调整大小至 480×360,然后输入编码器,利用预训练的VGG16模型进行特征提取。其输出随后传递给解码器,以恢复图像分辨率为 480 × 360。最后,通过 softmax层进行分类。使用加权交叉熵损失计算损失,并在反向传播中通过Adam进行梯度下降。我们每隔100次迭代在验证集上进行精度比较,并报告最佳性能的模型。
SWNet:一种基于深度学习的道路飞溅水检测方法
IV. 实验
A. 数据集
由于目前没有公开可用的积水检测或飞溅水检测数据集,我们收集了一个新的图像数据集,称为用于飞溅水检测的SWSet。据我们所知,这是学术界首个、规模最大且最具挑战性的飞溅水数据集。2018年前后,我们从中国多个省级交通管理中心收集了85段不同天气条件下的监控视频,其中一些视频持续数小时,而另一些则有数十分钟。为了保证数据多样性,根据视频时长每隔二十秒到五分钟提取一次图像。通过这些提取的图像构建了新数据集SWSet,共包含7,387张图像,其中2,214张图像来自晴天,其余5,173张图像来自雨天场景。在SWSet中,4,658张图像用于训练,729张用于验证,2,000张用于测试。原始图像尺寸为 1920 × 1080,训练时调整为480 × 360。含有飞溅水的图像采集自不一致的降雨程度和水深条件下。由于大雨和排水不良,当移动车辆经过存在深积水的区域时,会产生明显甚至严重的飞溅水。在其他情况下,产生的飞溅水相对较低且轻微。晴天的图像还包括因光线反射而出现在白色建筑物、云或反光路面的场景,这些场景具有与飞溅水相似的视觉特征。这些特性使得SWSet成为一个具有挑战性的数据集。为了构建真实标签,六名经验丰富的研究生使用LabelMe进行像素级标注[55]。为了保证标注质量,每张图像的标签均由两名评估人员进行核验。
B. 性能指标
所提出的方案旨在检测移动车辆产生的飞溅水,并准确提取相应的水域区域。提取的区域可被视为像素集。已采用多种性能指标来评估语义分割的性能。类似于[25],[42],[56],,采用了四项指标来评估性能。
-
像素准确性(PA)[25] 是指正确预测的像素数量与总像素数量的比值,定义为:
$$
PA= \frac{\sum_i N_{ii}}{\sum_i N_i}
(7)
$$
其中$N_{ii}$表示类别i中正确预测的像素数量,$N_i=\sum_j N_{ij}$表示类别i中的总像素数量,$N_{ij}$表示属于类别i但被预测为类别j的像素数量。 -
平均像素准确性(MPA)[25] 计算所有类别的平均像素准确性,其定义为:
$$
MPA= \frac{1}{NC} \sum_i \frac{N_{ii}}{N_i}
(8)
$$
其中NC为类别数量,包括一个背景类。 -
平均交并比(MIoU)[25] 计算真实标签与预测像素区域的交集和并集的平均比率,其定义为:
$$
MIoU= \frac{1}{NC} \sum_i \frac{N_{ii}}{N_i+\sum_j N_{ji} - N_{ii}}
(9)
$$ -
频率加权交并比(FWIoU)[25] 是IoU的一种加权变体,它根据每个类别出现的频率为其分配权重。其定义为:
$$
FWIoU= \frac{1}{\sum_i N_i} \sum_i \frac{N_iN_{ii}}{N_i+\sum_j N_{ji} - N_{ii}}
(10)
$$
C. 与先进方法的比较
据我们所知,这是首次利用深度学习进行道路积水与飞溅水检测的工作。目前尚无与此任务相关的研究可供比较,因此我们借鉴了语义分割领域的方法。为评估所提出方法的性能,将以下先进方法作为基线。
-
DeepLabV3+[28] 是语义分割领域的最先进方法。它探索了Xception[57]模型,并将深度可分离卷积应用于空洞空间金字塔池化和解码器模块,从而实现了高效且有效的性能。采用DeepLabV3+的TensorFlow实现进行训练,批量大小为8,权重衰减为0.0005的模型。学习率设置为0.01,迭代步数为120,000。膨胀率为{6, 12, 18},输出步幅为16。采用的骨干网络为Xcption65[57]和 ResNet‐101[58]。
-
BiSeNet[43] 是一种实时语义分割网络。它结合了空间与上下文路径,以保留空间信息并获得足够的感受野。我们采用BiSeNet的开源代码在我们的数据集上训练模型,并保持原始的训练设置。
-
SegNet [26] 是一种具有典型编码器‐解码器结构的分割网络。通过重用池化索引,实现了高效率。使用 PyTorch‐SemSeg[54] 在我们的数据集上训练模型,训练设置与SWNet相同。
-
ENet [39] 是一种具有轻量级结构的实时分割网络,结合了ResNet[58]和Inception[59]的结构。采用开源的ENet代码进行模型训练,并使用原始的训练设置。
-
FCN [25] 是用于语义分割的第一个全卷积网络。它通过添加跳跃连接来优化边缘分割。FCN 有三种变体,即没有跳跃连接的 FCN32、带一个跳跃连接的 FCN16 和带两个跳跃连接的 FCN8。使用 PyTorch‐SemSeg[54] 来训练 FCN 模型,且训练设置与 SWNet 相同。
在SWSet上与先进方法的性能比较如表II所示,其中 IoU‐BG和IoU‐SW分别表示背景和飞溅水区域的交并比。从表II可以看出,IoU‐BG、MPA和加权交并比的值都非常高,均超过99%。这是因为主要区域为背景,而飞溅水区域仅占整幅图像的一小部分。大多数背景区域均可被正确分类,从而产生较好的性能。飞溅水对MPA和FWIoU的值贡献较小。此外,IoU‐SW的性能是远低于背景交并比。由于背景交并比、宾夕法尼亚州和 FWIoU的性能非常高,它们在性能评估中缺乏区分性。在本研究中,我们更关注飞溅水区域的性能。因此,这些指标在后续表格中被忽略。
飞溅水检测受到复杂道路环境、多样的视觉外观、各种光照变化、复杂背景以及不同摄像机视角的影响,因此检测和分割飞溅水是一项具有挑战性的任务。在此情况下,基于FCN[25]的方法通常表现较差,其IoU‐SW低于30%。FCN的解码器层数较少,难以有效应对复杂场景。FCN采用反卷积层进行上采样,并需要学习参数,耗时较长。然而,与复用池化索引相比,反卷积上采样在边界检测方面效果不佳。ENet[39]结合了ResNet和Inception的结构,减少了参数数量并保证了精度。其精度达到46.5%,优于FCN。SegNet[26]通过池化索引复用,在边界划分的准确识别方面具有优势,性能显著优于FCN和ENet。
最新的语义分割方法DeepLabV3+[28]在多个语义分割任务上取得了最先进的性能,这主要归功于空洞卷积和空洞空间金字塔池化适用于多尺度目标。然而,DeepLabV3+在本研究中的表现不佳。这是因为该数据集仅有两个类别(飞溅水和背景),且我们数据集中的溅水区域相对较小,与公开基准数据集有较大差异。公开数据集包含更多类别,例如Cityscapes[60]包含30个类别,而ADE20K[61]则有150个类别,其中存在大量不同尺度的目标。因此,DeeplabV3+在常见物体分割任务中表现良好,但在我们的数据集上并未展现出优异的性能。此外,DeepLabV3+的空洞卷积是一种稀疏计算,可能导致网格伪影[42],从而损害分割精度。在使用我们的数据集进行训练时,其在飞溅水检测方面的性能并不理想。这也表明现有方法并不适用于飞溅水检测。BiSeNet[43]取得了更好的性能,这主要是因为BiSeNet设计了空间路径以保留空间信息并生成高分辨率特征,同时设计了上下文路径以获得足够的感受野。通过融合来自空间路径和上下文路径的特征,该网络实现了显著的性能提升。
所提出的SWNet优于先进方法,实现了最佳性能。IoU‐SW、MPA和MIoU分别为57.1%、87.2%和78.5%。所提出的SWNet专为飞溅水检测而设计。除了重用池化索引外,SWNet采用多尺度特征融合结构来整合粗粒度语义信息和详细外观信息,并部署加权交叉熵损失以应对类别不平衡问题,并采用飞溅水注意力模块来选择重要的特征表示。多尺度特征融合和注意力模块都具有细化边缘分割的能力。通过融合编码器和解码器的多尺度特征,缓解了池化操作引起的信息损失问题。这样,将丢失的边界细节整合到解码器的特征中,以优化边缘分割。所采用的注意力模块进一步提取编码器特征中包含丰富定位信息的全局上下文,以指导解码器中的特征,有助于边界像素定位。所有这些精心设计的策略相结合,提升了整体性能,使飞溅水提取相比其他方法更加准确。

图4展示了SWNet检测结果的三个示例。为了更好地可视化,提取了车辆及其对应的溅水区域。除了检测结果外,还提供了SWNet生成的热图。我们可以看到,SWNet能够准确地提取溅水区域。

图5展示了三个失败的示例。第一个示例表明,由于目标非常模糊且较小,SWNet未能检测到小物体上的飞溅水。对于这些模糊且较小的对象,网络无法捕捉到有用的特征,因此被网络忽略。在第二个示例中,有三个溅水区域由于光线反射和视觉相似性,导致区域混杂在一起,没有清晰的边界。SWNet倾向于将边界周围的像素错误地预测为飞溅水,这是由于模糊且半透明的边界所致。第三个示例表明,溅水区域的边界区域难以区分,相对于车辆附近的区域而言不够明显,这会导致错误分类。在本研究中,仅使用视觉和空间信息无法准确检测溅水区域。利用时空相关性探索视频中的飞溅水检测是一个有意义且具有前景的方向。
D. 消融研究
1) 各组件贡献:
除了编码器‐解码器结构外,所提出的SWNet由三个主要组件构成,即多尺度特征融合模块 (MSFF)、加权交叉熵损失(WCEL)和飞溅水注意力模块 (SWAM)。为了评估各个组件对性能提升的贡献,进行了消融实验,结果如表III所示。基线表示SWNet的基本编码器‐解码器结构,不包含MSFF、WCEL和SWAM组件。从表III可以看出,基线的性能接近SegNet,这表明SWNet中的轻量级解码器在飞溅水检测方面具有良好的性能。当采用加权交叉熵损失(WCEL)时,性能得到提升。加权交叉熵损失通过为飞溅水和背景添加不同的权重来控制它们的损失贡献,从而缓解了SWSet中存在的样本不平衡问题。通过采用多尺度特征融合模块(MSFF),SWNet融合了粗略的语义信息和详细的外观信息,使得用于分类的最终特征图包含了丰富的局部细节和语义信息,性能进一步提高。加入飞溅水注意力模块(SWAM)后,SWNet取得了最佳结果。SWAM在低层特征上执行,以捕获细节的重要特征表示,并将这些信息传递给高层特征以指导分类。这样,高层特征具备捕捉位置和类别信息的能力,从而提高了分割精度。

图6展示了不同组件下SWNet的检测结果。大部分溅水区域可以被检测到。然而,大量背景像素被错误地预测为飞溅水,同时一些飞溅水像素被遗漏。当采用加权交叉熵损失(WCEL)时,部分误判的像素能够被正确检测。引入多尺度特征融合模块(MSFF)后,低层特征中的精确定位细节被提供给高层特征,从而使像素定位更加准确,边缘分割得到优化。当进一步引入SWAM时,性能进一步提升,因为SWAM捕获了编码器的特征表示并增强了定位能力。提取出的区域与真实标签具有较高的重叠度。尽管采用了 MSFF和SWAM来通过提升网络的定位能力以优化边缘分割,SWNet中仍存在一定的误判像素。这是因为飞溅水与非飞溅水之间的边界确实难以区分,标注和检测都较为困难。
2) 多尺度特征融合模块的数量:
在本研究中,采用了多尺度特征融合,以结合浅层外观信息和深层语义信息,从而提升飞溅水检测的性能。实验验证了不同数量的多尺度特征融合模块的影响,结果如表IV所示。在本实验中,最多在不同的上采样块中测试了四个MSFF模块,其中 MSFF_i,i ∈{1, 2, 3, 4}表示所采用的MSFF模块数量。从该表可以看出,不同数量的MSFF模块在性能上大致相似。这是因为低层特征包含类似的详细信息,增加更多的 MSFF模块并不能为准确性提升带来额外贡献。因此,本研究仅采用了两个MSFF模块。
3) MSFF与SWAM的顺序的影响:
在本研究中,多尺度特征融合(MSFF)和飞溅水注意力模块(SWAM)均采用特征融合操作来提升性能。MSFF与SWAM的执行顺序可能会影响整体性能。存在不同的组合方式,例如先使用MSFF再输入到SWAM,或先使用SWAM再进行 MSFF。在本小节中,进行了六组实验以探究不同融合顺序是否会影响飞溅水检测的性能,结果如表V所示。一般来说,采用不同的MSFF和SWAM顺序具有相似的分割性能,因为MSFF和SWAM都旨在为高层特征提供详细的定位信息。根据实验结果,当首先执行MSFF,接着使用SWAM,并再次使用一次MSFF时,SWNet达到最佳性能(表V最后一行)。为了在性能和成本之间取得平衡,SWNet采用了表V中的第三种序列,其性能与最佳性能相近。
E. 效率
效率是一个需要考虑的重要因素,尤其是在智能交通系统的实时应用中。与先进方法的效率比较如表VI所示。运行时间在配备 NVIDIA Titan X和GeForce GTX 1080 Ti的工作站上进行测试。为了公平比较,测试时将图像调整大小至640 × 360。从表VI可以看出,SegNet和DeepLabV3+的速度约为14帧每秒。SegNet重用池化索引的策略是高效的。然而,使用密集卷积层的解码器降低了推理速度。尽管DeepLabV3+具有相当好的检测性能,但其计算成本较高,速度极慢,仅为14帧每秒。这是由于采用了 Xception65[57]骨干网络以及结合空洞卷积的多尺度预测[41]所致。Xception65是一种采用深度可分离卷积的深层网络,能够更精确地提取特征。DeepLabV3+使用空洞卷积替代池化操作以避免信息损失,并且采用在不同尺度上进行多尺度预测以提高准确性,但耗时较长。若不使用深度可分离卷积,DeepLabV3+的推理速度会更慢。ENet实现了最快的推理速度,但精度较低。BiSeNet在精度和推理速度之间取得了较好的平衡。所提出的方法SWNet采用了类似的编码器‐解码器结构,并且同样重用了池化索引。更重要的是,使用了轻量级解码器,进一步提高了效率。因此,基础版SWNet结构在 NVIDIA Titan X上的速度可达40.6 fps,在GeForce GTX 1080 Ti上可达67.2 fps,分别约为SegNet的两倍和四倍。通过结合WCEL、MSFF和SWAM模块以提升有效性,完整版SWNet仍能达到36.8和60.5 fps,速度相当快,适用于实时应用。
V. 结论
湿滑路面和积水的自动检测对于智能交通系统至关重要。本文创新性地提出了一种高效且有效的深度网络 SWNet,用于检测道路上的飞溅水。通过充分利用飞溅水特有的视觉特征,精心设计并定制了一个语义分割网络,该网络融合了多尺度特征融合结构、加权交叉熵损失以及飞溅水注意力模块。所提出的方法在有效性和效率方面均优于现有的最先进方法,具备满足实时应用需求的潜力。
在本研究中,飞溅水检测被视作一个语义分割问题。未来,我们将根据提取出的溅水区域的大小和分布情况,将其进一步探索为分类任务。本工作是首次基于深度学习开展的飞溅水检测研究,完全在帧级别上进行,未考虑时间信息,这部分内容也将在未来工作中加以探索。此外,在未来的工作中,还将利用周围环境(如树木、隔离设施)的反射以及车辆前灯的反射作为辅助手段来判断湿滑路面。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)