AI + IoT 佈建邊緣運算 - 電腦視覺業界專案原理及實作

張晨然

  • AI + IoT 佈建邊緣運算 - 電腦視覺業界專案原理及實作-preview-1
  • AI + IoT 佈建邊緣運算 - 電腦視覺業界專案原理及實作-preview-2
  • AI + IoT 佈建邊緣運算 - 電腦視覺業界專案原理及實作-preview-3
  • AI + IoT 佈建邊緣運算 - 電腦視覺業界專案原理及實作-preview-4
  • AI + IoT 佈建邊緣運算 - 電腦視覺業界專案原理及實作-preview-5
  • AI + IoT 佈建邊緣運算 - 電腦視覺業界專案原理及實作-preview-6
  • AI + IoT 佈建邊緣運算 - 電腦視覺業界專案原理及實作-preview-7
  • AI + IoT 佈建邊緣運算 - 電腦視覺業界專案原理及實作-preview-8
  • AI + IoT 佈建邊緣運算 - 電腦視覺業界專案原理及實作-preview-9
  • AI + IoT 佈建邊緣運算 - 電腦視覺業界專案原理及實作-preview-10
  • AI + IoT 佈建邊緣運算 - 電腦視覺業界專案原理及實作-preview-11
  • AI + IoT 佈建邊緣運算 - 電腦視覺業界專案原理及實作-preview-12
  • AI + IoT 佈建邊緣運算 - 電腦視覺業界專案原理及實作-preview-13
  • AI + IoT 佈建邊緣運算 - 電腦視覺業界專案原理及實作-preview-14
  • AI + IoT 佈建邊緣運算 - 電腦視覺業界專案原理及實作-preview-15
AI + IoT 佈建邊緣運算 - 電腦視覺業界專案原理及實作-preview-1

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

商品描述

※本書結構
本書共5篇,第1篇、第2篇重點介紹以YOLO為代表的一階段物件辨識神經網路;第3篇、第4篇重點介紹物件辨識神經網路在雲端和邊緣端的部署,其中對邊緣端的量化原理進行了重點介紹;第5篇重點介紹當前較為流行的自動駕駛的資料計算原理和物件辨識。本書實用性非常強,既適合對電腦視覺具有一定了解的高等院校大學生、所究所學生及具有轉型意願的軟體工程師入門學習,又適合電腦視覺工程項目研發和營運人員參考閱讀。

第1篇,以知名電腦視覺競賽任務為例,旨在介紹物件辨識應用場景下的基本概念和約定,以及資料標注工具和格式,讓讀者具備特徵融合網路、預測網路的設計能力。對於資料後處理技術則介紹了解碼網路、資料重網路拓樸路、NMS演算法等後處理演算法,在此基礎上結合各式各樣的骨幹網路,讀者就可以架設完整的一階段物件辨識神經網路模型了。

第2篇,旨在介紹物件辨識神經網路的訓練全流程。本篇從資料集製作到損失函式設計,從訓練資料監控到NaN或INF異常處理,特別是對不同損失函式的設計,進行了非常詳細的原理性闡述。相比神經網路設計,損失函式的設計是最具有可解釋性的,也是電腦視覺研究中比較容易出成果的研究方向。

第3篇,旨在運用物件辨識神經網路的訓練成果,架設完整的物件辨識推理模型。推理模型支援雲端部署和邊緣端部署。對於雲端部署,以主流的亞馬遜雲端為例介紹;對於邊緣端部署,以GoogleCoral開發板為例,介紹神經網路量化模型的基礎原理和模型編譯邏輯。

第4篇,結合作者主導過的智慧交通、智慧後勤等專案,旨在介紹實際電腦視覺資料增強技術,以及神經網路性能評估的原理和具體應用。本篇還結合應用同樣廣泛的算能科技(比特中國)SE5邊緣計算閘道和瑞芯微RK3588邊緣計算系統,介紹實際專案中如何使用邊緣計算硬體加速人工智慧的產業化應用。根據邊緣計算硬體特性對神經網路進行針對性修改,是真正考驗一個開發者對神經網路理解程度的試金石。跟隨本書介紹熟練掌握2~3款邊緣計算硬體,就能更快速地將電腦視覺應用到實際生產中,在具體應用中創造價值。

第5篇,旨在將讀者引入三維電腦視覺中最重要的應用領域之一:自動駕駛。圍繞KITTI資料集,本篇介紹了自動駕駛資料的計算原理,並重點介紹了PointNet++等多個三維物件辨識神經網路。

附錄列表說明了本書所參考的物件辨識原始程式碼、Python運行環境架設,以及TensorFlow的基本操作。對基本操作有疑問的讀者,可以根據附錄中的說明登入相關網站進行查閱和提問。

作者簡介

張晨然

作者大學畢業於天津大學通訊工程專業,碩士研究所學生階段就讀於廈門大學,主攻嵌入式系統和數位訊號底層演算法,具備紮實的理論基礎。

 

作者先後就職於中國電信集團公司和福建省電子資訊(集團)有限責任公司,目前擔任福建省人工智慧學會的理事和企業工作委員會的主任,同時也擔任Google開發者社區、亞馬遜開發者生態的福州區域負責人,長期從事電腦視覺和自然語言基礎技術的研究,累積了豐富的人工智慧專案經驗,致力於推動深度學習在交通、工業、民生、建築等領域的應用落地。作者於2017年獲得高級工程師職稱,擁有多項發明專利。

 

本書作者GitHub帳號是fjzhangcr

目錄大綱

第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矩陣基本操作