計算機視覺 40例從入門到深度學習 (OpenCV-Python)

李立宗

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

相關主題

商品描述

本書以OpenCV-Python(the Python API for OpenCV)為工具,以案例為載體,系統介紹了電腦視覺從入門到深度學習的相關知識點。本書從基礎知識、基礎案例、機器學習、深度學習和人臉識別5個方面對電腦視覺的相關知識點進行了全面、系統、深入的介紹。書中共介紹了40餘個經典的電腦視覺案例,其中既有圖像加密、指紋識別、車牌識別、缺陷檢測等基於傳統技術的電腦視覺經典案例,也有圖像分類、目標檢測、語義分割、實例分割、風格遷移、姿勢識別等基於深度學習的電腦視覺案例,還有表情識別、駕駛員疲勞檢測、易容術、性別和年齡識別等基於人臉識別的電腦視覺案例。在介紹具體的算法原理時,本書盡量使用通俗易懂的語言和貼近生活的示例來說明問題,避免使用復雜抽象的公式來介紹。本書適合電腦視覺領域的初學者閱讀,也適合學生、教師、專業技術人員、圖像處理愛好者閱讀。

目錄大綱

目錄 
第1部分 基礎知識導讀篇 
第1章 數字圖像基礎 2 
1.1 圖像表示基礎 2 
1.1.1 藝術與生活 2 
1.1.2 數字圖像 3 
1.1.3 二值圖像的處理 5 
1.1.4 像素值的範圍 5 
1.1.5 圖像索引 7 
1.2 彩色圖像的表示 8 
1.3 應用基礎 9 
1.3.1 量化 10 
1.3.2 特徵 10 
1.3.3 距離 11 
1.3.4 圖像識別 13 
1.3.5 信息隱藏 15 
1.4 智能圖像處理基礎 16 
1.5 抽象 18 

第2章 Python基礎 21 
2.1 如何開始 21 
2.2 基礎語法 22 
2.2.1 變量的概念 22 
2.2.2 變量的使用 22 
2.3 數據類型 24 
2.3.1 基礎類型 25 
2.3.2 列表 25 
2.3.3 元組 28 
2.3.4 字典 29 
2.4 選擇結構 31 
2.5 循環結構 35 
2.6 函數 39 
2.6.1 什麽是函數 39 
2.6.2 內置函數 41 
2.6.3 自定義函數 42 
2.7 模塊 44 
2.7.1 標準模塊 44 
2.7.2 第三方模塊 45 
2.7.3 自定義模塊 46 

第3章 OpenCV基礎 47 
3.1 基礎 47 
3.1.1 安裝OpenCV 47 
3.1.2 讀取圖像 49 
3.1.3 顯示圖像 50 
3.1.4 保存圖像 51 
3.2 圖像處理 52 
3.2.1 像素處理 52 
3.2.2 通道處理 57 
3.2.3 調整圖像大小 60 
3.3 感興趣區域 62 
3.4 掩模 63 
3.4.1 掩模基礎及構造 64 
3.4.2 乘法運算 65 
3.4.3 邏輯運算 66 
3.4.4 掩模作為函數參數 68 
3.5 色彩處理 69 
3.5.1 色彩空間基礎 69 
3.5.2 色彩空間轉換 71 
3.5.3 獲取皮膚範圍 72 
3.6 濾波處理 73 
3.6.1 均值濾波 75 
3.6.2 高斯濾波 78 
3.6.3 中值濾波 82 
3.7 形態學 84 
3.7.1 腐蝕 85 
3.7.2 膨脹 88 
3.7.3 通用形態學函數 91 

第2部分 基礎案例篇 
第4章 圖像加密與解密 94 
4.1 加密與解密原理 94 
4.2 圖像整體加密與解密 96 
4.3 臉部打碼及解碼 98 
4.3.1 掩模方式實現 98 
4.3.2 ROI方式實現 101 

第5章 數字水印 105 
5.1 位平面 106 
5.2 數字水印原理 114 
5.3 實現方法 115 
5.4 具體實現 119 
5.5 可視化水印 121 
5.5.1 ROI 121 
5.5.2 加法運算 123 
5.6 擴展學習 125 
5.6.1 算術運算實現數字水印 125 
5.6.2 藝術字 128 

第6章 物體計數 131 
6.1 理論基礎 131 
6.1.1 如何計算圖像的中心點 131 
6.1.2 獲取圖像的中心點 133 
6.1.3 按照面積篩選前景對象 135 
6.2 核心程序 138 
6.2.1 核函數 138 
6.2.2 zip函數 140 
6.2.3 閾值處理函數threshold 140 
6.3 程序設計 141 
6.4 實現程序 142 

