機器學習:使用OpenCV和Python進行智慧影像處理

機器學習:使用OpenCV和Python進行智慧影像處理
定價:414
NT $ 360
 

內容簡介

本書是一本基於OpenCV和Python的機器學習實戰手冊,既詳細介紹機器學習及OpenCV相關的基礎知識,又通過具體實例展示如何使用 OpenCV和Python實現各種機器學習演算法,並提供大量示列代碼,可以幫助你掌握機器學習實用技巧,解決各種不同的機器學習和影像處理問題。

全書共12章,第1章簡要介紹機器學習基礎知識,並講解如何安裝OpenCV和Python工具;第2章展示經典的機器學習處理流程及OpenCV和 Python工具的使用;第3章討論監督學習演算法,以及如何使用OpenCV實現這些演算法;第4章討論資料表示和特徵工程,並介紹OpenCV中提供的用 於處理圖像資料的常見特徵提取技術;第5章展示如何使用OpenCV構建決策樹進行醫療診斷;第6章討論如何使用OpenCV構建支援向量機檢測行人;第7章介紹概率論,並展示如何使用貝葉斯學習實現垃圾郵件過濾;第8章討論一些非監督學習演算法;第9章詳細講解如何構建深度神經網路來識別手寫數位;第10章討論如何高效地集成多個演算法來提升性能;第11章討論如何比較不同分類器的結果,選擇合適的工具;第12章給出一些處理實際機器學習問題的提示和技巧。
 

作者介紹

Michael Beyeler是華盛頓大學神經工程和資料科學專業的博士後,主攻仿生視覺計算模型,用以為盲人植入人工視網膜(仿生眼睛),改善盲人的視覺體驗。 他的工作屬於神經科學、電腦工程、電腦視覺和機器學習的交叉領域。他也是2015年Packt出版的《OpenCV with Python Blueprints》一書的作者,該書是構建高級電腦視覺專案的實用指南。同時他也是多個開源專案的積極貢獻者,具有Python、C/C++、 CUDA、MATLAB和Android的專業程式設計經驗。

他還擁有加利福尼亞大學歐文分校電腦科學專業的博士學位、瑞士蘇黎世聯邦理工學院生物醫學專業的碩士學位元和電子工程專業的學士學位。當他不“呆頭呆腦” 地研究大腦時,他會攀登雪山、參加現場音樂會或者彈鋼琴。
 

目錄

譯者序

