《OpenCV深度學習套用與性能最佳化實踐》是一本由機械工業出版社出版的圖書,深入解析了OpenCV DNN 模組、基於GPU/CPU的加速實現、性能最佳化技巧與可視化工具,以及人臉活體檢測等套用。
基本介紹
- 書名:OpenCV深度學習套用與性能最佳化實踐
- 作者:吳至文 、郭葉軍 、宗煒 、李鵬 、趙娟
- 類別:人工智慧
- 出版社:機械工業出版社
- 出版時間:2020年7月
- 頁數:300 頁
- 定價:89.00 元
- 開本:16 開
- 裝幀:平裝
- ISBN:9787111656463
內容簡介,圖書目錄,作者簡介,
內容簡介
Intel音視頻團隊與阿里巴巴圖像處理專家聯合撰寫,知名專家聯袂推薦,深入解析OpenCV DNN 模組、基於GPU/CPU的加速實現、性能最佳化技巧與可視化工具,以及人臉活體檢測(完整案例)與主流識別項目解析。
第1~2章介紹了OpenCV編譯、運行,深度學習模組(Open DNN)的架構、實現原理,以及深度學習的數學基礎與如何快速上手。
第3~5章主要介紹了OpenCV的GPU加速原理,涵蓋必要的並行計算知識、Intel GPU硬體結構,以及OpenCL和Vulkan加速實現,是性能最佳化工作的核心。
第6章介紹了CPU的硬體知識,以及深度學習模組的CPU加速方法,重點講解了指令集SIMD加速,討論了Halide後端加速、OpenVINO(Intel推理引擎)加速。
第7章介紹了常用的深度神經網路可視化工具——TensorBoard(適用於TensorFlow網路格式),Netscope(適用於Caffe網路格式),針對Intel硬體平台的性能調優工具VTune,以及高階程式最佳化的思路和方法。
第8~9章重點講解實踐細節,包括用深度學習方法處理計算機視覺的基本問題,以及一個完整的人臉活體檢測項目與主流識別項目解析。
圖書目錄
序一
序二
序三
序四
前言
第1章OpenCV和深度學習 1
1.1 OpenCV處理流程 1
1.1.1 OpenCV庫 1
1.1.2 OpenCV深度學習套用的典型流程 3
1.2 機器學習的數學視角 5
1.2.1 機器學習和非機器學習 5
1.2.2 從人工神經網路到深度學習 8
1.2.3 破除神秘——神經網路是如何訓練的 11
1.3 OpenCV深度學習模組 16
1.3.1 主要特性 16
1.3.2 OpenCV DNN圖像分類舉例(Python) 17
1.4 本章小結 19
第2章OpenCV深度學習模組解析 20
2.1 深度學習模組分層架構總覽 20
2.2 語言綁定和測試層 21
2.2.1 深度學習模組的Python語言綁定 21
2.2.2 深度學習模組的正確性測試和性能測試 23
2.3 API層 30
2.3.1 Layer 類及如何定製一個新的層類型 30
2.3.2 Net 類 32
2.3.3 常用函式 35
2.4 DNN引擎層 37
2.4.1 模型導入 37
2.4.2 推理引擎數據對象管理 43
2.4.3 推理引擎重點層解釋 47
2.4.4 層的合併最佳化 62
2.5 引擎加速層 66
2.5.1 深度學習模組支持的運算目標設備 67
2.5.2 深度學習模組支持的加速後端 68
2.5.3 加速方式的選擇 69
2.6 本章小結 70
第3章並行計算與GPU架構 71
3.1 並行計算淺談 71
3.2 Intel GPU架構及其在並行計算中的套用 74
3.2.1 Intel GPU的計算架構 74
3.2.2 兩種不同的SIMD使用思路——AOS和SOA 82
3.2.3 cl_intel_subgroups 在 Intel GPU 上的參考實現 89
3.3 本章小結 100
第4章基於Vulkan的加速實現 101
4.1 初識Vulkan 101
4.2 使用Vulkan加速 102
4.3 Vulkan後端加速過程解析 104
4.3.1 數據對象初始化 105
4.3.2 後端運算節點初始化 108
4.3.3 調用後端運算節點進行前向運算 111
4.3.4 Vulkan後端庫 113
4.4 本章小結 119
第5章基於OpenCL的加速實現 120
5.1 OpenCL簡介 120
5.2 如何使用OpenCL加速 125
5.3 OpenCL加速詳解 128
5.3.1 OpenCL API封裝 129
5.3.2 DNN模組的卷積層實現詳解 132
5.3.3 ocl4dnn庫的卷積運算類詳解 134
5.3.4 卷積核函式auto-tuning機制解析 138
5.4 本章小結 143
第6章CPU及第三方庫加速的實現 144
6.1 原生CPU加速實現 144
6.1.1 基於多執行緒技術的加速 147
6.1.2 基於並行指令的加速 153
6.2 Halide後端的實現 157
6.2.1 Halide介紹 158
6.2.2 如何啟用Halide 163
6.2.3 Halide後端的實現原理 165
6.3 Intel推理引擎後端的實現 171
6.3.1 Intel推理引擎介紹 171
6.3.2 如何啟用推理引擎後端 172
6.3.3 Intel推理引擎後端的實現原理 176
6.4 本章小結 185
第7章可視化工具與性能最佳化 186
7.1 Netscope:基於Web的Caffe網路可視化工具 186
7.2 TensorBoard:助力TensorFlow程式的理解和調試 188
7.2.1 圖的可視化 188
7.2.2 數據的可視化 191
7.2.3 調試的可視化 197
7.3 VTune:Intel 平台的性能調優 199
7.3.1 系統性能查看工具 200
7.3.2 Intel VTune 功能介紹 202
7.3.3 VTune 程式性能最佳化實例 211
7.4 程式最佳化流程總結和建議 213
7.5 本章小結 215
第8章支付級人臉識別項目開發實戰 216
8.1 活體檢測的概念與方法 216
8.2 支付級人臉識別項目流程 218
8.3 基於OpenCV的支付級人臉識別項目具體實現 220
8.3.1 數據準備 222
8.3.2 活體檢測模型訓練 230
8.3.3 支付級人臉識別系統實現 238
8.4 本章小結 244
第9章深度學習模組不同場景下的套用實踐 245
9.1 圖像分類 245
9.1.1 圖像分類經典網路結構 245
9.1.2 GoogLeNet 247
9.1.3 圖像分類程式源碼分析 249
9.1.4 圖像分類程式運行結果 255
9.2 目標檢測 256
9.2.1 SSD算法解析 256
9.2.2 目標檢測程式源碼分析 257
9.2.3 目標檢測程式運行結果 260
9.3 語義分割 261
9.3.1 FCN模型 262
9.3.2 語義分割程式源碼分析 263
9.3.3 語義分割程式運行結果 267
9.4 視覺風格變換 268
9.4.1 視覺風格變換模型 268
9.4.2 視覺風格變換程式源碼分析 269
9.4.3 視覺風格變換程式運行結果 271
9.5 本章小結 273
附錄AOpenCV的編譯安裝及patch開發流程 274
附錄Bintel_gpu_frequency工具的安裝和使用 280
作者簡介
吳至文
Intel亞太研發有限公司資深圖形圖像工程師,擁有多年算法開發最佳化經驗,技術領域涵蓋顯示系統、視覺處理、深度學習框架加速,尤其擅長基於OpenCL和Vulkan的算法設計及最佳化,是OpenCV DNN模組Vulkan後端的作者、OpenCL後端主要貢獻者之一。近期關注深度學習視覺算法開發及其高效部署。
郭葉軍
Intel資深圖形圖像工程師。多年圖形晶片驅動開發經驗,主要包括OpenGL驅動和OpenCL驅動。關注視頻分析中的深度學習,是FFmpeg深度學習模組的代碼維護者。
宗煒
Intel資深圖形圖像工程師,長期從事計算機視覺算法與套用、數字圖像處理、Camera成像算法開發,在CPU/GPU/ISP異構計算算法設計與最佳化上經驗頗豐,是圖像處理與計算機視覺算法開源項目libXCam的維護者和主要貢獻者。近期關注低延時、超高解析度VR視頻直播方案的開發和部署。
李鵬
阿里巴巴高級技術專家,原Intel亞太研發有限公司資深圖形圖像工程師。涉及領域包括顯示系統、圖形圖像處理、深度學習框架加速。是OpenCV DNN模組OpenCL後端主要貢獻者之一。
趙娟
Intel高級研發經理,鑽研圖形圖像、視頻編解碼和視頻處理十幾年,帶領團隊深耕視頻編解碼和處理軟硬體加速、深度學習算法分析與設計,致力於讓開源軟體在圖形圖像視頻市場落地,並組織團隊把多年的“乾貨”整理成書,與視頻行業的朋友們一起探討與成長。