领域最全 | 计算机视觉算法在路面坑洼检测中的应用综述(基于2D图像/3D LiDAR/深度学习)(上)

简介: 本文首先介绍了用于2D和3D道路数据采集的传感系统,包括摄像机、激光扫描仪和微软Kinect。随后,对 SoTA 计算机视觉算法进行了全面深入的综述,包括: (1)经典的2D图像处理,(2)3D点云建模与分割,(3)机器/深度学习。本文还讨论了基于计算机视觉的路面坑洼检测方法目前面临的挑战和未来的发展趋势: 经典的基于2D图像处理和基于3D点云建模和分割的方法已经成为历史; 卷积神经网络(CNN)已经展示了引人注目的路面坑洼检测结果,并有望在未来的进展中打破瓶颈的自/无监督学习多模态语义分割。作者相信本研究可为下一代道路状况评估系统的发展提供实用的指导。

摘要



计算机视觉算法在3D道路成像和路面坑洼检测中的应用已有二十多年的历史。尽管如此,目前还缺乏有关最先进(SoTA)的计算机视觉技术的系统调研文章,尤其是为解决这些问题而开发的深度学习模型。本文首先介绍了用于2D和3D道路数据采集的传感系统,包括摄像机、激光扫描仪和微软Kinect。随后,对 SoTA 计算机视觉算法进行了全面深入的综述,包括: (1)经典的2D图像处理,(2)3D点云建模与分割,(3)机器/深度学习。本文还讨论了基于计算机视觉的路面坑洼检测方法目前面临的挑战和未来的发展趋势: 经典的基于2D图像处理和基于3D点云建模和分割的方法已经成为历史; 卷积神经网络(CNN)已经展示了引人注目的路面坑洼检测结果,并有望在未来的进展中打破瓶颈的自/无监督学习多模态语义分割。作者相信本研究可为下一代道路状况评估系统的发展提供实用的指导。


介绍



坑洼是一种相当大的结构性道路损坏[1]。它是由水和路上的行驶的车辆综合作用形成的[2]。水渗透了地面,路面下的土壤被侵蚀,地面上的车辆经过后,破坏了路面,清除了部分路面。


道路坑洼不仅是一种不便,它们也是对车辆状况和交通安全的重大威胁[3]。例如,据芝加哥太阳报报告,司机在2018年头两个月就道路坑洼提出了11,706宗投诉[4]。根据坑洼事实报告,在美国33,000起交通事故中,大约三分之一的死亡事故与道路状况不佳有关。因此,经常检查道路和修复坑洼是必要和关键的[5]。目前,人工目视检查仍然是道路坑洼检测的主要形式[6]。结构工程师和认证检查员定期检查路面坑洼并报告坑洼位置。这个过程是低效、昂贵和危险的。例如,新西兰的市议会在2017年花费数百万美元检测和修复路面坑洼(仅基督城就花费了52.5万美元)[7]。此外,据报道,在美国圣地亚哥,每年有超过30K 的路面坑洼被修复。建议圣地亚哥居民报告道路坑洼,以减轻当地道路维护部门的检测负担[8]。此外,检查员和工程师手工检测路面坑洼的结果总是主观的,因为决定完全取决于个人的经验和判断[9]。出于这些原因,研究人员一直致力于开发能够有效、准确和客观地重建、识别和定位路面坑洼的自动化道路状况评估系统[10]。具体而言,近年来,路面坑洼检测已经不仅仅是一个基础设施维护问题,因为它也是许多汽车公司嵌入到 L3/L4自动驾驶汽车中的先进驾驶辅助系统(ADAS)的功能,并且新兴的自动驾驶系统对道路养护标准提出了更高的要求[11]。捷豹路虎使用数据驱动技术进行实验,通知驾驶员路面坑洼的位置,并发出警告来减慢汽车的速度[12] ,而 ClearMotion 建立了一个智能悬挂系统,使用硬件和软件的组合来预测,吸收和抵消由路面坑洼引起的冲击和振动[13]。


