機(jī)器學(xué)習(xí):使用OpenCV、Python和scikit-learn進(jìn)行智能圖像處理(原書第2版)
定 價(jià):99 元
叢書名:智能系統(tǒng)與技術(shù)叢書
- 作者:[印] 阿迪蒂亞·夏爾馬(Aditya Sharma) [印] 維什韋什·拉維
- 出版時(shí)間:2020/11/1
- ISBN:9787111668268
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TP181
- 頁(yè)碼:0
- 紙張:
- 版次:
- 開本:16開
本書通過(guò)具體的編程實(shí)踐案例,全面系統(tǒng)地講述了機(jī)器學(xué)習(xí)涉及的核心內(nèi)容。首先介紹新特性以及安裝OpenCV 4構(gòu)建計(jì)算機(jī)視覺(jué)應(yīng)用程序。你將探索機(jī)器學(xué)習(xí)的基礎(chǔ)知識(shí),學(xué)習(xí)設(shè)計(jì)用于圖像處理的各種算法。本書將逐步介紹有監(jiān)督學(xué)習(xí)和無(wú)監(jiān)督學(xué)習(xí)。你將獲得使用Python中的scikit-learn開發(fā)各種機(jī)器學(xué)習(xí)應(yīng)用程序的實(shí)踐經(jīng)驗(yàn)。后續(xù)章節(jié)將重點(diǎn)介紹決策樹、支持向量機(jī)、貝葉斯學(xué)習(xí)等各種機(jī)器學(xué)習(xí)算法,以及如何將這些算法應(yīng)用于目標(biāo)檢測(cè)等計(jì)算機(jī)視覺(jué)操作。然后,你將深入研究深度學(xué)習(xí)和集成學(xué)習(xí),并探索它們?cè)诂F(xiàn)實(shí)世界中的應(yīng)用。*后,你將學(xué)習(xí)用于構(gòu)建圖像處理系統(tǒng)的*新的Intel OpenVINO。
譯者序
前言
作者簡(jiǎn)介
審校者簡(jiǎn)介
第一部分 機(jī)器學(xué)習(xí)與OpenCV的基礎(chǔ)知識(shí)
第1章 機(jī)器學(xué)習(xí)體驗(yàn)2
1.1 技術(shù)需求3
1.2 開始機(jī)器學(xué)習(xí)3
1.3 機(jī)器學(xué)習(xí)可以解決的問(wèn)題4
1.4 開始使用Python5
1.5 開始使用OpenCV6
1.6 安裝6
1.6.1 獲取本書的最新代碼7
1.6.2 了解Python的Anaconda發(fā)行版8
1.6.3 在conda環(huán)境中安裝OpenCV9
1.6.4 安裝驗(yàn)證10
1.6.5 OpenCV的ml模塊概覽12
1.7 機(jī)器學(xué)習(xí)的應(yīng)用13
1.8 OpenCV 4.0的新功能13
1.9 本章小結(jié)14
第2章 用OpenCV處理數(shù)據(jù)15
2.1 技術(shù)需求15
2.2 理解機(jī)器學(xué)習(xí)的工作流程16
2.3 使用OpenCV和Python處理數(shù)據(jù)18
2.3.1 開始一個(gè)新的IPython或Jupyter會(huì)話18
2.3.2 使用Python的NumPy包處理數(shù)據(jù)20
2.3.3 用Python加載外部數(shù)據(jù)集24
2.3.4 使用Matplotlib可視化數(shù)據(jù)25
2.3.5 使用C++中的OpenCV TrainData容器處理數(shù)據(jù)29
2.4 本章小結(jié)30
第3章 監(jiān)督學(xué)習(xí)的第一步31
3.1 技術(shù)需求31
3.2 理解監(jiān)督學(xué)習(xí)32
3.2.1 看看OpenCV中的監(jiān)督學(xué)習(xí)33
3.2.2 用評(píng)分函數(shù)度量模型性能33
3.3 使用分類模型預(yù)測(cè)類標(biāo)簽39
3.3.1 理解k-NN算法40
3.3.2 用OpenCV實(shí)現(xiàn)k-NN40
3.4 使用回歸模型預(yù)測(cè)連續(xù)的結(jié)果47
3.4.1 理解線性回歸47
3.4.2 OpenCV中的線性回歸48
3.4.3 使用線性回歸預(yù)測(cè)波士頓房?jī)r(jià)51
3.4.4 Lasso回歸和嶺回歸的應(yīng)用54
3.5 使用邏輯回歸分類鳶尾花的種類55
3.5.1 理解邏輯回歸55
3.5.2 加載訓(xùn)練數(shù)據(jù)56
3.5.3 使其成為一個(gè)二值分類問(wèn)題57
3.5.4 數(shù)據(jù)檢查57
3.5.5 將數(shù)據(jù)拆分成訓(xùn)練集和測(cè)試集58
3.5.6 訓(xùn)練分類器58
3.5.7 測(cè)試分類器59
3.6 本章小結(jié)59
第4章 數(shù)據(jù)表示和特征工程60
4.1 技術(shù)需求61
4.2 理解特征工程61
4.3 數(shù)據(jù)預(yù)處理62
4.3.1 特征標(biāo)準(zhǔn)化62
4.3.2 特征歸一化63
4.3.3 將特征縮放到一個(gè)范圍64
4.3.4 特征二值化64
4.3.5 缺失數(shù)據(jù)的處理65
4.4 理解降維66
4.4.1 用OpenCV實(shí)現(xiàn)主成分分析67
4.4.2 實(shí)現(xiàn)獨(dú)立成分分析70
4.4.3 實(shí)現(xiàn)非負(fù)矩陣分解71
4.4.4 使用t-分布隨機(jī)鄰域嵌入可視化降維72
4.5 類別變量的表示74
4.6 文本特征的表示75
4.7 圖像的表示77
4.7.1 使用顏色空間77
4.7.2 檢測(cè)圖像中的角點(diǎn)79
4.7.3 使用star檢測(cè)器和BRIEF描述符82
4.7.4 使用面向FAST和可旋轉(zhuǎn)的BRIEF84
4.8 本章小結(jié)85
第二部分 基于OpenCV的運(yùn)算
第5章 基于決策樹進(jìn)行醫(yī)療診斷88
5.1 技術(shù)需求88
5.2 理解決策樹89
5.2.1 構(gòu)建我們的第一棵決策樹91
5.2.2 可視化一棵經(jīng)過(guò)訓(xùn)練的決策樹97
5.2.3 探究決策樹的內(nèi)部工作原理99
5.2.4 評(píng)估特征的重要性100
5.2.5 理解決策規(guī)則101
5.2.6 控制決策樹的復(fù)雜度102
5.3 使用決策樹診斷乳腺癌102
5.3.1 加載數(shù)據(jù)集103
5.3.2 構(gòu)建決策樹104
5.4 使用決策樹進(jìn)行回歸108
5.5 本章小結(jié)111
第6章 利用支持向量機(jī)進(jìn)行行人檢測(cè)112
6.1 技術(shù)需求113
6.2 理解線性SVM113
6.2.1 學(xué)習(xí)最優(yōu)決策邊界113
6.2.2 實(shí)現(xiàn)我們的第一個(gè)SVM115
6.3 處理非線性決策邊界120
6.3.1 理解核技巧121
6.3.2 了解我們的核121
6.3.3 實(shí)現(xiàn)非線性SVM122
6.4 檢測(cè)自然場(chǎng)景中的行人123
6.4.1 獲取數(shù)據(jù)集124
6.4.2 面向梯度的直方圖概述126
6.4.3 生成負(fù)樣本127
6.4.4 實(shí)現(xiàn)SVM128
6.4.5 bootstrapping模型129
6.4.6 檢測(cè)更大圖像中的行人130
6.4.7 進(jìn)一步完善模型132
6.5 使用SVM的多類分類133
6.5.1 關(guān)于數(shù)據(jù)134
6.5.2 屬性信息134
6.6 本章小結(jié)136
第7章 利用貝葉斯學(xué)習(xí)實(shí)現(xiàn)一個(gè)垃圾郵件過(guò)濾器137
7.1 技術(shù)需求138
7.2 理解貝葉斯推理138
7.2.1 概率理論概述138
7.2.2 理解貝葉斯定理139
7.2.3 理解樸素貝葉斯分類器142
7.3 實(shí)現(xiàn)第一個(gè)貝葉斯分類器143
7.3.1 創(chuàng)建一個(gè)玩具數(shù)據(jù)集143
7.3.2 使用普通貝葉斯分類器對(duì)數(shù)據(jù)進(jìn)行分類144
7.3.3 使用樸素貝葉斯分類器對(duì)數(shù)據(jù)進(jìn)行分類147
7.3.4 可視化條件概率147
7.4 使用樸素貝葉斯分類器分類郵件149
7.4.1 加載數(shù)據(jù)集150
7.4.2 使用pandas建立一個(gè)數(shù)據(jù)矩陣152
7.4.3 數(shù)據(jù)預(yù)處理153
7.4.4 訓(xùn)練一個(gè)普通貝葉斯分類器153
7.4.5 在完整數(shù)據(jù)集上訓(xùn)練154
7.4.6 使用n-grams提升結(jié)果154
7.4.7 使用TF-IDF提升結(jié)果155
7.5 本章小結(jié)156
第8章 利用無(wú)監(jiān)督學(xué)習(xí)發(fā)現(xiàn)隱藏結(jié)構(gòu)157
8.1 技術(shù)需求157
8.2 理解無(wú)監(jiān)督學(xué)習(xí)158
8.3 理解k-均值聚類158
8.4 理解最大期望161
8.4.1 實(shí)現(xiàn)最大期望解決方案162
8.4.2 了解最大期望的局限性164
8.5 使用k-均值壓縮顏色空間169
8.5.1 可視化真彩色調(diào)色板170
8.5.2 使用k-均值減少調(diào)色板的顏色172
8.6 使用k-均值分類手寫數(shù)字174
8.6.1 加載數(shù)據(jù)集175
8.6.2 運(yùn)行k-均值175
8.7 將聚類組織為層次樹176
8.7.1 理解層次聚類177
8.7.2 實(shí)現(xiàn)凝聚層次聚類178
8.7.3 聚類算法比較179
8.8 本章小結(jié)180
第三部分 基于OpenCV的高級(jí)機(jī)器學(xué)習(xí)
第9章 使用深度學(xué)習(xí)分類手寫數(shù)字182
9.1 技術(shù)需求182
9.2 理解McCulloch-Pitts神經(jīng)元183
9.3 理解感知器185
9.4 實(shí)現(xiàn)第一個(gè)感知器187
9.4.1 生成一個(gè)玩具數(shù)據(jù)集188
9.4.2 擬合感知器和數(shù)據(jù)189
9.4.3 評(píng)估感知器分類器190
9.4.4 將感知器應(yīng)用于非線性可分的數(shù)據(jù)191
9.5 理解多層感知器193
9.5.1 理解梯度下降194
9.5.2 基于反向傳播訓(xùn)練多層感知器196
9.5.3 用OpenCV實(shí)現(xiàn)一個(gè)多層感知器197
9.6 結(jié)識(shí)深度學(xué)習(xí)202
9.7 分類手寫數(shù)字205
9.7.1 加載MNIST數(shù)據(jù)集205
9.7.2 預(yù)處理MNIST數(shù)據(jù)集206
9.7.3 使用OpenCV訓(xùn)練一個(gè)多層感知器207
9.7.4 使用Keras訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)208
9.8 本章小結(jié)211
第10章 集成分類方法212
10.1 技術(shù)需求213
10.2 理解集成方法213
10.2.1 理解平均集成214
10.2.2 理解boosting集成217
10.2.3 理解疊加集成219
10.3 將決策樹組合成隨機(jī)森林220
10.3.1 理解決策樹的缺點(diǎn)220
10.3.2 實(shí)現(xiàn)第一個(gè)隨機(jī)森林224
10.3.3 用scikit-learn實(shí)現(xiàn)一個(gè)隨機(jī)森林225
10.3.4 實(shí)現(xiàn)超隨機(jī)樹226
10.4 利用隨機(jī)森林進(jìn)行人臉識(shí)別228
10.4.1 加載數(shù)據(jù)集228
10.4.2 預(yù)處理數(shù)據(jù)集229
10.4.3 隨機(jī)森林的訓(xùn)練和測(cè)試230
10.5 實(shí)現(xiàn)AdaBoost232
10.5.1 用OpenCV實(shí)現(xiàn)AdaBoost232
10.5.2 用scikit-learn實(shí)現(xiàn)AdaBoost233
10.6 把各種模型組合成一個(gè)投票分類器234
10.6.1 理解各種投票方案234
10.6.2 實(shí)現(xiàn)一個(gè)投票分類器235
10.6.3 簡(jiǎn)單多數(shù)236
10.7 本章小結(jié)237
第11章 選擇正確的模型與超參數(shù)調(diào)優(yōu)238
11.1 技術(shù)需求239
11.2 模型評(píng)估239
11.2.1 模型評(píng)估的錯(cuò)誤方式239
11.2.2 模型評(píng)估的正確方式240
11.2.3 選擇最佳模型241
11.3 理解交叉驗(yàn)證244
11.3.1 用OpenCV手動(dòng)實(shí)現(xiàn)交叉驗(yàn)證246
11.3.2 用scikit-learn進(jìn)行k折交叉驗(yàn)證247
11.3.3 實(shí)現(xiàn)留一法交叉驗(yàn)證247
11.4 利用bootstrapping評(píng)估魯棒性248
11.5 評(píng)估結(jié)果的顯著性250
11.5.1 實(shí)現(xiàn)Student t-檢驗(yàn)251
11.5.2 實(shí)現(xiàn)McNemar檢驗(yàn)252
11.6 基于網(wǎng)格搜索的超參數(shù)調(diào)優(yōu)253
11.6.1 實(shí)現(xiàn)一個(gè)簡(jiǎn)單的網(wǎng)格搜索254
11.6.2 理解驗(yàn)證集的值255
11.6.3 網(wǎng)格搜索與交叉驗(yàn)證結(jié)合256
11.6.4 網(wǎng)格搜索與嵌套交叉驗(yàn)證結(jié)合258
11.7 利用各種評(píng)估指標(biāo)對(duì)模型評(píng)分259
11.7.1 選擇正確的分類器評(píng)估指標(biāo)259
11.7.2 選擇正確的回歸評(píng)估指標(biāo)260
11.8 將算法鏈接起來(lái)形成管道260
11.8.1 用scikit-learn實(shí)現(xiàn)管道261
11.8.2 在網(wǎng)格搜索中使用管道262
11.9 本章小結(jié)263
第12章 使用基于OpenCV的OpenVINO264
12.1 技術(shù)需求264
12.2 OpenVINO簡(jiǎn)介265
12.3 OpenVINO工具包安裝265
12.4 交互式人臉檢測(cè)演示266
12.5 使用基于OpenCV的OpenVINO推理引擎267
12.6 使用基于OpenCV的OpenVINO模型組268
12.7 使用OpenCV和OpenVINO推理引擎進(jìn)行圖像分類269
12.7.1 利用OpenVINO進(jìn)行圖像分類270
12.7.2 利用OpenCV和OpenVINO進(jìn)行圖像分類271
12.8 本章小結(jié)273
第13章 尾聲274
13.1 技術(shù)需求274
13.2 機(jī)器學(xué)習(xí)問(wèn)題的解決方案275
13.3 構(gòu)建自己的估計(jì)器276
13.3.1 用C++編寫自己的基于OpenCV的分類器276
13.3.2 用Python編寫自己的基于scikit-learn的分類器278
13.4 接下來(lái)要做的工作280
13.5 本章小結(jié)281