OpenCV 4機器學習算法原理與編程實戰

朱斌

下單後立即進貨 (約4週~6週)

相關主題

商品描述

本書主要面向OpenCV領域的研究與開發人員,採用原理結合實戰的方式,介紹OpenCV 4的機器學習算法模塊與深度神經網絡模塊中的核心算法原理與C++編程實戰。全書共10章, 第1~3章, 介紹OpenCV 4的基礎知識、基本圖像操作和機器學習基礎知識;第4~8章,介紹K-means、KNN、決策樹、隨機森林、Boosting算法和支持向量機等機器學習算法與編程實戰;第9~10章,介紹神經網絡與深度神經網絡的基本原理與編程實戰,並提供了不同深度學習模型的部署示例代碼。

目錄大綱

第1章 概述 1 1.1 OpenCV簡述 1 1.2 OpenCV的功能 1 1.3 OpenCV中的機器學習與深度神經網絡模塊 2 1.4 基本數據類型 2 1.4.1 數據類型概述 2 1.4.2 cv::Vec類 3 1.4.3 cv::Point類 6 1.4.4 cv::Scalar類 8 1.4.5 cv::Size類 9 1.4.6 cv::Rect類 9 1.4.7 cv::RotatedRect類 13 1.4.8 cv::Mat類 14 1.4.9 基本矩陣運算 19 參考文獻 22 第2章 OpenCV在機器學習任務中的基本圖像操作 23 2.1 基本圖像操作 23 2.1.1 讀取、顯示和存儲圖像 23 2.1.2 顏色空間轉換 30 2.1.3 圖像的幾何變換 36 2.1.4 直方圖均衡化 49 2.1.5 標註文字和矩形框 57 2.2 基本視頻操作 60 2.2.1 讀取和播放視頻文件 61 2.2.2 處理視頻文件 62 2.2.3 存儲視頻文件 65 參考文獻 67 第3章 機器學習的基本原理與OpenCV機器學習模塊 69 3.1 機器學習的基本概念 69 3.1.1 機器學習的定義 69 3.1.2 機器學習的分類 70 3.2 機器學習的一般流程 73 3.2.1 機器學習流程 73 3.2.2 數據集 74 3.2.3 偏差與方差 77 3.2.4 評估分類器性能的方法 79 3.3 邏輯回歸分類示例 80 3.3.1 圖像數據與數據表示 81 3.3.2 邏輯回歸模型 82 3.3.3 邏輯回歸的損失函數 83 3.4 OpenCV支持的機器學習算法 84 3.4.1 機器學習模塊的結構 84 3.4.2 機器學習模塊中的算法 85 3.4.3 數據集準備 87 3.4.4 特徵選擇 88 參考文獻 89 第4章 K-means和KNN 90 4.1 算法原理 90 4.1.1 K-means原理 90 4.1.2 KNN原理 92 4.2 OpenCV實現 95 4.2.1 K-means的實現 95 4.2.2 KNN的實現 97 4.3 應用示例 99 4.3.1 K-means聚類示例 99 4.3.2 KNN手寫數字識別示例 106 4.3.3 應用提示 112 參考文獻 113 第5章 決策樹 114 5.1 決策樹原理 114 5.1.1 決策樹的基本思想 114 5.1.2 決策樹的表示方法 114 5.1.3 最佳切分屬性的選擇 116 5.1.4 停止標準 123 5.1.5 剪枝 123 5.2 OpenCV實現 123 5.2.1 創建決策樹 123 5.2.2 訓練決策樹 126 5.2.3 使用決策樹預測 127 5.3 應用示例 129 5.3.1 蘑菇可食性分類 129 5.3.2 預測波士頓房價 135 5.3.3 應用提示 142 參考文獻 142 第6章 隨機森林 143 6.1 隨機森林原理 143 6.1.1 隨機森林的基本思想 143 6.1.2 Bagging算法 143 6.2 OpenCV實現 146 6.2.1 OpenCV中的隨機森林 146 6.2.2 創建隨機森林 147 6.2.3 訓練隨機森林 148 6.2.4 使用隨機森林預測 148 6.3 應用示例 148 6.3.1 蘑菇可食性分類 149 6.3.2 預測波士頓房價 153 6.3.3 應用提示 158 參考文獻 158 第7章 Boosting算法 159 7.1 Boosting算法原理 159 7.1.1 Boosting算法的基本思想 159 7.1.2 Boosting算法 159 7.1.3 AdaBoost算法 160 7.2 OpenCV實現 164 7.2.1 創建AdaBoost模型 164 7.2.2 訓練AdaBoost模型 166 7.2.3 使用AdaBoost模型預測 166 7.3 應用示例 166 7.3.1 蘑菇可食性分類 167 7.3.2 英文字母分類問題 169 7.3.3 應用提示 174 參考文獻 174 第8章 支持向量機 175 8.1 支持向量機原理 175 8.1.1 統計學習理論概述 175 8.1.2 線性SVM算法基本原理 179 8.1.3 非線性SVM算法的基本原理 190 8.1.4 SVM回歸算法的基本原理 192 8.1.5 SVM算法執行SRM準則的解釋 194 8.2 OpenCV實現 195 8.2.1 OpenCV中的SVM算法 195 8.2.2 創建SVM模型 197 8.2.3 訓練SVM模型 199 8.2.4 使用SVM模型預測 202 8.3 應用示例 203 8.3.1 使用HOG特徵與SVM算法識別手寫數字 203 8.3.2 應用提示 213 參考文獻 214 第9章 神經網絡 215 9.1 神經網絡算法原理 215 9.1.1 神經網絡的結構與表示 216 9.1.2 單隱層前饋神經網絡 220 9.1.3 多隱層前饋神經網絡 222 9.1.4 梯度下降法 225 9.1.5 反向傳播算法 229 9.2 OpenCV實現 234 9.2.1 OpenCV中的MLP算法 234 9.2.2 創建MLP模型 235 9.2.3 訓練MLP模型 237 9.2.4 使用MLP模型預測 239 9.3 應用示例 239 9.3.1 使用神經網絡識別手寫數字 239 9.3.2 應用提示 251 參考文獻 251 第10章 深度神經網絡 252 10.1 捲積神經網絡的基本原理 253 10.1.1 捲積神經網絡的結構 254 10.1.2 捲積層 255 10.1.3 池化 262 10.1.4 Softmax層 263 10.1.5 CNN特徵學習的過程 263 10.1.6 CNN特徵學習的原理 266 10.2 OpenCV的DNN模塊 268 10.2.1 OpenCV支持的深度學習框架 269 10.2.2 支持的層類型 269 10.2.3 編譯支持GPU加速的OpenCV 269 10.2.4 DNN模塊的使用 274 10.3 應用示例 286 10.3.1 典型電腦視覺任務 286 10.3.2 使用GoogLeNet實現圖像分類 289 10.3.3 使用YOLOv4實現目標檢測 295 10.3.4 使用Mask R-CNN實現實例分割 306 10.3.5 使用GOTURN模型實現目標跟蹤 315 10.3.6 使用DB算法實現場景文本檢測 319 10.3.7 使用CRNN實現場景文本識別 327 10.3.8 應用提示 338 參考文獻 339