人工智能邊緣計算開發(fā)實戰(zhàn):基于NVIDIA Jetson Nano
定 價:99 元
- 作者:陳泳翰、桑圓圓 編著
- 出版時間:2024/2/1
- ISBN:9787122437334
- 出 版 社:化學工業(yè)出版社
- 中圖法分類:TP18
- 頁碼:318
- 紙張:
- 版次:01
- 開本:小16開
本書選取當下大熱的AIoT(人工智能物聯(lián)網(wǎng))為應(yīng)用場景,以NVIDIA Jetson Nano為硬件平臺,系統(tǒng)介紹了人工智能的開發(fā)知識,重點講解了人工智能中邊緣計算技術(shù)的應(yīng)用。首先介紹了NVIDIA Jetson Nano開發(fā)平臺和開發(fā)環(huán)境的配置,然后通過具體的案例介紹了人工智能邊緣計算在物體檢測、深度學習等領(lǐng)域的應(yīng)用。
本書適合人工智能初學者、嵌入式開發(fā)技術(shù)人員、對人工智能技術(shù)感興趣的青少年及創(chuàng)客教師自學使用,同時也可用作高等院校人工智能相關(guān)專業(yè)的教材及參考書。
第1章 初識邊緣AI計算 001
1.1 人工智能驅(qū)動的邊緣計算 002
1.2 適配深度神經(jīng)網(wǎng)絡(luò)的眾核架構(gòu) 003
1.3 選擇合適的人工智能學習平臺 006
1.4 英偉達的“高效/易用/兼容”開發(fā)生態(tài) 009
1.5 學習邊緣AI計算從Jetson上手 012
1.6 Jetson的AIoT成功案例與配套資源 015
1.7 本章小結(jié) 017
第2章 為Jetson設(shè)備安裝開發(fā)環(huán)境 019
2.1 Jetpack提供完整的AIoT開發(fā)資源 019
2.2 用Jetpack安裝Jetson設(shè)備 022
2.3 首次啟動Jetson設(shè)備 026
2.4 遠程控制Jetson設(shè)備 027
2.5 檢查系統(tǒng)狀態(tài)的基礎(chǔ)指令 031
2.6 監(jiān)控與調(diào)試Jetson設(shè)備的性能 032
2.7 配套的輔助工具 034
2.8 本章小結(jié) 036
第3章 體驗Jetpack開發(fā)環(huán)境 037
3.1 CUDA并行計算的加速性能 037
3.1.1 編譯CUDA samples 038
3.1.2 nbody(粒子碰撞模擬) 038
3.1.3 oceanFFT(海洋波動模擬) 040
3.1.4 smokeParticles(煙霧粒子光影模擬) 041
3.2 高階計算機視覺開發(fā)工具包 041
3.2.1 VisionWorks工具包與范例 042
3.2.2 VPI簡介 047
3.2.3 VPI簡易Python范例 050
3.3 攝像頭的選擇與調(diào)用 053
3.3.1 GStreamer流媒體框架 054
3.3.2 V4L2 應(yīng)用庫 055
3.3.3 libargus 應(yīng)用庫 056
3.4 檢測攝像頭 057
3.4.1 用v4l2-ctl檢測攝像頭參數(shù) 057
3.4.2 用NvGstCapture啟動攝像頭 059
3.4.3 用gst-launch啟動攝像頭 060
3.5 好用的OpenCV計算機視覺庫 061
3.5.1 通過UVC調(diào)用USB攝像頭 062
3.5.2 通過GStreamer調(diào)用CSI攝像頭 063
3.5.3 體驗三種計算機視覺算法 064
3.5.4 簡易的人臉定位應(yīng)用 066
3.5.5 簡易的眼睛定位應(yīng)用 067
3.6 本章小結(jié) 068
第4章 深度學習之推理識別 070
4.1 智能視覺類三大基礎(chǔ)應(yīng)用 071
4.1.1 圖像分類(image classif?ication) 071
4.1.2 物體檢測(object detection) 073
4.1.3 語義分割(semantic segmentation) 074
4.2 進入Hello AI World 076
4.2.1 完整的深度神經(jīng)網(wǎng)絡(luò)(DNN)視覺庫 076
4.2.2 主要功能模塊 078
4.2.3 安裝Hello AI World項目 079
4.3 立即體驗深度學習推理效果 081
4.3.1 總體參數(shù)選項說明 082
4.3.2 imagenet成批圖像的分類檢測 084
4.3.3 imagenet的參數(shù)說明 086
4.3.4 detectnet物體檢測指令 088
4.3.5 其他深度學習推理應(yīng)用 091
4.4 用Python開發(fā)自己的深度學習推理應(yīng)用 094
4.4.1 10行代碼的物體識別應(yīng)用 094
4.4.2 獲取推理檢測的信息 095
4.4.3 添加參數(shù)解析功能,擴大適用范圍 097
4.5 jetson.utils視覺處理工具 100
4.5.1 videoSource()負責全部輸入源處理 101
4.5.2 videoOutput() 負責全部輸出處理 104
4.5.3 簡單的輸入/輸出范例 105
4.5.4 RTP/RTSP視頻流轉(zhuǎn)向應(yīng)用 106
4.6 本章小結(jié) 109
第5章 深度學習之模型訓練 110
5.1 調(diào)試Jetson的模型訓練環(huán)境 111
5.2 圖像分類的模型訓練 113
5.2.1 整理圖像分類的數(shù)據(jù) 113
5.2.2 用train.py執(zhí)行訓練模型 114
5.2.3 用訓練好的模型執(zhí)行推理識別 117
5.2.4 從ImageNet獲取圖像 119
5.3 目標檢測的模型訓練 122
5.3.1 從Open Images獲取目標檢測數(shù)據(jù) 123
5.3.2 train_ssd.py參數(shù)說明 126
5.3.3 執(zhí)行目標檢測的模型訓練 128
5.3.4 模型訓練的參數(shù)與時間比較 131
5.3.5 轉(zhuǎn)成ONNX格式進行推理識別測試 131
5.4 更豐富的數(shù)據(jù)集資源 134
5.4.1 VOC目錄結(jié)構(gòu)與標注格式 134
5.4.2 從VOC數(shù)據(jù)集提取所需要的類別 136
5.4.3 從COCO數(shù)據(jù)集抽離類別并轉(zhuǎn)成VOC格式 138
5.4.4 從ImageNet數(shù)據(jù)集抽離類別并轉(zhuǎn)成VOC格式 140
5.4.5 匯總多種數(shù)據(jù)集來源進行模型訓練 140
5.5 對自己收集的數(shù)據(jù)進行標注 141
5.5.1 手動收集圖像數(shù)據(jù) 141
5.5.2 圖像標注工具 142
5.5.3 標注過程需要注意的重點 144
5.6 本章小結(jié) 146
第6章 在Jetson上執(zhí)行YOLO算法 147
6.1 YOLO神經(jīng)網(wǎng)絡(luò)簡史與算法演進 147
6.2 搭配YOLO算法的Darknet框架 150
6.2.1 安裝Darknet框架 150
6.2.2 Darknet使用說明 152
6.2.3 執(zhí)行YOLO目標檢測的推理計算 154
6.3 用Darknet訓練YOLO口罩識別模型 157
6.3.1 在Jetson使用YOLOv4-Tiny訓練模型 158
6.3.2 整理數(shù)據(jù)集與格式轉(zhuǎn)換 159
6.3.3 修改YOLOv4-Tiny網(wǎng)絡(luò)結(jié)構(gòu)文件 161
6.3.4 執(zhí)行訓練模型的步驟 163
6.3.5 檢測口罩識別模型的效果與性能 165
6.4 調(diào)用Darknet的Python接口提取識別內(nèi)容 168
6.4.1 darknet_video.py的使用方法 168
6.4.2 修改darknet_images.py獲取所識別物體的信息 170
6.4.3 用darknet_video.py獲取識別物件信息 172
6.5 本章小結(jié) 173
第7章 上手DeepStream智能分析工具 175
7.1 基于GStreamer框架的DeepStream 177
7.1.1 GStreamer框架簡介 177
7.1.2 GStreamer通道結(jié)構(gòu)的組件與襯墊 179
7.1.3 GStreamer箱柜的管理機制 180
7.2 DeepStream的運作體系 183
7.2.1 DeepStream的功能組件 183
7.2.2 DeepStream的數(shù)據(jù)流 186
7.2.3 DeepStream組件與硬件引擎之對應(yīng) 189
7.3 執(zhí)行DeepStream經(jīng)典范例 191
7.3.1 安裝DeepStream 開發(fā)套件 191
7.3.2 deepstream-app范例簡介 193
7.3.3 deepstream-app配置文件與相關(guān)資源 194
7.3.4 開始deepstream-app實驗 197
7.4 深入deepstream-app配置文件設(shè)置組 200
7.4.1 系統(tǒng)類設(shè)置組 201
7.4.2 輸入源設(shè)置組 202
7.4.3 預(yù)處理設(shè)置組 205
7.4.4 智能計算設(shè)置組 206
7.4.5 信息匯總之視覺顯示設(shè)置組 209
7.4.6 信息匯總之IoT傳送設(shè)置組 211
7.5 deepstream-app更多應(yīng)用 213
7.5.1 添加多個輸入源 214
7.5.2 調(diào)整顯示輸出的細節(jié) 216
7.5.3 目標跟蹤功能 217
7.5.4 多神經(jīng)網(wǎng)絡(luò)的組合識別 219
7.6 本章小結(jié) 221
第8章 開發(fā)DeepStream應(yīng)用 223
8.1 開始DeepStream的Python應(yīng)用 223
8.1.1 配置DeepStream的Python開發(fā)環(huán)境 224
8.1.2 從deepstream-test1上手 226
8.1.3 創(chuàng)建DeepStream應(yīng)用的7步驟 228
8.2 DeepStream的輸入與輸出 230
8.2.1 添加USB攝像頭 231
8.2.2 添加多路多類型輸入源功能 233
8.2.3 動態(tài)增減數(shù)據(jù)源 235
8.2.4 添加RTSP視頻流輸出 236
8.3 DeepStream的智能計算插件 240
8.3.1 nvinfer推理插件的角色與工作原理 240
8.3.2 nvinfer控制參數(shù)與配置文件 242
8.3.3 nvtracker目標跟蹤算法 246
8.3.4 nvtracker控制參數(shù)與配置文件 248
8.4 DeepStream的智能范例說明 249
8.4.1 deepstream-test2多神經(jīng)網(wǎng)絡(luò)組合識別 249
8.4.2 導(dǎo)入自定義YOLO神經(jīng)網(wǎng)絡(luò)插件 251
8.4.3 視頻動態(tài)遮蔽私密信息 254
8.4.4 中文車牌號識別 257
8.4.5 善用NGC豐富的預(yù)訓練模型資源 262
8.5 DeepStream的統(tǒng)計分析插件 263
8.5.1 nvdsanalytics插件工作流與元數(shù)據(jù) 264
8.5.2 nvdsanalytics的配置文件 266
8.5.3 執(zhí)行deepstream-nvdsanalytics范例 267
8.6 性能優(yōu)化基本原則 270
8.7 本章小結(jié) 271
第9章 Jetbot智能車學習系統(tǒng) 273
9.1 安裝Jetbot操作環(huán)境 274
9.1.1 用鏡像文件燒錄 275
9.1.2 在Jetson用腳本安裝 275
9.1.3 下載容器鏡像安裝(推薦) 277
9.1.4 檢測環(huán)境:登錄Jupyter操作界面 277
9.2 安裝無線網(wǎng)與配置Wi-Fi連線 278
9.2.1 安裝無線網(wǎng)卡 278
9.2.2 為Jetbot配置獨立的無線連接方式 280
9.2.3 將Jetbot無線網(wǎng)卡設(shè)置為熱點 280
9.2.4 將控制臺PC無線網(wǎng)卡設(shè)置為熱點 282
9.2.5 通過便攜無線路由器協(xié)助 283
9.3 組裝Jetbot智能車所需要注意的細節(jié) 284
9.3.1 非標準件的注意細節(jié) 285
9.3.2 OLED顯示屏的選型與處理 287
9.3.3 TT電機的選購與測試 288
9.4 跑動Jetbot 289
9.4.1 基本運動(basic_motion) 290
9.4.2 游戲搖桿控制(teleoperation) 293
9.5 避撞功能 295
9.5.1 Jetbot環(huán)境識別原理 295
9.5.2 現(xiàn)場演示(live_demo) 297
9.5.3 數(shù)據(jù)采集 302
9.5.4 模型訓練 304
9.6 剖析Jetson的40針引腳 304
9.6.1 分清楚GPIO與SFIO的不同 306
9.6.2 jetson-io引腳配置工具 308
9.6.3 Jetson.GPIO應(yīng)用開發(fā)庫 309
9.7 淺談I2C總線與周邊設(shè)備 311
9.7.1 I2C總線的特性 311
9.7.2 i2c-tools總線檢測工具 312
9.7.3 Jetbot控制OLED顯示屏的代碼 314
9.7.4 Jetbot的控制元件與代碼 315
9.8 本章小結(jié) 317