基于深度學(xué)習(xí)的人臉識(shí)別算法,如何讓神經(jīng)網(wǎng)絡(luò)從訓(xùn)練數(shù)據(jù)中學(xué)習(xí)到有效、魯棒的生物特征是至關(guān)重要的。在這個(gè)過(guò)程中,一個(gè)良好的學(xué)習(xí)向?qū)遣豢苫蛉钡?。因此,在模型?xùn)練的過(guò)程中,通常使用度量學(xué)習(xí)的方式,將人物面部特征間的距離,作為神經(jīng)網(wǎng)絡(luò)特征學(xué)習(xí)的向?qū)В瑏?lái)實(shí)現(xiàn)區(qū)分不同人物的目的。
為了讓神經(jīng)網(wǎng)絡(luò)能夠更加有效的學(xué)習(xí),合理的設(shè)計(jì)損失函數(shù)來(lái)度量和映射人物特征之間的距離,成為了提高人臉識(shí)別精度的主要研究方向之一。許多在分類任務(wù)中常用的損失函數(shù),如Softmax Loss,在經(jīng)過(guò)一系列的改進(jìn)之后,更好的適應(yīng)了人臉識(shí)別的任務(wù)。像Arcface這樣的損失函數(shù)(下圖),利用了一種附加角度對(duì)cos值進(jìn)行加法約束,使得模型能夠在學(xué)習(xí)過(guò)程中合理的壓縮相同人物特征間的余弦距離的同時(shí)增大不同人物特征間的余弦距離,以此達(dá)到精準(zhǔn)區(qū)分人物的目的。
圖示展示在利用損失函數(shù)arcface訓(xùn)練一個(gè)深度卷積神經(jīng)網(wǎng)絡(luò)過(guò)程中的計(jì)算流程。其中的改進(jìn)在于,給角度加入了加性間隔m作為懲罰項(xiàng)來(lái)減小類間間距,并對(duì)其余弦值加入放縮s進(jìn)行放縮,讓網(wǎng)絡(luò)變得易于訓(xùn)練。
另一些損失函數(shù),如Triplet Loss(下圖),則是通過(guò)以特定規(guī)則從訓(xùn)練集中選擇樣例,提取特征,比較這些特征之間的距離,來(lái)達(dá)到聚類相同人物特征和離散不同人物特征的目的??梢钥吹?,這種方法因?yàn)橐鸫伪葘?duì)選擇樣例特征之間的距離并基于此來(lái)優(yōu)化模型參數(shù),所以會(huì)延長(zhǎng)模型訓(xùn)練的周期。但對(duì)于解決一些特殊場(chǎng)景下的困難樣例,會(huì)有較好的效果。
圖示為最初版本的Triplet Loss原理示意圖。訓(xùn)練過(guò)程中需要從訓(xùn)練集中選擇一個(gè)Anchor樣本以及與Anchor樣本同類的Positive樣本和與Anchor樣本異類的Negative樣本,在訓(xùn)練過(guò)程中不斷的拉近同類樣本的距離并遠(yuǎn)離異類樣本。
選擇不同的損失函數(shù),會(huì)對(duì)模型進(jìn)行識(shí)別任務(wù)時(shí)選用的距離公式(相似度計(jì)算方法)產(chǎn)生影響。例如,Triplet Loss在早期優(yōu)化的是歐氏距離,所以在后期進(jìn)行特征比對(duì)時(shí),利用歐式距離來(lái)計(jì)算特征之間相似度就是更加自然的。此外,通過(guò)對(duì)這些損失函數(shù)進(jìn)行變形,來(lái)統(tǒng)一各損失函數(shù)的優(yōu)化距離,從而使不同的損失函數(shù)能夠運(yùn)用在訓(xùn)練模型的不同階段,或?qū)⒉煌瑩p失函數(shù)對(duì)不同的樣例分配進(jìn)行結(jié)合,從而達(dá)到更高效的訓(xùn)練效率,也是目前的工作方向之一。
網(wǎng)絡(luò)結(jié)構(gòu)
根據(jù)使用場(chǎng)景和計(jì)算設(shè)備的不同,通常需要選擇不同規(guī)模的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。隨著人臉識(shí)別在移動(dòng)端的普及以及識(shí)別規(guī)模的增大,選用計(jì)算量更小、更高效的網(wǎng)絡(luò)結(jié)構(gòu)成為了重要的研究方向。
標(biāo)準(zhǔn)的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),以VGG16為例,通常由卷積層,池化層,全連接層和激活函數(shù)組成。該網(wǎng)絡(luò)通過(guò)反復(fù)堆疊3*3的小型卷積核和2*2的最大池化層,不斷加深網(wǎng)絡(luò)結(jié)構(gòu)來(lái)提升性能。
但隨著網(wǎng)絡(luò)結(jié)構(gòu)的進(jìn)一步加深,網(wǎng)絡(luò)參數(shù)會(huì)隨之增多,運(yùn)算開(kāi)銷會(huì)變得很大,增加運(yùn)算成本。同時(shí),網(wǎng)絡(luò)結(jié)構(gòu)的加深也會(huì)讓網(wǎng)絡(luò)發(fā)生退化現(xiàn)象,以至于在進(jìn)一步訓(xùn)練時(shí)無(wú)法達(dá)到預(yù)期的精度。
為解決這些問(wèn)題,設(shè)計(jì)出參數(shù)少,深度深,運(yùn)算快,易于訓(xùn)練的輕量級(jí)網(wǎng)絡(luò)網(wǎng)絡(luò),各種卷積結(jié)構(gòu)和模塊被逐步引入到了卷積神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)構(gòu)架中。
殘差模塊:為解決加深網(wǎng)絡(luò)后的網(wǎng)絡(luò)退化問(wèn)題,使深度網(wǎng)絡(luò)變得可訓(xùn)練而提出的結(jié)構(gòu)(見(jiàn)下圖)。這種跳躍連接的結(jié)構(gòu)讓網(wǎng)絡(luò)有能力在需要的時(shí)候擬合一個(gè)潛在的恒等映射函數(shù),從而避免了在極深網(wǎng)絡(luò)中出現(xiàn)的難以訓(xùn)練的問(wèn)題。
分組卷積:在標(biāo)準(zhǔn)的卷積操作中,其參數(shù)量與輸入特征圖通道數(shù),卷積核尺寸和輸出特征圖通道數(shù)有關(guān)。如圖,若輸入特征圖尺寸為H*W*c1,卷積核尺寸為h1*w1*c1,輸出特征圖尺寸為H*W*c2,標(biāo)準(zhǔn)卷幾層的參數(shù)量則為:h1*w1*c1*c2。
若使用分組卷積(見(jiàn)下圖),事先將輸入的特征圖按照通道數(shù)分為g組,分組卷積的參數(shù)量為則會(huì)變成標(biāo)準(zhǔn)卷積參數(shù)量的1/g:h1*w1*c1*c2/g。
分組卷積能夠在一定程度上降低卷積的參數(shù)量,但也會(huì)減弱各通道之間的相關(guān)性。
深度可分離卷積:深度可分離卷積操作是將普通卷積拆解成深度卷積和逐點(diǎn)卷積。深度卷積負(fù)責(zé)濾波,逐點(diǎn)卷積負(fù)責(zé)轉(zhuǎn)換通道。
如圖(a),對(duì)于標(biāo)準(zhǔn)卷積,其參數(shù)量為Dk*Dk*M*N。如圖(b),對(duì)于深度卷積,其參數(shù)量為:Dk*Dk*1*M。如圖(c),對(duì)于逐點(diǎn)卷積,其參數(shù)量為:1*1*M*N。將兩項(xiàng)操作合并,可知深度可分離卷積參數(shù)量是標(biāo)準(zhǔn)卷積的:(1/N)+(1/Dk**2)。
棄用池化層:池化層分為平均池化和最大池化,通過(guò)制定規(guī)則對(duì)池化核覆蓋范圍內(nèi)的像素進(jìn)行運(yùn)算,達(dá)到學(xué)習(xí)圖像邊緣及紋理結(jié)構(gòu),同時(shí)壓縮特征圖的效果。但池化層常常會(huì)導(dǎo)致較多的信息損失,因此,通常使用控制卷積核在特征圖上的滑動(dòng)步長(zhǎng)(如設(shè)定stride=2),來(lái)達(dá)到壓縮特征圖,提取圖像特征的目的。
減少全連接層:因?yàn)槿B接層需要將每個(gè)神經(jīng)元節(jié)點(diǎn)與其前后層的神經(jīng)元分別連接,其通常會(huì)占據(jù)卷積神經(jīng)網(wǎng)絡(luò)的大部分參數(shù)。為了減少模型的參數(shù),會(huì)盡量減少全連接層的使用,通常利用全劇平均池化或大尺寸卷積核取代全連接層,來(lái)融合學(xué)到的特征。
同時(shí),為了讓模型能夠更好的提取人物面部的特征,專門的人臉識(shí)別網(wǎng)絡(luò)在這些方面進(jìn)行了優(yōu)化,例如mobilefacenet在卷積網(wǎng)絡(luò)的尾部加入7*7卷積核壓縮特征圖,直接將特征圖轉(zhuǎn)化成相應(yīng)維度的面部特征并送入全連接層這樣的操作。對(duì)于一些特殊場(chǎng)景下的識(shí)別任務(wù),則會(huì)根據(jù)需求,定制出相應(yīng)的結(jié)構(gòu)模塊。例如,在面對(duì)面部遮擋的任務(wù)中,融入空間注意力機(jī)制,實(shí)現(xiàn)事先為特征熱力圖的空間分布的加權(quán),就變得相對(duì)重要。
編輯:jq
-
人臉識(shí)別
+關(guān)注
關(guān)注
76文章
4002瀏覽量
81679
原文標(biāo)題:基于深度學(xué)習(xí)的人臉識(shí)別算法
文章出處:【微信號(hào):vision263com,微信公眾號(hào):新機(jī)器視覺(jué)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論