目前自動駕駛的一個發(fā)展趨勢就是智能化。隨著人工智能的飛速發(fā)展以及各種新型傳感器的涌現(xiàn),汽車智能化形成趨勢,輔助駕駛功能的滲透率越來越高。這些功能的實現(xiàn)需要借助于攝像頭、雷達(dá)、激光雷達(dá)等新增的傳感器數(shù)據(jù),其中視頻處理需要大量并行計算。然而,傳統(tǒng)CPU算力不足,而DSP擅長圖像處理,對于深度學(xué)習(xí)卻缺乏足夠的性能。盡管GPU擅長訓(xùn)練,但它過于耗電,影響汽車的性能。因此,本書著眼于未來,認(rèn)為定制化的ASIC必將成為主流。本書以自動駕駛的芯片設(shè)計為最終目標(biāo),來論述設(shè)計一個面向未來的自動駕駛SoC芯片的學(xué)術(shù)支撐和工程實踐。本書共13章。其中第1章主要介紹自動駕駛目前遇到的挑戰(zhàn)和研究方向。第2~6章重點講述環(huán)境感知以及規(guī)劃控制方面的算法設(shè)計;第7~10章重點講述深度學(xué)習(xí)模型的優(yōu)化和深度學(xué)習(xí)芯片的設(shè)計;第11章和第12章重點講述具有安全功能的自動駕駛軟件架構(gòu)設(shè)計;第13章介紹5G車聯(lián)網(wǎng)。
任建峰,博士,目前就職于谷歌公司,分別于2005年和2009 年獲得西北工業(yè)大學(xué)模式識別與智能系統(tǒng)博士學(xué)位和美國得州大學(xué)達(dá)拉斯分校電子工程博士學(xué)位,從事計算影像學(xué)、自動駕駛方面芯片算法研發(fā)工作,在高通、華為海思工作多年,發(fā)表論文40多篇,擁有30多項美國專利。
第1章 自動駕駛芯片的挑戰(zhàn) 1
1.1 自動駕駛科技界現(xiàn)狀 1
1.2 自動駕駛設(shè)計的挑戰(zhàn) 2
1.2.1 功能約束 3
1.2.2 可預(yù)測性約束 3
1.2.3 存儲限制 4
1.2.4 熱量約束 4
1.2.5 功率約束 5
1.3 自動駕駛系統(tǒng)算法設(shè)計 5
1.3.1 感知 6
1.3.2 決策 7
1.3.3 控制 8
1.3.4 安全驗證與測試 9
1.4 自動駕駛系統(tǒng)計算平臺 10
1.4.1 GPU 11
1.4.2 DSP 11
1.4.3 FPGA 11
1.4.4 ASIC 12
參考文獻(xiàn) 12
第2章 3D物體檢測 14
2.1 傳感器 15
2.1.1 攝像機 15
2.1.2 激光雷達(dá) 15
2.2 數(shù)據(jù)集 16
2.3 3D物體檢測方法 17
2.3.1 基于單目圖像的檢測方法 18
2.3.2 基于點云的檢測方法 19
2.3.3 基于融合的檢測方法 22
2.4 實戰(zhàn)項目:3D物體檢測 24
2.4.1 算法概述 25
2.4.2 點云預(yù)處理 26
2.4.3 網(wǎng)絡(luò)結(jié)構(gòu) 28
2.4.4 歐拉區(qū)域提議 28
2.4.5 錨盒設(shè)計 29
2.4.6 復(fù)角度回歸 30
2.4.7 損失函數(shù)的構(gòu)建 30
2.4.8 實驗結(jié)果 31
2.4.9 訓(xùn)練細(xì)節(jié) 31
2.4.10 鳥瞰檢測 32
2.4.11 3D對象檢測 32
2.5 未來研究展望 33
參考文獻(xiàn) 33
第3章 車道檢測 37
3.1 傳統(tǒng)圖像處理 38
3.2 實例:基于霍夫變換的車道檢測 39
3.2.1 霍夫變換 40
3.2.2 OpenCV車道檢測 41
3.3 實例:RANSAC算法及直線擬合 42
3.3.1 算法思路 43
3.3.2 用Python實現(xiàn)直線擬合 43
3.4 基于深度學(xué)習(xí) 45
3.5 多傳感器集成方案 47
3.6 車道檢測系統(tǒng)評估標(biāo)準(zhǔn) 49
3.6.1 車道檢測系統(tǒng)性能的影響因素 49
3.6.2 離線評估 50
3.6.3 在線評估 51
3.6.4 評估指標(biāo) 52
3.7 實戰(zhàn)項目:車道檢測 53
3.7.1 概述 53
3.7.2 車道點實例網(wǎng)絡(luò) 53
3.7.3 調(diào)整大小層 54
3.7.4 相同瓶頸層 55
3.7.5 下采樣瓶頸層和上采樣瓶頸層 56
3.7.6 損失函數(shù) 58
3.7.7 后處理方法 61
3.7.8 實驗結(jié)果 62
3.7.9 測試部分 62
參考文獻(xiàn) 63
第4章 運動規(guī)劃和控制 68
4.1 概述 68
4.2 傳統(tǒng)自動駕駛的規(guī)劃和決策層 69
4.2.1 路徑規(guī)劃 70
4.2.2 實例:路徑規(guī)劃Dijkstra算法 71
4.2.3 實例:路徑規(guī)劃A*算法 75
4.2.4 行為決策 77
4.2.5 運動規(guī)劃 77
4.2.6 實例:運動規(guī)劃 78
4.2.7 車輛控制 84
4.2.8 實例:模型預(yù)測控制 84
4.2.9 實例:PID控制 89
4.3 集成感知和規(guī)劃 90
實戰(zhàn)項目:NVIDIA的端到端自動駕駛 92
4.4 交互行為感知和規(guī)劃 94
4.4.1 合作與互動 95
4.4.2 博弈論方法 95
4.4.3 概率方法 96
4.4.4 部分可觀察的馬爾可夫決策過程 96
4.4.5 基于學(xué)習(xí)的方法 97
參考文獻(xiàn) 98
第5章 定位與建圖 102
5.1 SLAM問題 103
5.1.1 基于濾波器的SLAM方法 104
5.1.2 基于優(yōu)化的SLAM方法 108
5.2 自主駕駛的局限性 109
5.2.1 問題的提出 109
5.2.2 避免或減少漂移的影響 109
5.2.3 自動駕駛SLAM的評估標(biāo)準(zhǔn) 110
5.3 自動駕駛中的SLAM 111
5.3.1 重新定位和回環(huán)檢測 111
5.3.2 先前構(gòu)建的地圖中的定位 113
5.3.3 建立和使用未來地圖 115
5.3.4 利用當(dāng)前地圖資源 116
5.4 自動駕駛中的地圖表示 117
5.4.1 公制地圖模型 117
5.4.2 語義地圖模型 120
參考文獻(xiàn) 122
第6章 自動駕駛仿真器 128
6.1 最新的仿真器 129
6.1.1 AirSim 129
6.1.2 Apollo 129
6.1.3 CARLA 130
6.1.4 Udacity AV Simulator 131
6.1.5 Deep Traf?c 132
6.2 仿真器實戰(zhàn):CARLA 132
6.2.1 仿真引擎 132
6.2.2 使用CARLA評估自動駕駛方法 133
參考文獻(xiàn) 135
第7章 自動駕駛芯片 136
7.1 Mobileye EyeQ 137
7.2 NVIDIA 138
7.2.1 NVIDIA DRIVE AGX開發(fā)者套件 138
7.2.2 NVIDIA DRIVE軟件 138
7.3 TI Jacinto TDAx 141
7.4 實戰(zhàn)項目:360°環(huán)景系統(tǒng)與自動停車系統(tǒng) 142
7.4.1 自動停車與停車輔助系統(tǒng) 143
7.4.2 使用Jacinto TDA4VM處理器系列應(yīng)對環(huán)視和自動停車的挑戰(zhàn) 144
7.4.3 Jacinto TDA4VM SoC 145
7.5 Qualcomm 147
7.6 NXP 148
7.7 Xilinx Zynq-7000 148
7.8 Synopsys 149
第8章 深度學(xué)習(xí)模型優(yōu)化 151
8.1 模型壓縮和加速 152
8.1.1 參數(shù)修剪和共享 153
8.1.2 低秩分解 155
8.1.3 轉(zhuǎn)移/緊湊卷積濾波器 156
8.1.4 知識蒸餾 159
8.2 AI模型效率工具包 159
8.2.1 大規(guī)模節(jié)能AI 160
8.2.2 通過合作推進AI模型效率的研究 161
8.3 未來研究展望 161
參考文獻(xiàn) 162
第9章 深度學(xué)習(xí)芯片設(shè)計 166
9.1 概述 167
9.2 在CPU和GPU平臺上加速內(nèi)核計算 167
9.3 中科院計算所的深度學(xué)習(xí)芯片系列 168
9.3.1 卷積神經(jīng)網(wǎng)絡(luò)簡介 168
9.3.2 DaDianNao 170
9.3.3 ShiDianNao 171
9.3.4 寒武紀(jì)Cambricon-X 172
9.4 麻省理工學(xué)院的Eyeriss系列 172
9.4.1 卷積神經(jīng)網(wǎng)絡(luò)基本知識 172
9.4.2 Eyeriss 173
9.4.3 Eyeriss v2 174
9.5 谷歌的TPU芯片 177
9.5.1 TPU v1 177
9.5.2 TPU指令集 178
9.5.3 TPU的心臟:脈動陣列 179
9.5.4 TPU v2/v3 180
9.5.5 軟件架構(gòu) 180
9.6 近內(nèi)存計算 181
9.6.1 DRAM 181
9.6.2 SRAM 182
9.6.3 非易失性電阻存儲器 182
9.6.4 傳感器 183
9.7 DNN硬件的指標(biāo) 183
參考文獻(xiàn) 184
第10章 自動駕駛SoC設(shè)計 186
10.1 自動駕駛SoC設(shè)計流程 186
10.2 TI的Jacinto SoC平臺 187
10.3 Jacinto 7處理器的功能安全特性 190
10.3.1 功能安全 190
10.3.2 軟件功能安全 191
10.3.3 安全應(yīng)用部署 192
10.4 具有DNN和ISP的符合安全標(biāo)準(zhǔn)的多核SoC設(shè)計 194
10.4.1 ADAS圖像識別SoC 194
10.4.2 DNN加速器 195
10.4.3 具有安全BIST控制器的ISP 196
10.5 實例:NVIDIA深度學(xué)習(xí)加速器 197
10.5.1 NVDLA介紹 198
10.5.2 FireSim 199
10.5.3 NVDLA集成 199
10.5.4 性能分析 200
參考文獻(xiàn) 200
第11章 自動駕駛操作系統(tǒng) 202
11.1 概述 202
11.2 開源自動駕駛操作系統(tǒng) 204
11.2.1 Linux RTOS 204
11.2.2 ROS中間件 205
11.3 使用開源軟件開發(fā)自動駕駛技術(shù)的公司 206
11.3.1 百度 206
11.3.2 寶馬 207
11.3.3 Voyage 208
11.3.4 Tier IV 208
11.3.5 PolySync 209
11.3.6 Perrone Robotics 210
11.4 汽車硬實時操作系統(tǒng)和框架 211
11.4.1 BlackBerry QNX 211
11.4.2 EB robinos和EB corbos 212
11.4.3 Integrity RTOS 213
11.4.4 NVIDIA DriveWorks SDK 213
11.5 總結(jié) 214
第12章 自動駕駛軟件架構(gòu) 215
12.1 概述 215
12.2 基于ISO 26262的軟件開發(fā) 216
12.2.1 ISO 26262簡介 216
12.2.2 Synopsys軟件產(chǎn)品組合 216
12.2.3 ASIL 218
12.2.4 軟件架構(gòu)設(shè)計 218
12.2.5 軟件單元設(shè)計與實現(xiàn) 219
12.2.6 軟件單元測試 219
12.3 基于SAE J3016的組件架構(gòu)設(shè)計 220
12.3.1 功能組件 221
12.3.2 AUTOSAR 224
12.4 自動駕駛汽車的架構(gòu)設(shè)計與實現(xiàn) 225
12.4.1 硬件框架 226
12.4.2 軟件系統(tǒng)架構(gòu) 227
12.4.3 數(shù)據(jù)傳輸模塊 229
12.4.4 自動駕駛測試報告 229
參考文獻(xiàn) 229
第13章 5G C-V2X簡介 230
13.1 移動車聯(lián)網(wǎng) 230
13.2 C-V2X如何改變駕駛 231
13.2.1 避免碰撞 231
13.2.2 車隊行駛 232
13.2.3 協(xié)作駕駛 232
13.2.4 隊列警告 232
13.2.5 保護弱勢道路使用者 232
13.2.6 支持應(yīng)急服務(wù) 233
13.2.7 危險提前警告 233
13.2.8 越來越多的自動駕駛 233
13.3 C-V2X的優(yōu)勢 233
13.4 C-V2X的工作原理 235
13.4.1 直接通信 235
13.4.2 網(wǎng)絡(luò)通信 235
13.4.3 5G如何改變C-V2X 236
13.5 C-V2X部署計劃 236
13.5.1 中國引領(lǐng)潮流 236
13.5.2 澳大利亞——改善道路安全 237
13.5.3 美國——增長勢頭 237
13.5.4 歐洲——廣泛支持 238
13.6 總結(jié) 238