Real-time object detection and 3D scene perception in self-driving cars

摘要

可靠的城市自动驾驶取决于车辆感知和导航环境的能力。本论文的研究重点是设计并实现一个基于视觉的NUSTAG自动驾驶汽车感知系统 。主要任务是使用立体相机馈送来估计汽车、自行车和行人的位置 ,从而实现3D边界框估计和深度感知。此外,使用2D对象检测和分类来检测道路标志和交通灯 。在NVIDIA Jetson Xavier开发套件中并行实施所有这些深度学习算法的主要挑战是通过优化模型来实时执行推理。这是使用ROS接口的TensorRT框架完成的。这些模型已根据我们的要求进行了训练,以便在我们的操作设计领域内产生有效的结果。
关键词-深度学习,3D物体检测,自动驾驶汽车,模型优化,TensorRT框架,ROS接口

1.介绍

自动驾驶汽车领域正在快速发展,近年来取得了许多突破。自动驾驶汽车可以彻底改变交通运输,无人驾驶的未来将带来深远的好处,包括安全和环境激励[1],[2]。尖端研究有许多途径,世界各地许多领先的汽车研发集团[3]都在追求这一领域。美国汽车工程师协会(SAE)[4]定义了自动驾驶的六个级别,标准化了这项技术的进步,DARPA城市挑战赛[5]-[7]是朝着开发完全自动驾驶城市车辆迈出的重要一步。

然而,实现这一潜力伴随着解决许多技术挑战。自动驾驶汽车(autonomous vehicle AV)成功运行的关键是在计算受限的边缘设备上实时感知和理解周围环境的能力。当执行多个并行操作(例如使命规划、状态估计和高级控制)时,对资源的需求进一步加剧,即使是最先进的边缘硬件也面临着巨大的挑战。目前,3D物体检测的最新技术GLENet [8]通过采用LIDAR传感器来解决这个问题,与相机相比,LIDAR传感器要昂贵得多,以实现快速推理时间。正如特斯拉的观点[9]所证明的那样,利用激光雷达广泛部署自动驾驶汽车的成本使其成为一个经济上不可行的选择。我们的方法采用了基于相机的感知和广泛使用的深度学习架构,称为卷积神经网络(CNN)[10]。我们提出的方法扩展了Liu等人的工作。(2021)[11]用于3D边界框估计,并使用TensorRT [12]优化YOLOStereo3D模型。主要区别在于训练数据集,它被用作灰度图像,在NVIDIA Jetson Xavier上实现实时性能。

目前,最先进的2D物体检测技术YOLOv 7 [13]在性能和效率方面都超过了杰出的作品。相反,我们提出了YOLOv 4 tiny [14],使用TensorRT [12]优化检测交通标志和信号的任务。这种设计方法的关键考虑因素强调模型大小和推理时间,与YOLOv 7-tiny相比,YOLOv 4-tiny的可训练参数少了100 k。此外,在本研究时,TensorRT框架不支持YOLOv 7的一些操作,导致无法压缩模型。与最先进的方法相比,我们提出的方法在计算效率方面表现出色,同时在精度上略有下降。此外,YOLOv 4-tiny模型是在使用全局快门相机收集的自定义数据集上训练的,该数据集专用于我们的操作设计域(ODD),进一步缩小了性能差距。

我们的方法是独特的实施第一个城市概念AV本土开发的巴基斯坦。优化的模型使用机器人操作系统(ROS)[15]接口进行集成,该接口在实际场景中有效地处理异步操作,同时管理AV的其他模块。我们通过广泛的实验证明了我们独特方法的有效性。我们能够实现高达80 FPS的性能提升,这是我们平台上其他2D估计框架的显著改进。通过为最先进的研究做出贡献,它旨在为未来的发展和概念化自动驾驶技术创造一个桥头堡。

本文的以下部分组织如下:

第2节介绍了使用深度学习和最新优化方案进行3D和2D对象检测的相关工作。

在第3节中,我们详细描述了原作者解决的问题,并概述了我们提出的实现方法。

我们的方法在我们的操作设计领域使用NUSTAG自动驾驶汽车平台的实验结果在第4节中给出,在第5节中总结。

