APP下载

基于语义分割网络的路面积水与湿滑区域检测*

2021-05-12蔡柏湘蔡英凤

汽车工程 2021年4期
关键词:编码器卷积语义

王 海,蔡柏湘,蔡英凤,刘 泽,孙 恺,陈 龙

(1. 江苏大学汽车与交通工程学院,镇江 212013;2. 江苏大学汽车工程研究院,镇江 212013;3. 上海禾赛科技股份有限公司,上海 201702)

前言

准确地估计路面附着系数一直是一个非常具有挑战性且很有实际意义的研究课题。雨后低附着系数路面不仅影响车辆的动力性和制动性能,且会使汽车的操纵稳定性变差[1]。及时准确地辨识出路面附着系数,为驾驶员或智能车辆的决策预留时间,可避免不必要的交通事故。

目前,路面附着系数的估计方法主要有3 类:第一类是传统的基于车辆动力学参数建模的间接估计,如文献[2]中基于所设计惯性试验台提出通过改变车轮与双转鼓间安置角等效不同路面峰值附着系数的算法;第二类是通过光学传感器获取路面数据,根据传感器数据与路面附着系数的关系进行估计;第三类则是基于视觉传感器借助深度学习手段的间接估计。

采用动力建模的方法虽然准确可靠,但模型复杂,不能保证实时性;且该方法只能估计当前与轮胎接触的路面附着系数,而不能估计车辆前方路面的附着系数。基于光学传感器的方法,容易受到光照变化、环境噪声和路面阴影等因素的影响,鲁棒性不佳。借助深度学习分类网络的方法虽说能弥补上述两种方法的缺陷,但只能估计路面整体的附着系数,不能对积水和湿滑路面局部进行附着系数估计,更得不到路面积水和湿滑区域的分布。

据此,本文中提出了基于图像语义分割的积水和潮湿的路面状态识别和路面附着系数估计的方法。该方法不仅可以预测未来路面局部附着系数,且能得到路面积水和湿滑区域的分布,为无人驾驶车辆和机器人等智能系统的决策与路径规划提供很好的前提条件。

1 相关研究

近年来,随着图像处理技术和模式识别技术的发展及其越来越广泛的应用,伴随着以摄像头为主的道路监控设备的普及,催生了许多基于图像技术的非接触式路面状态检测和识别方法。在重要路段,如事故多发路段、十字路口路段、视野盲区路段安装监控摄像头,实时采集道路图像,并将其传输到控制中心,即可进行路面状态识别。

1.1 机器学习方法

机器学习的做法通常是从车载摄像头或道路监控录像机获取道路图像;然后,经过一系列图像预处理操作,如降噪、增强、膨胀、腐蚀、二值化等之后,提取图像的颜色、纹理、亮度等基本特征;最后,采用支持向量机、k 近邻、贝叶斯分类器和传统神经网络等机器学习技术进行图像的分类。

日本学者Kuno 等[3]研究了一种基于车载CCD摄像机的沥青路面干湿状况实时检测方法,该方法参照亮度信号的低亮度水平,利用平均绝对偏差来检测路面光泽度,再根据检测到的路表面光泽度,确定路面积水状况。经验证,该方法在车辆高速行驶的情况下也能检测出路面的积水状况,但由于夜间几乎没有均匀的照明,在夜间的检测正确率很低。

Yang等[4]研究了一种基于小波函数和支持向量机(SVM)分类器的路面状态检测方法。路面状况分为干燥、潮湿、积雪、结冰等状态。通过车载数码相机获取图像,利用小波变换提取图像特征,然后采用支持向量机(SVM)训练分类器进行分类。最终对干燥、潮湿、积雪和结冰路面的分类精度分别达91.4%、85.1%、86.7%和88.3%。

Jonsson 等[5]使用装有一套光学波长滤光片的红外摄像机获取每个像素的亮度作为特征,这些图像主要用于开发多变量数据模型,也用于对每个像素中的路况进行分类,由此产生的成像系统能可靠地区分路面上干燥、潮湿、结冰或积雪覆盖的路段。该系统是对现有单点路况分类系统的巨大改进。

1.2 深度学习方法

2012 年,Hinton 课题组提出的AlexNet 网络[6]一举夺得ImageNet 图像识别比赛冠军,深度学习开始被应用在图像领域并快速发展。随后,深度学习技术在图像分类、识别和检测等领域都取得了很大的成就;一些研究者将深度学习应用于路面状态的识别。

