自動駕駛汽車視覺和行為實踐

《自動駕駛汽車視覺和行為實踐》是2023年機械工業出版社出版的圖書。

基本介紹

  • 中文名:自動駕駛汽車視覺和行為實踐
  • 出版時間:2023年8月1日
  • 出版社:機械工業出版社
  • ISBN:9787111729365
內容簡介,圖書目錄,

內容簡介

本書將使用OpenCV完成各種任務,包括行人檢測和車道檢測。本書將講述深度學習並介紹如何利用它進行圖像分類、對象檢測和語義分割,使用它來識別行人、汽車、道路、人行道和交通信號燈,同時幫助讀者了解一些有影響力的神經網路算法。本書中還將使用Carla模擬器通過行為克隆和PID控制器來控制汽車;了解網路協定、感測器、攝像頭以及使用雷射雷達來繪製周圍的世界並找到相應位置。本書適合具備任何一種程式語言基礎的程式設計師,以及車輛工程和自動駕駛相關專業的研究生閱讀使用。

圖書目錄

前 言
第一部分
OpenCV和感測器及信號
第1 章 OpenCV 基礎知識和攝像頭標定/ 002
1.1 技術需求/ 003
1.2 OpenCV 和NumPy 簡介/ 003
1.2.1 OpenCV 和NumPy / 003
1.2.2 圖像大小/ 003
1.2.3 灰度圖/ 004
1.2.4 RGB 圖/ 005
1.3 處理圖像檔案/ 006
1.4 處理視頻檔案/ 007
1.5 圖像處理/ 008
1.5.1 圖像翻轉/ 009
1.5.2 圖像模糊化/ 009
1.5.3 改變對比度、亮度和灰度係數/ 011
1.5.4 繪製矩形和文本/ 012
1.6 使用HOG 進行行人檢測/ 013
1.6.1 滑動視窗/ 013
1.6.2 使用OpenCV 中的HOG / 013
1.6.3 攝像頭簡介/ 014
1.6.4 攝像頭術語/ 015
1.6.5 攝像頭組件/ 019
1.6.6 選擇攝像頭的注意事項/ 019
1.6.7 攝像頭的優點和缺點/ 020
1.7 使用OpenCV 進行攝像頭標定/ 021
1.7.1 畸變檢測/ 022
1.7.2 校準/ 022
1.8 總結/ 023
1.9 問題/ 024
第2 章 理解和使用信號/ 025
2.1 技術需求/ 026
2.2 理解信號的類型/ 026
2.3 模擬信號與數位訊號/ 026
2.4 串列和並行/ 028
2.4.1 通用異步接收和傳送(UART) / 029
2.4.2 差分與單端/ 032
2.4.3 I2 C / 034
2.4.4 SPI / 036
2.5 基於幀的串列協定/ 039
2.5.1 理解CAN / 039
2.5.2 乙太網和網際網路協定/ 042
2.5.3 理解UDP / 044
2.5.4 理解TCP / 045
2.6 總結/ 048
2.7 問題/ 048
2.8 擴展閱讀/ 049
第3 章 車道檢測/ 050
3.1 技術需求/ 051
3.2 閾值處理/ 051
3.2.1 閾值在不同顏色空間中如何工作/ 051
3.2.2 RGB/BGR / 052
3.2.3 HLS / 053
3.2.4 HSV / 054
3.2.5 LAB / 054
3.2.6 YCbCr / 055
3.2.7 選擇通道/ 055
3.3 透視校正/ 055
3.4 邊緣檢測/ 057
3.4.1 插值閾值/ 059
3.4.2 組合閾值/ 060
3.5 利用直方圖確定車道線/ 061
3.6 滑動視窗算法/ 062
3.6.1 初始化/ 063
3.6.2 滑動視窗坐標/ 063
3.6.3 多項式擬合/ 064
3.7 增強視頻/ 065
3.8 滾動平均/ 066
3.9 總結/ 066
3.10 問題/ 067
第二部分
利用深度學習和神經網路改進自動
駕駛汽車的工作方式
第4 章 基於神經網路的深度學習/ 070
4.1  技術需求/ 071
4.2 理解機器學習和神經網路/ 071
4.2.1 神經網路/ 072
4.2.2  神經元/ 072
4.2.3 參數/ 074
4.2.4 深度學習的成功/ 074
4.3  了解卷積神經網路/ 075
4.3.1 卷積/ 075
4.3.2  為什麼卷積這么棒/ 076
4.4  Keras 和TensorFlow 入門/ 077
4.5  檢測MNIST 手寫數字/ 078
4.5.1 剛剛載入了什麼/ 078
4.5.2  訓練樣本和標籤/ 079
4.5.3 獨熱編碼/ 080
4.5.4 訓練數據集和測試數據集/ 081
4.6  確定神經網路模型/ 081
4.6.1 LeNet / 081
4.6.2  代碼/ 082
4.6.3 框架/ 083
4.6.4 訓練神經網路/ 084
4.6.5 CIFAR?10 數據集/ 087
4.7  總結/ 092
4.8 問題/ 092
4.9  擴展閱讀/ 092
第5 章 深度學習工作流/ 093
5.1  技術需求/ 094
5.2 獲取數據集/ 094
5.2.1 Keras 模組中的數據集/ 094
5.2.2  現有數據集/ 095
5.2.3 合成數據集/ 096
5.2.4 自定義數據集/ 096
5.3  理解三種數據集/ 096
5.4  理解分類器/ 098
5.4.1 生成真實數據集/ 099
5.4.2  數據增強/ 099
5.5  模型/ 101
5.5.1 調整卷積層/ 102
5.5.2  調整最大池化層/ 105
5.5.3 調整全連線層/ 106
5.5.4 如何訓練神經網路/ 107
5.5.5 隨機初始化/ 108
5.5.6 過擬合與欠擬合/ 109
5.6  可視化激活/ 110
5.7  推理/ 112
5.8 重訓練/ 113
5.9  總結/ 113
5??10  問題/ 114
第6 章 改進神經網路/ 115
6.1  技術需求/ 116
6.2 更大的模型/ 116
6.2.1 出發點/ 116
6.2.2  提高速度/ 117
6.2.3 增加深度/ 119
6.3  更高效的神經網路/ 121
6.4  通過批歸一化構建更智慧型的
神經網路/ 124
6.5  早停法/ 128
6.6  通過數據增強改進數據集/ 128
6.7  使用隨機失活提高驗證準確率/ 131
6.7.1 將模型套用於MNIST 數據集/ 135
6.7.2  現在輪到你了/ 136
6.8 總結/ 137
6.9  問題/ 137
第7 章 檢測行人和交通信號燈/ 138
7.1  技術需求/ 139
7.2 使用SSD 檢測行人、車輛和交通信號燈/ 139
7.2.1 使用Carla 模擬器收集圖像/ 139
7.2.2  解讀SSD / 143
7.2.3 探索TensorFlow 檢測模型庫/ 143
7.2.4 下載和載入SSD / 145
7.2.5 運行SSD / 145
7.2.6 圖像注釋/ 147
7.3  檢測交通信號燈的顏色/ 148
7.3.1 創建交通信號燈數據集/ 148
7.3.2  解讀遷移學習/ 150
7.3.3 了解ImageNet / 151
7.3.4 關於AlexNet 的探究/ 152
7.3.5 用Inception 來進行圖像分類/ 154
7.3.6 利用Inception 進行遷移學習/ 155
7.3.7 將數據集輸入Inception / 157
7.3.8 遷移學習的性能表現/ 158
7.3.9 改善遷移學習/ 159
7.4  識別交通信號燈及其顏色/ 161
7.5  總結/ 162
7.6  問題/ 163
7.7  擴展閱讀/ 163
第8 章 行為克隆/ 164
8.1  技術需求/ 165
8.2 教神經網路如何使用行為
克隆駕駛/ 165
8.3  DAVE?2 簡介/ 166
8.3.1 初識manual_control.py / 167
8.3.2  錄製一段視頻/ 169
8.3.3 神經網路建模/ 176
8.3.4 訓練回歸神經網路/ 177
8.3.5 可視化顯著圖/ 179
8.4  神經網路與Carla 的集成/ 184
8.5  自動駕駛/ 188
8.5.1 使用生成器在更大的數據集上
訓練/ 189
8.5.2  一種複雜的數據增強方法/ 190
8.6  總結/ 191
8.7  問題/ 191
8.8 擴展閱讀/ 191
第9 章 語義分割/ 192
9.1  技術需求/ 193
9.2 引入語義分割/ 193
9.2.1 確定目標/ 194
9.2.2  收集數據集/ 194
9.2.3 修改synchronous_mode??py / 196
9.3  理解用於分類的DenseNet / 197
9.3.1 總覽DenseNet 的架構/ 197
9.3.2  理解密集塊/ 198
9.4  使用CNN 分割圖像/ 201
9.5  調整DenseNet 進行語義分割/ 201
9.6  編寫FC?DenseNet 模組/ 202
9.6.1 組合構件/ 204
9.6.2  為神經網路提供輸入/ 205
9.6.3 運行神經網路/ 208
9.7  改善效果較差的語義分割/ 211
9.8 總結/ 212
9.9  問題/ 212
9??10  擴展閱讀/ 212
第三部分
建圖和控制
第10 章 轉向、加速和制動控制/ 214
10.1  技術需求/ 215
10.2 為什麼需要控制/ 215
10.3  控制器類型/ 216
10.3.1 PID 控制器/ 216
10.3.2  MPC / 220
10.4  在Carla 中實現PID 控制器控制/ 224
10.4.1 安裝Carla / 224
10.4.2  複製Packt?Town04 ?PID.py 腳本/ 225
10.4.3 瀏覽Packt?Town04 ?PID.py 腳本/ 225
10.4.4 PID 縱向控制器/ 228
10.4.5 PID 橫向控制器/ 230
10.4.6 運行腳本/ 232
10.5  C++ 中的MPC 實例/ 233
10.6  總結/ 237
10.7  問題/ 237
10.8 擴展閱讀/ 237
第11 章 環境建圖/ 238
11.1  技術需求/ 239
11.2 為什麼需要地圖和定位/ 239
11.2.1 地圖/ 239
11.2.2  定位/ 240
11.3  建圖和定位的類型/ 240
11.4  開源建圖工具/ 244
11.5  基於Ouster 雷射雷達和Google Cartographer 的SLAM / 245
11.5.1 Ouster 感測器/ 245
11.5.2  代碼倉/ 245
11.5.3 從cartographer_ros 開始/ 245
11.5.4 Docker 鏡像/ 251
11.6  總結/ 256
11.7  問題/ 257
11.8 擴展閱讀/ 257
答 案/ 258
第1 章/ 258
第2 章/ 258
第3 章/ 259
第4 章/ 259
第5 章/ 259
第6 章/ 259
第7 章/ 260
第8 章/ 260
第9 章/ 260
第10 章/ 261
第11 章/ 261

相關詞條

熱門詞條

聯絡我們