计算机视觉在道路成像和坑洞检测中的应用研究综述

2023-09-11 07:40李锐王鑫杨威朋屈焘贺帅
汽车工程师 2023年9期
关键词:坑洞视差语义

李锐 王鑫 杨威朋 屈焘 贺帅

(重庆交通大学,重庆 400074)

1 前言

道路坑洞是一种路面出现结构性崩坏的现象,一般由车辆长期通过有关区域造成[1]。道路坑洞一旦出现,且未得到及时修复,在雨水和行驶车辆的综合作用下会逐渐恶化。

道路坑洞对车辆状况和交通安全也构成巨大威胁。现阶段,道路坑洞的检测以人工检测为主。然而,这种方式耗费大量的人力和时间成本,评估的结果高度依赖检查员的经验和主观判断。这促使相关研究人员致力于开发一套能够自动完成道路坑洞检测并客观评估道路状况的系统[2]。与此同时,自动驾驶技术的发展为道路坑洞的自动检测提供了便利条件。很多车辆的先进驾驶辅助系统(Advanced Driving Assistance System,ADAS)中集成了道路坑洞检测功能。例如,捷豹路虎2015年宣布启动驾驶辅助技术研究项目,以检测、预测和共享道路坑洞数据。揽胜极光试验车可以识别坑洞和破损井盖的位置和严重程度,并在几毫秒内调整汽车悬架,带来更舒适的乘坐体验[3]。

综上,自计算机视觉技术诞生以来,大量视觉技术应用于各种道路数据实现坑洞检测。本文对该领域国内外相关前沿研究进行综述,以期为后续研究提供参考。

2 道路成像

道路成像是利用计算机视觉进行道路坑洞检测的前提,通常采用摄像头和各类深度传感器获取道路数据,各类成像技术的特点如表1所示。

表1 道路成像技术

2.1 2D成像

最初,研究人员使用摄像头的二维(Two-Dimensional,2D)成像技术完成道路数据的采集,常见的车载摄像传感器如图1所示。利用摄像头进行道路数据采集具有明显的成本优势,然而,平面图像无法反映路面的几何结构[4]。此外,图像处理、图像分割及目标检测算法等对灰度或彩色道路图像执行相应任务时对各种环境因素高度敏感,尤其是光照条件[5]。

图1 车载摄像传感器

2.2 3D成像

研究人员采用三维(Three-Dimensional,3D)成像技术解决2D 成像无法获取道路几何结构且成像质量易受环境因素影响的问题。常使用激光扫描仪、微软Kinect传感器和立体相机等3D 道路数据采集设备,如图2所示。

激光扫描仪利用三角测量原理获得距离信息,其光源发射装置与接收装置的距离已知,通过计算激光束入射光与反射光的角度即可完成精确的点测量[6]。但是,这类高昂的激光扫描设备需要安装在特定车辆上才能完成3D 道路数据的采集。这种数据采集方式由于设备及其维护成本高而未广泛使用。

微软Kinect 传感器配备了RGB 相机、红外相机、加速计、倾斜马达等装置[7]。使用微软Kinect 传感器可以获得道路可见光图像、红外图像以及重建的3D道路数据。这种传感器使用方便且成本不高,但在阳光直射条件下受红外饱和的影响,重建的3D路面精度不高[8]。

获取3D 道路数据还可以通过多视图几何的方法[9],如图3a所示,单个可移动摄像机可捕获不同视角的多个2D 道路图像,然后通过对多个2D 图像进行稀疏或密集的对应匹配重建三维几何。文献[10]提出了基于单目稀疏图像匹配的三维重建方法,使用运动结构算法获得相机姿态和稀疏3D道路点云,并使用束调整算法进行细化。

与人的双目视觉原理相同,立体相机的2 个摄像单元同时对道路图像进行拍摄,然后通过查找捕获的道路图像的视觉特征之间的视差获取深度信息[11],进而获取密集的3D 道路点云数据,称为视差估计或立体匹配。文献[12]采用透视变换将目标图像转换为对应的参考视图,实现了立体匹配速度和视差精度的权衡,重建的三维几何模型的精度在3 mm 以内,如图3b 所示。利用立体相机进行3D 道路成像比激光扫描和微软Kinect 成本更低且更可靠。随着深度学习算法的不断发展,结合深度卷积神经网络的视差估计已经显示出比利用传统方法更好的视差估计效果。