德国不伦瑞克理工大学的研究人员从文献[7]中的Kitti 和RobotCar 数据集中截取了6 种路面图像,分别是干燥、潮湿、积雪等。他们训练并比较两种不同的模型—InceptionV3和ResNet50。然后增加了长时和短时记忆单元,进一步提高分类精度[8]。

Pan 等[9]也利用了类似的方法,使用预先训练好的深度分类模型—VGG16 对不同积雪程度的路面进行分类。该方法充分利用了预训练模型的权重,只对预训练模型进行微调,在自制的数据集上分类准确率可达90.7%。

综上所述,目前对于路面水、雪、冰等状态的识别主要分为传统机器学习和深度学习两大类。大多数传统方法都是手动选择和提取特征,如纹理、颜色、亮度或其他特征。然后,将它们组合起来,形成一个特征库。最后,利用机器学习算法建立分类模型。随着深度学习的发展,一些研究人员利用预先训练好的深度神经网络直接对路面图像进行分类,取得了与传统机器学习算法相当的效果。然而,往往不是整个路面都是积水、结冰或积雪状态,想要获取它们在路面上的分布情况,简单的分类已经不能满足实际应用的要求。因此,对路面状况的识别应细化为对图像中每个像素的密集预测,并给出类别信息,这就是语义分割技术。图1 为语义分割示意图,输入图像经过连续的卷积操作和池化操作,降低分辨率的同时增加特征图像通道数以获取低层次和高层次的图像特征,在上采样阶段将下采样获取的特征地图的分辨率恢复至输入图像分辨率大小,最后对特征地图的每一个像素进行分类得到输出的分割图像。

图1 语义分割示意图

1.3 深度学习在语义分割中的应用

图像的语义分割是深度学习在图像领域的一大应用,其目的是在像素级对图像进行分析,将图像中的每个像素分配给一个对象类。

在深度学习取代机器视觉之前,人们使用像素级的决策树分类,如纹理基元森林(texton forest)和基于随机森林(random forest)的分类器等方法进行语义分割。早期的算法通常基于阈值、边缘或区域的先验知识,这些先验知识本质上依赖于图像本身的低级视觉信息。由于这些方法没有训练阶段且计算复杂度通常较低,在没有辅助信息的情况下,精度很难满足要求且鲁棒性较低。

深度学习的兴起,使采用深度神经网络解决语义切分问题成为一种趋势。其根本原因在于深层网络具有很强的非线性模拟能力,而传统算法依靠先验提取的特征可以被网络取代,甚至可以得到更丰富的特征。近年来,卷积神经网络(CNNs)大力推动和发展了多种分割模型,如全卷积神经网络(FCNs)[10]、UNet[11]、UNet++[12]、PSPNet[13]以 及 一 系 列DeepLab版本[14-16]。语义分割网络的开山之作,全卷积神经网络是在分类网络的基础上提出的,用全卷积层代替分类网络最后的全连接层,这允许其为任何大小的图像生成分割图。几乎所有后续的语义分割技术都采用了这个范例。典型的识别网络及其更深层的后继者表面上接受固定大小的输入并产生非空间输出。这些网络的完全相连层有固定的尺寸,并丢弃了空间坐标。因此,在语义分割任务中,完全连接的层被卷积层替换。除了完全连接的层之外,使用CNN 进行分割的主要问题之一是池化层。池化层增加了接受域,并且能够聚合上下文,同时丢弃要保留的位置信息。分割任务须将分类标签与原始图像对齐,因此需要重新引入位置信息,前人的研究中主要有两种不同类别的体系结构来解决这个问题。第一类是编码器和解码器(encoder⁃decoder)体系结构。编码器通过卷积层逐步降低图像分辨率,解码器通过反卷积逐渐恢复图像细节和空间维度。在第二类的体系结构中使用的是文献[17]中所称的膨胀卷积,也叫扩张卷积。扩张卷积允许在不降低空间维度的情况下指数地增加感受野。

2 Res-UNet++

本文中采用了一种新的残差网络结构—Res⁃UNet++,其结构示意图如图2(e)所示,大体结构由不同深度的编码器-解码器组成,在提取图像特征的编码器也就是网络的Backbone 部分加入残差结构[18],可以更容易地提取图像的抽象特征和局部细节。图2(a)~图2(d)为不同深度的编码器-解码器结构。嵌套了不同深度的编码器-解码器结构的R⁃UNet++,其优点在于,浅层结构可以提取图像的一些简单的特征,比如边界和颜色,而深层结构因为感受野大了,而且经过多次卷积操作后,能提取到更抽象的图像特征,使分割更精确。

