第1章 初識邊緣AI計算
1.1 人工智能驅動的邊緣計算
1.2 適配深度神經網絡的眾核架構
1.3 選擇合適的人工智能學習平臺
1.4 英偉達的“高效/易用/兼容”開發生態
1.5 學習邊緣AI計算從Jetson上手
1.6 Jetson的AIoT成功案例與配套資源
1.7 本章小結
第2章 為Jetson設備安裝開發環境
2.1 Jetpack提供完整的AIoT開發資源
2.2 用Jetpack安裝Jetson設備
2.3 首次啟動Jetson設備
2.4 遠程控制Jetson設備
2.5 檢查系統狀態的基礎指令
2.6 監控與調試Jetson設備的性能
2.7 配套的輔助工具
2.8 本章小結
第3章 體驗Jetpack開發環境
3.1 CUDA并行計算的加速性能
3.1.1 編譯CUDA samples
3.1.2 nbody(粒子碰撞模擬)
3.1.3 oceanFFT(海洋波動模擬)
3.1.4 smokeParticles(煙霧粒子光影模擬)
3.2 高階計算機視覺開發工具包
3.2.1 VisionWorks工具包與范例
3.2.2 VPI簡介
3.2.3 VPI簡易Python范例
3.3 攝像頭的選擇與調用
3.3.1 GStreamer流媒體框架
3.3.2 V4L2 應用庫
3.3.3 libargus 應用庫
3.4 檢測攝像頭
3.4.1 用v4l2-ctl檢測攝像頭參數
3.4.2 用NvGstCapture啟動攝像頭
3.4.3 用gst-launch啟動攝像頭
3.5 好用的OpenCV計算機視覺庫
3.5.1 通過UVC調用USB攝像頭
3.5.2 通過GStreamer調用CSI攝像頭
3.5.3 體驗三種計算機視覺算法
3.5.4 簡易的人臉定位應用
3.5.5 簡易的眼睛定位應用
3.6 本章小結
第4章 深度學習之推理識別
4.1 智能視覺類三大基礎應用
4.1.1 圖像分類(image classification)
4.1.2 物體檢測(object detection)
4.1.3 語義分割(semantic segmentation)
4.2 進入Hello AI World
4.2.1 完整的深度神經網絡(DNN)視覺庫
4.2.2 主要功能模塊
4.2.3 安裝Hello AI World項目
4.3 立即體驗深度學習推理效果
4.3.1 總體參數選項說明
4.3.2 imagenet成批圖像的分類檢測
4.3.3 imagenet的參數說明
4.3.4 detectnet物體檢測指令
4.3.5 其他深度學習推理應用
4.4 用Python開發自己的深度學習推理應用
4.4.1 10行代碼的物體識別應用
4.4.2 獲取推理檢測的信息
4.4.3 添加參數解析功能,擴大適用范圍
4.5 jetson.utils視覺處理工具
4.5.1 videoSource()負責全部輸入源處理
4.5.2 videoOutput()負責全部輸出處理
4.5.3 簡單的輸入/輸出范例
4.5.4 RTP/RTSP視頻流轉向應用
4.6 本章小結
第5章 深度學習之模型訓練
5.1 調試Jetson的模型訓練環境
5.2 圖像分類的模型訓練
5.2.1 整理圖像分類的數據
5.2.2 用train.py執行訓練模型
5.2.3 用訓練好的模型執行推理識別
5.2.4 從ImageNet獲取圖像
5.3 目標檢測的模型訓練
5.3.1 從Open Images獲取目標檢測數據
5.3.2 train_ssd.py參數說明
5.3.3 執行目標檢測的模型訓練
5.3.4 模型訓練的參數與時間比較
5.3.5 轉成ONNX格式進行推理識別測試
5.4 更豐富的數據集資源
5.4.1 VOC目錄結構與標注格式
5.4.2 從VOC數據集提取所需要的類別
5.4.3 從COCO數據集抽離類別并轉成VOC格式
5.4.4 從ImageNet數據集抽離類別并轉成VOC格式
5.4.5 匯總多種數據集來源進行模型訓練
5.5 對自己收集的數據進行標注
5.5.1 手動收集圖像數據
5.5.2 圖像標注工具
5.5.3 標注過程需要注意的重點
5.6 本章小結
第6章 在Jetson上執行YOLO算法
6.1 YOLO神經網絡簡史與算法演進
6.2 搭配YOLO算法的Darknet框架
6.2.1 安裝Darknet框架
6.2.2 Darknet使用說明
6.2.3 執行YOLO目標檢測的推理計算
6.3 用Darknet訓練YOLO口罩識別模型
6.3.1 在Jetson使用YOLOv4-Tiny訓練模型
6.3.2 整理數據集與格式轉換
6.3.3 修改YOLOv4-Tiny網絡結構文件
6.3.4 執行訓練模型的步驟
6.3.5 檢測口罩識別模型的效果與性能
6.4 調用Darknet的Python接口提取識別內容
6.4.1 darknet_video.py的使用方法
6.4.2 修改darknet_images.py獲取所識別物體的信息
6.4.3 用darknet_video.py獲取識別物件信息
6.5 本章小結
第7章 上手DeepStream智能分析工具
7.1 基于GStreamer框架的DeepStream
7.1.1 GStreamer框架簡介
7.1.2 GStreamer通道結構的組件與襯墊
7.1.3 GStreamer箱柜的管理機制
7.2 DeepStream的運作體系
7.2.1 DeepStream的功能組件
7.2.2 DeepStream的數據流
7.2.3 DeepStream組件與硬件引擎之對應
7.3 執行DeepStream經典范例
7.3.1 安裝DeepStream 開發套件
7.3.2 deepstream-app范例簡介
7.3.3 deepstream-app配置文件與相關資源
7.3.4 開始deepstream-app實驗
7.4 深入deepstream-app配置文件設置組
7.4.1 系統類設置組
7.4.2 輸入源設置組
7.4.3 預處理設置組
7.4.4 智能計算設置組
7.4.5 信息匯總之視覺顯示設置組
7.4.6 信息匯總之IoT傳送設置組
7.5 deepstream-app更多應用
7.5.1 添加多個輸入源
7.5.2 調整顯示輸出的細節
7.5.3 目標跟蹤功能
7.5.4 多神經網絡的組合識別
7.6 本章小結
第8章 開發DeepStream應用
8.1 開始DeepStream的Python應用
8.1.1 配置DeepStream的Python開發環境
8.1.2 從deepstream-test1上手
8.1.3 創建DeepStream應用的7步驟
8.2 DeepStream的輸入與輸出
8.2.1 添加USB攝像頭
8.2.2 添加多路多類型輸入源功能
8.2.3 動態增減數據源
8.2.4 添加RTSP視頻流輸出
8.3 DeepStream的智能計算插件
8.3.1 nvinfer推理插件的角色與工作原理
8.3.2 nvinfer控制參數與配置文件
8.3.3 nvtracker目標跟蹤算法
8.3.4 nvtracker控制參數與配置文件
8.4 DeepStream的智能范例說明
8.4.1 deepstream-test2多神經網絡組合識別
8.4.2 導入自定義YOLO神經網絡插件
8.4.3 視頻動態遮蔽私密信息
8.4.4 中文車牌號識別
8.4.5 善用NGC豐富的預訓練模型資源
8.5 DeepStream的統計分析插件
8.5.1 nvdsanalytics插件工作流與元數據
8.5.2 nvdsanalytics的配置文件
8.5.3 執行deepstream-nvdsanalytics范例
8.6 性能優化基本原則
8.7 本章小結
第9章 Jetbot智能車學習系統
9.1 安裝Jetbot操作環境
9.1.1 用鏡像文件燒錄
9.1.2 在Jetson用腳本安裝
9.1.3 下載容器鏡像安裝(推薦)
9.1.4 檢測環境:登錄Jupyter操作界面
9.2 安裝無線網與配置Wi-Fi連線
9.2.1 安裝無線網卡
9.2.2 為Jetbot配置獨立的無線連接方式
9.2.3 將Jetbot無線網卡設置為熱點
9.2.4 將控制臺PC無線網卡設置為熱點
9.2.5 通過便攜無線路由器協助
9.3 組裝Jetbot智能車所需要注意的細節
9.3.1 非標準件的注意細節
9.3.2 OLED顯示屏的選型與處理
9.3.3 TT電機的選購與測試
9.4 跑動Jetbot
9.4.1 基本運動(basic_motion)
9.4.2 游戲搖桿控制(teleoperation)
9.5 避撞功能
9.5.1 Jetbot環境識別原理
9.5.2 現場演示(live_demo)
9.5.3 數據采集
9.5.4 模型訓練
9.6 剖析Jetson的40針引腳
9.6.1 分清楚GPIO與SFIO的不同
9.6.2 jetson-io引腳配置工具
9.6.3 Jetson.GPIO應用開發庫
9.7 淺談I2C總線與周邊設備
9.7.1 I2C總線的特性
9.7.2 i2c-tools總線檢測工具
9.7.3 Jetbot控制OLED顯示屏的代碼
9.7.4 Jetbot的控制元件與代碼
9.8 本章小結