DeepID人臉識別算法之三代_第1頁
DeepID人臉識別算法之三代_第2頁
DeepID人臉識別算法之三代_第3頁
DeepID人臉識別算法之三代_第4頁
DeepID人臉識別算法之三代_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、DeepID人臉識別算法之三代轉(zhuǎn)載請注明:DeepID,目前最強(qiáng)人臉識別算法,已經(jīng)三代。如今,深度學(xué)習(xí)方興未艾,大數(shù)據(jù)風(fēng)起云涌,各個領(lǐng)域都在處于使用深度學(xué)習(xí)進(jìn)行強(qiáng)突破的階段,人臉識別也不例外,香港中文大學(xué)的團(tuán)隊使用卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)特征,將之用于人臉識別的子領(lǐng)域人臉驗證方面,取得了不錯的效果。雖然是今年7月份才出的成果,但連發(fā)三箭,皆中靶心,使用的卷積神經(jīng)網(wǎng)絡(luò)已經(jīng)改進(jìn)了三次,破竹之勢節(jié)節(jié)高。故而在這里將DeepID神經(jīng)網(wǎng)絡(luò)的三代進(jìn)化史總結(jié)一下,以期相互討論,互有增益。在說明具體的結(jié)論之前,我先進(jìn)行總結(jié)式的幾段文字,然后再做詳細(xì)的技術(shù)說明,以防有些過來尋求科普的人看到一坨坨的公式便拂袖遠(yuǎn)去,沒看到

2、什么干貨。1. 問題引入及算法流程DeepID所應(yīng)用的領(lǐng)域是人臉識別的子領(lǐng)域人臉驗證,就是判斷兩張圖片是不是同一個人。人臉驗證問題很容易就可以轉(zhuǎn)成人臉識別問題,人臉識別就是多次人臉驗證。DeepID達(dá)到的效果都是在LFW數(shù)據(jù)集上,該數(shù)據(jù)集是wild人臉數(shù)據(jù)集,即沒有經(jīng)過對其的人臉,背景變化比較大。該數(shù)據(jù)集太小,很多identities都只有一張人臉,5000個人只有13000張圖片。所以DeepID引入了外部數(shù)據(jù)集CelebFaces和CelebFaces+,每次模型更新都會使用更大的數(shù)據(jù)集,這在后面介紹DeepID時再細(xì)說。卷積神經(jīng)網(wǎng)絡(luò)在DeepID中的作用是是學(xué)習(xí)特征,即將圖片輸入進(jìn)去,學(xué)

3、習(xí)到一個160維的向量。然后再這個160維向量上,套用各種現(xiàn)成的分類器,即可得到結(jié)果。DeepID之所以有效,首先在于卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)到的特征的區(qū)分能力比較強(qiáng),為了得到比較強(qiáng)的結(jié)果,DeepID采取了目前最常用的手法增大數(shù)據(jù)集,只有大的數(shù)據(jù)集才能使得卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練的更加的充分。增大數(shù)據(jù)集有兩種手法,第一種手法,就是采集好的數(shù)據(jù),即CelebFaces數(shù)據(jù)集的引入。第二種手法,就是將圖片多尺度多通道多區(qū)域的切分,分別進(jìn)行訓(xùn)練,再把得到的向量連接起來,得到最后的向量。DeepID的算法流程如下:在上述的流程中,DeepID可以換為Hog,LBP等傳統(tǒng)特征提取算法。Classifier可以是SVM

4、,Joint Bayes,LR,NN等任意的machine learning分類算法。在引入外部數(shù)據(jù)集的情況下,訓(xùn)練流程是這樣的。首先,外部數(shù)據(jù)集4:1進(jìn)行切分,4那份用來訓(xùn)練DeepID,1那份作為訓(xùn)練DeepID的驗證集;然后,1那份用來訓(xùn)練Classifier。這樣劃分的原因在于兩層模型不能使用同一種數(shù)據(jù)進(jìn)行訓(xùn)練,容易產(chǎn)生過擬合。如此,想必大家對DeepID的應(yīng)用場景已經(jīng)熟悉了,下面開始講三代DeepID的進(jìn)化。2. DeepID在這里,我假定大家對卷積神經(jīng)網(wǎng)絡(luò)已經(jīng)有了基本的認(rèn)識,如果沒有的話,出門左轉(zhuǎn)看我這篇blog:卷積神經(jīng)網(wǎng)絡(luò)。2.1 DeepID網(wǎng)絡(luò)結(jié)構(gòu)DeepID是第一代,其結(jié)

