本書以Python語言為工具,以圖像為載體,對計算機視覺涉及的操作和變換方法進行了詳細的介紹及實現(xiàn)。全書共分10章,分別為計算機視覺概述、編程語言Python及庫簡介、數(shù)字圖像預處理、圖像特征與檢測、機器學習、BP神經(jīng)網(wǎng)絡基礎、卷積神經(jīng)網(wǎng)絡CNN、經(jīng)典神經(jīng)網(wǎng)絡結構分析、百度EasyDL入門以及計算機視覺在制造行業(yè)應用案例分析。
本書可作為高等院校智能制造工程、人工智能等相關專業(yè)的教材,亦可作為圖像處理、多媒體編程、計算機視覺領域人員的實用參考書。
第1章 計算機視覺概述 1
本章思維導圖 1
本章學習目標 2
1.1 計算機視覺、模式識別和機器視覺 2
1.2 計算機視覺與生物視覺 2
1.3 機器學習在計算機視覺中的作用 6
1.4 計算機視覺的應用領域 7
1.5 計算機視覺技術可能面臨的挑戰(zhàn) 10
本章小結 11
習題 11
第2章 編程語言Python及庫簡介 12
本章思維導圖 12
本章學習目標 13
2.1 搭建開發(fā)環(huán)境和使用 13
2.1.1 Anaconda的安裝 13
2.1.2 Spyder漢化與簡介 13
2.1.3 Spyder編程示例 15
2.2 編程語言Python 15
2.2.1 Python注釋 16
2.2.2 print輸出語句 16
2.2.3 標識符 17
2.2.4 變量的操作 17
2.2.5 行與縮進 18
2.2.6 常用五大標準數(shù)據(jù)類型 18
2.2.7 運算符 21
2.2.8 分支語句 23
2.2.9 循環(huán)語句 24
2.2.10 函數(shù) 26
2.2.11 模塊 28
2.2.12 包 29
2.2.13 類 30
2.3 科學計算庫NumPy 32
2.3.1 NumPy簡介 32
2.3.2 多維數(shù)組對象 32
2.3.3 索引方法 35
2.3.4 數(shù)組維度的變換 35
2.3.5 對象的屬性 36
2.3.6 數(shù)組的數(shù)學函數(shù) 37
2.3.7 NumPy中幾個典型函數(shù) 39
2.4 可視化庫Matplotlib簡介 41
2.4.1 最基礎的繪圖示例 41
2.4.2 標簽和圖例 43
2.4.3 子圖 44
2.5 機器學習Scikit-learn庫簡介 45
2.5.1 數(shù)據(jù)集 46
2.5.2 數(shù)據(jù)集劃分 48
2.5.3 數(shù)據(jù)預處理 49
2.5.4 通用學習模式 50
2.6 圖像處理OpenCV庫簡介 51
2.6.1 OpenCV核心模塊 52
2.6.2 OpenCV圖像基礎操作 53
2.7 深度學習框架PyTorch 56
2.7.1 創(chuàng)建Tensor 57
2.7.2 Tensor運算 61
2.7.3 PyTorch網(wǎng)絡搭建所需函數(shù)/類 65
本章小結 65
習題 65
第3章 數(shù)字圖像預處理 67
本章思維導圖 67
本章學習目標 67
3.1 圖像采樣與量化 68
3.1.1 坐標系約定 68
3.1.2 采樣 68
3.1.3 量化 69
3.2 色彩空間 70
3.2.1 RGB色彩空間 71
3.2.2 GRAY色彩空間 72
3.2.3 YCrCb色彩空間 74
3.2.4 HSV色彩空間 75
3.3 圖像幾何變換 76
3.3.1 縮放 76
3.3.2 翻轉 77
3.3.3 旋轉(直角旋轉) 78
3.3.4 仿射變換 79
3.4 直方圖修正 83
3.4.1 灰度圖像直方圖 83
3.4.2 圖像清晰化 84
3.4.3 全局閾值處理 90
3.4.4 自適應閾值處理 91
3.5 圖像去噪及卷積 92
3.5.1 圖像噪聲 92
3.5.2 均值濾波 93
3.5.3 中值濾波 94
3.5.4 高斯濾波 95
3.5.5 卷積與銳化 97
3.5.6 二值圖像的去噪 101
本章小結 104
習題 105
第4章 圖像特征與檢測 107
本章思維導圖 107
本章學習目標 108
4.1 邊緣檢測 108
4.1.1 Roberts算子 110
4.1.2 Prewitt算子 111
4.1.3 Sobel算子 112
4.1.4 Scharr算子 113
4.1.5 Laplacian算子 114
4.1.6 Canny算子 116
4.1.7 圖像傅里葉變換 117
4.1.8 邊緣檢測的作用 119
4.2 圖像幾何參數(shù)的檢測 119
4.2.1 基于輪廓的對象識別 119
4.2.2 Hough變換 123
4.3 圖像紋理的檢測 127
4.4 基于哈希值的檢測 131
4.4.1 均值哈希 132
4.4.2 差異哈希 134
4.5 基于LBP算子的特征檢測 136
4.5.1 基本LBP算子 136
4.5.2 圓形LBP算子 137
4.5.3 旋轉不變LBP特征 137
4.5.4 均勻LBP模式 138
4.5.5 LBPH(LBP特征統(tǒng)計直方圖) 139
4.6 基于HOG算子的特征檢測 141
4.7 基于色彩的提取 144
4.8 基于差分的提取 146
4.8.1 幀間差分 146
4.8.2 背景差分 148
4.9 光流追蹤 151
4.9.1 稀疏光流 151
4.9.2 密集光流 152
本章小結 152
習題 154
第5章 機器學習 155
本章思維導圖 155
本章學習目標 156
5.1 K-Means實現(xiàn) 157
5.2 K最近鄰算法 159
5.2.1 歐氏距離(euclidean distance) 160
5.2.2 曼哈頓距離(manhattan distance) 160
5.2.3 閔可夫斯基距離(minkowski distance) 161
5.2.4 余弦距離(cosine distance) 161
5.3 樸素貝葉斯算法 163
5.3.1 貝葉斯公式 163
5.3.2 樸素貝葉斯 164
5.4 決策樹算法 167
5.4.1 特征選擇 168
5.4.2 決策樹的修剪 169
5.5 支持向量機SVM 171
5.6 主成分分析PCA算法 173
5.7 線性回歸算法 176
5.7.1 線性回歸導入 176
5.7.2 代價函數(shù) 177
5.7.3 梯度下降法 178
5.7.4 嶺回歸(ridge regression) 184
5.7.5 套索回歸(lasso regression) 185
5.7.6 彈性網(wǎng)絡(elastic net) 186
5.8 邏輯回歸算法 186
5.8.1 Sigmoid函數(shù) 187
5.8.2 代價函數(shù) 189
5.9 模型評估 193
5.9.1 混淆矩陣 193
5.9.2 分類問題常用評估指標 194
5.9.3 回歸問題常用評估指標 196
5.9.4 評估方法 197
本章小結 198
習題 199
第6章 BP神經(jīng)網(wǎng)絡基礎 201
本章思維導圖 201
本章學習目標 202
6.1 感知機 202
6.2 感知機的激活函數(shù) 203
6.3 神經(jīng)網(wǎng)絡的激活函數(shù) 204
6.3.1 Sigmoid函數(shù) 204
6.3.2 Tanh函數(shù) 206
6.3.3 ReLU函數(shù) 206
6.3.4 Leaky ReLU、PReLU、RReLU函數(shù) 207
6.3.5 ELU函數(shù) 208
6.3.6 SELU函數(shù) 208
6.4 輸出層的設計 209
6.4.1 恒等函數(shù)和Softmax函數(shù) 210
6.4.2 Softmax函數(shù)的特征 211
6.4.3 輸出層的神經(jīng)元 211
6.5 損失函數(shù) 212
6.6 鏈式法則與計算圖的反向傳播 212
6.7 隱藏層 214
6.8 PyTorch實現(xiàn)線性回歸 214
6.9 PyTorch實現(xiàn)邏輯回歸 218
6.10 BP神經(jīng)網(wǎng)絡入門示例 220
本章小結 221
習題 222
第7章 卷積神經(jīng)網(wǎng)絡CNN 223
本章思維導圖 223
本章學習目標 223
7.1 輸入層 224
7.2 全連接層 225
7.3 全連接層在圖像處理中的問題 225
7.4 卷積層 226
7.5 池化層 228
7.6 激活層 229
7.7 特征圖形象化 229
7.8 簡單的CNN網(wǎng)絡示例 231
本章小結 232
習題 233
第8章 經(jīng)典神經(jīng)網(wǎng)絡結構分析 234
本章思維導圖 234
本章學習目標 234
8.1 典型網(wǎng)絡LeNet5 235
8.1.1 LeNet5解析 235
8.1.2 PyTorch實現(xiàn)LeNet5 236
8.1.3 PyTorch實現(xiàn)模型的保存與加載 238
8.2 典型網(wǎng)絡AlexNet 241
8.2.1 AlexNet網(wǎng)絡分析 242
8.2.2 局部響應歸一化 243
8.2.3 批歸一化 243
8.2.4 Dropout 244
8.2.5 實現(xiàn)AlexNet 245
8.3 典型網(wǎng)絡VGGNet 248
8.3.1 VGGNet網(wǎng)絡分析 248
8.3.2 手工構建VGGNet 251
8.4 典型網(wǎng)絡Inception 251
8.4.1 Inception網(wǎng)絡分析 252
8.4.2 手工構建Inception網(wǎng)絡 255
8.5 典型網(wǎng)絡ResNet 255
8.5.1 ResNet網(wǎng)絡分析 256
8.5.2 手工構建ResNet 258
8.6 幾種網(wǎng)絡的比較 258
8.7 卷積神經(jīng)網(wǎng)絡的發(fā)展 259
8.7.1 分類網(wǎng)絡 260
8.7.2 檢測網(wǎng)絡 261
8.7.3 分割網(wǎng)絡 261
本章小結 263
習題 263
第9章 百度EasyDL入門 264
本章思維導圖 264
本章學習目標 264
9.1 圖像分類 265
9.1.1 創(chuàng)建數(shù)據(jù)集 265
9.1.2 數(shù)據(jù)集標注 267
9.1.3 模型訓練 267
9.1.4 模型校驗 269
9.1.5 模型發(fā)布 269
9.1.6 體驗模型 270
9.2 物體檢測 270
9.2.1 創(chuàng)建數(shù)據(jù)集 270
9.2.2 數(shù)據(jù)集標注 270
9.2.3 模型訓練 271
9.2.4 模型校驗 271
9.2.5 模型發(fā)布和體驗模型 272
9.3 圖像分割 272
本章小結 273
習題 273
第10章 計算機視覺在制造行業(yè)應用案例分析 274
本章思維導圖 274
本章學習目標 274
10.1 齒輪齒數(shù)統(tǒng)計分析 275
10.2 滾動軸承故障診斷 276
10.3 薄壁件銑削顫振監(jiān)測 279
本章小結 281
習題 281
參考文獻 282