一步一步帶你完成深度學(xué)習(xí)與對象檢測之人臉識別
通過往期的分享,我們了解到人臉識別的大概過程,主要包括:
1、人臉圖片的搜集(原始數(shù)據(jù))
2、從圖片中識別到人臉
3、人臉數(shù)據(jù)提取
4、人臉數(shù)據(jù)保存
5、從圖片或者視頻中檢測到人臉
6、人臉數(shù)據(jù)提取
7、被識別的人臉與數(shù)據(jù)庫中的數(shù)據(jù)一一對比,識別出人臉
以上人臉識別過程,存在一定的問題,當(dāng)人臉原始數(shù)據(jù)比較大時,數(shù)據(jù)庫中必然存在比較多的人臉數(shù)據(jù),當(dāng)進(jìn)行人臉識別時,被識別的人臉與數(shù)據(jù)庫中的數(shù)據(jù)對比時,必然會消耗大量的時間,對人臉實時識別的速度有較大的影響。受CNN卷積神經(jīng)網(wǎng)絡(luò)的啟發(fā),我們使用神經(jīng)網(wǎng)絡(luò)來進(jìn)行人臉數(shù)據(jù)的訓(xùn)練,標(biāo)簽是人臉的名字,數(shù)據(jù)是人臉數(shù)據(jù),使用神經(jīng)網(wǎng)絡(luò)對人臉數(shù)據(jù)進(jìn)行訓(xùn)練,這樣當(dāng)數(shù)據(jù)比較大時,神經(jīng)網(wǎng)絡(luò)識別速度與正確率就越高,大大提高人臉識別的速度與正確率,這樣人臉識別的過程便成為如下過程:
1、人臉圖片的搜集(原始數(shù)據(jù))
2、從圖片中識別到人臉
3、人臉數(shù)據(jù)提取與保存
4、人臉數(shù)據(jù)與人臉標(biāo)簽的神經(jīng)網(wǎng)絡(luò)訓(xùn)練,保存訓(xùn)練模型
5、從圖片或者視頻中檢測到人臉
6、識別到的人臉進(jìn)行神經(jīng)網(wǎng)絡(luò)預(yù)測,進(jìn)行人臉識別
本期介紹人臉數(shù)據(jù)的提取
1、人臉原始圖片的搜集
要進(jìn)行人臉識別,就要搜集用戶的人臉圖片,我們從網(wǎng)站上搜集了幾個明星的照片來進(jìn)行本期文章的分享。
首先在目錄文件下新建一個dataset文件夾,里面放置多個文件夾,每個文件夾便是一個明星的照片,文件夾名稱是明星的名字,目錄類似如下:

2、設(shè)置人臉檢測模型與人臉提取嵌入數(shù)據(jù)模型
人臉檢測模型,我們直接使用ResNet-10和SSD算法在caffe上面訓(xùn)練好的模型。
人臉數(shù)據(jù)提取嵌入模型,使用OpenFace的openface_nn4.small2.v1.t7模型,此模型訓(xùn)練在pytorch上,可以直接使用opencv來進(jìn)行加載。

人臉檢測模型與人臉提取嵌入數(shù)據(jù)模型
3、初始化圖片地址,初始化人臉數(shù)據(jù)數(shù)組與人臉名稱標(biāo)簽數(shù)組

初始化人臉數(shù)據(jù)
4、遍歷整個dataset目錄,進(jìn)行圖片處理
30行提取了文件夾的名稱,此名稱便是后期需要保存的label值
33-35行,進(jìn)行了圖片的讀取以及resize處理
38行計算圖片的blob值
43-44行,把圖片的blob值放入人臉檢測神經(jīng)網(wǎng)絡(luò)進(jìn)行人臉的檢測

47行,當(dāng)在圖片中檢測到 人臉時,其神經(jīng)網(wǎng)絡(luò)的len值會大于0
50行,當(dāng)檢測到人臉時,我們提取人臉的置信度
53行設(shè)計人臉置信度為0.5
55-59行,計算人臉在圖片中的位置,并提取人臉的尺寸
61-62行,當(dāng)人臉尺寸較小時 ,我們忽略此人臉信息,選擇圖片中人臉比較大的人臉

64行,當(dāng)人臉圖片尺寸符合要求時,我們計算人臉的blob值
67-68行,把人臉圖片的blob值傳遞人臉嵌入數(shù)據(jù)神經(jīng)網(wǎng)絡(luò)
71-72行,保存人臉的label與人臉數(shù)據(jù)到數(shù)組中

5、保存人臉數(shù)據(jù)
當(dāng)遍歷完成后,dataset中的所有的人臉數(shù)據(jù)便保存在了事先建立的數(shù)組中。
77行,新建一個字典數(shù)據(jù),把人臉的label以及人臉數(shù)據(jù)保存到本地,方便后期進(jìn)行神經(jīng)網(wǎng)絡(luò)的訓(xùn)練。

以上5步便完成了整個人臉的數(shù)據(jù)采集,當(dāng)然,若想后期人臉識別的精度較高,需要進(jìn)行大量的人臉數(shù)據(jù)搜集。
此部分文章是人臉識別的第一部分,人臉數(shù)據(jù)的搜集與提取,后期我們分享人臉識別系統(tǒng)的神經(jīng)網(wǎng)絡(luò)訓(xùn)練與人臉識別。