5、構(gòu)與普通的卷積神經(jīng)網(wǎng)絡(luò)差不多。結(jié)構(gòu)圖如下:該結(jié)構(gòu)與普通的卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)相似,但是在隱含層,也就是倒數(shù)第二層,與Convolutional layer 4和Max-pooling layer3相連,鑒于卷積神經(jīng)網(wǎng)絡(luò)層數(shù)越高視野域越大的特性,這樣的連接方式可以既考慮局部的特征,又考慮全局的特征。2.2 DeepID實驗設(shè)置實驗中,人臉圖片的預(yù)處理方式,也就是切分方式的樣例如下:在DeepID的實驗過程中,使用的外部數(shù)據(jù)集為CelebFaces+,有10177人,202599張圖片;8700人訓(xùn)練DeepID,1477人訓(xùn)練Joint Bayesian分類器。切分的patch(也就是上圖這樣的數(shù)

6、據(jù))數(shù)目為100,使用了五種不同的scale。每張圖片最后形成的向量長度為32000,使用PCA降維到150。如此,達(dá)到97.20的效果。使用某種Transfer Learning的算法后,達(dá)到97.45%的最終效果。2.3 實驗結(jié)論· 使用multi-scale patches的convnet比只使用一個只有整張人臉的patch的效果要好。· DeepID自身的分類錯誤率在40%到60%之間震蕩,雖然較高,但DeepID是用來學(xué)特征的,并不需要要關(guān)注自身分類錯誤率。· 使用DeepID神經(jīng)網(wǎng)絡(luò)的最后一層softmax層作為特征表示,效果很差。· 隨著D

7、eepID的訓(xùn)練集人數(shù)的增長,DeepID本身的分類正確率和LFW的驗證正確率都在增加。這就是DeepID第一代。3 DeepID2DeepID2相對于DeepID有了較大的提高。其主要原因在于在DeepID的基礎(chǔ)上添加了驗證信號。具體來說,原本的卷積神經(jīng)網(wǎng)絡(luò)最后一層softmax使用的是Logistic Regression作為最終的目標(biāo)函數(shù),也就是識別信號;但在DeepID2中,目標(biāo)函數(shù)上添加了驗證信號,兩個信號使用加權(quán)的方式進(jìn)行了組合。3.1 兩種信號及訓(xùn)練過程識別信號公式如下:驗證信號公式如下:由于驗證信號的計算需要兩個樣本,所以整個卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程也就發(fā)生了變化,之前是將全部數(shù)

8、據(jù)切分為小的batch來進(jìn)行訓(xùn)練?,F(xiàn)在則是每次迭代時隨機(jī)抽取兩個樣本,然后進(jìn)行訓(xùn)練。訓(xùn)練過程如下:在訓(xùn)練過程中,lambda是驗證信號的加權(quán)參數(shù)。M參數(shù)時動態(tài)調(diào)整的,調(diào)整策略是使最近的訓(xùn)練樣本上的驗證錯誤率最低。3.2 實驗設(shè)置首先使用SDM算法對每張人臉檢測出21個landmarks,然后根據(jù)這些landmarks,再加上位置、尺度、通道、水平翻轉(zhuǎn)等因素,每張人臉形成了400張patch,使用200個CNN對其進(jìn)行訓(xùn)練,水平翻轉(zhuǎn)形成的patch跟原始圖片放在一起進(jìn)行訓(xùn)練。這樣,就形成了400×160維的向量。這樣形成的特征維數(shù)太高,所以要進(jìn)行特征選擇,不同于之前的DeepID直接采

