人工智慧邊緣運算開發實戰:基於 NVIDIA Jetson Nano

陳泳翰、桑圓圓

  • 出版商: 化學工業
  • 出版日期: 2024-02-01
  • 定價: $594
  • 售價: 8.5$505
  • 語言: 簡體中文
  • 頁數: 317
  • 裝訂: 平裝
  • ISBN: 7122437337
  • ISBN-13: 9787122437334
  • 相關分類: Edge computing人工智慧
  • 下單後立即進貨 (約4週~6週)

買這商品的人也買了...

商品描述

本書選取當下大熱的AIoT(人工智慧物聯網)為應用場景,以NVIDIA Jetson Nano為硬體平台,
系統介紹了人工智慧的開發知識,重點講解了人工智慧中邊緣運算技術的應用。
首先介紹了NVIDIA Jetson Nano開發平台和開發環境的配置,
然後透過特定的案例介紹了人工智慧邊緣運算在物件偵測、深度學習等領域的應用。 
本書適合人工智慧初學者、嵌入式開發技術人員、
對人工智慧技術有興趣的青少年及創客教師自學使用,同時也可用作高等院校人工智慧相關專業的教材及參考書。

目錄大綱

第1章初識邊緣AI運算001
1.1 人工智慧驅動的邊緣運算002
1.2 適配深度神經網路的眾核架構 003
1.3 選擇合適的人工智慧學習平台 006
1.4 英偉達的「高效/易用/相容」開發生態009
1.5 學習邊緣AI運算從Jetson上手 012
1.6 Jetson的AIoT成功案例與配套資源 015
1.7 本章小結017

第2章為Jetson設備安裝開發環境019
2.1 Jetpack提供完整的AIoT開發資源019
2.2 用Jetpack安裝Jetson設備022
2.3 首次啟動Jetson設備026
2.4 遠端控制Jetson設備027 
2.5 檢查系統狀態的基礎指令031
2.6 遠端控制Jetson設備Jetson設備的性能032
2.7 配套的輔助工具034
2.8 本章小結036

第3章體驗Jetpack開發環境037
3.1 CUDA並行計算的加速性能037
3.1.1 編譯CUDA samples 038
3.1.2 nbody(粒子碰撞模擬) 038
3.1.3 oceanFFT(海洋波動模擬) 040
3.1.4 smoke光影模擬) 041
3.2 高階電腦視覺開發工具包041
3.2.1 VisionWorks工具包與範例042
3.2.2 VPI簡介047
3.2.3 VPI簡易Python範例050
3.3 攝影機的選擇與呼叫053
3.311 GStreamer GStreamer GStreamer 054
3.3.2 V4L2 應用程式庫055
3.3.3 libargus 應用庫056
3.4 偵測相機057
3.4.1 用v4l2-ctl偵測相機參數057
3.4.2 用NvGstCapture啟動程式啟動
套件
用的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 完整的深度神經網路(DNN)視覺庫076
4.2.2 主要功能模組078
4.2.3 安裝Hello AI World專案079
4.3 立即體驗深度學習推理效果081
4.3.1 整體參數選項說明082
4.3.2 imagenet成批影像的分類偵測084
4.3.3 imagenet的參數說明086
4.3.4 detectnet物件偵測指令088
4.3.5 其他深度學習推理應用091
4.4 用Python開發自己的深度學習推理應用4094
4 . .1 10行程式碼的物件辨識應用094
4.4.2 取得推理偵測的資訊095
4.4.3 新增參數解析功能,擴大適用範圍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的模型訓練環境111
5.2 影像分類的模型訓練113
5.2.1 整理影像分類的資料 113
5.2.2 用train.py執行訓練模型114
5.2.3 用訓練好的模型執行推理辨識117
5.2.4 從ImageNet取得影像119
5.3 目標偵測的模型訓練122
5.3.1 從Open Images取得目標偵測資料123
5.3.2 train_ssd.py參數說明126
5.3.3 執行目標偵測的模型訓練128
5.3.4 模型訓練的參數與時間比較131
5.3.5 轉成ONNX格式進行推理辨識測試131
5.4 更豐富的資料集資源 134
5.4.1 VOC目錄結構與標註格式134
5.4.2 從VOC資料集擷取所需的類別136
5.4.3 從COCO資料集抽離類別並轉成VOC格式138
5.4.4 從ImageNet資料集抽離類別並轉成VOC格式140
5.4.5 匯總多種資料集來源進行模型訓練140
5.5 對自己收集的資料進行標註141
5.5.1 手動收集影像資料 141
5.5.2 影像標註工具142
5.5.3 標註過程需要注意的重點144
5.6 本章小結146

