人工智能邊緣計算開發(fā)實戰(zhàn):基于NVIDIA Jetson Nano
定 價:99 元
- 作者:陳泳翰、桑圓圓 編著
- 出版時間:2024/2/1
- ISBN:9787122437334
- 出 版 社:化學工業(yè)出版社
- 中圖法分類:TP18
- 頁碼:318
- 紙張:
- 版次:01
- 開本:小16開
本書選取當下大熱的AIoT(人工智能物聯(lián)網(wǎng))為應用場景,以NVIDIA Jetson Nano為硬件平臺,系統(tǒng)介紹了人工智能的開發(fā)知識,重點講解了人工智能中邊緣計算技術的應用。首先介紹了NVIDIA Jetson Nano開發(fā)平臺和開發(fā)環(huán)境的配置,然后通過具體的案例介紹了人工智能邊緣計算在物體檢測、深度學習等領域的應用。
本書適合人工智能初學者、嵌入式開發(fā)技術人員、對人工智能技術感興趣的青少年及創(chuàng)客教師自學使用,同時也可用作高等院校人工智能相關專業(yè)的教材及參考書。
第1章 初識邊緣AI計算 001
1.1 人工智能驅動的邊緣計算 002
1.2 適配深度神經網(wǎng)絡的眾核架構 003
1.3 選擇合適的人工智能學習平臺 006
1.4 英偉達的“高效/易用/兼容”開發(fā)生態(tài) 009
1.5 學習邊緣AI計算從Jetson上手 012
1.6 Jetson的AIoT成功案例與配套資源 015
1.7 本章小結 017
第2章 為Jetson設備安裝開發(fā)環(huán)境 019
2.1 Jetpack提供完整的AIoT開發(fā)資源 019
2.2 用Jetpack安裝Jetson設備 022
2.3 首次啟動Jetson設備 026
2.4 遠程控制Jetson設備 027
2.5 檢查系統(tǒng)狀態(tài)的基礎指令 031
2.6 監(jiān)控與調試Jetson設備的性能 032
2.7 配套的輔助工具 034
2.8 本章小結 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 攝像頭的選擇與調用 053
3.3.1 GStreamer流媒體框架 054
3.3.2 V4L2 應用庫 055
3.3.3 libargus 應用庫 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調用USB攝像頭 062
3.5.2 通過GStreamer調用CSI攝像頭 063
3.5.3 體驗三種計算機視覺算法 064
3.5.4 簡易的人臉定位應用 066
3.5.5 簡易的眼睛定位應用 067
3.6 本章小結 068
第4章 深度學習之推理識別 070
4.1 智能視覺類三大基礎應用 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 完整的深度神經網(wǎng)絡(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 其他深度學習推理應用 091
4.4 用Python開發(fā)自己的深度學習推理應用 094
4.4.1 10行代碼的物體識別應用 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視頻流轉向應用 106
4.6 本章小結 109
第5章 深度學習之模型訓練 110
5.1 調試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 轉成ONNX格式進行推理識別測試 131
5.4 更豐富的數(shù)據(jù)集資源 134
5.4.1 VOC目錄結構與標注格式 134
5.4.2 從VOC數(shù)據(jù)集提取所需要的類別 136
5.4.3 從COCO數(shù)據(jù)集抽離類別并轉成VOC格式 138
5.4.4 從ImageNet數(shù)據(jù)集抽離類別并轉成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 本章小結 146
第6章 在Jetson上執(zhí)行YOLO算法 147
6.1 YOLO神經網(wǎng)絡簡史與算法演進 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ù)集與格式轉換 159
6.3.3 修改YOLOv4-Tiny網(wǎng)絡結構文件 161
6.3.4 執(zhí)行訓練模型的步驟 163
6.3.5 檢測口罩識別模型的效果與性能 165
6.4 調用Darknet的Python接口提取識別內容 168
6.4.1 darknet_video.py的使用方法 168
6.4.2 修改darknet_images.py獲取所識別物體的信息 170
6.4.3 用darknet_video.py獲取識別物件信息 172
6.5 本章小結 173
第7章 上手DeepStream智能分析工具 175
7.1 基于GStreamer框架的DeepStream 177
7.1.1 GStreamer框架簡介 177
7.1.2 GStreamer通道結構的組件與襯墊 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組件與硬件引擎之對應 189
7.3 執(zhí)行DeepStream經典范例 191
7.3.1 安裝DeepStream 開發(fā)套件 191
7.3.2 deepstream-app范例簡介 193
7.3.3 deepstream-app配置文件與相關資源 194
7.3.4 開始deepstream-app實驗 197
7.4 深入deepstream-app配置文件設置組 200
7.4.1 系統(tǒng)類設置組 201
7.4.2 輸入源設置組 202
7.4.3 預處理設置組 205
7.4.4 智能計算設置組 206
7.4.5 信息匯總之視覺顯示設置組 209
7.4.6 信息匯總之IoT傳送設置組 211
7.5 deepstream-app更多應用 213
7.5.1 添加多個輸入源 214
7.5.2 調整顯示輸出的細節(jié) 216
7.5.3 目標跟蹤功能 217
7.5.4 多神經網(wǎng)絡的組合識別 219
7.6 本章小結 221
第8章 開發(fā)DeepStream應用 223
8.1 開始DeepStream的Python應用 223
8.1.1 配置DeepStream的Python開發(fā)環(huán)境 224
8.1.2 從deepstream-test1上手 226
8.1.3 創(chuàng)建DeepStream應用的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多神經網(wǎng)絡組合識別 249
8.4.2 導入自定義YOLO神經網(wǎng)絡插件 251
8.4.3 視頻動態(tài)遮蔽私密信息 254
8.4.4 中文車牌號識別 257
8.4.5 善用NGC豐富的預訓練模型資源 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 本章小結 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)卡設置為熱點 280
9.2.4 將控制臺PC無線網(wǎng)卡設置為熱點 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應用開發(fā)庫 309
9.7 淺談I2C總線與周邊設備 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 本章小結 317