9、用PCA的方式,DeepID2先對patch進(jìn)行選取,使用前向-后向貪心算法選取了25個最有效的patch,這樣就只有25×160維向量,然后使用PCA進(jìn)行降維,降維后為180維,然后再輸入到聯(lián)合貝葉斯模型中進(jìn)行分類。DeepID2使用的外部數(shù)據(jù)集仍然是CelebFaces+,但先把CelebFaces+進(jìn)行了切分,切分成了CelebFaces+A(8192個人)和CelebFaces+B(1985個人)。首先,訓(xùn)練DeepID2,CelebFaces+A做訓(xùn)練集,此時CelebFaces+B做驗證集;其次,CelebFaces+B切分為1485人和500人兩個部分,進(jìn)行特征選擇,選

10、擇25個patch。最后在CelebFaces+B整個數(shù)據(jù)集上訓(xùn)練聯(lián)合貝葉斯模型,然后在LFW上進(jìn)行測試。在上一段描述的基礎(chǔ)上,進(jìn)行了組合模型的加強(qiáng),即在選取特征時進(jìn)行了七次。第一次選效果最好的25個patch,第二次從剩余的patch中再選25個,以此類推。然后將七個聯(lián)合貝葉斯模型使用SVM進(jìn)行融合。最終達(dá)到了99.15%的結(jié)果。其中,選取的25個patch如下:3.3 實驗結(jié)論· 對lambda進(jìn)行調(diào)整,也即對識別信號和驗證信號進(jìn)行平衡,發(fā)現(xiàn)lambda在0.05的時候最好。使用LDA中計算類間方差和類內(nèi)方差的方法進(jìn)行計算。得到的結(jié)果如下:可以發(fā)現(xiàn),在lambda=0.05的時候

11、,類間方差幾乎不變,類內(nèi)方差下降了很多。這樣就保證了類間區(qū)分性,而減少了類內(nèi)區(qū)分性。如果lambda為無窮大,即只有驗證信號時,類間方差和類內(nèi)方差都變得很小,不利于最后的分類。· DeepID的訓(xùn)練集人數(shù)越多,最后的驗證率越高。· 對不同的驗證信號,包括L1,L2,cosin等分別進(jìn)行了實驗,發(fā)現(xiàn)L2 Norm最好。4 DeepID2+DeepID2+有如下貢獻(xiàn),第一點(diǎn)是繼續(xù)更改了網(wǎng)絡(luò)結(jié)構(gòu);第二點(diǎn)是對卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行了大量的分析,發(fā)現(xiàn)了幾大特征,包括:+ 神經(jīng)單元的適度稀疏性,該性質(zhì)甚至可以保證即便經(jīng)過二值化后,仍然可以達(dá)到較好的識別效果;+ 高層的神經(jīng)單元對人比較敏感,即

12、對同一個人的頭像來說,總有一些單元處于一直激活或者一直抑制的狀態(tài);+ DeepID2+的輸出對遮擋非常魯棒。4.1 網(wǎng)絡(luò)結(jié)構(gòu)變化相比于DeepID2,DeepID2+做了如下三點(diǎn)修改:· DeepID層從160維提高到512維。· 訓(xùn)練集將CelebFaces+和WDRef數(shù)據(jù)集進(jìn)行了融合,共有12000人,290000張圖片。· 將DeepID層不僅和第四層和第三層的max-pooling層連接,還連接了第一層和第二層的max-pooling層。最后的DeepID2+的網(wǎng)絡(luò)結(jié)構(gòu)如下:上圖中,ve表示監(jiān)督信號(即驗證信號和識別信號的加權(quán)和)。FC-n表示第幾層的m

