第1章 自动驾驶概述 1
1.1 自动驾驶介绍 2
1.1.1 自动驾驶分级 2
1.1.2 自动驾驶的发展历程 3
1.1.3 自动驾驶的应用领域 3
1.2 自动驾驶技术介绍 5
1.2.1 传感器技术 5
1.2.2 感知与感知算法 6
1.2.3 控制与执行系统 7
1.3 自动驾驶的挑战与机会 8
1.3.1 技术挑战 8
1.3.2 法规与政策挑战 9
1.3.3 社会接受度与文化变革 11
1.4 本章总结 12
第2章 激光雷达传感器感知 13
2.1 激光雷达传感器介绍 14
2.2 点云处理 14
2.2.1 滤波算法 15
2.2.2 降采样算法 16
2.2.3 去噪算法 18
2.2.4 法向量估计算法 20
2.2.5 曲面重建算法 22
2.2.6 配准算法 24
2.3 目标检测与分割 28
2.3.1 基于PointNet的目标检测与分割 28
2.3.2 基于Voxel-based的目标检测与分割 30
2.3.3 基于BEV的目标检测与分割 33
2.3.4 基于Range Image的目标检测与分割 35
2.3.5 基于深度学习的分割方法 37
2.4 地面提取 39
2.4.1 基于高程阈值的方法 39
2.4.2 基于斜率的方法 41
2.4.3 基于聚类的方法 43
2.4.4 基于机器学习的方法 44
2.4.5 基于滤波的方法 46
2.4.6 基于深度学习的方法 48
2.4.7 层次分割方法 49
2.5 SLAM定位与地图构建 51
2.5.1 Laser SLAM算法 52
2.5.2 Deep SLAM算法 58
2.5.3 图优化算法 61
2.6 运动估计 64
2.6.1 扩展卡尔曼滤波算法 64
2.6.2 无迹卡尔曼滤波算法 66
2.6.3 粒子滤波算法 69
2.7 本章总结 71
第3章 智能导航 73
3.1 智能导航介绍 74
3.2 目标检测和识别 74
3.2.1 常用的目标检测和识别算法 75
3.2.2 实战案例:基于机器学习算法的目标检测 75
3.3 车道检测 78
3.3.1 车道检测的流程 78
3.3.2 常用的车道检测算法 78
3.3.3 实战案例:基于深度学习的车道检测 81
3.4 目标跟踪技术 94
3.4.1 卡尔曼滤波器算法 94
3.4.2 扩展卡尔曼滤波器算法 97
3.4.3 粒子滤波器算法 99
3.4.4 多假设跟踪算法 101
3.4.5 相关滤波器算法 103
3.4.6 轨迹聚类算法 106
3.4.7 实战案例:基于OpenCV的行人检测系统 107
3.4.8 实战案例:基于深度学习的汽车追踪系统 116
3.5 本章总结 129
第4章 路径规划与决策 131
4.1 Dijkstra路径规划 132
4.1.1 Dijkstra算法的背景与历史 132
4.1.2 应用领域与典型场景 132
4.1.3 在机器人导航系统中的应用 133
4.2 A*算法路径规划 136
4.2.1 A*算法的背景与历史 136
4.2.2 A*算法的原理和实现步骤 136
4.3 Bellman-Ford路径规划 140
4.3.1 Bellman-Ford算法的背景与历史 140
4.3.2 负权边的最短路径问题 141
4.3.3 自动驾驶应用 143
4.3.4 实战案例:寻找地图中建筑物之间的最短距离 146
4.4 Floyd-Warshall路径规划 153
4.4.1 Floyd-Warshall算法背景与历史 153
4.4.2 城市交通规划应用 154
4.5 Floyd算法简介 157
4.5.1 Floyd算法的背景与历史 157
4.5.2 Floyd算法的计算过程 158
4.6 D*路径规划 162
4.6.1 D*算法的背景和发展历程 162
4.6.2 实战案例:探险家的导航路线 162
4.7 本章总结 170
第5章 车辆和行人行为预测 171
5.1 基于马尔可夫模型的行为预测 172
5.1.1 马尔可夫模型介绍 172
5.1.2 使用马尔可夫模型建模 172
5.2 基于规则驱动的行为预测 174
5.2.1 基于规则驱动的行为预测介绍 175
5.2.2 使用规则驱动的方法处理加速和减速模型 175
5.3 基于概率图模型的行为预测 177
5.3.1 使用贝叶斯网络预测车辆的加速状态 178
5.3.2 扩展贝叶斯网络 179
5.4 基于循环神经网络(RNN)的行为预测 181
5.4.1 基于LSTM的车辆和行人行为预测 181
5.4.2 基于Social LSTM模型的行为预测 184
5.5 实战案例:行人轨迹预测系统 184
5.5.1 构成模块 184
5.5.2 工具函数 185
5.5.3 Social LSTM模型 194
5.5.4 网格离散化 196
5.5.5 训练采样 199
5.5.6 训练模型 202
5.5.7 评估轨迹预测模型性能 209
5.5.8 验证模型在真实数据上的性能 211
5.5.9 结论 218
5.6 本章总结 218
第6章 基于红外传感器的环境感知 219
6.1 红外传感器介绍 220
6.2 红外传感器与智能驾驶 220
6.2.1 实战案例:障碍物检测 221
6.2.2 实战案例:红外摄像机程序 223
6.2.3 实战案例:温度检测程序 238
6.2.4 车速检测 240
6.3 本章总结 255
第7章 基于超声波传感器的环境感知 257
7.1 超声波传感器介绍 258
7.1.1 超声波传感器的工作原理 258
7.1.2 超声波传感器在自动驾驶中的作用 258
7.2 超声波传感器应用实战 259
7.2.1 实战案例:简易车距控制系统 259
7.2.2 实战案例:测距应用 261
7.2.3 实战案例:实时雷达监测系统 272
7.2.4 实战案例:自主导航系统 276
7.2.5 实战案例:超声波测距系统 279
7.2.6 实战案例:使用超声波传感器消除盲区 282
7.2.7 实战案例:停车辅助系统 287
7.3 本章总结 290
第8章 基于SLAM的定位与地图构建算法 291
8.1 SLAM介绍 292
8.1.1 SLAM的组成 292
8.1.2 SLAM的核心功能 292
8.1.3 Python中的位置定位和生成环境地图的库 293
8.2 FastSLAM算法 293
8.2.1 FastSLAM算法介绍 293
8.2.2 实战案例:基于FastSLAM算法的实时仿真系统 294
8.3 Grid Mapping方法 312
8.3.1 实现Grid Mapping的步骤 313
8.3.2 实战案例:基于ROS的激光雷达地图生成系统 313
8.4 Grid-based FastSLAM算法 317
8.4.1 Grid-based FastSLAM算法介绍 317
8.4.2 实战案例:基于Grid-based FastSLAM算法的导航系统 318
8.5 本章总结 335
第9章 构建实时地图 337
9.1 OctoMap介绍 338
9.1.1 八叉树和OctoMap 338
9.1.2 OctoMap在自动驾驶中的作用 338
9.1.3 实战案例:基于OctoMap的三维地图的路径导航系统 339
9.2 使用Python库 355
9.2.1 常用的第三方库 355
9.2.2 实战案例:基于第三方库构建OctoMap 357
9.3 本章总结 364
第10章 基于深度学习的实时地图导航系统 365
10.1 背景介绍 366
10.2 项目介绍 366
10.2.1 交叉视图转换器技术 367
10.2.2 功能模块 367
10.3 数据集 368
10.3.1 nuScenes数据集 368
10.3.2 Argoverse 数据集 369
10.4 系统配置 369
10.4.1 配置训练和实验参数 370
10.4.2 生成数据集标签 371
10.5 交叉视图变换器 371
10.5.1 数据处理 372
10.5.2 模型组件 389
10.5.3 车道和车辆预测可视化 399
10.5.4 计算损失值 403
10.5.5 计算交并比 406
10.6 训练模型 407
10.7 使用模型预测实时路径 408
10.8 本章总结 411
