我們正處于“刷臉”的時代,越來越多的“刷臉”應(yīng)用開始出現(xiàn)。例如,北京西站的刷臉檢票、廈門景點的刷臉驗票、余額寶的刷臉認證等。初學(xué)者如果想進行人臉識別相關(guān)的研究和開發(fā),那么他們應(yīng)該閱讀什么書籍呢?
“刷臉”背后的技術(shù),不僅僅是人臉識別,亦需要人臉檢測和人臉檢索等技術(shù)提供支撐。目前,市場上有少部分人臉識別的書籍,而專門講解人臉檢測和人臉檢索技術(shù)的書籍則更少。近年來,筆者及其團隊在從事人臉檢測、人臉識別、人臉檢索相關(guān)的研究時,查閱了很多國內(nèi)外的參考資料,到目前為止,尚未見到一本能夠全面涵蓋“刷臉”應(yīng)用所涉及的人臉檢測、人臉識別和人臉檢索相關(guān)技術(shù)且有實戰(zhàn)參考價值的書籍。其中的一個主要原因可能是刷臉技術(shù)的商業(yè)價值高。
本書按照“刷臉”應(yīng)用開發(fā)時所需技術(shù)的先后順序,通過原理、例子、實戰(zhàn)的方式,分別講解了“刷臉”應(yīng)用需要掌握的三大技術(shù):人臉檢測、人臉識別和人臉檢索。更為重要的是,本書高度注重實戰(zhàn)應(yīng)用,每一個算法都通過具體程序講解算法的使用、實驗設(shè)計,以及實驗結(jié)果。讀者不但能夠了解每個算法的原理,而且能夠掌握應(yīng)用開發(fā)的實戰(zhàn)技能。
本書的目標是作為通用、普及性強、可操作性強的人臉識別的書籍,方便研究人員、工程師、研究生、計算機專業(yè)的高年級本科生,快速上手并全面、深入理解,扎實掌握“刷臉”應(yīng)用相關(guān)的理論和算法,幫助讀者快速入門,理解“刷臉”應(yīng)用背后的核心技術(shù)與算法,并切實掌握“刷臉”應(yīng)用開發(fā)所需的實戰(zhàn)技術(shù)。
本書主編為張重生,副主編為王彎彎、王朋友、趙冬冬。于珂珂、彭國雯、裴宸平等研究生對本書的編寫、實驗部分的驗證提供了一定的幫助,在此致謝。
筆者自知才疏學(xué)淺,僅略知人臉檢測、人臉識別、人臉檢索之皮毛。書中錯謬之處在所難免,如蒙讀者不吝告知(郵箱:chongsheng.zhang@yahoo.com,微信號:A13938613173),將不勝感激。
張重生
2017年4月
張重生,男,博士,教授,碩士生導(dǎo)師,河南大學(xué)大數(shù)據(jù)研究中心、大數(shù)據(jù)團隊帶頭人。研究領(lǐng)域為大數(shù)據(jù)分析、深度學(xué)習(xí)、數(shù)據(jù)挖掘、數(shù)據(jù)庫、數(shù)據(jù)流(實時數(shù)據(jù)分析)。博士畢業(yè)于 INRIA,France(法國國家信息與自動化研究所),獲得優(yōu)秀博士論文榮譽。2010年08月至2011年3月,在美國加州大學(xué)洛杉磯分校(UCLA),計算機系,師從著名的數(shù)據(jù)庫專家Carlo Zaniolo教授,從事數(shù)據(jù)挖掘領(lǐng)域的合作研究。 2012-2013,挪威科技大學(xué),ERCIM/Marie-Curie Fellow。
第1章 人臉檢測、人臉識別與人臉檢索概述 1
1.1 人臉檢測、人臉識別與人臉檢索的應(yīng)用場景 2
1.1.1 當前應(yīng)用 3
1.1.2 未來應(yīng)用 5
1.2 人臉檢測、人臉識別與人臉檢索常用的數(shù)據(jù)集 5
1.2.1 LFW數(shù)據(jù)集 5
1.2.2 FDDB數(shù)據(jù)集 6
1.2.3 Wanwan1數(shù)據(jù)集 7
1.2.4 Wanwan2數(shù)據(jù)集 8
1.3 OpenCV的簡介、安裝與使用 8
參考文獻 15
第2章 圖像處理基礎(chǔ) 16
2.1 數(shù)字圖像處理的基本概念 16
2.1.1 像素 17
2.1.2 分辨率 17
2.1.3 圖像的色調(diào)、亮度和飽和度 19
2.1.4 圖像的對比度 22
2.1.5 圖像的紋理 23
2.2 顏色空間 26
2.2.1 RGB顏色空間 26
2.2.2 HSV顏色空間 27
2.2.3 YUV顏色空間 27
2.2.4 顏色空間的轉(zhuǎn)換 28
2.3 數(shù)字圖像處理的基本操作 32
2.3.1 圖像的讀取 32
2.3.2 圖像的顯示 34
2.3.3 圖像的修改 35
2.3.4 圖像的保存 36
2.3.5 獲取圖像的基本信息 37
2.4 圖像類型及轉(zhuǎn)換 38
2.4.1 圖像類型 39
2.4.2 圖像類型的轉(zhuǎn)換 39
2.5 圖像變換處理 48
2.5.1 圖像的平移 48
2.5.2 圖像的旋轉(zhuǎn) 51
2.5.3 圖像的縮放 52
2.5.4 圖像的剪切 55
2.5.5 圖像的翻轉(zhuǎn) 58
2.6 圖像的噪聲和濾波 60
2.6.1 常見的噪聲模型 60
2.6.2 經(jīng)典的去噪算法 64
第3章 人臉檢測實戰(zhàn) 67
3.1 DPM人臉檢測算法 67
3.1.1 DPM人臉檢測算法的使用 68
3.1.2 DPM人臉檢測算法的原理 69
3.1.3 DPM人臉檢測算法的檢測結(jié)果 73
3.2 LAEO人臉檢測算法 74
3.2.1 LAEO人臉檢測算法的使用 74
3.2.2 LAEO人臉檢測算法的原理 75
3.2.3 LAEO人臉檢測算法的檢測結(jié)果 77
3.3 Viola&Jones人臉檢測算法 79
3.3.1 Viola&Jones人臉檢測算法的使用 79
3.3.2 Viola&Jones人臉檢測算法的原理 79
3.3.3 Viola&Jones人臉檢測算法的檢測結(jié)果 82
參考文獻 83
第4章 基于深度學(xué)習(xí)的人臉檢測算法 84
4.1 CNN Facial Point Detection人臉檢測算法 84
4.1.1 CNN Facial Point Detection人臉檢測算法的使用 85
4.1.2 CNN Facial Point Detection人臉檢測算法的原理 85
4.1.3 CNN Facial Point Detection人臉檢測算法的檢測結(jié)果 86
4.2 DDFD人臉檢測算法 87
4.2.1 DDFD人臉檢測算法的使用 87
4.2.2 DDFD人臉檢測算法的原理 88
4.2.3 DDFD人臉檢測算法的檢測結(jié)果 89
4.3 人臉檢測算法融合 90
參考文獻 92
第5章 基于Fast R-CNN的人臉檢測 94
5.1 Fast R-CNN簡介 94
5.2 Fast R-CNN的特點和結(jié)構(gòu) 95
5.3 Fast R-CNN的使用 96
5.4 數(shù)據(jù)集的預(yù)處理 97
5.5 EdgeBoxes的使用 98
5.6 使用EdgeBoxes提取object proposal 99
5.7 基于Fast R-CNN訓(xùn)練人臉檢測網(wǎng)絡(luò)模型和測試 100
5.7.1 訓(xùn)練階段 100
5.7.2 測試階段 106
5.7.3 評估階段 108
5.7.4 優(yōu)化階段 111
參考文獻 112
第6章 人臉識別實戰(zhàn) 113
6.1 DeepID算法 114
6.1.1 DeepID算法的原理 114
6.1.2 DeepID算法的流程 116
6.1.3 DeepID算法的結(jié)果 126
6.2 VGG Face Descriptor算法 128
6.2.1 VGG Face Descriptor算法的原理 128
6.2.2 VGG Face Descriptor算法的實現(xiàn) 129
6.2.3 VGG Face Descriptor算法的結(jié)果 131
6.3 OpenCV中的3種人臉識別算法 132
6.3.1 Eigenfaces 132
6.3.2 Fisherfaces 140
6.3.3 Local Binary Patterns Histograms 148
6.4 人臉識別算法對比分析 152
6.5 小結(jié) 153
參考文獻 155
第7章 人臉檢索實踐 157
7.1 人臉檢索簡介 157
7.2 計算人臉相似度的方法 158
7.2.1 歐氏距離 159
7.2.2 余弦相似度 159
7.3 查詢處理算法 161
7.4 評價人臉檢索結(jié)果的標準 161
7.5 PHash算法 161
7.5.1 PHash算法的使用 162
7.5.2 PHash算法原理 162
7.5.3 PHash算法實現(xiàn) 162
7.5.4 PHash算法的實驗數(shù)據(jù)、實驗結(jié)果及分析 164
7.6 DHash算法 168
7.6.1 DHash算法的使用 168
7.6.2 DHash算法原理 168
7.6.3 DHash算法實現(xiàn) 169
7.6.4 DHash算法的實驗數(shù)據(jù)、實驗結(jié)果及分析 170
7.7 PCA算法 173
7.7.1 PCA算法的使用 173
7.7.2 PCA算法原理 174
7.7.3 PCA算法實現(xiàn) 175
7.7.4 PCA算法的實驗數(shù)據(jù)、實驗結(jié)果及分析 177
7.8 BoF特征 181
7.8.1 BoF-SIFT算法的使用 182
7.8.2 BoF-SIFT算法原理 182
7.8.3 BoF-SIFT算法實現(xiàn) 182
7.8.4 BoF-SIFT算法的實驗數(shù)據(jù)、實驗結(jié)果及分析 188
7.9 用于圖像快速檢索的KD-Tree索引 190
7.9.1 FLANN算法的使用 191
7.9.2 KD-Tree的創(chuàng)建與查詢處理 191
7.9.3 FLANN中KD-Tree的算法實現(xiàn) 192
7.9.4 FLANN算法的實驗數(shù)據(jù)、實驗結(jié)果及分析 194
7.10 Gabor算法 195
7.10.1 Gabor算法的使用 196
7.10.2 Gabor算法原理 196
7.10.3 Gabor算法實現(xiàn) 199
7.10.4 Gabor算法的實驗數(shù)據(jù)、實驗結(jié)果及分析 204
7.11 HOG算法 208
7.11.1 HOG算法的使用 209
7.11.2 HOG算法原理 209
7.11.3 HOG算法實現(xiàn) 210
7.11.4 HOG算法的實驗數(shù)據(jù)、實驗結(jié)果及分析 212
7.12 深度學(xué)習(xí)特征 215
7.12.1 深度學(xué)習(xí)算法的使用 215
7.12.2 深度學(xué)習(xí)算法原理 215
7.12.3 深度學(xué)習(xí)算法實現(xiàn) 216
7.12.4 深度學(xué)習(xí)算法的實驗數(shù)據(jù)、實驗結(jié)果及分析 216
參考文獻 220
第8章 人臉檢測商業(yè)軟件及其應(yīng)用示例 222
8.1 人臉檢測商業(yè)軟件之VeriLook 222
8.2 人臉檢測商業(yè)軟件之Face++ 226
8.3 各種人臉檢測算法的對比分析 229
8.4 視頻中的人臉檢測與追蹤 231
參考文獻 234