自世纪之交以来,计算机视觉技术已被广泛应用于获取3D道路数据和/或检测道路坑洼。然而,这一研究课题的最新研究成果很少涉及最前沿的计算机视觉技术,如3D点云建模与分割、机器/深度学习等。本文对目前最先进(SoTA)的道路成像系统和基于计算机视觉的路面坑洼检测算法进行了全面和深入的综述。现有系统和算法的概述如下图所示。

640.png


激光扫描仪、微软 Kinect 传感器和相机是道路数据采集中最常用的三种传感器。现有的路面坑洼检测方法分为四类:

  1. 经典的基于2D图像处理的[14]
  2. 基于3D点云建模和分割的[15]
  3. 基于机器/深度学习的[16]
  4. 混合[3]。


本文系统地回顾了现有的技术和公开数据集 ,并讨论了现有的挑战及其可能的解决方案。相信本文对下一代3D道路成像和路面坑洼检测算法的开发具有一定的指导意义。


道路成像系统



道路成像(或道路数据采集)通常是智能道路检查的第一步[10]。摄像机和距离传感器已被广泛用于获取可视化道路数据。早在1991年就开始使用2D成像技术来完成这项任务[20]。然而,道路表面的几何结构不能从不相关的2D道路图像(没有重叠区域)来说明[21]。此外,在灰度或彩色道路图像上执行的图像分割算法可能会受到各种环境因素的严重影响,最显著的是光照条件差[22]。许多研究人员[5,21,23,24]因此求助于3D成像技术,这被用来克服这两个缺点。最常用于3D道路数据采集的传感器包括激光扫描仪、微软 Kinect 传感器和立体摄像机,如下图所示。

640.png


激光扫描 是一种行之有效的精确3D道路数据采集成像技术[1]。这项技术是在三角测量的基础上发展起来的[25]。传感器(接收器)位于距离激光照明源已知距离的位置[26]。因此,因此,可以通过计算激光反射角来进行精确的点测量。然而,激光扫描仪必须安装在特定的道路检查车辆上[27]进行3D道路数据采集。由于设备采购费用高和长期维护费用高,这种车辆并没有得到广泛使用。


微软 Kinect 传感器 最初是为 Xbox-360运动感应游戏设计的,通常配备有 RGB 摄像头、红外传感器/摄像头、红外发射器、麦克风、加速器和用于运动跟踪的倾斜马达。据报道,已经有三次尝试[22,27,28]使用微软 Kinect 传感器进行3D道路数据采集。虽然这些传感器具有成本效益和使用方便,但它们在阳光直射下会受到红外饱和度的严重影响,而且3D路面重建的精度不能令人满意[3]。


3D道路数据也可以使用从不同视图捕获的多个2D道路图像获得,例如使用单个可移动摄像机[29]或同步摄像机阵列[23] ,如下图所示。

640.png


这种技术背后的理论通常被称为多视图几何[30]。稀疏或密集对应匹配是多视图3D几何重建的基本任务。一种典型的单目稀疏路面3D重建方法,如[31]所示,其中使用来自运动的结构(SfM)[32]算法获得摄像机的姿态和稀疏的3D路面点云,并使用光束法平差(BA)[33]算法进行细化。


布里斯托尔视觉信息实验室的研究人员[21,34,35]率先使用多目摄像机进行密集的3D路点云采集。在这种情况下,深度信息是通过找到两个同步捕获的道路图像之间视觉特征对应对的水平位置差异来获得的[36]。这个过程通常被称为视差估计或立体匹配,它模仿人类的双眼视觉。提出了一种基于种子和生长的视差估计算法来有效地获取3D道路数据。[35]引入了一种更自适应的视差搜索范围传播策略,以提高估计道路差异的准确性。[5,21]利用透视变换算法将目标图像转换为参考视图,极大地降低了立体匹配速度和视差精度之间的平衡。此外,[34]和[35]中存在的瓶颈问题也通过使用有效和自适应的成本量处理算法来解决。据报道,在[5]和[21],重建3D道路几何模型的精度超过3毫米。与激光扫描仪和微软 Kinect 传感器相比,立体摄像机更便宜,更可靠的3D道路成像。随着深度学习技术的不断发展,卷积神经网络(CNN)比传统的显式规划方法具有更好的视差估计效果。