3 道路坑洞检测算法

基于计算机视觉的道路坑洞检测算法主要分为4 类:基于经典2D 图像处理的算法直接处理(增强、压缩、变换、分割)道路图像;基于3D道路点云建模和分割的算法将平面或二次曲面等特定的几何模型匹配到观测到的点云,通过比较拟合获得的特定几何曲面与观测到的点云的差异分割道路点云;基于深度学习的方法可以采用图像分类、目标检测或语义分割3 类经典深度算法实现道路坑洞检测;混合方法则结合上述的2 类或2 类以上算法,以提高检测性能。

3.1 经典2D图像处理

基于经典2D 图像处理的坑洞检测方法通常包含图像预处理、图像分割、损伤区域提取、检测结果后处理[2]4个流程。

图像预处理采用中值滤波、高斯滤波、双边滤波和形态学滤波等过滤噪声信息突出道路损伤区域。文献[13]采用自适应直方图均衡算法在二值化图像前调整了图像明亮度。文献[14]使用了多种滤波算子增强RGB 道路图像中的纹理特征。文献[15]借助2D空间视觉信息检测坑洞,通过视差投影变换视差图,具体引入黄金分割搜索和动态规划算法最小化全局能量函数来估计道路视差图像。视差变换使得坑洞区域高度可区分。

对预处理后的道路图像进行坑洞区域和完整路面分割的主流方法采用如大津法(OTSU)的阈值、三角形阈值和自适应阈值等基于直方图的阈值方法分割彩色/灰度/视差变换的道路图像。文献[8]利用OTSU 的阈值方法分割变换后的视差图像进行道路坑洞检测,且文献[12],使用简单的线性迭代聚类算法将变换后的差异分组为超像素集合,然后通过找到超像素来检测道路坑洞,实现了更高效、准确的坑洞检测。

根据几何和纹理假设的损伤区域提取与检测结果后处理过程联合进行。文献[14]建立了潜在道路坑洞的椭圆轮廓模型,并对比椭圆内及周围区域的纹理特征,一旦椭圆内的纹理粗糙度高于周围区域纹理粗糙度,则判定该椭圆为道路坑洞。文献[16]通过分析道路坑洞的多种几何特征,如大小、紧凑性、椭圆度和凸包等,提取潜在道路坑洞的轮廓,然后使用有序直方图相交方法判定被提取区域是否含有坑洞,且为进一步改善道路坑洞检测效果,对提取到的潜在坑洞受损区域进行了后处理。

在道路坑洞检测方面,基于经典2D图像处理的方法已有近20年的研究历史。然而,这些方法建立在早期技术基础上,易受到环境因素如光照、天气等的严重影响,3D技术和深度学习算法极大地克服了这些不足。

3.2 3D点云建模与分割

基于3D 点云建模与分割的坑洞检测整体流程可以分为2 个阶段:首先,将观测到的3D 道路点云数据进行插值,以得到一种显式的几何模型,该模型可以是平面或二次曲面;然后,将观测到的点云与建立的模型进行对比,再从观察到的3D道路点云中分离出坑洞区域。

文献[17]使用最小二乘拟合方法将观察到的3D点云内插到特定平面上。通过在拟合曲面下搜索3D 点,大致检测出潜在的道路坑洞,接着采用K 均值聚类算法和区域生长算法对检测结果进行进一步细化。文献[18]使用高速3D 横向扫描技术检测路面的凸包和坑洞,首先通过滤波算子、边缘检测算子以及样条插值等处理方法采集激光条纹数据得到亚像素线,接着,利用激光条纹曲线生成路面的横切面,并用线段来近似拟合,通过分析分段端点(即可区分路面凸包、坑洞的特征点)的二阶导数。文献[19]设计了一种基于激光雷达的道路坑洞检测系统,通过对3D 道路点与最佳拟合的3D 路面之间的距离进行比较,将这些道路点分为损坏和未损坏2类。