2.文献综述

A. 3D Object Detection

3D物体检测是自动驾驶汽车技术的一个重要方面,因为它使车辆能够准确地感知和理解周围环境,以便做出明智的决策并安全导航。已经出现了几种最先进的方法,包括激光雷达,雷达和计算机视觉。这些技术允许AV构建其周围环境的详细三维模型[16],然后可以用于识别和跟踪感兴趣的对象,包括车辆和行人。

用于自动驾驶研究的KITTI数据集由盖革等人在(2013)[17]中引入,包括多个真实世界图像和相应的3D点云。该数据集已被证明在该领域的研究进展中具有非常宝贵的价值,并已被广泛用于评估各种3D对象检测算法的有效性,并作为评估的基准。

激光雷达,或光探测和测距,使用激光测量物体的距离,并创建一个详细的三维点云地图的环境。该技术已广泛应用于自动驾驶汽车研究,并在准确性和可靠性方面显示出良好的效果。Zhang等人(2022)[8]发表了3D物体检测领域的最新技术,其最高平均精度(AP)为83.23%,提出了GLENet,这是一种从条件变分自编码器改编的生成框架,重点是标签不确定性。Xu等人的另一项突出工作。(2021)[18]通过学习形状先验和整合提案细化来识别部分遮挡点。这些令人印象深刻的作品推动了最佳性能的界限。

雷达或无线电探测和测距是一种利用无线电波探测物体并计算其距离和速度的技术。传统上,雷达被用于检测或跟踪移动物体,但雷达技术的最新发展使其能够用于3D物体检测。特别是,先进的雷达设备和信号处理技术的出现使得能够生成环境的详细三维表示[19],允许检测和定位物体。Michael et al.(2019)[20]提出了使用雷达点云和相机图像进行深度学习的3D物体检测,这一直是雷达检测技术进步的驱动力。

另一方面,计算机视觉使用摄像头和图像识别算法来检测和识别环境中的对象。虽然计算机视觉具有成本效益和能够在各种照明条件下实时操作的优势,但它可能更容易受到遮挡和其他挑战的影响。Qi等人(2016)[21]提出了一种使用相机视觉和深度信息组合进行3D物体检测的开创性方法。这种方法被称为多视图卷积神经网络(MVCNN),能够在几个基准数据集上实现卓越的性能,用于3D对象估计。目前,深度学习已成为自动驾驶汽车开发中用于检测3D物体的焦点。这些先进的方法有可能大大提高自动驾驶系统的安全性和效率,因此,已经引起了研究人员和开发人员的极大关注。例如,Brazil等人在2019年[22]提出了在单目3D检测问题上使用3D区域建议网络(RPN),该问题利用了2D和3D视角之间的关系,并使用深度感知卷积层来提高性能。Liu等人(2021)[11]提出了YOLOStereo3D,这是一种使用轻量级单级立体匹配模块的实时立体3D对象检测框架。这种方法能够在KITTI数据集上取得令人印象深刻的结果[17],优于以前最先进的立体3D估计框架,并且在精度和速度方面与LIDAR 3D估计相当。

在自动驾驶汽车中的3D物体检测方面有大量的研究,探索各种不同的方法。每种方法都有自己的一系列挑战。LIDAR技术虽然是稳健的,但具有与其相关联的过高成本,限制了其可扩展性。同时,基于视觉的方法虽然具有成本效益,但需要更高的计算资源。因此,进一步研究和改进这些技术的准确性和可靠性可以充分实现这些技术在自动驾驶汽车中的实际应用潜力。

B. 2D Object Detection

目标检测的研究已经成为一个重要的研究领域。在最前沿,许多出版物和著名的研究揭示了利用相机精确识别和定位物体的各种方式,并为开发对自主系统运行至关重要的创新解决方案铺平了道路。该领域的关键挑战之一是能够准确可靠地实时检测障碍物和监管元素,如交通标志,灯光和道路标记,而不管照明,天气条件和其他因素的变化。为了应对这一挑战,研究人员提出了一系列方法,包括传统的计算机视觉技术,如边缘检测[23]和特征提取[24],以及最近的基于深度学习的方法。