道路坑洼检测方法



基于经典2D图像处理的算法(例如,增强、压缩、变换、分割)显式的处理道路RGB或视差/深度图像[9]。基于机器/深度学习的算法使用图像分类、对目标识别或语义分割算法解决道路坑洼检测问题,可使用SoTA CNNs[44]解决。3D道路点云建模和基于分割的算法将特定的几何模型(通常是平面或二次曲面)拟合到观察到的道路点云,并通过比较观察到的曲面和拟合的曲面来分割道路点云[3]。混合方法结合了上述两种或多种算法,以提高整体道路坑洼检测性能。2011至2021期间开发的最具代表性的道路坑洼检测算法(从基于经典2D图像处理到基于深度学习)如下图所示。

640.png


经典的2D图像处理


基于经典2D图像处理的道路坑洼检测是一个研究的很好的课题。这种方法通常有四个阶段的流程:(1)图像预处理,(2)图像分割,(3)损伤区域提取,和(4)检测结果后处理[9]。下表总结了代表性的现有技术。

640.png


图像预处理算法,如中值滤波[42]、高斯滤波[45]、双边滤波[46]和形态学滤波[47],首先用于减少冗余信息并突出受损道路区域。例如,自适应直方图均衡算法是在[45]中用于在二值化道路图像之前调整图像亮度,并且在[14]中使用 Leung-Malik 滤波器[48]和 Schmid 滤波器[49]来强调彩色道路图像中的结构纹理特征。最近,许多研究人员[3,5,6,28,50]利用2D空间视觉信息(通常是道路深度/视差图像)来检测坑洼。例如,[50]和[3]使用立体设备倾斜角度和道路视差投影模型转换道路视差图像,其通过使用黄金分割搜索[51]和动态规划[52]算法使全局能量函数最小化来估计。视差变换使损坏的道路区域高度可区分,如下图所示。


640.png


[6]得到了上述能量最小化问题的闭式解,从而避免了迭代优化过程中的繁琐计算。由于深度/视差图像可以描述道路表面的几何结构,所以它们对于检测路面坑洼更有用[6]。

然后将预处理后的道路图像分割成前景(受损道路区域)和背景(未受损道路区域)。大多数先前的技术[46,40,37]采用基于直方图的阈值分割方法,如 Otsu 阈值分割[53] ,三角形阈值分割[14]和自适应阈值分割[46,40] ,以分割彩色/灰度道路图像。正如在[37]中所讨论的,Otsu 的阈值分割方法最小化了类内方差,并且在分割道路图像方面比三角形阈值分割方法获得了更好的性能。采用自适应阈值分割方法对道路图像进行分割,其性能优于常用的三角形阈值分割方法。最近的工作[3,5,6,50]表明,这种图像分割算法通常能更有效和准确地处理转换后的视差图像,描绘道路场景的准鸟瞰图。例如,[3]利用 Otsu 的阈值分割[53]方法来分割转换后的差异图像用于道路坑洼检测,并且在[5]中,使用简单的线性迭代聚类(SLIC)算法[54]将转换后的差异分组成一组超像素。然后通过寻找超像素来检测路面坑洼,超像素的值低于自适应确定的阈值。第三和第四阶段通常以联合方式进行。根据几何学和纹理学假设,首先从分割的前景中提取损坏的路面区域(坑洼),这俩假设包括:


  1. 坑洼通常是凹洞;
  2. 坑洼纹理通常比周围的路面更加粗糙和颗粒化;
  3. 由于阴影,坑洼 ROI 像素的强度通常比周围路面的强度低。


