领域最全 | 计算机视觉算法在路面坑洼检测中的应用综述(基于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

相关文章
|
2月前
|
存储 监控 安全
企业上网监控系统中红黑树数据结构的 Python 算法实现与应用研究
企业上网监控系统需高效处理海量数据,传统数据结构存在性能瓶颈。红黑树通过自平衡机制,确保查找、插入、删除操作的时间复杂度稳定在 O(log n),适用于网络记录存储、设备信息维护及安全事件排序等场景。本文分析红黑树的理论基础、应用场景及 Python 实现,并探讨其在企业监控系统中的实践价值,提升系统性能与稳定性。
53 1
|
3月前
|
机器学习/深度学习 运维 监控
实时异常检测实战:Flink+PAI 算法模型服务化架构设计
本文深入探讨了基于 Apache Flink 与阿里云 PAI 构建的实时异常检测系统。内容涵盖技术演进、架构设计、核心模块实现及金融、工业等多领域实战案例,解析流处理、模型服务化、状态管理等关键技术,并提供性能优化与高可用方案,助力企业打造高效智能的实时异常检测平台。
238 1
|
2月前
|
存储 监控 算法
基于跳表数据结构的企业局域网监控异常连接实时检测 C++ 算法研究
跳表(Skip List)是一种基于概率的数据结构,适用于企业局域网监控中海量连接记录的高效处理。其通过多层索引机制实现快速查找、插入和删除操作,时间复杂度为 $O(\log n)$,优于链表和平衡树。跳表在异常连接识别、黑名单管理和历史记录溯源等场景中表现出色,具备实现简单、支持范围查询等优势,是企业网络监控中动态数据管理的理想选择。
57 0
|
4月前
|
监控 算法 JavaScript
公司局域网管理视域下 Node.js 图算法的深度应用研究:拓扑结构建模与流量优化策略探析
本文探讨了图论算法在公司局域网管理中的应用,针对设备互联复杂、流量调度低效及安全监控困难等问题,提出基于图论的解决方案。通过节点与边建模局域网拓扑结构,利用DFS/BFS实现设备快速发现,Dijkstra算法优化流量路径,社区检测算法识别安全风险。结合WorkWin软件实例,展示了算法在设备管理、流量调度与安全监控中的价值,为智能化局域网管理提供了理论与实践指导。
107 3
|
4月前
|
存储 监控 算法
基于 C# 时间轮算法的控制局域网上网时间与实践应用
在数字化办公与教育环境中,局域网作为内部网络通信的核心基础设施,其精细化管理水平直接影响网络资源的合理配置与使用效能。对局域网用户上网时间的有效管控,已成为企业、教育机构等组织的重要管理需求。这一需求不仅旨在提升员工工作效率、规范学生网络使用行为,更是优化网络带宽资源分配的关键举措。时间轮算法作为一种经典的定时任务管理机制,在局域网用户上网时间管控场景中展现出显著的技术优势。本文将系统阐述时间轮算法的核心原理,并基于 C# 编程语言提供具体实现方案,以期深入剖析该算法在局域网管理中的应用逻辑与实践价值。
85 5
|
4月前
|
存储 机器学习/深度学习 算法
论上网限制软件中 Python 动态衰减权重算法于行为管控领域的创新性应用
在网络安全与行为管理的学术语境中,上网限制软件面临着精准识别并管控用户不合规网络请求的复杂任务。传统的基于静态规则库或固定阈值的策略,在实践中暴露出较高的误判率与较差的动态适应性。本研究引入一种基于 “动态衰减权重算法” 的优化策略,融合时间序列分析与权重衰减机制,旨在显著提升上网限制软件的实时决策效能。
119 2
|
3月前
|
机器学习/深度学习 监控 算法
面向办公室屏幕监控系统的改进型四叉树屏幕变化检测算法研究
本文提出一种改进型四叉树数据结构模型,用于优化办公室屏幕监控系统。通过动态阈值调节、变化优先级索引及增量更新策略,显著降低计算复杂度并提升实时响应能力。实验表明,该算法在典型企业环境中将屏幕变化检测效率提升40%以上,同时减少资源消耗。其应用场景涵盖安全审计、工作效能分析及远程协作优化等,未来可结合深度学习实现更智能化的功能。
65 0
|
5月前
|
存储 监控 算法
公司员工电脑监控软件剖析:PHP 布隆过滤器算法的应用与效能探究
在数字化办公的浪潮下,公司员工电脑监控软件成为企业管理的重要工具,它能够帮助企业了解员工的工作状态、保障数据安全以及提升工作效率。然而,随着监控数据量的不断增长,如何高效地处理和查询这些数据成为了关键问题。布隆过滤器(Bloom Filter)作为一种高效的概率型数据结构,在公司员工电脑监控软件中展现出独特的优势,本文将深入探讨 PHP 语言实现的布隆过滤器算法在该软件中的应用。
90 1
|
8月前
|
机器学习/深度学习 运维 安全
深度学习在安全事件检测中的应用:守护数字世界的利器
深度学习在安全事件检测中的应用:守护数字世界的利器
308 22

热门文章

最新文章