第7章 缺陷檢測 144 
7.1 理論基礎 144 
7.1.1 開運算 144 
7.1.2 距離變換函數distanceTransform 146 
7.1.3 最小包圍圓形 148 
7.1.4 篩選標準 149 
7.2 程序設計 150 
7.3 實現程序 151 

第8章 手勢識別 153 
8.1 理論基礎 154 
8.1.1 獲取凸包 154 
8.1.2 凸缺陷 156 
8.1.3 凸缺陷占凸包面積比 159 
8.2 識別過程 161 
8.2.1 識別流程 162 
8.2.2 實現程序 165 
8.3 擴展學習:石頭、剪刀、布的識別 167 
8.3.1 形狀匹配 167 
8.3.2 實現程序 170 

第9章 答題卡識別 173 
9.1 單道題目的識別 173 
9.1.1 基本流程及原理 173 
9.1.2 實現程序 178 
9.2 整張答題卡識別原理 180 
9.2.1 圖像預處理 180 
9.2.2 答題卡處理 181 
9.2.3 篩選出所有選項 189 
9.2.4 將選項按照題目分組 190 
9.2.5 處理每一道題目的選項 195 
9.2.6 顯示結果 195 
9.3 整張答題卡識別程序 195 

第10章 隱身術 201 
10.1 圖像的隱身術 201 
10.1.1 基本原理與實現 201 
10.1.2 實現程序 213 
10.1.3 問題及優化方向 214 
10.2 視頻隱身術 215 

第11章 以圖搜圖 217 
11.1 原理與實現 218 
11.1.1 算法原理 218 
11.1.2 感知哈希值計算方法 220 
11.1.3 感知哈希值計算函數 224 
11.1.4 計算距離 224 
11.1.5 計算圖像庫內所有圖像的哈希值 225 
11.1.6 結果顯示 226 
11.2 實現程序 228 
11.3 擴展學習 230 

第12章 手寫數字識別 231 
12.1 基本原理 232 
12.2 實現細節 233 
12.3 實現程序 235 
12.4 擴展閱讀 236 

第13章 車牌識別 238 
13.1 基本原理 238 
13.1.1 提取車牌 238 
13.1.2 分割車牌 240 
13.1.3 識別車牌 242 
13.2 實現程序 246 
13.3 下一步學習 249 

第14章 指紋識別 250 
14.1 指紋識別基本原理 251 
14.2 指紋識別算法概述 251 
14.2.1 描述關鍵點特徵 251 
14.2.2 特徵提取 252 
14.2.3 MCC匹配方法 254 
14.2.4 參考資料 258 
14.3 尺度不變特徵變換 258 
14.3.1 尺度空間變換 260 
14.3.2 關鍵點定位 266 
14.3.3 通過方向描述關鍵點 267 
14.3.4 顯示關鍵點 271 
14.4 基於SIFT的指紋識別 273 
14.4.1 距離計算 273 
14.4.2 特徵匹配 274 
14.4.3 算法及實現程序 277 

第3部分 機器學習篇 
第15章 機器學習導讀 282 
15.1 機器學習是什麽 283 
15.2 機器學習基礎概念 284 
15.2.1 機器學習的類型 284 
15.2.2 泛化能力 289 
15.2.3 數據集的劃分 290 
15.2.4 模型的擬合 291 
15.2.5 性能度量 292 
15.2.6 偏差與方差 293 
15.3 OpenCV中的機器學習模塊 294 
15.3.1 人工神經網絡 295 
15.3.2 決策樹 296 
15.3.3 EM模塊 300 
15.3.4 K近鄰模塊 300 
15.3.5 logistic回歸 303 
15.3.6 貝葉斯分類器 305 
15.3.7 支持向量機 308 
15.3.8 隨機梯度下降 SVM 分類器 310 
15.4 OpenCV機器學習模塊的使用 312 
15.4.1 使用KNN模塊分類 312 
15.4.2 使用SVM模塊分類 314 

第16章 KNN實現字符識別 317 
16.1 手寫數字識別 317 
16.2 英文字母識別 319 

第17章 求解數獨圖像 322 
17.1 基本過程 322 
17.2 定位數獨圖像內的單元格 323 
17.3 構造KNN模型 327 
17.4 識別數獨圖像內的數字 330 
17.5 求解數獨 332 
17.6 繪制數獨求解結果 334 
17.7 實現程序 335 
17.8 擴展學習 338 

第18章 SVM數字識別 339 
18.1 基本流程 339 
18.2 傾斜校正 340 
18.3 HOG特徵提取 343 
18.4 數據處理 348 
18.5 構造及使用SVM分類器 351 
18.6 實現程序 352 
18.7 參考學習 354 