13、ax-pooling。4.2 實驗設(shè)置訓(xùn)練數(shù)據(jù)共有12000人,290000張圖像。其中2000人用于在訓(xùn)練DeepID2+時做驗證集,以及訓(xùn)練聯(lián)合貝葉斯模型。4.3 實驗結(jié)論分別使用FC-n進(jìn)行實驗,比較的算法包括DeepID2+、只有從FC-4反向傳播下來進(jìn)行訓(xùn)練的模型、使用少量數(shù)據(jù)的、使用小的特征向量的模型。結(jié)果如下:DeepID2選取了25個patch,DeepID2+選取了同樣的25個patch,然后抽取的特征分別訓(xùn)練聯(lián)合貝葉斯模型,得到的結(jié)果是DeepID2+平均比DeepID2提高2%。4.4 適度稀疏與二值化DeepID2+有一個性質(zhì),即對每個人,最后的DeepID層都大概有半

14、數(shù)的單元是激活的,半數(shù)的單元是抑制的。而不同的人,激活或抑制的單元是不同的?;诖诵再|(zhì)。使用閾值對最后輸出的512維向量進(jìn)行了二值化處理,發(fā)現(xiàn)效果降低有限。二值化后會有好處,即通過計算漢明距離就可以進(jìn)行檢索了。然后精度保證的情況下,可以使人臉檢索變得速度更快,更接近實用場景。4.5 特征區(qū)分性存在某個神經(jīng)單元,只使用普通的閾值法,就能針對某個人得到97%的正確率。不同的神經(jīng)單元針對不同的人或不同的種族或不同的年齡都有很強(qiáng)的區(qū)分性。在這里,對每個單元的激活程度進(jìn)行由高到低排序,可以得到下圖所示:上圖只是其中一張圖示,還有針對種族、年齡等的激活分析。此處不贅述。但值得說的是,這種分析方法對我們很有

15、啟發(fā)。卷積神經(jīng)網(wǎng)絡(luò)的輸出的含義是什么,很難解釋,通過這種方法,或許可以得到一些結(jié)論。4.6 遮擋魯棒性在訓(xùn)練數(shù)據(jù)中沒有遮擋數(shù)據(jù)的情況下,DeepID2+自動就對遮擋有了很好的魯棒性。有兩種方式對人臉進(jìn)行多種尺度的遮擋,第一種是從下往上進(jìn)行遮擋,從10%-70%。第二種是不同大小的黑塊隨機(jī)放,黑塊的大小從10×10到70×70。結(jié)論是遮擋在20%以內(nèi),塊大小在30×#30以下,DeepID2+的輸出的向量的驗證正確率幾乎不變。5 總結(jié)至此,DeepID的三代進(jìn)化史就講完了。簡單的說一下我的感受。首先是卷積神經(jīng)網(wǎng)絡(luò)的作用,雖說之前聽說過卷積神經(jīng)網(wǎng)絡(luò)既可以分類,也可以學(xué)

16、習(xí)特征,但I(xiàn)mageNet上的卷積神經(jīng)網(wǎng)絡(luò)都是分類的,這次終于見到不關(guān)注分類錯誤率而關(guān)注特征的卷積神經(jīng)網(wǎng)絡(luò)。其次,卷積神經(jīng)網(wǎng)絡(luò)的改進(jìn)方式,無非如下幾種:增大網(wǎng)絡(luò)深度和寬度,增加數(shù)據(jù),將網(wǎng)絡(luò)隱含層連接到前面幾層來,添加其他的信號。再次,也是最重要的,就是DeepID在發(fā)展過程中對輸出向量的分析,尤其是DeepID2+,神經(jīng)網(wǎng)絡(luò)的各個單元一直是無法解釋的,但這次作者不僅試圖去發(fā)現(xiàn)規(guī)律,還基于規(guī)律做出了一些改動,比如二值化。最后,卷積神經(jīng)網(wǎng)絡(luò)的魯棒性真的很厲害。6 參考文獻(xiàn)· 1 Sun Y, Wang X, Tang X. Deep learning face representation from predicting 10,000 classesC/Computer Vision and Pattern Recognition (CVPR), 2014 IEEE Conference on. IEEE, 2014: 1891-1898.· 2 Sun Y, Chen Y, Wang X, et al. Deep learning fac

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論