目录
目录
第1章 自动驾驶技术概述 1
1.1 自动驾驶的整体流程 3
1.1.1 机动车的使用目的和自动驾驶 3
1.1.2 自动驾驶功能的子系统 4
1.1.3 自动驾驶系统的工作流程 8
1.2 自动驾驶的硬件结构 9
1.2.1 用于环境识别的外部传感器 9
1.2.2 GNSS 10
1.2.3 地图上的自车定位与地图更新 11
1.2.4 驾驶员监控技术 12
1.2.5 硬件结构 13
1.3 确保自动驾驶的安全性和可靠性 14
1.3.1 系统的功能安全策略 14
1.3.2 自动驾驶的可靠性保障 15
1.4 实现全自动驾驶面临的问题 18
1.4.1 自动驾驶与道路交通环境 18
1.4.2 自动驾驶及其社会接受度 19
1.4.3 人工智能在自动驾驶中的必要性和面临的问题 19
1.4.4 问题总结 21
第2章 环境识别和预测 23
2.1 手工提取特征量的环境识别 25
2.1.1 探测行人和车辆 25
2.1.2 手工提取特征量的优势 27
2.2 深度学习的环境识别 27
2.2.1 探测行人和车辆 28
2.2.2 语义分割 29
2.2.3 深度学习的环境识别问题 30
2.3 行人的路径预测 30
2.3.1 基于贝叶斯模型的方法 31
2.3.2 基于深度学习的方法 32
2.3.3 RNN和LSTM 32
2.3.4 基于LSTM的方法 34
2.3.5 考虑到行人交互的路径预测 37
2.4 其他车辆的路径预测 39
2.4.1 概述 39
2.4.2 考虑移动体间相互影响的预测 41
2.4.3 生成多种候选的预测 41
2.5 深度学习模型的压缩 43
2.5.1 剪枝与量化 44
2.5.2 矩阵分解 46
2.5.3 知识蒸馏 47
2.5.4 网络结构搜索 47
第3章 地图生成和自车定位 49
3.1 自动驾驶中的地图和自车定位的作用 51
3.2 高精地图 51
3.2.1 点云地图 52
3.2.2 矢量地图 53
3.3 点云地图的生成方法 53
3.3.1 MMS 54
3.3.2 SLAM 55
3.4 矢量地图的生成方法 60
3.5 用地图进行自车定位 61
3.5.1 通过三维点云和LiDAR进行自车定位 61
3.5.2 其他方法 62
3.5.3 传感器协调合作 63
3.6 应用卫星定位的自车定位 64
3.6.1 应用卫星定位和RTK-GNSS的厘米级自车定位 65
3.6.2 卫星定位与IMU协调合作,实现更加稳健的自车定位 68
第4章 自动驾驶车辆的决策 71
4.1 决策概述 73
4.2 路径规划 74
4.3 运动规划 79
4.3.1 运动规划的输入 80
4.3.2 运动规划的处理流程 81
4.3.3 参考状态迁移图的运动规划 82
4.3.4 采用学习行为的运动规划 83
4.4 轨迹生成 87
4.4.1 轨迹生成模块的输入 87
4.4.2 轨迹生成的处理 88
4.4.3 不采用学习行为的轨迹生成 90
4.4.4 采用学习行为的轨迹生成 93
4.5 决策功能的实用化 95
4.5.1 决策功能的开发情况 96
4.5.2 深度学习在决策功能中的应用问题 96
4.5.3 提高安全性 97
第5章 纵横方向的车辆运动控制 99
5.1 自动驾驶系统和ADAS的关系 101
5.2 ADAS技术 104
5.2.1 纵向车辆运动控制 104
5.2.2 横向车辆运动控制 105
5.2.3 纵横两个方向的车辆运动控制 106
5.3 自动驾驶系统的控制技术 106
5.3.1 车辆模型 107
5.3.2 PID控制 109
5.3.3 纯追踪算法 111
5.3.4 模型预测控制 113
5.4 控制系统的设计及性能评价 119
5.4.1 控制系统的调节 119
5.4.2 与感知系统评价方法的不同 121
5.4.3 形式模型的安全性评价 122
5.5 深度学习在车辆运动控制中的应用探究 126
5.5.1 神经网络PID 126
5.5.2 端到端(End-to-End)自动驾驶及其面临的问题 131
第6章 多车协同控制 133
6.1 互让 135
6.1.1 互让概述 135
6.1.2 相关研究 136
6.1.3 遥控汽车实验示例 137
6.1.4 遥控汽车通过DQN互让的示例 140
6.2 列队行驶 145
6.2.1 列队行驶的概要及效果 145
6.2.2 前后方向的控制 146
6.2.3 左右方向的控制 147
6.2.4 列队行驶控制示例 148
第7章 自动驾驶技术的开发工具 153
7.1 环境识别、自车定位数据集 155
7.1.1 数据集 155
7.1.2 KITTI 数据集 155
7.1.3 数据集的陷阱 158
7.2 地图(HD地图) 158
7.2.1 OpenDRIVE 158
7.2.2 Lanelet2 159
7.3 自动驾驶平台 160
7.3.1 Autoware的整体情况和深度学习的相关功能 161
7.3.2 Apollo的整体情况和深度学习的相关功能 162
7.3.3 Autoware和Apollo的比较和尚待解决的问题 163
7.4 自动驾驶模拟器 164
7.4.1 免费模拟器示例 165
7.4.2 免费模拟器比较 166
第8章 深度学习的基础 167
8.1 机器学习、深度学习 169
8.1.1 机器学习概述 169
8.1.2 深度学习的必要性 170
8.2 神经网络的基本结构 172
8.2.1 输入层 174
8.2.2 隐藏层 174
8.2.3 输出层 179
8.3 神经网络的学习方法 180
8.3.1 损失函数 181
8.3.2 概率性梯度下降法 184
8.3.3 误差反向传播法 187
8.3.4 其他技术 192
第9章 深度强化学习 197
9.1 深度强化学习概述 199
9.2 强化学习的概述、方法和深度强化学习扩展 203
9.2.1 强化学习的基础 203
9.2.2 强化学习和函数拟合 207
9.3 基于价值的方法 209
9.3.1 DQN 209
9.3.2 DQN的改良 211
9.3.3 强化学习的问题及其改善方案 213
9.4 基于策略的方法 218
9.4.1 策略梯度法 219
9.4.2 蒙特卡罗策略梯度法 221
9.4.3 引入Actor-Critic的策略梯度法 222
9.4.4 优势函数 223
9.4.5 策略梯度法的发展 224
9.4.6 总结 231
9.5 奖励设计 232
9.5.1 逆向强化学习的基本算法 233
9.5.2 不适定问题(奖励优化) 236
9.5.3 计算量问题(估测奖励更新的效率化) 239
9.5.4 引入先验知识 245
9.5.5 总结 247
第10章 深度学习的技能 249
10.1 深度学习和调整 251
10.2 深度学习的设计方针 253
10.2.1 输入数据的选择 253
10.2.2 中间层的选择 253
10.3 以全连接网络为例讲解调整方法 255
10.3.1 学习率和优化算法 256
10.3.2 激活函数和正则化 256
10.3.3 样本数和收敛性 256
10.3.4 制作学习数据的技能 258
10.3.5 学习曲线 258
10.3.6 总结 261
10.4 深度学习资料库的比较 261
10.4.1 实现比较 262
10.4.2 各种深度学习资料库 262
参考文献 277
结语 291