第6章在Jetson上執行YOLO演算法147
6.1 YOLO神經網路簡史與演算法演進147
6.2 搭配YOLO演算法的Darknet架構150
6.2.1 安裝Darknet框架150
6.2.2 Darknet使用說明152
6.2.3 執行YOLO目標偵測的推理計算154
6.3 用Darknet訓練YOLO口罩辨識模型157
6.3.1 在Jetson使用YOLOv4-Tiny訓練模型158
6.3.2 整理資料集與格式轉換159
6.3.3 修改YOLOv4-Tiny結構檔161
6.3.4 執行執行訓練模型的步驟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的資料流186
7.2.3 DeepStream元件與硬體引擎對應189
7.3 執行DeepStream經典範例191
7.3.1 安裝DeepStream 開發套件191
7.3.2 deepstream-app-app 193
7.3.3 deepstream-app設定檔與相關資源194
7.3.4 開始deepstream-app實驗197
7.4 深入deepstream-app設定檔設定組200
7.4.1 系統類別設定組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 調整顯示輸出的細節216
7.5.3 目標追蹤功能217
7.5.4 多神經網路的組合辨識219
7.6 本章小結221

第8章開發DeepStream應用223
8.1 開始DeepStream的Python應用223
8.1.1 設定DeepStream的Python開發環境224
8.1.2 從deepstream-test1上手226
8.1.3 創建DeepStream應用的7步驟228
8.230
8.2.1 新增USB攝影機231
8.2.2 增加多路多型輸入來源功能233
8.2.3 動態增減資料來源235
8.2.4 新增RTSP視訊串流輸出236
8.3 DeepStream的智慧型運算插件240
8.3.1 nvinfer推理插件的角色與工作原理240
8.3.2 nvinfer控制參數與設定檔242
8.3.3 nvtracker目標追蹤演算法246
8.3.4 nvtracker控制參數與設定檔248
8.4 DeepStream的智慧範例說明249
8.4.1 deepstream-test2多神經網路組合識別249
8.4.2 導入自訂YOLO神經網路插件251
8.4.3 視訊動態遮蔽私密資訊254
8.4.4 中文車牌號碼識別257
8.4.5 善用NGC豐富的預訓練模型資源262
8.5 DeepStream的統計分析插件263
8.5.1 nvdsanalytics插件工作流程與元資料264
8.5.2 nvdsanalytics的設定檔266
8.5.3 執行deepstream-nvdsanalytics範例267
8.6 效能最佳化基本原則270
8.7 本章小結271

第9章Jetbot智慧車學習系統273
9.1 安裝Jetbot操作環境274
9.1.1 用鏡像檔燒錄275
9.1.2 在Jetson用腳本安裝275
9.1.3 下載容器鏡像安裝(建議) 277
9.1.4 偵測環境:登入Jupyter操作介面277
9.2 安裝無線網路與設定Wi-Fi連線278
9.2.1 安裝無線網路卡278
9.2.2 為Jetbot設定獨立的無線連線方式280
9.2.3 將Jetbot無線網路卡設定為熱點280
9.2.4將控制台PC無線網卡設定為熱點282
9.2.5 透過便攜無線路由器協助283
9.3 組裝Jetbot智慧車所需注意的細節284
9.3.1 非標準零件的注意細節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.2 現場示範(live_demo) 297
9.5.3 資料擷取302
9.5.4 模式訓練304
9.6 剖析Jetson的40針腳304
9.6.1 分清楚GPIO與SFIO的不同306
9.6.2 jetson設定工具308
9.6.3 Jetson.GPIO應用開發庫309
9.7 淺談I2C匯流排與週邊設備311
9.7.1 I2C匯流排的特性311
9.7.2 i2c-tools匯流排偵測工具312
9.7.3 Jetbot 314
9.7.4 Jetbot的控制元件與代碼315
9.8 本章小結317