第1篇 一階段物件辨識神經網路的結構設計
第1章 物件辨識的競賽和資料集
1.1電腦視覺座標系的約定和概念
1.1.1 圖型的座標系約定
1.1.2 矩形框的描述方法約定
1.2 PASCAL VOC競賽和資料集
1.2.1 PASCAL VOC競賽任務和資料集簡介
1.2.2 PASCAL VOC2007資料集探索
1.3 MS COCO挑戰賽和資料集
1.3.1 MS COCO挑戰賽的競賽任務
1.3.2 MS COCO資料集簡介
1.4 物件辨識標注的解析和統計
1.4.1 XML檔案的格式
1.4.2 XML檔案解析和資料均衡性統計
第2章 物件辨識神經網路整體說明
2.1 幾個著名的物件辨識神經網路
2.1.1 R-CNN家族神經網路簡介
2.1.2 YOLO和SSD神經網路簡介
2.1.3 CenterNet神經網路簡介
2.1.4 U-Net神經網路簡介
2.2 物件辨識神經網路分類和高階API資源
2.3 矩形框的交並比評價指標和實現
第3章 一階段物件辨識神經網路的特徵融合和中段網路
3.1 一階段物件辨識神經網路的整體結構
3.2 一階段物件辨識神經網路的若干中段網路介紹
3.2.1 單向融合的中段網路
3.2.2 簡單雙向融合的中段網路
3.2.3 複雜雙向融合的中段網路
3.3 不同融合方案中段網路的關係和應用
3.4 YOLO的多尺度特徵融合中段網路案例
3.4.1 YOLOV3的中段網路及實現
3.4.2 YOLOV4的中段網路PANet及實現
3.4.3 YOLOV3-tiny和YOLOV4-tiny版本的中段網路及實現
3.5 神經網路輸出的解碼
3.5.1 融合特徵圖的幾何含義
3.5.2 矩形框中心點座標的解碼
3.5.3 矩形框寬度和高度的解碼
3.5.4 前背景機率和分類機率的解碼
3.5.5 矩形框角點座標和解碼函式整體輸出
第4章 一階段物件辨識神經網路典型案例——YOLO解析
4.1 YOLO家族物件辨識神經網路簡介
4.2 先驗錨框和YOLO神經網路的檢測想法
4.2.1 用人為設定方式找到的先驗錨框
4.2.2 用聚類回歸方式找到的先驗錨框
4.2.3 YOLO的先驗錨框編號
4.2.4 YOLO的XYSCALE和縮放比參數
4.3 建立YOLO神經網路
4.3.1 根據選擇確定YOLO神經網路參數
4.3.2 建立骨幹網路、中段網路和預測網路
4.3.3 加上解碼網路後建立完整的YOLO模型
4.4 YOLO神經網路的遷移學習和權重載入
4.4.1 骨幹網路關鍵層的起止編號
4.4.2 中段網路和預測網路關鍵層的起止編號
4.4.3 YOLO模型的權重載入
4.5 原版YOLO模型的預測
4.5.1 原版YOLO模型的建立和參數載入
4.5.2 神經網路的輸入/輸出資料重組
4.6 NMS演算法的原理和預測結果視覺化
4.6.1 傳統NMS演算法原理
4.6.2 NMS演算法的變種
4.6.3 預測結果的篩選和視覺化
4.7 YOLO模型的多個衍生變種簡介
4.8 YOLO模型的發展與展望
第2篇 YOLO神經網路的損失函式和訓練
第5章 將資料資源製作成標準TFRecord資料集檔案
5.1 資料資源的載入
5.2 資料資源的解析和提取
5.3 TFRecord資料集檔案的製作
5.4 單樣本的example物件製作
5.5 遍歷全部樣本製作完整資料集
5.6 從資料集提取樣本進行核對
第6章 資料集的後續處理
6.1 資料集的載入和打包
6.1.1 資料集的載入和矩陣化
6.1.2 圖型矩陣尺寸的標準化
6.1.3 真實矩形框標注矩陣尺寸的標準化
6.1.4 資料集的打包處理
6.2 將原始資料集打包為可計算資料集
6.2.1 計算真實矩形框與先驗錨框的匹配度排名
6.2.2 找到真實矩形框所對應的網格下的先驗錨框
6.2.3 可計算資料集測試
第7章 一階段物件辨識的損失函式的設計和實現
7.1 損失函式框架和輸入資料的合理性判別
7.2 真實資料和預測資料的對應和分解
7.3 預測矩形框的前背景歸類和權重分配
7.4 預測矩形框的誤差度量
7.4.1 用中心點表示的位置誤差
7.4.2 用寬度和高度表示的位置誤差
7.4.3 用通用交並比表示的矩形框誤差
7.4.4 用距離交並比表示的矩形框誤差
7.4.5 用完整交並比表示的矩形框誤差
7.4.6 用交並比量化矩形框預測誤差的實踐
7.5 前景和背景的預測誤差
7.5.1 前景誤差和背景誤差的定義
7.5.2 樣本均衡原理和Focal-Loss應用
7.6 分類預測誤差
7.7 總誤差的合併和數值合理性確認
第8章 YOLO神經網路的訓練
8.1 資料集和模型準備
8.1.1 參數配置
8.1.2 資料集前置處理
8.1.3 模型參數載入和凍結
8.2 動態模式訓練
8.2.1 監控指標的設計和日誌儲存
8.2.2 動態模式下神經網路的訓練和偵錯
8.3 訓練中非法數值的監控和偵錯
8.3.1 發現和監控非法數值計算結果
8.3.2 計算結果出現非法數值的原因和對策
8.4 靜態模式訓練和TensorBoard監控
第3篇 物件辨識神經網路的雲端和邊緣端部署
第9章 一階段物件辨識神經網路的雲端訓練和部署
9.1 一階段物件辨識神經網路的推理模型設計
9.1.1 一階段物件辨識神經網路的推理形態
9.1.2 推理場景下的資料重網路拓樸路
9.1.3 構造推理場景下的YOLO模型函式
9.1.4 構造和測試YOLO推理模型
9.2 物件辨識推理模型的雲端部署
9.2.1 亞馬遜EC2雲端運算實例選型
9.2.2 使用雲端伺服器部署模型並回應推理請求
9.3 在亞馬遜SageMakerStudio上訓練雲端運算模型
第10章 神經網路的INT8全整數量化原理
10.1 神經網路量化模型的基本概念
10.1.1 神經網路量化模型速覽和視覺化
10.1.2 浮點數值的量化儲存和計算原理
10.2 神經網路量化模型的製作和分析
10.2.1 運算元的映射和合併
10.2.2 量化參數搜索和代表資料集
10.2.3 TFLite量化模型的運算元和張量分析
10.3 量化性能分析和量化模型的逐層偵錯
10.3.1 量化信噪比分析原理
10.3.2 量化模型的單層誤差偵錯
10.3.3 量化模型的誤差累積偵錯
10.4 不支援運算元的替換技巧
10.4.1 大動態範圍非線性運算元替換原理
10.4.2 大動態範圍非線性運算元替換效果
第11章 以YOLO和Edge TPU為例的邊緣計算實戰
11.1 TensorFlow模型的量化
11.1.1 量化感知訓練獲得INT8整數模型
11.1.2 訓練後量化獲得INT8整數模型
11.2 神經網路模型的編譯
11.2.1 模型編譯的工作原理
11.2.2 在Edge TPU上部署模型的注意事項
11.3 YOLO物件辨識模型的量化和編譯
11.3.1 YOLO變種版本選擇和骨幹網路修改
11.3.2 針對硬體限制進行解碼網路的修改
11.3.3 預測矩陣的整理重組
11.3.4 YOLO推理模型的建立
11.3.5 YOLO模型的量化
11.3.6 量化模型的測試和信噪比分析
11.4 YOLO量化模型的編譯和邊緣端部署
11.4.1 量化模型轉為編譯模型
11.4.2 撰寫邊緣端編譯模型推理程式
第4篇 個性化資料增強和物件辨識神經網路性能測試
第12章 個性化物件辨識資料集處理
12.1 農村公路佔道資料的物件辨識應用
12.1.1 專案資料背景
12.1.2 資料的前置處理
12.2 資料的增強
12.2.1 資料增強技術的概念和效果
12.2.2 基於空間變換的資料增強方法
12.2.3 基於顏色空間的資料增強方法
12.2.4 其他圖像資料的增強手法
12.2.5 圖像資料集的增強工具和探索工具
12.3 使用Albumentations進行資料增強
12.3.1 Albumentations的安裝和使用
12.3.2 幾何資料增強管道的配置
12.3.3 使用資料管道處理並儲存資料
12.3.4 像素資料增強管道的配置
12.3.5 增強資料集的運用
第13章 模型性能的定量測試和決策設定值選擇
13.1 神經網路性能量化的基本概念
13.1.1 神經網路預測的混淆矩陣
13.1.2 神經網路量化評估和P-R曲線
13.1.3 多分類物件辨識場景和平均精確率平均值
13.1.4 F分數評估方法
13.2 餐盤辨識神經網路性能測試案例
13.2.1 專案背景
13.2.2 提取全部真實資料和預測結果
13.2.3 模擬不同決策設定值下的精確率和召回率
第14章 使用邊緣計算閘道進行多路攝影機物件辨識
14.1 邊緣計算閘道的整體結構
14.1.1 核心TPU組件
14.1.2 計算卡和模組
14.1.3 下位機的作業系統
14.1.4 下位機的開發環境簡介
14.2 開發環境準備
14.2.1 上位機安裝Docker
14.2.2 上位機加載鏡像和SDK開發套件
14.2.3 神經網路工具鏈和主要用途
14.2.4 針對TensorFlow模型的編譯方法
14.3 浮點32位元模型部署的全流程
14.3.1 訓練主機將Keras模型轉為單pb模型檔案
14.3.2 上位機將單pb模型檔案編譯為bmodel模型檔案
14.3.3 下位機讀取和探索bmodel模型檔案
14.3.4 下位機使用bmodel模型檔案進行推理
14.4 邊緣端全整數量化模型部署
14.4.1 在上位機Docker內製作代表資料集
14.4.2 在上位機Docker內生成fp32umodel模型檔案
14.4.3 手動增加fp32umodel模型檔案的輸入層映射運算元
14.4.4 對fp32umodel模型檔案進行最佳化
14.4.5 在上位機Docker內將fp32umodel模型檔案編譯為int8umodel模型檔案
14.4.6 umodel模型檔案的偵錯技巧
14.5模型的編譯和部署
14.5.1 上位機將int8umodel模型檔案編譯為bmodel模型檔案
14.5.2 全整數量化int8bmodel模型檔案的邊緣端推導和測試
14.5.3 編譯模型在邊緣計算閘道上的性能測試
第15章 邊緣計算開發系統和RK3588
15.1 RK3588邊緣推理開發系統結構
15.1.1 開發板和核心晶片架構
15.1.2 開發板作業系統和偵錯環境
15.2開發工具鏈和神經網路模型部署
15.2.1 上位機開發環境配置
15.2.2 上位機的模型轉換
15.2.3 下位機使用編譯模型進行推理
15.2.4 RK3588的運算元偵錯技巧
第5篇 三維電腦視覺與自動駕駛
第16章 三維物件辨識和自動駕駛
16.1 自動駕駛資料集簡介
16.2 KITTI資料集計算原理
16.3 自動駕駛的點雲特徵提取
附錄A 官方程式引用說明
附錄B 本書運行環境架設說明
附錄C TensorFlow矩陣基本操作