社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

自动驾驶中的机器学习

焉知智能汽车 • 3 年前 • 155 次点击  


来源 | CSDN
知圈 进“CMS社群”请加微13636581676,备注CMS


近年来,自动驾驶技术技术的发展速度非常快。预计达到完全自动驾驶L5的程度是指日可待的。自动驾驶的核心技术主要是人工智能中的机器学习与深度学习两个方向。在本文中,我们的关注点在于机器学习算法在自动驾驶技术中的应用。


为了让读者更好地理解自动驾驶中的机器学习算法,本文会首先介绍有关该设备和自动驾驶技术的运行原理,然后介绍机器学习方法及其在自动驾驶任务中的应用。最后展示一些流行的自动驾驶技术模拟器。



关于自动驾驶技术


自动驾驶技术的目的在于解除汽车对驾驶员的需求,部署了自动驾驶技术的汽车能够完全独立自主的地把汽车从一个地点驾驶到另一个地点。为了能够完成这项复杂的任务,这些汽车需要配备额外的硬件和软件系统,帮助AI系统了解环境、做出决策并采取行动。自动驾驶技术需要回答以下个问题。


1.自动驾驶技术如何看到?


自动驾驶技术主要使用摄像头、普通雷达和激光雷达三种传感器,它们就像人眼和大脑一样协同工作。它们共同为汽车提供了清晰的环境视图。帮助汽车识别附近物体的位置、速度和 3维形态。此外,目前依靠的自动驾驶技术现在正在建设惯性测量单元,可以监测和控制汽车的加速度和位置。


2.自动驾驶技术如何做出决策?


在通过传感器识别到周边物体之后,自动驾驶的决策系统一般通过聚类算法将周边物体进行聚类,并根据物体位置做出决策。


接下来我们来展示一下自动驾驶控制系统的工作原理,控制系统主要进行场景理解和决策规划两方面工作,系统主要的工作步骤如下:


传感器:从环境中收集传感器数据;

感知和定位:识别和定位物体和标记;

场景表示:了解环境参数和特征;

规划决策:路径和运动规划,根据驾驶策略寻找最优轨迹;

控制:设置必要的车辆加速、减速、转向和制动参数。


AVs 控制系统的主要组件



自动驾驶中的强化学习与监督学习


机器学习是指计算机程序通过已知经验数据中进行训练,通过迭代训练以提高其在指定任务上预测准确性的过程。机器学习算法通常分为三大类流派,分别是监督学习、无监督学习和强化学习 (RL)。监督学习算法基于归纳推理,通常需要使用有标记的数据进行训练,以执行分类或回归,而无监督学习一般应用于未标记数据的密度估计或聚类等技术。相比之下强化学习比较自成一派,其通过与环境交互来提高其在指定任务上的性能,与监督和非监督学习使用损失函数进行迭代训练的方式不同,强化学习一般使用奖励函数进行训练,比如OpenAI与王者荣耀的绝悟AI都属于强化学习的范畴,一般在电竞、机器人等方向上应用较多。


根据各类机器学习算法的特点,可以看出在“场景理解”的相关任务中,使用监督学习算法比较合适,而在“决策与规划”任务中,又非强化学习算法莫属。


在实际工作中,监督学习为强化学习提供了必要的环境信息,监督学习算法一般将“场景理解”的结果,输入到强化学习模型当中,在监督学习的加持下,强化学习可以完成方向盘操作优化、路径规划和轨迹优化、动态路径规划、基于场景的高速公路及交叉路口的合并与拆分等等高难度自动驾驶任务,通过来自专家系统的逆向强化学习,增加对于行人、车辆等交通参与者的意图预测,并确保安全操作的执行优先级。



用于自动驾驶的流行算法


SIFT


SIFT算法一般用于特征提取,该算法检测对象并解释图像。例如,对于三角形标志,以标志的三个顶点作为特征输入,自动驾驶系统可以通过这些点来识别标志。

梯度提升


不同于在神经网络中使用的梯度下降算法,梯度提升是一种用于回归、分类和其他任务的技术,它一般以决策树等弱预测模型基础生成新的预测模型,其分类性能通常优于随机森林。梯度提升与下文即将出场的AdaBoost算法工作原理类似。


AdaBoost


该算法收集数据并对其进行分类,以提高自动驾驶系统的性能。它将各种低性能分类器进行分组,根据当前迭代中的实际性能自动调整其参数,以获得高性能分类器。在实践中,AdaBoost技术与简单的分类树或树桩作为基学习器一般合并使用,与其他单个基学习器的分类相比,这样的方式提高了性能。


TextonBoost


TextonBoost 算法的工作原理与 AdaBoost 类似,只是它接收来形状、上下文和外观的数据。


HOG


HOG 是一种特征描述符,常用于从图像数据中的特征提取。HOG 一般用于分析对象的位置,以了解对象如何变化或移动。实际操作中HOG方法主要用于人脸和图像检测来对图像进行分类,还能用于识别并分类车辆类型。


YOLO


YOLO算法对于对象分类,如将图像中的行人、树木和车辆进行分类。YOLO使用卷积神经网络,这使其非常适合理解空间信息,并能够提取边缘、线条和纹理等特征。YOLO有 24 个卷积层。当激光雷达与 YOLO配合使用时,可以在拥挤的交通环境下进行导航。

 


用于算法测试和训练的模拟器和数据集


模拟器是用于试验自动驾驶系统的利器,特别是对于强化学习其意义更为明显。主流的模拟器如下:


  • CARLA  – 城市模拟器,包含摄像头和激光雷达的信息流,有语义分割、位置信息。

  • TORCS –  赛车模拟器,包括摄像头、代理位置、车辆测试控制策略。

  • AIRSIM – 具有深度和语义的摄像头的数据流,并且支持无人机的自动驾驶测试。

  • GAZEBO (ROS) – 多机器人物理模拟器,用于复杂的二维和三维地图中进行路径规划和车辆控制的测试。

  • SUMO – 城市交通的宏观尺度建模,用于运动规划测试使用。

  • DeepDrive – 一个基于虚幻平台搭建的自动驾驶模拟器,提供多摄像头数据。NVIDIA DRIVE Sim™ –一种是开放、可扩展、模块化的模拟器,支持从头开始构建以运行大规模、物理精确的多传感器仿真。

  • WEBOTS  – 一个完整的开发环境,可以用来建模、编程和模拟测试。



写在最后


机器学习在自动驾驶领域发挥着重要作用。在这篇文章中,我们介绍了自动驾驶技术的一些基本知识,以及机器学习算法在自动驾驶系统中的应用,还简要说明了一些在实践中比较流行的算法以及一些用于自动驾驶测试的模拟器。最后我们可以得出结论,自动驾驶具有实现完全自主L5级别的潜力。这可能会减少道路交通事故,让那些无法开车的人独立,从而改善交通物流。


声明:本文由CSDN翻译,转载请注明来源。 

作者:Denis Chikurtev

原文链接:
https://pereliksoft.com/index.php/2021/07/08/machine-learning-in-autonomous-vehicles/ 


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/135900
 
155 次点击