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