例如,在[14]中,潜在坑洼的轮廓被建模为一个椭圆。然后将椭圆内的图像纹理与未损坏的道路区域纹理进行比较。如果椭圆的 ROI 比周围区域的纹理更粗糙和颗粒化,椭圆被识别为路面坑洼。在[38]中,通过分析各种几何特征,如大小、紧凑度、椭圆度和凸壳,提取潜在坑洼的轮廓。然后采用有序直方图交会法确定提取的区域是否包含路面坑洼。最后,对提取出的受损路段进行后处理,进一步提高路面坑洼检测结果。这个过程通常类似于第一阶段。经典的基于2D图像处理的路面坑洼检测方法已经研究了近二十年。这种类型的算法已经被[9]系统地研究过了,作者参考读者[9]以获得更多的细节。然而,这些方法是在早期技术的基础上发展起来的,可能会受到各种环境因素的严重影响。幸运的是,现代3D计算机视觉和机器学习算法已经大大克服了这些缺点。


原文首发微信公众号【自动驾驶之心】:一个专注自动驾驶与AI的社区(https://mp.weixin.qq.com/s/NK-0tfm_5KxmOfFHpK5mBA

相关文章
|
1天前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习在图像识别中的应用与挑战探索机器学习中的自然语言处理技术
【4月更文挑战第30天】 随着人工智能技术的飞速发展,深度学习已经成为计算机视觉领域的核心动力。本文将探讨深度学习在图像识别任务中的关键技术、应用实例以及面临的主要挑战。我们将重点讨论卷积神经网络(CNN)的架构优化、数据增强技术以及迁移学习的策略,并通过具体案例分析其在医疗影像、自动驾驶和面部识别等领域的应用成效。同时,我们也将指出当前模型泛化能力不足、对抗性攻击以及算力资源需求等挑战,并提出潜在的解决方向。 【4月更文挑战第30天】 在人工智能领域,自然语言处理(NLP)是赋予机器理解和响应人类语言能力的关键技术。本文将深入探讨NLP的发展历程、核心技术及其在不同领域的应用案例。我们将从
|
1天前
|
算法 数据安全/隐私保护 计算机视觉
基于DCT变换的彩色图像双重水印嵌入和提取算法matlab仿真
**算法摘要:** - 图形展示:展示灰度与彩色图像水印应用,主辅水印嵌入。 - 软件环境:MATLAB 2022a。 - 算法原理:双重水印,转换至YCbCr/YIQ,仅影响亮度;图像分割为M×N块,DCT变换后嵌入水印。 - 流程概览:两步水印嵌入,每步对应不同图示表示。 - 核心代码未提供。
|
1天前
|
机器学习/深度学习 PyTorch 算法框架/工具
【Python机器学习专栏】PyTorch在深度学习中的应用
【4月更文挑战第30天】PyTorch是流行的开源深度学习框架,基于动态计算图,易于使用且灵活。它支持张量操作、自动求导、优化器和神经网络模块,适合快速实验和模型训练。PyTorch的优势在于易用性、灵活性、社区支持和高性能(利用GPU加速)。通过Python示例展示了如何构建和训练神经网络。作为一个强大且不断发展的工具,PyTorch适用于各种深度学习任务。
|
1天前
|
机器学习/深度学习 运维 算法
【Python机器学习专栏】异常检测算法在Python中的实践
【4月更文挑战第30天】本文介绍了异常检测的重要性和在不同领域的应用,如欺诈检测和网络安全。文章概述了四种常见异常检测算法:基于统计、距离、密度和模型的方法。在Python实践中,使用scikit-learn库展示了如何实现这些算法,包括正态分布拟合、K-means聚类、局部异常因子(LOF)和孤立森林(Isolation Forest)。通过计算概率密度、距离、LOF值和数据点的平均路径长度来识别异常值。
|
1天前
|
机器学习/深度学习 算法 数据挖掘
【Python机器学习专栏】层次聚类算法的原理与应用
【4月更文挑战第30天】层次聚类是数据挖掘中的聚类技术,无需预设簇数量,能生成数据的层次结构。分为凝聚(自下而上)和分裂(自上而下)两类,常用凝聚层次聚类有最短/最长距离、群集平均和Ward方法。优点是自动确定簇数、提供层次结构,适合小到中型数据集;缺点是计算成本高、过程不可逆且对异常值敏感。在Python中可使用`scipy.cluster.hierarchy`进行实现。尽管有局限,层次聚类仍是各领域强大的分析工具。
|
1天前
|
机器学习/深度学习 人工智能 缓存
安卓应用性能优化实践探索深度学习在图像识别中的应用进展
【4月更文挑战第30天】随着智能手机的普及,移动应用已成为用户日常生活的重要组成部分。对于安卓开发者而言,确保应用流畅、高效地运行在多样化的硬件上是一大挑战。本文将探讨针对安卓平台进行应用性能优化的策略和技巧,包括内存管理、多线程处理、UI渲染效率提升以及电池使用优化,旨在帮助开发者构建更加健壮、响应迅速的安卓应用。 【4月更文挑战第30天】 随着人工智能技术的迅猛发展,深度学习已成为推动计算机视觉领域革新的核心动力。本篇文章将深入分析深度学习技术在图像识别任务中的最新应用进展,并探讨其面临的挑战与未来发展趋势。通过梳理卷积神经网络(CNN)的优化策略、转移学习的实践应用以及增强学习与生成对
|
1天前
|
机器学习/深度学习 传感器 自动驾驶
基于深度学习的图像识别在自动驾驶技术中的应用
【4月更文挑战第30天】 随着人工智能技术的飞速发展,深度学习作为其重要分支之一,在图像识别领域取得了显著成果。特别是在自动驾驶技术中,基于深度学习的图像识别系统不仅增强了车辆对环境的感知能力,而且提高了决策系统的智能水平。本文将探讨深度学习在自动驾驶图像识别中的应用机制,分析关键技术挑战,并提出未来的发展趋势。通过综合现有文献和最新研究成果,我们旨在为读者提供一个关于该技术如何塑造未来交通生态的清晰视角。
|
1天前
|
机器学习/深度学习 人工智能 算法
深度学习在图像识别中的应用与挑战移动应用开发的未来:跨平台框架与原生操作系统的融合
【4月更文挑战第30天】 随着人工智能的迅猛发展,深度学习技术已成为图像识别领域的核心竞争力。本文章将探讨深度学习在图像识别中的应用,并分析其面临的主要挑战。我们将从卷积神经网络(CNN)的基础架构出发,讨论其在图像分类、目标检测和语义分割等方面的应用案例,同时指出数据偏差、模型泛化能力以及对抗性攻击等问题对图像识别准确性的影响。通过实例分析和最新研究成果,本文旨在为读者提供一个关于深度学习在图像处理领域内应用的全面视角。
|
2天前
|
算法 TensorFlow 算法框架/工具
基于直方图的图像阈值计算和分割算法FPGA实现,包含tb测试文件和MATLAB辅助验证
这是一个关于图像处理的算法实现摘要,主要包括四部分:展示了四张算法运行的效果图;提到了使用的软件版本为VIVADO 2019.2和matlab 2022a;介绍了算法理论,即基于直方图的图像阈值分割,通过灰度直方图分布选取阈值来区分图像区域;并提供了部分Verilog代码,该代码读取图像数据,进行处理,并输出结果到"result.txt"以供MATLAB显示图像分割效果。
|
2天前
|
机器学习/深度学习 传感器 自动驾驶
探索基于深度学习的图像识别在自动驾驶技术中的应用
【4月更文挑战第29天】 在自动驾驶技术的迅猛发展中,图像识别作为其核心技术之一,正经历着从传统算法向基于深度学习方法的转变。本文深入探讨了深度学习在图像识别领域的应用及其对自动驾驶系统性能的影响。通过分析卷积神经网络(CNN)在特征提取、模式识别中的能力,以及循环神经网络(RNN)在序列数据处理上的优势,文章揭示了深度学习如何提升自动驾驶车辆对环境的感知能力。同时,考察了数据增强、迁移学习等策略在处理自动驾驶中的视觉问题上的实际效果和潜力。最后,讨论了目前技术面临的挑战及未来可能的发展方向。