然而,实际上,路面往往不是完全平坦的,这导致基于3D 点云建模和分割的方法有时无法使用。此外,如果仅需对坑洞进行简单识别和定位,而不需要获取其大小、深度等几何细节,则不必使用激光设备提取3D点云。

3.3 深度学习

随着深度学习的发展,深度卷积神经网络(Deep Convolution Neural Network,DCNN)已成为道路坑洞检测的主流技术。DCNN 通常通过反向传播进行训练,不需要人为设置参数分割道路图像或点云来进行坑洞检测。这类基于数据驱动的坑洞检测方法通常使用3种技术[6],即图像分类网络、目标检测网络和语义分割网络:图像分类网络常用于将道路图像分类为坑洞或非坑洞;目标检测网络可在实例级识别道路坑洞;语义分割网络则用于对道路图像进行像素级别的分割,以实现道路坑洞的检测。

3.3.1 基于图像分类的方法

随着计算机算力的提升,DCNN 已广泛应用于道路坑洞检测,DCNN 能够学习更抽象的视觉特征,并显著改善了道路坑洞检测性能。文献[20]提出了包含预池化层的全连接DCNN,预池化层的设计过滤了大量干扰坑洞信息的背景噪声,以显著增强分类网络的性能,且所提出的DCNN 能够应对光照变化,在不同照明条件下有效检测道路坑洞。

图像分类方法仅能简单区分道路图像中是否存在坑洞,并不能给出坑洞所处的位置信息和几何信息。然而,在很多道路检测场景下,坑洞的位置和几何信息更为重要。

3.3.2 基于目标检测的方法

利用深度学习的道路坑洞检测算法主要为2类,即区域卷积神经网络(Region-based Convolutional Neural Networks,R-CNN)系列的两阶段算法[21]和YOLO(You Only Look Once)系列的单阶段算法[22],如表2所示。

表2 两阶段与单阶段算法对比

2014 年,R-CNN 用于目标检测。随着深度学习的不断发展,基于DCNN 的道路图像目标检测技术迭出不穷。更快速区域卷积神经网络(Faster Regions with Convolutional Neural Network,Faster-RCNN)是R-CNN 的改进算法,主要使用区域生成网络(Region Proposal Networks,RPN)替代R-CNN 的选择性搜索(Selective Search)算法,成为了第一个真正意义上的端到端网络,具有比R-CNN 更高的检测速度与精度,其检测流程如图4 所示。

图4 Faster-RCNN 算法流程

文献[23]在包含印度、日本、捷克共和国公路图像的数据集上训练了一个专门的图像分类器,以区分图像属于哪个国家,接着利用Faster-RCNN 检测图像中的坑洞和裂缝,最后,将模型部署到移动设备,完成了对特定道路状况的自动勘测。文献[24]训练改进的分类Inception-v1 网络实现了强光和弱光道路场景坑洞的高准确率分类,在此基础上与Faster-RCNN融合,能够准确、快速地检测道路坑洞。

YOLO[25]等主流单阶段检测方法将检测任务处理成回归任务,使用端到端的特征提取网络来提取目标特征,并直接用于边界框分类和回归,其处理流程如图5所示。单阶段算法端到端同时完成分类和定位任务,因而比两阶段方法效率更高,近年来,其精度不低于两阶段方法,在实时性要求高的检测场景中成为首选。

图5 YOLO算法流程

文献[26]基于YOLOv2 设计了2 个变种模型:模型1在道路坑洞检测上实现了大小和形状上的更强鲁棒性;模型2适当增加复杂度,使模型具有了更好的路面坑洞检测性能。文献[27]提出采用YOLOv3 Tiny进行路面坑洞检测,实现了较高的检测准确度,同时网络相对轻量化。文献[28]针对YOLOv3 检测模型在有积水、阴影等复杂环境下路面坑洼的检测能力有限的问题,改进特征提取网络,优化激活函数,并引入了多种数据增强训练策略,得到的YOLOv3-pt 模型获得了13.99%的精度提高,使模型在复杂环境下的检测能力显著提升。文献[29]将有效通道注意力网络(Efficient Channel Attention for deep convolutional neural Networks,ECANet)的注意力模块添加到YOLOv5网络结构的加强特征提取网络中,提升网络关注有效特征信息的能力,使用距离交并比非极大值抑制(Distance-IoU Non-Maximum Suppression,DIoU-NMS)算法对预测框筛选方式进行改进。所提出的基于YOLOv5的道路路面伤病损害检测方法可以提高包括通过智能手机拍摄得到的拥有复杂背景坑洞在内的不同类别病害的检测精度。文献[30]以裂缝、坑洞和凹陷作为路面质量评估的相关类别,以移动端部署检测的良好实时性和优越的检测性能为目标,轻量型优化和改进YOLOX,改进的算法在路面破损检测中准确度和召回率均有所提升,同时将模型迁移到实际场景移动端的实时检测,在检测速度和精度上实现了满意效果。