传统计算机视觉技术的一个值得注意的例子是Farfield等人的工作。(2011)[25],他们提出了一种映射方案,结合颜色,形状和纹理特征来检测视频序列中的交通标志。他们的方法在现实世界的交通信号数据集上实现了高精度,证明了其在实际应用中的潜力。相比之下,先进的深度学习技术近年来显示出了良好的效果,因为它们能够直接从数据中学习复杂的特征。例如,Zhu等人。(2016)[26]提出了一种用于交通标志检测的卷积神经网络(CNN)架构,该架构在德国交通标志识别基准(GTSRB)数据集上取得了令人印象深刻的结果[27]。类似地,作品[28],[29]提出了一种基于CNN的方法,该方法利用空间Transformer网络来增强具有挑战性的场景中交通标志检测的鲁棒性。

最近的技术利用了高级深度学习架构的力量,例如YOLO(You Only Look Once)模型。它在物体检测领域获得了极大的关注,因为它能够提供快速和精确的结果。近年来,该模型经历了多次迭代和优化,从而实现了始终如一的高性能。YOLOv2 [31]变体为原始YOLO [30]模型引入了批量归一化,从而提高了检测精度。YOLOv3 [32]迭代进一步改进了特征提取网络,并采用多尺度融合技术进行估计,从而在不牺牲速度的情况下提高了检测精度。YOLOv4 [14]变体在模型的主干部分引入了跨阶段部分网络,并在颈部引入了空间金字塔池化和路径聚合网络。这些技术的结合显著提高了检测精度和速度,在该领域树立了新的基准。这些更新表明我们在不断努力优化YOLO模型的准确性和效率。Zhu等人。(2022)[33]提出了一种基于深度学习的方法,用于使用在(GTSRB)数据集上训练的YOLOv5架构进行实时交通标志识别[27]。作者报告了高准确率,并证明了他们的方法对各种交通标志类型的有效性。

总的来说,现有的关于使用摄像头检测自动驾驶汽车交通标志的研究表明,基于深度学习的方法,特别是CNN [10],可以提供准确有效的结果。然而,仍然有改进的空间,特别是在处理复杂和多样化的场景,以及提高算法对各种光照和天气条件的鲁棒性方面。未来的研究可能会集中在解决这些挑战,并为自动驾驶汽车开发更强大、更可靠的二维物体检测系统。

C. Neural Network Optimization

神经网络优化的要求是消除深度神经网络中计算的延迟 。深度学习实施的范式已经从基于云的部署转移到边缘计算,使AI解决方案能够在低功耗和能源受限的设备上运行。硬件能力受限的边缘设备的性能会随着神经网络变得更加复杂而下降。Wu等人的早期作品。(2016)[34]提出量化CNN减少内核的内存大小,实现6倍的推理速度提高,20倍的模型压缩,仅牺牲1%的分类精度损失。这为神经网络优化技术的研究开辟了道路。继续这一领域的研究,Yang等人的另一项值得注意的工作。

(2017)[35]提出通过采用能量感知修剪来优化卷积神经网络架构。剪枝涉及消除网络中的冗余权重连接,以提高推理速度并减少实时边缘AI应用的模型存储大小。这项工作[36]提出了一项关于CNN优化的研究,用于边缘设备上的实时对象检测。作者比较了不同网络架构和优化策略的性能,并表明精心设计的网络可以实现高精度和高效率的目标检测,同时显着减少推理时间。参考文献[37]-[39]突出了边缘计算的突出优化框架。此外,轻量级架构,如MobileNets [40],ShuffleNet [41]和Yang等人的工作中提出的超轻量级CNN架构。(2022)[42]本质上是适合移动设备上视觉应用的紧凑模型。这些模型比传统的CNN [10]具有一定的优点,主要是改善了推理时间和内存需求。在这种情况下,CNN的高计算复杂性阻止了层和内核的进一步扩展。