第19章 行人檢測 355 
19.1 方向梯度直方圖特徵 355 
19.2 基礎實現 358 
19.2.1 基本流程 359 
19.2.2 實現程序 359 
19.3 函數detectMultiScale參數及優化 360 
19.3.1 參數winStride 360 
19.3.2 參數padding 362 
19.3.3 參數scale 364 
19.3.4 參數useMeanshiftGrouping 366 
19.4 完整程序 369 
19.5 參考學習 370 

第20章 K均值聚類實現藝術畫 371 
20.1 理論基礎 371 
20.1.1 案例 371 
20.1.2 K均值聚類的基本步驟 373 
20.2 K均值聚類模塊 374 
20.3 藝術畫 377 

第4部分 深度學習篇 
第21章 深度學習導讀 384 
21.1 從感知機到人工神經網絡 384 
21.1.1 感知機 384 
21.1.2 激活函數 385 
21.1.3 人工神經網絡 387 
21.1.4 完成分類 388 
21.2 人工神經網絡如何學習 389 
21.3 深度學習是什麽 390 
21.3.1 深度的含義 390 
21.3.2 表示學習 391 
21.3.3 端到端 392 
21.3.4 深度學習可視化 393 
21.4 激活函數的分類 394 
21.4.1 sigmoid函數 394 
21.4.2 tanh函數 395 
21.4.3 ReLU函數 395 
21.4.4 Leaky ReLU函數 396 
21.4.5 ELU函數 396 
21.5 損失函數 397 
21.5.1 為什麽要用損失值 397 
21.5.2 損失值如何起作用 398 
21.5.3 均方誤差 399 
21.5.4 交叉熵誤差 400 
21.6 學習的技能與方法 401 
21.6.1 全連接 401 
21.6.2 隨機失活 402 
21.6.3 One-hot編碼 403 
21.6.4 學習率 403 
21.6.5 正則化 404 
21.6.6 mini-batch方法 405 
21.6.7 超參數 406 
21.7 深度學習游樂場 406 

第22章 捲積神經網絡基礎 407 
22.1 捲積基礎 407 
22.2 捲積原理 409 
22.2.1 數值捲積 409 
22.2.2 圖像捲積 410 
22.2.3 如何獲取捲積核 411 
22.3 填充和步長 412 
22.4 池化操作 413 
22.5 感受野 414 
22.6 預處理與初始化 416 
22.6.1 擴充數據集 416 
22.6.2 標準化與歸一化 417 
22.6.3 網絡參數初始化 418 
22.7 CNN 418 22.7.1 LeNet 418 
22.7.2 AlexNet 419 
22.7.3 VGG網絡 420 
22.7.4 NiN 420 
22.7.5 GooLeNet 421 
22.7.6 殘差網絡 423 

第23章 DNN模塊 426 
23.1 工作流程 427 
23.2 模型導入 428 
23.3 圖像預處理 429 
23.4 推理相關函數 438 

第24章 深度學習應用實踐 440 
24.1 圖像分類 441 
24.1.1 圖像分類模型 441 
24.1.2 實現程序 442 
24.2 目標檢測 443 
24.2.1 YOLO 444 
24.2.2 SSD 447 
24.3 圖像分割 450 
24.3.1 語義分割 450 
24.3.2 實例分割 453 
24.4 風格遷移 458 
24.5 姿勢識別 460 
24.6 說明 463 

第5部分 人臉識別篇 
第25章 人臉檢測 466 
25.1 基本原理 466 
25.2 級聯分類器的使用 469 
25.3 函數介紹 470 
25.4 人臉檢測實現 471 
25.5 表情檢測 473 

第26章 人臉識別 475 
26.1 人臉識別基礎 475 
26.1.1 人臉識別基本流程 475 
26.1.2 OpenCV人臉識別基礎 476 
26.2 LBPH人臉識別 478 
26.2.1 基本原理 478 
26.2.2 函數介紹 482 
26.2.3 案例介紹 482 
26.3 EigenFaces人臉識別 484 
26.3.1 基本原理 484 
26.3.2 函數介紹 485 
26.3.3 案例介紹 485 
26.4 FisherFaces人臉識別 487 
26.4.1 基本原理 487 
26.4.2 函數介紹 489 
26.4.3 案例介紹 489 
26.5 人臉數據庫 491 

第27章 dlib庫 493 
27.1 定位人臉 493 
27.2 繪制關鍵點 494 
27.3 勾勒五官輪廓 497 
27.4 人臉對齊 500 
27.5 調用CNN實現人臉檢測 502 

第28章 人臉識別應用案例 504 
28.1 表情識別 504 
28.2 駕駛員疲勞檢測 507 
28.3 易容術 511 
28.3.1 仿射 511 
28.3.2 算法流程 512 
28.3.3 實現程序 514 
28.4 年齡和性別識別 517