单阶段和两阶段目标检测方法均能在实例级检测道路坑洞。两阶段目标检测算法在精度上较单阶段算法高,但实时性相对不足。单阶段算法端到端一次完成检测,检测速度大幅提升,改进后的YOLO 系列算法在精度和实时性上得到显著改善,能够满足大多数自动驾驶场景的目标检测任务要求。

3.3.3 基于语义分割的方法

针对语义分割算法的最新技术,可以将其分为单模态和数据融合2类。单模态算法应用于彩色图像的分割,采用编码-解码(Encoder-Decoder)结构实现,而数据融合算法学习2 种不同类型视觉传感器数据中的视觉特征,并将这些特征融合,以提高对环境语义的理解能力。

在基于分割算法的路面坑洞检测研究中,文献[31]提出了一种基于全卷积网络(Fully Convolutional Networks,FCN)的检测方法。为缓解提供像素级注释的困难,采用一种半监督学习技术生成若干伪标签,并对提前训练好的FCN 进行自动微调。与监督学习相比,半监督学习降低了对大规模标签数据的依赖,并显著提高了整体的F1 得分。另外,文献[32]构建了一种基于注意力的道路坑洞检测耦合框架,该框架采用基于注意力的特征融合模块以提升图像分割的性能,同时论证了小样本学习在道路坑洞检测中的可行性。

文献[33]提出了一种使用生成对抗网络(Generative Adversarial Network,GAN)的训练集增强技术。该技术通过生成假RGB 道路图像和转换后的道路视差图像来增强分割模型的训练。试验结果表明,基于GAN 的训练集增强技术对单模态和数据融合的语义分割网络的精度均有所改善,同时提高了2 类网络训练的收敛速度。文献[34]提出了一种基于图神经网络的图注意层,以进一步改进单一模态语义分割中图像特征的表达,所提出的DeepLabv3+的性能优于其他单一模态的道路坑洞分割算法。

值得注意的是,性能优异的语义分割算法需要大规模像素级标注的数据集进行训练,然而,这种数据标注需要耗费巨大的人力成本。因此,道路坑洞的检测任务可以与其他驾驶场景理解任务协同处理,如可行驶区域和道路异常的检测。这种综合处理方法能够有效减少数据标注的工作量,为训练高性能的语义分割网络算法提供更便捷、高效的途径。

3.4 混合方法

混合路面坑洞检测方法通常结合上述的2类及以上的算法。

文献[8]介绍了一种混合检测算法,其将2D 视差图像转换算法和3D 道路点云分割算法相结合。为了使道路图像的受损区域和未受损区域高度可分辨,首先对稠密的子像素视差图进行转换,然后,利用OTSU 的阈值方法从变换得到的视差图中提取潜在的未受损区域,并通过最小二乘法拟合将提取区域中的视差建模为二次曲面,同时整合曲面法线信息到建模过程中,以消除异常点,最后,通过比较实际视差图和模型视差图完成坑洞区域的分割。

文献[35]提出了一种结合经典2D 图像处理算法和深度学习模型的混合道路裂缝和坑洞检测算法。首先,训练改进SegNet 的深度模型来分割道路图像以进行可行驶区域检测。然后,用坎尼(Canny)边缘检测器处理可行驶区域,以生成包含道路裂缝、坑洞的候选区域。最后,训练SqueezeNet以确定生成的候选区域是道路裂缝或坑洞。

