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

朱斌

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

商品描述

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

作者簡介

朱斌,博士,國防科技大學副教授。
長期從事計算機視覺與機器學習領域的教學與科研工作,主要研究方向為成像偵察與信息處理。
主持國家自然科學基金、省自然科學基金各1項,主持或參與其他科研項目多項,其中,2項科研成果列裝,並獲軍隊科技進步二等獎2項,授權國家發明專利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