- 面向汽车的新一代信息技术
- 崔胜民
- 2267字
- 2025-02-20 23:48:37
1.3.3 人工智能技术与自动驾驶汽车
1. 自动驾驶技术
(1)自动驾驶技术概述 自动驾驶技术是对人类驾驶人在长期驾驶实践中,对“环境感知—决策与规划—控制与执行”过程的理解、学习和记忆的物化,如图1-83所示。自动驾驶汽车是一个复杂的软硬件结合的智能自动化系统,运用到了自动控制技术、现代传感技术、计算机技术、信息与通信技术以及人工智能等。

图1-83 自动驾驶技术
1)环境感知。环境感知相当于人类的眼睛与耳朵,处于自动驾驶汽车与外界环境信息交互的关键位置,是实现自动驾驶的基础。环境感知技术通过利用超声波雷达、毫米波雷达、激光雷达及视觉传感器等车载传感器,辅以V2X和5G等技术获取汽车所处交通环境信息和车辆状态信息,为自动驾驶汽车的决策规划进行服务。
2)决策与规划。通常情况下,自动驾驶汽车的规划系统包含路径规划和驾驶任务规划两大方面。这一部分主要涉及芯片和算法。
路径规划即路径局部规划,自动驾驶汽车中的路径规划算法会在行驶任务设定之后将完成任务的最佳路径选取出来,避免碰撞和保持安全距离。在此过程中,会对路径的曲率和弧长等进行综合考量,从而实现路径选择的最优化。
驾驶任务规划即全局路径规划,主要规划内容是指行驶路径范围的规划。当自动驾驶汽车上路行驶时,驾驶任务规划会为汽车的自动驾驶提供方向引导方面的行为决策方案,通过GPS技术进行即将需要前进行驶的路段和途径区域的规划与顺序排列。
3)控制与执行。再好的基础与运算规划能力,如果不能做到安全控制执行,也不能实现自动驾驶。因此自动驾驶汽车的控制与执行是自动行驶的保障。控制包括汽车的纵向控制和横向控制,纵向控制是通过对加速与制动的协调,期望实现对车速的精准跟随;横向控制是通过转向盘调整以及轮胎力的控制实现自动驾驶路径跟踪。
(2)人工智能与自动驾驶技术的关系 人工智能与自动驾驶的关键技术密切相关,主要体现在以下几个方面:
1)环境感知方面。自动驾驶汽车所要面临的环境感知包括:路面路缘检测、车道线检测、护栏检测、交通标志检测、交通信号灯检测,以及重中之重的行人检测、机动车检测和非机动车检测等。
对于如此复杂的路况检测和目标检测,普通算法难以满足要求。基于人工智能的深度学习可以满足视觉感知的高精度需求,基于深度学习的计算机视觉,自动驾驶汽车可获得接近于人的感知能力。有研究报告表明,深度学习在算法和样本量足够的前提下,视觉感知的准确率可以达到99.9%以上,而人感知的准确率一般是95%。
2)决策与规划方面。行为决策与路径规划是人工智能在自动驾驶汽车领域中的另一个重要应用,前期的决策树与贝叶斯网络都是已经大量应用的人工智能技术。目前越来越多的研发机构将强化学习应用到自动驾驶的行为与决策中,把行为与决策分解成两部分:可学习部分与不可学习部分,可学习部分是由强化学习来决策行驶需要的高级策略,不可学习部分是按照这些策略利用动态规划来实施具体的路径规划。
3)车辆控制方面。相对于传统的车辆控制技术,智能控制方法主要体现在对控制对象模型的运用和综合信息学习运用上,包括神经网络控制和深度学习方法等,这些算法已经逐步在自动驾驶汽车控制中应用。其中,通过神经网络控制可以把控制问题看成模式识别问题,而源于神经网络的研究,进一步开发深度神经网络学习,可以免除人工选取特征的繁复冗杂和高维数据的维度灾难问题。因为自动驾驶系统最终要尽量减少人的参与或者没有人的参与,所以深度学习自动学习状态特征的能力使得深度学习在自动驾驶系统中具有先天的优势。
2. 基于机器学习的车辆检测和行人检测
MATLAB提供了基于机器学习的目标检测函数,利用这些检测函数,非常容易对图像中的车辆和行人进行识别,也可以对视频中的车辆和行人进行识别。
(1)vehicleDetectorACF vehicleDetectorACF为基于聚合通道特性(ACF)的车辆检测器函数,其调用格式为

其中,modeName为模型名称;detector为AFC车辆检测器。
模型名称分为全视图模型和前后视图模型,全视图(full-view)模型使用的训练图像是车辆的前、后、左、右侧的图像;前后视图(front-rear-view)模型仅使用车辆前后侧的图像进行训练。
【例1-1】利用ACF车辆检测器检测图像中的车辆,车辆图像如图1-84所示。

图1-84 车辆图像
解:在MATLAB命令行窗口输入以下程序。

检测结果如图1-85所示。

图1-85 利用ACF车辆检测器检测结果
(2)peopleDetectorACF peopleDetectorACF为基于聚合通道特性(ACF)的行人检测器函数,其调用格式为

其中,name为模型名称;detector为ACF行人检测器。
【例1-2】利用ACF行人检测器检测图像中的行人,行人图像如图1-86所示。

图1-86 行人图像
解:在MATLAB命令行窗口输入以下程序。

检测结果如图1-87所示。

图1-87 利用ACF行人检测器检测结果
(3)vision.PeopleDetector vision.PeopleDetector为基于HOG特征检测行人的函数,其调用格式为

其中,model为模型名称;peopleDetector为行人检测器。
与vision.PeopleDetector函数配套使用的命令格式为

其中,I为输入图像;roi为图像检测感兴趣区域;bboxes为检测到的目标位置;scores为检测置信度分数。
【例1-3】基于HOG特征检测图1-88所示的行人。

图1-88 HOG行人检测原始图像
解:在MATLAB命令行窗口输入以下程序。

检测结果如图1-89所示。

图1-89 基于HOG特征行人检测结果
(4)Vision.CascadeObjectDetector Vision.CascadeObjectDetector为用Viola-Jones算法检测物体,其调用格式为

【例1-4】检测图1-90所示的人脸。

图1-90 检测人脸的原始图像
解:在MATLAB命令行窗口输入以下程序。

检测结果如图1-91所示。

图1-91 人脸检测结果
3. 基于深度学习的车辆检测
MATLAB提供了基于深度学习的目标检测的函数,例如vehicleDetectorFasterRCNN。
vehicleDetectorFasterRCNN为基于更快的RCNN的车辆检测器函数,其调用格式为

其中,modelName为模型名称,模型名称为全视图(full-view)模型,即使用的训练图像是车辆的前、后、左、右侧的图像;detector为RCNN车辆检测器。
【例1-5】利用RCNN车辆检测器检测图像中的车辆,原始图像如图1-92所示。

图1-92 RCNN车辆检测原始图像
解:在MATLAB命令行窗口输入以下程序。

检测结果如图1-93所示。

图1-93 RCNN车辆检测结果