文献[36]提出的混合检测算法将语义分割算法和3D 道路点云分割算法相结合。首先,使用DeepLabv3+语义分割模型生成若干像素级道路坑洞初步检测结果,然后,进一步将初步检测到的路面坑洞边缘点云划分为外边缘点和内边缘点2 类。外部边缘可以拟合局部平面和计算坑洞体积,内部边缘用于分析道路深度分布,以减少误检测的情况。

4 现有的挑战和未来趋势

在2012 年深度学习诞生前,传统的基于2D 图像处理的方法在坑洞检测中居于主导地位。然而,这些方法往往需要大量计算资源,并且检测的精度极易受到光照和天气等环境因素的影响[37]。此外,路面坑洞的轮廓多样且不规则,并不总是规律地呈现圆形或椭圆形,使传统方法中的几何假设不再适用。因此,2013 年起,研究人员开发了基于3D 点云建模与分割的方法,以增强对环境的鲁棒性、提高道路坑洞检测的精度[17]。但是,这些方法通常约束单帧3D道路点云在某特定几何面内,通常为小视场范围。尽管在改善模型建立的鲁棒性方面开展了大量研究,如引进随机采样一致性(Random Sample Consensus,RANSAC)算法优化[8],但是都以引入海量参数为代价来保证性能,这大幅提高了计算门槛,且适用场景十分有限。

在过去的5 年中,DCNN 因其自学习能力和强大的场景适应能力,被大量用于解决道路坑洞检测问题。然而,分类网络只能简单分辨道路图像中是否存在坑洞,不能给出坑洞的任何信息。目标检测网络有所改进,能够大致标记坑洞在图片中的位置。由于交通部门了解特定路段的路面状况通常需要统计路段上坑洞出现的频率及坑洞的面积、体积等几何属性,几何属性的获取算法开发结合3D道路几何重建和语义分割的混合方法是需要更多关注的方向。且最近的深度立体匹配算法已经展示出不错的性能,利用迁移学习可以轻易地构建道路的三维模型。但是,这种方法通常需要海量标注良好的标签数据来训练立体匹配,其实现较为困难。因此,针对道路三维重建的无监督立体匹配算法和自监督立体匹配算法是当前值得进一步探索的研究领域。这类算法可以有效提高路面重建的精度和效率,为道路检测领域带来更多的应用前景。此外,数据融合的语义分割算法是无人汽车环境理解技术中备受关注的话题[38]。然而,这种类型的网络通常需要复杂的计算,网络剪枝和知识蒸馏是降低计算量的可行方法。在实际试验中,还可以利用经过训练的图像分类网络进行关键帧的提取,从而显著减少语义分割的后续计算。与此同时,深度学习本质是基于数据驱动的,数据集的规模和质量决定了训练的语义分割模型的性能。创建一个注释良好的大规模数据集是具有挑战性的任务,因此,开发用于道路坑洞检测的小样本语义分割网络也是未来的努力方向。

5 结束语

本文系统综述了目前经典的2D、3D 成像技术,在此基础上调研了基于成像技术的视觉算法在道路坑洞检测方面的研究进展。单独使用传统2D 图像处理技术进行处理存在缺少道路几何信息、检测效果易受环境干扰的问题。单独使用3D 点云建模与分割的方法则受到建模视场小、模型鲁棒性难以提升的制约。因此,本文着重讨论了性能更好的基于深度学习的方法。考虑到交通部门更关注坑洞的大小、体积等几何属性,未来的研究趋势将是立体匹配的路面3D 重建结合多种数据融合的语义分割的混合方法。然而,立体匹配和语义分割算法的优异性能需要通过大规模注释良好的数据集进行训练,这需要耗费大量人力,故路面三维的无监督或自监督立体匹配算法以及用于道路图像语义分割的少样本学习是需要更多关注的研究方向。

猜你喜欢
坑洞视差语义
基于自适应窗的立体相机视差图优化方法研究
中国女排:一支超越世代的队伍
语言与语义
落入坑洞的猎人
落入坑洞的猎人
基于梯度域引导滤波的视差精炼迭代算法
基于分割树的视差图修复算法研究
不幸的猎人
“上”与“下”语义的不对称性及其认知阐释
立体视差对瞳孔直径影响的研究