图2 Res-UNet++网络结构图

2.1 编码器

编码器的作用是获取图像上下文信息,提取图像特征,其结构类似于经典的分类网络VGG[19]。两个3×3 的小卷积被重复堆叠。在每次卷积后,使用Relu激活函数来增加非线性模拟能力。在两次卷积操作后,将2×2的最大池化层作为完整的下采样操作来执行,扩大感受野的同时将图像分辨率减半。在每一次下采样中,为了提取更多样化的特征,特征通道的数量增加了一倍。连续的几次3×3 卷积可以加深网络,获取图像更深层次、更抽象的特征,增强表达能力,同时,减少了模型参数的数目,加快了训练速度。在编码器中,经过4次下采样操作后将图像特征分辨率降低到输入图像的1/16,以充分提取局部细节。

2.2 解码器

解码器的作用是将经过编码后的特征图像通过上采样将其分辨率恢复到和输入图像一样的大小,然后对每一个像素点分类。解码过程的上采样操作次数等于编码器中的下采样操作的次数。每一次上采样后,特征地图的通道数量减半,分辨率加倍。在解码过程中,转置卷积用于上采样,同时每一层上采样的输出包含编码器相同分辨率的下采样输出,这是一种快捷连接。它将编码器提取的低层特征与从解码器提取的高层特征进行融合,形成更丰富、更全面的特征表达。

2.3 残差结构

残差单元的主要设计思想有两个:快捷连接和恒等映射。残差结构如图3所示。图中,X代表特征输入,通过右边的快捷连接恒等映射到输出,weight layer代表卷积权重层,relu表示激活函数,F(X)为用X经过卷积权重层所学习到的特征表示的残差。假设H(X)表示输入X最终学习到的特征,现在希望其可以学习到残差,这样原始需要学习的特征就变成了F(X)=H(X)-X。之所以这样是因为残差学习相比原始特征直接学习更容易。当残差F(X)为0 时,此时卷积权重层仅仅做了恒等映射,这样至少网络的性能不会下降,而实际上残差F(X)不会为0,这也就使得卷积权重层可以在输入特征的基础上学习到新的特征。

图3 残差结构示意图

3 实验

3.1 数据描述

基于视频或图像的非接触式路面状态识别算法以雨天积水和湿滑路面特征为识别对象。各国科研人员使用的数据集通常是通过交通部门的道路监控视频和非特种车辆的车载摄像头获取的,然后根据研究需要自行标注。目前,还没有公开统一的路面状态识别专用的数据集。

考虑到在真实场景下采集数据的时间成本和受限于实验室硬件资源等原因,利用仿真软件CARLA0.9.9 版本采集本文中使用的数据集。CARLA0.9.9 版本的软件中有5 个不同的城镇地图,包含了城市街道和高速公路场景,能很好地模拟现实中不同场景下的路面情况。为了保证数据的多样性,采集了不同场景、不同光照的路面积水和湿滑照片共1 350张,分成训练集、验证集和测试集,其照片数量的比例为6∶2∶2。不同场景、不同光照下的路面图像示例如图4 所示,其中(a)为黄昏时分高速公路的路面图像,(b)为白天高速公路的路面图像,(c)为夜间城镇街道的路面图像,(d)为白天城镇街道的路面图像。

图4 不同场景和光照下的路面图像示例

利用labelme 标注软件为采集的路面图像按照cityscapes[20]数据集格式进行标注。把路面积水和湿滑路面标注为背景、干燥路面、积水区域和湿润区域4 个类别,其中背景为除了路面区域以外的所有物体,包括建筑、树木、天空等,干燥路面则为车辆通行整个区域的干燥部分,积水区域为雨水覆盖路面沥青表面能形成水膜的区域,而湿润区域则是路面湿度介于干燥和积水的区域。标签和对应的颜色如表1 所示,其中浅蓝色为背景标签,红色为湿润区域标签,紫色为干燥路面标签,墨绿色为积水区域标签。与路面图像示例图4对应的标签如图5所示。

表1 路面状态和对应颜色表

3.2 训练

图5 路面图像示例图4对应的标签图

语义分割模型在训练过程中涉及到大量复杂的矩阵运算和浮点运算,需要通过不断尝试,逐步迭代在数千个样本中寻找最优解。因此,对实验环境提出了很高的要求。本文中训练语义分割模型使用的实验平台的硬件配置为64 GB 内存的GeForce GTX 1080Ti 的GPU 和i7⁃9700k 的CPU。软件配置基于64 位操作系统的Ubuntu18.04。采用当前主流深度学习框架pytorch 和python 语言构建网络模型,使用并行计算架构CUDA 和GPU 加速库CUDNN 进行高性能并行计算。