Kyriakides在EL突出的工作。(2020)[43]引入了**神经架构搜索(NAS)**来优化设计深度学习模型,以提高效率和检测精度。NAS是一种使用特定搜索策略在指定搜索空间内自动找到高性能CNN模型的方法[44]。NAS的搜索空间可以分为全局空间和局部空间,全局空间包含整个CNN架构,局部空间由搜索和重复以形成整个CNN架构的特定结构组成。NAS已被证明是一种惊人的优化工具,可以为视觉任务(例如使用重新参数化的卷积层建模的YOLOv7 [13])生成有效的CNN模型,并提出可训练的免费赠品袋以提高对象检测的准确性。此外,NAS优化模型SqueezeNAS [45]在NVIDIA AGX Xavier上执行实时语义分割,推理时间低于100 ms,具有73.62%的类mIOU性能矩阵。NAS优化DNN架构的潜力不仅适用于图像分类,还适用于其他视觉任务,使其成为移动的应用程序的有用优化技术。仍然需要解决复杂和动态交通场景的挑战,并提高深度学习模型的鲁棒性,可靠性和推理时间,特别是在自动驾驶汽车的背景下。

3.协议方法

在随后的部分中,我们将深入研究部署到感知堆栈中的网络结构、数据预处理策略、训练和优化方案的细节。

A. Optimized YoloStereo3D

3D物体检测涉及识别和定位环境中的物体,对于自动驾驶汽车安全导航至关重要。我们提出了YOLOStereo3D的修改实现[11] ,这是一个3D对象检测框架,它使用像素相关模块来构建成本体积并生成立体特征作为2D特征图。它是一个轻量级的一级网络,为检测头产生强大的基本特征,并进行端到端训练。最初,该模型是在KITTI [17]数据集的RGB图像上训练的。将训练数据集修改为仅由灰度图像组成,并将尺寸指定为752 x 480像素,这是来自Mynt eye S1030立体相机的硬件约束。我们在训练过程中应用了光度失真和随机翻转,以增加立体3D检测中深度学习模型的数据。这包括翻转灰度图像和反转对象的位置和方向,以及在左右图像之间交替。这些技术有助于提高模型的泛化能力,尽管我们的领域的限制。网络架构如本页底部的图4所示

见图4。YoloStero3D网络架构,展示了几个模型层和各自的输出沿着以及推理中使用的TensorRT优化

引入一个小而有影响力的修改 可以显着减少模型输入层的大小,从而相应减少可训练参数的数量。这种修改不仅提高了模型的效率,而且对模型精度的影响可以忽略不计。Nvidia Jetson Xavier的优化和实时推理的主要任务涉及TensorRT来压缩模型 。TensorRT是一个软件开发工具包,通过其优化器和运行时促进快速创建高性能深度学习应用程序,为边缘设备上的推理任务提供低延迟和高吞吐量。TensorRT框架通过使用多线程、流水线、缓冲区分配、网络复制、修剪和量化来优化大型模型中的各种参数的方法来优化性能,为特定应用生成硬件专用模型。下面的图2说明了模型压缩和生成优化推理引擎的过程 ,该推理引擎使用ROS部署。

图二.使用TensorRT进行模型优化

使用立体几何通过2D投影执行3D边界框估计骨干网络从双目图像中提取多尺度特征 。然后,这些特征通过执行多尺度立体匹配和融合的专用模块 。所得到的融合特征与来自左图像的最后特征组合,并被发送到分类和回归分支,其中3D边界框被密集预测,如图3所示。

3D边界框由中心坐标和车辆取向𝑥, 𝑦, 𝑧, �}表示,并且尺寸由{𝑙, 𝑤, ℎ}表示。3D锚点估计包括确定一组四个坐标,表示为{𝑢𝑙, 𝑣𝑡, 𝑢𝑟, 𝑣𝑏},其对应于左图像中的2D边界框的左边缘、上边缘、右边缘和下边缘。另外,第二组坐标{𝑢𝑙′, 𝑢𝑟′}表示右图像中的2D边界框的对应边缘。{𝑢𝑝}用于指示透视关键点,并且关系在(1)至(4)中提供。

立体摄像机的标定过程 是精确三维重建的关键。在本研究中,Kalibr [46]工具用于此目的 。通过订阅左右摄像机ROS主题生成包文件,并且在摄像机保持静止的同时,April-grid网格图案在多个方向上移动。摄像机校准的结果如图5所示 ,有效地估计了摄像机的内部参数,包括其失真矩阵。