前言
審校者簡介
第1章 品味機器學習 1
1.1 初步瞭解機器學習 1
1.2 機器學習可以解決的事情 3
1.3 初步瞭解 Python 4
1.4 初步瞭解 OpenCV 4
1.5 安裝 5
1.5.1 獲取本書最新的代碼 5
1.5.2 掌握 Python Anaconda 6
1.5.3 在 conda 環境中安裝OpenCV 8
1.5.4 驗證安裝結果 9
1.5.5 一睹 OpenCV ML 模組 11
1.6 總結 11
第2章 使用 OpenCV 和 Python處理資料 12
2.1 理解機器學習流程 12
2.2 使用 OpenCV 和 Python 處理資料 14
2.2.1 創建一個新的 IPython 或 Jupyter 會話 15
2.2.2 使用 Python 的 NumPy包處理資料 16
2.2.3 在 Python 中載入外部資料集 20
2.2.4 使用 Matplotlib 進行資料視覺化 21
2.2.5 使用C++ 中 OpenCV 的 TrainData 容器處理資料 26
2.3 總結 27
第3章 監督學習的第一步 28
3.1 理解監督學習 28
3.1.1 瞭解 OpenCV 中的監督學習 29
3.1.2 使用評分函數評估模型性能 30
3.2 使用分類模型預測類別 35
3.2.1 理解 k-NN 演算法 37
3.2.2 使用 OpenCV實現 k-NN 37
3.3 使用回歸模型預測連續結果 43
3.3.1 理解線性回歸 43
3.3.2 使用線性回歸預測波士頓房價 44
3.3.3 應用 Lasso 回歸和ridge 回歸 48
3.4 使用邏輯回歸對鳶尾花種類進行分類 48
3.5 總結 53
第4 資料表示與特徵工程 54
4.1 理解特徵工程 54
4.2 數據預處理 55
4.2.1 特徵標準化 56
4.2.2 特徵歸一化 57
4.2.3 特徵縮放到一定的範圍 57
4.2.4 特徵二值化 58
4.2.5 缺失資料處理 58
4.3 理解降維 59
4.3.1 在OpenCV 中實現主成分分析 61
4.3.2 實現獨立成分分析 64
4.3.3 實現非負矩陣分解 65
4.4 類別變數表示 66
4.5 文本特徵表示 68
4.6 圖像表示 69
4.6.1 使用色彩空間 69
4.6.2 圖像角點檢測 71
4.6.3 使用尺度不變特徵變換 72
4.6.4 使用加速健壯特徵 74
4.7 總結 75
第5章 使用決策樹進行醫療診斷 76
5.1 理解決策樹 76
5.1.1 構建第一個決策樹 79
5.1.2 視覺化訓練得到的決策樹 85
5.1.3 深入瞭解決策樹的內部工作機制 87
5.1.4 特徵重要性評分 88
5.1.5 理解決策規則 89
5.1.6 控制決策樹的複雜度 90
5.2 使用決策樹進行乳腺癌的診斷 90
5.2.1 載入資料集 91
5.2.2 構建決策樹 92
5.3 使用決策樹進行回歸 96
5.4 總結 99
第6章 使用支援向量機檢測行人 100
6.1 理解線性支援向量機 100
6.1.1 學習最優決策邊界 101
6.1.2 實現我們的第一個支援向量機 102
6.2 處理非線性決策邊界 107
6.2.1 理解核機制 108
6.2.2 認識我們的核 109
6.2.3 實現非線性支援向量機 109
6.3 自然環境下的行人檢測 110
6.3.1 獲取資料集 111
6.3.2 初窺方向梯度長條圖 113
6.3.3 生成負樣本 114
6.3.4 實現支持向量機 116
6.3.5 模型自舉 116
6.3.6 在更大的圖像中檢測行人 118
6.3.7 進一步優化模型 120
6.4 總結 121
第7章 使用貝葉斯學習實現垃圾郵件過濾 122
7.1 理解貝葉斯推斷 122
7.1.1 概率論的短暫之旅 123
7.1.2 理解貝葉斯定理 124
7.1.3 理解樸素貝葉斯分類器 126
7.2 實現第一個貝葉斯分類器 127
7.2.1 創建一個練習資料集 127
7.2.2 使用一個正態貝葉斯分類器對資料分類 128
7.2.3 使用一個樸素貝葉斯分類器對資料分類 131
7.2.4 條件概率的視覺化 132
7.3 使用樸素貝葉斯分類器對郵件分類 134
7.3.1 載入資料集 134
7.3.2 使用Pandas構建資料矩陣 136
7.3.3 數據預處理 137
7.3.4 訓練正態貝葉斯分類器 138
7.3.5 使用完整的資料集進行訓練 139
7.3.6 使用n-gram提升結果 139
7.3.7 使用TD-IDF提升結果 140
7.4 總結 141
第8章 使用非監督學習發現隱藏結構 142
8.1 理解非監督學習 142
8.2 理解k均值聚類 143
8.3 理解期望最大化 145
8.3.1 實現期望最大化解決方案 146
8.3.2 瞭解期望最大化的局限 148
8.4 使用k均值壓縮色彩空間 154
8.4.1 真彩色調色板的視覺化 154
8.4.2 使用k均值減少調色板 157
8.5 使用k均值對手寫數位分類 159
8.5.1 載入資料集 159
8.5.2 運行k均值 159
8.6 把聚類組織成層次樹 161
8.6.1 理解層次聚類 161
8.6.2 實現凝聚層次聚類 162
8.7 總結 163
第9章 使用深度學習對手寫數位分類 164
9.1 理解McCulloch-Pitts神經元 164
9.2 理解感知器 167
9.3 實現第一個感知器 169
9.3.1 生成練習資料集 170
9.3.2 使用資料擬合感知器 171
9.3.3 評估感知器分類器 171
9.3.4 把感知器應用到線性不可分的資料上 173
9.4 理解多層感知器 174
9.4.1 理解梯度下降 175
9.4.2 使用反向傳播訓練多層感知器 178
9.4.3 在OpenCV中實現多層感知器 179
9.5 瞭解深度學習 183
9.6 手寫數字分類 186
9.6.1 載入MNIST資料集 187
9.6.2 MNIST資料集預處理 188
9.6.3 使用OpenCV訓練一個MLP 189
9.6.4 使用Keras訓練一個深度神經網路 190
9.7 總結 192
第10章 組合不同演算法為一個整體 193
10.1 理解集成方法 193
10.1.1 理解平均集成 195
10.1.2 理解提升集成 197
10.1.3 理解堆疊集成 200
10.2 組合決策樹為隨機森林 200
10.2.1 理解決策樹的不足 200
10.2.2 實現第一個隨機森林 204
10.2.3 使用scikit-learn實現一個隨機森林 205
10.2.4 實現極端隨機樹 206
10.3 使用隨機森林進行人臉識別 208
10.3.1 載入資料集 208
10.3.2 預處理資料集 209
10.3.3 訓練和測試隨機森林 210
10.4 實現AdaBoost 212
10.4.1 使用OpenCV實現AdaBoost 212
10.4.2 使用scikit-learn實現AdaBoost 213
10.5 組合不同模型為一個投票分類器 214
10.5.1 理解不同的投票機制 214
10.5.2 實現一個投票分類器 215
10.6 總結 217
第11章 通過超參數調優選擇合適的模型 218
11.1 評估一個模型 218
11.1.1 評估模型錯誤的方法 219
11.1.2 評估模型正確的方法 220
11.1.3 選擇最好的模型 221
11.2 理解交叉驗證 223
11.2.1 使用OpenCV手動實現交叉驗證 225
11.2.2 使用scikit-learn進行k折交叉驗證 226
11.2.3 實現留一法交叉驗證 227
11.3 使用自舉評估魯棒性 228
11.4 評估結果的重要性 230
11.4.1 實現T檢驗 230
11.4.2 實現配對卡方檢驗 232
11.5 使用網格搜索進行超參數調優 233
11.5.1 實現一個簡單的網格搜索 234
11.5.2 理解驗證集的價值 235
11.5.3 網格搜索結合交叉驗證 236
11.5.4 網格搜索結合嵌套交叉驗證 238
11.6 使用不同評估指標來對模型評分 239
11.6.1 選擇正確的分類指標 239
11.6.2 選擇正確的回歸指標 240
11.7 連結演算法形成一個管道 240
11.7.1 用 scikit-learn 實現管道 241
11.7.2 在網格搜索中使用管道 242
11.8 總結 243
第12章 綜合 244
12.1 著手處理一個機器學習問題 244
12.2 構建自己的估計器 245
12.2.1 使用C++編寫自己的基於OpenCV的分類器 245
12.2.2 使用Python 編寫自己的基於scikit-learn的分類器 247
12.3 今後的方向 249
12.4 總結 251
網路書店 類別 折扣 價格
  1. 新書
    87
    $360