对训练集中所有样本中不同类别标签所占的面积进行计算和累计,各类标签面积所占比例如图6所示。由图可以看出,背景标签和干燥路面标签占比相对较高,而更加关注的积水区域和湿滑区域占比相对较低。

图6 训练集样本中各标签面积占比

考虑到训练数据存在标签样本不均衡的情况,选择Focal Loss[21]作为训练的损失函数。Focal Loss最初是在目标检测领域提出来的,其计算公式为

式中:N为标签类别数目,本文中为4;α和γ都为常数,可根据实际情况自己设定,本文中分别设定为0.2 和2;yi为标签所代表的值,正样本其值为1,负样本其值为0;pi为神经网络预测值。

通过修改标准的交叉熵损失函数,降低易分类样本的权重,增加难分类样本的权重,让模型在训练过程中快速关注困难样本,也就是相对较少的样本,来解决类别样本不均衡的问题。

模型训练的过程就是梯度下降寻求最优解的过程,为使梯度下降法取得较好的性能,须把训练时的学习率设定在合适范围。太高的学习率会导致学习不稳定,太低的值又可能导致训练时间的无谓延长自适应学习率根据训练时迭代的次数自己改变学习率的值,在保证稳定训练的前提下,达到了合理的训练速度,缩短了训练时间。基于图像的语义分割模型训练的过程就是不断学习图像特征的过程,随着训练的深入,学习的特征也越来越抽象,学习的难度越来越大,所以学习率应随着训练的深入而调低,从而保证模型稳定而快速地学习到图像的低层次和高层次语义信息。为此,选用按指数衰减的学习率,其计算公式为

式中:lrd为衰减的学习率;lri为初始设定的学习率;Rd为衰减系数,即衰减率;Ni为迭代轮数;Sd为衰减速度。

3.3 实验结果分析

设定训练时每次迭代训练输入的图像数为8,同时对输入的图像进行随机尺度变换、随机角度旋转和图像翻转等手段进行数据增强。初始学习率lri设定为0.001,衰减系数Rd设定为0.95,迭代轮数Ni为5 400,衰减速度设为50。采取语义分割最常用的平均交并比(MIoU)和类别的交并比(IoU)作为评价指标,其中交并比(IoU)示意图如图7 所示,IoU 的分子代表图像的交集,分母代表图形的并集,MIoU 代表多个类别交并比的平均值。图像的交集,即图像重合的部分。它越大表示语义分割输出图片和标签图片的重合程度越高,说明语义分割的精度越高。

最终,训练好的模型在测试集上4 个类别的平均交并比为90.07%,背景、路面、积水区域和湿滑区域的IoU 如表2 所示,与其他方法的对比如表3所示。

图7 交并比(IoU)示意图

表2 各类别的分割结果

表3 本文方法与其他方法精度对比

由表可见:本文提出的方法和分类神经网络相比,在保证分割精度相差无几的情况,能够得到路面积水和湿滑区域的分布情况;与传统分类方法如支持向量机(SVM)、K⁃means 算法相比,在提高精度的同时还能改善鲁棒性。

图8 为不同场景和光照下的测试结果图。可以看出,白天高速公路、黄昏高速公路、夜间城镇街道和白天城镇街道的路面图像,除了少量的边缘部分和远处的小块区域不能分割出来,其余的几乎都能按照对应的标签类别完全正确地分割出来,为道路局部附着系数的估计提供了重要前提条件。

图8 分割结果图

4 结论

本文中采用的基于深层语义分割网络的路面积水与湿滑区域识别算法,在自制的数据集上取得了良好的效果。语义分割常用的分割指标类别平均交并比(MIoU)能达到90.07%,几乎可以完全正确地分割出不同场景、不同光照下的路面积水区域、湿滑区域和干燥区域。为解决雨天路面状况识别问题提供了一种新的思路。

猜你喜欢

编码器卷积语义
基于全卷积神经网络的猪背膘厚快速准确测定
基于ResNet18特征编码器的水稻病虫害图像描述生成
真实场景水下语义分割方法及数据集
基于图像处理与卷积神经网络的零件识别
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
基于Beaglebone Black 的绝对式编码器接口电路设计*
基于TMS320F28335的绝对式光电编码器驱动设计
汉语依凭介词的语义范畴