图五.立体摄像机校准(重投影误差)

B. Optimized YOLOv4_tiny

交通标志和其他监管元素的检测是安全自动驾驶的重要任务。为此,我们提出了YOLOv 4-tiny的优化实现,YOLOv 4-tiny是一个来自YOLOv 4的轻重量模型 [14]。我们的目标是提高推理时间,以减少对自动驾驶汽车速度的限制,从而在相对较高的速度下实现准确的检测 。正如引言部分所介绍的那样,由于推理时间的增加,我们的方法在符号检测的应用中优于当前最先进的方法。该网络使用Turkish signs 数据集[47]而不是GTSRB数据集[27]进行训练 。在这项研究中,由于数据集在巴基斯坦的可用性有限,使用数据集[47]是不可行的,并且只有少数大学可以访问。因此,为了克服这一限制,我们通过打印标志牌,捕获前20个标志的图像,然后使用Roboflow工具注释它们**来生成我们自己的数据集版本[48]**这种方法使我们能够使用针对我们特定研究需求的数据集进行实验。该模型的架构沿着与摄像机注入和标志检测输出中展示了图6在页面底部。

见图6。YOLOv 4-微型网络架构,从RGB图像中检测交通标志

作为我们之前在3D检测管道中工作的延续,我们使用TensorRT [12]进一步优化和压缩了YOLOv4_tiny模型 。这导致了效率和推理速度的显著提高。最后,我们将此模型集成到ROS中,并为NVIDIA Jetson Xavier开发板开发了一个应用程序。ROS中的整合如图7所示

见图7。NVIDIA Jetson Xavier上的ROS实施节点

图8和图9展示了我们的检测模型的结果,表1突出显示了性能和推理时间。

见图8。YOLOStereo3D检测结果

见图9。YOLOv4_tiny符号检测结果

4.总结

随着自动驾驶汽车不断发展并成为交通领域先进技术的先驱,人们对深度学习技术的开发兴趣和投资激增。本文重点介绍了这些技术,并提出了有效的方法来解决对象检测模型中的延迟问题通过TensorRT等优化技术 。3D物体检测在使自动驾驶车辆有效地导航其环境并避免碰撞方面起着基础性的作用,我们的论文强调了利用基于相机的框架感知复杂和动态环境的有用性 。此外,我们论文中提出的标志检测在推理时间上优于当前最先进的技术 ,这可以导致自动驾驶汽车的实时处理和高效部署。我们的原型NUSTAG自动驾驶汽车是评估这些技术的基础框架,通过改进设置,我们的研究可以帮助实现大规模自动驾驶。

相关推荐
靴子学长23 分钟前
基于字节大模型的论文翻译(含免费源码)
人工智能·深度学习·nlp
AI_NEW_COME1 小时前
知识库管理系统可扩展性深度测评
人工智能
海棠AI实验室2 小时前
AI的进阶之路:从机器学习到深度学习的演变(一)
人工智能·深度学习·机器学习
hunteritself2 小时前
AI Weekly『12月16-22日』:OpenAI公布o3,谷歌发布首个推理模型,GitHub Copilot免费版上线!
人工智能·gpt·chatgpt·github·openai·copilot
IT古董2 小时前
【机器学习】机器学习的基本分类-强化学习-策略梯度(Policy Gradient,PG)
人工智能·机器学习·分类
centurysee2 小时前
【最佳实践】Anthropic:Agentic系统实践案例
人工智能
mahuifa2 小时前
混合开发环境---使用编程AI辅助开发Qt
人工智能·vscode·qt·qtcreator·编程ai
四口鲸鱼爱吃盐2 小时前
Pytorch | 从零构建GoogleNet对CIFAR10进行分类
人工智能·pytorch·分类
蓝天星空3 小时前
Python调用open ai接口
人工智能·python
睡觉狂魔er3 小时前
自动驾驶控制与规划——Project 3: LQR车辆横向控制
人工智能·机器学习·自动驾驶