杨炜 常晓博 刘哲 屈晓磊
(1.长安大学,西安 710061;2.北京航空航天大学,北京 100191)
主题词:沥青路面 积水检测 掩膜循环卷积神经网络 实例分割
无人驾驶车辆的车载传感器获取路面信息,控制系统据此调整控制策略。研究表明,路面积水与车轮的相对位置即单侧车轮遇水、双侧车轮同时或交替遇水会对车辆侧向稳定性产生不同影响。通过检测路面积水分布并判断车轮是否遇水,进一步根据检测信息控制转向系统,可以防止车辆出现偏驶、侧滑、急转等情况。因此,路面湿滑状态检测是无人驾驶车辆安全行驶必须考虑的问题。
国内外已有许多路面积水检测方法。Ryu等提出了一种基于视觉摄像机图像的路面状态识别算法,首先采用极化法将路况分为干燥和潮湿,然后采用小波变换和频率特性判别干燥和结冰状态,并试验验证了其可行性。Arturo Rankin等开发了一种基于彩色相机的水体检测器,根据水体对天空反射强度特征、图片中水体与周围环境间饱和度、亮度变化特性分割积水区域。但是该检测器主要用于野外空旷区域水体的检测,没有对沥青路面积水检测实际应用进行说明。Alok Sarwal等利用积水区域发生光学偏振原理检测水体,此方法检测效果好,但检测过程需要3 个标定好的摄像头,成本较高。Park等采用光学波长滤光镜的红外摄像头获得红外图片,并建立多元数据模型进行路况分类,根据分类结果分割路面图像,但需要特制摄像头,应用成本高。陈添丁等人根据水体具有高偏振度的特性,利用摄像头和旋转偏振镜提取3幅偏振角不同的图片,通过处理得到偏振相位图,然后采用偏振信息可视化方法提取亮度信息,进行色调、饱和度、明度(HIS)空间合成,最后通过算法分割图片积水区域。虽然该方法识别率较高,但实时性难以满足需求。
随着人工智能技术的兴起,通过各种神经网络算法检测路面状态已经成为新趋势。针对上述研究中实时性与成本难以满足要求的问题,本文采用掩膜循环卷积神经网络(Mask Recycle Convolutional Neural Network,Mask R-CNN)作为基准模型,并改进基准模型的损失函数,基于迁移学习的方法使用自建的1 753张积水图像训练。训练完成后,使用单摄像头采集积水图片进行测试,对积水分布区域实时分割。
Mask R-CNN 是将典型的快速循环卷积神经网络(Faster Recycle Convolutional Neural Network,Faster RCNN)与分割算法全卷积网络(Fully Convolutional Network,FCN)相结合的新算法。本文采用Mask R-CNN模型不仅可以通过边框获取积水大致的位置信息,还可以通过分割得到积水的具体分布位置信息。图1 所示为Mask R-CNN的模型框架,主要由残差网络(Residual Network,ResNet)、特征金字塔网络(Feature Pyramid Network,FPN)、区域候选网络(Region Proposal Network,RPN)、感兴趣区域对齐(Region of Interest Align,ROI Align)和FCN 组成。首先输入图像,利用ResNet、FPN完成图像特征提取(Feature Extraction);然后采用RPN判断前景和背景,并生成候选框,通过ROI Align操作实现区域特征聚集;最后,一条分支通过全连接层(FC)完成分类回归(Class Regression)和目标检测框(Box)生成,另一分支通过FCN预测目标并生成掩膜(Mask)。
图1 Mask R-CNN模型
2.1.1 ResNet+FPN提取特征
Mask R-CNN 采用ResNet 卷积神经网络作为主干网络,经过卷积、池化等操作提取图像特征。小目标检测对单纯卷积网络是难点,而多尺度目标检测对小目标检测表现较好,其中FPN 可以实现多尺度目标检测。FPN 利用卷积神经网络(Convolutional Neural Networks,CNN)模型高效提取图片中各种维度的特征,是一种加强主干网络卷积特征表达的方法,其通过自底向上处理得到特征图,同时增强底层位置信息;再通过自顶而下和横向连接方式将特征图融合,生成的特征之间有关联关系,从生成的表达特征组合中可以获得深层和浅层特征。Mask R-CNN 将ResNet 与FPN 结合作为特征提取模块,可以很好地获得图像多尺度特征。
2.1.2 RPN和ROI Align获取候选框
RPN 是一支包含分类和回归的多任务网络。RPN采用滑动窗口在FPN生成的特征图上滑动,对特征图上的点进行分类,特征图上每一点对应原始图片上某一区域,根据锚框(Anchor)机制将特征图点映射到原始图片,并产生不同的候选感兴趣区域(Region of Interest,ROI)。RPN 对候选ROI 进行前景背景分类和边框回归(Bounding-Box regression,BB),如图2 所示为积水的真值(Ground-Truth,GT)框和区域候选(Region Proposal,RP)框,那么即便候选框被分类器识别为积水,由于候选框和真值框的交并比(Intersection-Over-Union,IOU)并不大,所以最后的目标检测精度也不高。采取BB方法可以对区域候选框进行微调,使得候选框更接近真值框。
图2 路面积水的真值框与区域候选框
同时,RPN为特征映射的每个点设置预定感兴趣区域的数量,过滤部分候选ROI Align 操作,将剩余的ROI的原图与特征图的像素点对应,然后将特征图与固定特征对应。Mask R-CNN 采用ROI Align 中的双线性插值获得坐标为浮点数的像素点上的图像数值再进行池化,实现连续的特征聚集。ROI Align 可以很好地解决Faster R-CNN 中感兴趣区域池化(Region of Interest Pooling,ROI Pooling)在提取积水区域过程中2 次量化操作(取整过程)产生候选区和回归产生区域不匹配问题,使定位更精确,减少对掩膜操作的影响。
2.2.1 模型的损失函数
Mask R-CNN 包含了目标检测、目标分类和目标分割3个任务,因此网络定义一个多任务的损失函数:
式中,、、分别为分类误差、定位误差和积水分割损失。
实际上,Mask R-CNN 共包含5 个损失函数。其中包括RPN和Mask R-CNN网络的分类损失:
包括RPN和Mask R-CNN网络的回归损失:
只含有Mask R-CNN网络的掩膜损失。掩膜分支输出是对每个类别独立地预测一个二值掩膜,对于预测的二值掩膜输出,对每个像素点应用S形(Sigmoid)函数,将整个掩膜损失定义为平均二值交叉熵损失。计算公式为:
2.2.2 损失函数的改进
交叉熵损失函数过度依赖于区域信息的分割,忽略了边界的分割。为了使Mask R-CNN 网络在分割过程中对分割边界更加敏感,从而获得精确的分割结果,在损失函数中添加了一种新的边界加权损失函数。
如图3 所示为拉普拉斯(Laplacian)算子边缘检测示意,首先标出原图积水区域后,将积水区域二值化,再利用拉普拉斯算子进行边缘检测,得到积水区域边缘。
图3 拉普拉斯算子边缘检测示意
在训练过程中,边界加权损失函数利用拉普拉斯算子分别对标记好的积水真值二值化图像和训练过程中预测区域二值化图像进行边缘检测,捕捉边界信息,将检测后的结果计算差值得到距离损失,预测的积水区域越接近实际的积水区域,则距离损失越小,反之越大。随着训练过程中权重不断更新,不断减小,使得预测分割结果与标记好的积水区域相吻合,从而加强边界损失的权重,使分割结果更为精确。拉普拉斯算子及损失定义为:
改进后的Mask R-CNN损失函数为:
3.1.1 测试数据
本文测试使用的样本数据是通过普通手机相机采集制作的1 753 张像素为640×640、24 位红绿蓝(Red-Green-Blue,RGB)三原色路面积水图像,保存格式为JPG。路面积水图像主要包括弱光、强光、有雨3种情况,样本分别如图4 所示。其中的1 584 张图片作为训练集和验证集,169 张图片作为测试数据。采用LabelMe 工具对样本图像中的积水区域进行标记,制作像素为640×640、深度为8 位、格式为PNG 的图像。此外,采用微软常见环境对象2014(Microsoft Common Objects in Context,CoCo2014)数据集训 练Mask R-CNN模型的权重作为初始权重。
图4 强光、弱光及雨中样本示例
3.1.2 训练和测试
对基于迁移学习的改进Mask R-CNN 模型在深度学习TensorFlow 框架下进行训练。使用的GPU 配置为NVIDIA GeForce GTX 2060,在Windows的TensorFlow框架下,模型训练了200轮(epoch),设置模型训练的初始学习率为0.001,权重调节参数设置为0.000 1,动量系数为0.9。设置区域候选网络(Region Proposal Network,PRN)产生的5 个锚点大小分别设置为32×32、64×64、128×128、256×256 和512×512。在上述训练参数下,本文分别选择改进MRCNN-Res101、MRCNN-Res101 和MRCNN-Res50 进行训练。其中改进MRCNN-Res101、MRCNN-Res101 和MRCNN-Res50 分别代表以ResNet101 为特征提取网络的改进Mask R-CNN 模型、以ResNet101为特征提取网络的Mask R-CNN模型和以ResNet50 为特征提取网络的Mask R-CNN 模型。其余对比模型U型神经网络(U-Neural Network,Unet)、反卷积神经网络(Deconvolution Network,Deconvnet)以及双注意力神经网络(Dual Attention Network,Danet)模型在深度学习Keras 框架下进行训练,所有模型均训练了200轮(epoch)。
3.1.3 对比分割网络模型
本文将改进Mask R-CNN 模型与常见的几种分割网络(原始Mask R-CNN、Unet、Deconvnet以及DAnet)进行比较。Unet、Deconvnet 和Danet 均为开源网络。其中,Unet是一个具有23个卷积层的网络,适用于小规模的数据集训练,目前常用于医学图像分割,如肝脏、乳腺等。Deconvnet 是基于牛津大学视觉几何组网络(Oxford Visual Geometry Group 16,VGG16)网络中卷积部分进行改进的网络,由反卷积层和反池化层组成,通过连续的反池化、反卷积和线性修正单元(Rectified Linear Units,ReLu)实现了像素级的语义分割。DAnet在传统FCN上附加了2种类型的注意力模块,学习空间与通道维度特征,可以捕捉空间特征的相互依赖性,目前常用于场景分割。
3.1.4 评价指标
在图像分割中,常用和雅卡尔(Jaccard)系数作为评价指标。
是查准率(Precision)与查全率(Recall)的加权调和平均值,用于综合评价模型分类效果。其中,查准率是正确预测的正样本在预测结果为正样本(包含正确预测的正样本和错误预测的负样本)中所占的百分比,查全率是指正确预测的正样本在所有正样本(包含正确预测的正样本和错误预测的正样本)中所占的百分比。各指标计算公式为:
雅卡尔系数表征模型预测出的样本集与真实样本集的相似程度,用于评价图片分割精度:
式中,为查准率;为查全率;为预测正确的正样本数量;为预测正确的负样本数量;为预测错误的负样本数量;为预测错误的正样本数量。
本文采用和作为网络的评价指标,二者取值范围均为0~1,数值越大,分类或分割效果越好。
3.2.1 改进MRCNN-Res101和MRCNN-Res101分割效果
用改进MRCNN-Res101和MRCNN-Res101对积水进行分割,结果如图5 所示。从图5 中可以看出,MRCNN-Res101 错误地将图片右上角非积水部分识别为积水部分,改进MRCNN-Res101 的分割边缘与积水的实际边缘更相符。
图5 原图、MRCNN-Res101和改进MRCNN-Res101分割对比
3.2.2 改进MRCNN-Res101模型的分割速度
训练完成后,调用训练生成的权重对积水图片进行分割,分别选取像素为512×512和320×320的积水图片作为输入,在Ubuntu 16.04 环境下利用NVIDIA GTX 2060 GPU 加速计算,得到分割时间。当模型的输入图片尺寸为640×640时,分割速度为229 ms/帧,当模型的输入图片尺寸为512×512时,分割速度为161 ms/帧,当输入图片尺寸为320×320时,分割速度为109 ms/帧。
3.2.3 不同模型在测试数据上的预测和分割
本文采用169张路面积水图片作为测试数据,分别在完成训练的Unet、Deconvnet、DAnet、MRCNN-Res50、MRCNN-Res101和改进MRCNN-Res101模型下进行测试,得到测试数据的和雅卡尔系数如表1所示。Unet和MRCNN-Res50 模型在测试集上的和雅卡尔系数在5个模型中较小,预测和分割效果较差。Deconvnet和DAnet 模型的预测和分割效果相近,效果优于Unet 和MRCNN-Res50。所有测试模型中,改进MRCNNRes101的预测效率和分割精度均最优,和最大分别为0.892 3 和0.814 6,相比于MRCNN-Res101 模型提高了1.5%和1.92%。说明改进MRCNN-Res101 模型对积水识别有很好的鲁棒性和泛化能力。
表1 不同模型在测试数据上测试结果评价指标
3.2.4 强光、弱光和雨中状态下的测试分割效果
本文对各模型完成预测和分割的测试图进行分析。在测试图片中,每种积水图片的拍摄情况主要有弱光、强光和雨中。3种拍摄情况下各模型的和雅卡尔系数如图6所示。从图6可以看出,图片的拍摄情况对于分割效果有一定影响,主要表现在雨中拍摄图片的分割效果比强光和弱光状态下差。主要因素在于雨中的拍摄的积水形状大多数呈现不规则现象,同时,积水区域与潮湿区域间存在较薄的水膜,算法难以辨识该水膜区域。
图6 单个积水区域与多个积水区测试图的平均F1与J
本文在测试图中选取3张单个积水区域在弱光、强光以及雨中的拍摄图片作为多模型对比测试图片。
如图7 所示为测试图片的真实积水区域和各模型预测分割结果,从图7 中可以看出,Unet 和MRCNNRes50 模型对单个积水区域所有情况下测试图都出现较大面积的错误预测和分割现象。Deconvnet模型对弱光和雨中测试图的分割表现较好,对强光下的积水区域出现少分割的现象。DAnet 模型对弱光和雨中的分割图片分别出现部分区域错误预测和部分区域没有被预测的现象。MRCNN-Res101 出现分割边缘不吻合的现象,改进MRCNN-Res101模型对3种情况的测试图的分割区域与测试图的真实积水区域基本吻合。
图7 单个积水区域测试图在各模型下的分割结果
图8所示为弱光、强光以及雨中拍摄的多个积水区域的测试图在各模型下的分割效果。其中,3张测试图在MRCNN-Res50模型的分割效果最差,强光下的测试图没有检测到积水,所以没有进行操作;雨中分割图中的积水区域被错误检测和分割。Unet 模型基本能够预测和分割图片中的多个积水区域,但也存在部分非积水区域被错误分割。MRCNN-Res101、Deconvnet和DAnet模型能够完成对强光和弱光下的积水区域分割,但是积水区域间的间隙没有被正确识别,对雨中测试图中积水区域表现出连续不规则现象,部分区域没有被识别和分割,不能较好地分割积水区。改进MRCNN-Res101 模型在弱光情况下不能较好地分割积水边缘,但是在强光和雨中能够很好地分割积水边缘。
图8 多个积水区域测试图在各模型下的分割结果
从总体上看,改进MRCNN-Res101 模型对图中积水区域的预测准确性和分割精度都比较高,能够满足对路面积水分割的要求。同时,与其他神经网络模型相比,改进MRCNN-Res101 模型的掩膜分支可以通过掩膜输出积水的位置。但是改进MRCNN-Res101模型对积水分割受到边框的限制,无法完成对检测框外的积水的分割。MRCNN-Res101、Deconvnet和DAnet模型能够完成对积水的分割,但效果比改进MRCNN-Res101 模型差,对复杂不规则的积水分割表现较差。Unet模型和MRCNN-Res50 模型对积水的识别率低,因此导致分割精度也不高,显然不适用于积水分割任务。
本文使用改进Mask R-CNN 从道路图像中分割路面的积水区域。改进MRCNN-Res101模型的预测精度指标和分割精度指标分别为0.892 3和0.814 6,表现出对积水较好的分割能力,对强光、弱光以及雨中环境下积水区域的分割效果略优于Deconvnet 和DAnet 模型,明显优于Unet 模型和MRCNN-Res50 模型,说明了改进MRCNN-Res101模型的泛化能力强。在进一步的研究中,将对图像坐标转换为空间平面坐标,得到路面积水分布位置的坐标信息,以更加真实地反映路面积水状态。