1.前言
近年來隨著硬件計(jì)算能力的大爆發(fā),在高性能計(jì)算的支持下深度學(xué)習(xí)有了革命性的進(jìn)步瑰剃,在互聯(lián)網(wǎng)大數(shù)據(jù)的保證下深度學(xué)習(xí)有了持續(xù)不斷的動力齿诉,優(yōu)秀的網(wǎng)絡(luò)結(jié)構(gòu)被不斷提出,深度學(xué)習(xí)技術(shù)已被推向 時代浪潮晌姚。在深度學(xué)習(xí)的分支領(lǐng)域粤剧,計(jì)算機(jī)視覺領(lǐng)域當(dāng)中,人臉識別技術(shù)的發(fā)展依然是工業(yè)界挥唠、學(xué)術(shù)界重點(diǎn)關(guān)注的對象抵恋。
2.人臉識別開源項(xiàng)目
face_recognition | openface | |
---|---|---|
github | face_recognition | openface |
特征向量維度 | 128 | 128 |
輸入對齊的人臉尺寸 | 112*112 | 96*96 |
Accuracy(LFW) | 99.38% | 92.92% |
訓(xùn)練數(shù)據(jù)集 | FaceSrub,VGGface宝磨,網(wǎng)絡(luò)圖片 | FaceSrub(530人10萬張)和CASIA-WebFace(1萬人50萬張) |
網(wǎng)絡(luò)架構(gòu) | Resnet | Inception |
項(xiàng)目特點(diǎn) | 安裝和使用簡單宽堆,支持Mac,Linux和Windows平臺 | 網(wǎng)絡(luò)模型結(jié)構(gòu)和訓(xùn)練數(shù)據(jù)集較老 |
圖片測試 | 測試方法為mtcnn檢測和對齊人臉,將對齊人臉輸入網(wǎng)絡(luò)中提取特征,然后對特征進(jìn)行相似度計(jì)算。(余弦距離,歐式距離) | 相同 |
平均時間 | 24ms | 11ms |
測試 | 歐式距離,閾值0.6 | 官方使用歐式距離,閾值0.99 |
Loss | Triple Loss結(jié)構(gòu):一個組三個圖像,分別是一個標(biāo)準(zhǔn)圖像,一個正樣本(與標(biāo)準(zhǔn)同一人),一個負(fù)樣本(不同的人) 所有同類樣本之間的距離+閾值threshold,要小于異類樣本之間的距離 |
facenet | insightface | |
---|---|---|
github | facenet | insightface |
特征向量維度 | 512 | 512 |
輸入對齊的人臉尺寸 | 112*112 | |
Accuracy(LFW) | 99.63% | 99.74% |
訓(xùn)練數(shù)據(jù)集 | CASIA-WebFace和MS-Celeb-1M | MS-Celeb-1M和VGGface2 |
網(wǎng)絡(luò)架構(gòu) | Inception ResNet v1 | ResNet |
項(xiàng)目特點(diǎn) | FaceNet是谷歌提出的網(wǎng)絡(luò)結(jié)構(gòu),其網(wǎng)絡(luò)結(jié)構(gòu)靈活性較大可以使22層的Zelier&Fergus的網(wǎng)絡(luò)氏捞,也可以使用現(xiàn)在在物體識別里面效果比較好的inception網(wǎng)絡(luò)捆等。其主要特點(diǎn)采用三元對之間的距離構(gòu)建損失函數(shù)明郭。 | 網(wǎng)絡(luò)模型結(jié)構(gòu)和訓(xùn)練數(shù)據(jù)集較新 |
圖片測試 | 測試方法為mtcnn檢測和對齊人臉沉唠,將對齊人臉輸入網(wǎng)絡(luò)中提取特征嘀韧,然后對特征進(jìn)行相似度計(jì)算。(余弦距離,歐式距離) | 相同 |
平均時間 | 22ms | |
測試 | 直接通過模型計(jì)算距離聪姿,并通過距離進(jìn)行分類和預(yù)測虎谢。 | 余弦距離,閾值0.33 |
Loss | Triple Loss |
DeepFace、DeepID 參考 https://blog.csdn.net/hh_2018/article/details/80581612镊绪。
DeepFace:在實(shí)現(xiàn)時需要使用3D對齊技術(shù),然后將對齊的結(jié)果送入一個9層網(wǎng)絡(luò)進(jìn)行處理履磨。整個訓(xùn)練過程前兩個卷積層采用了共享卷積核剃诅,后三個卷積采用不共享卷積核付魔,倒數(shù)第二層采用全連接層提取出對應(yīng)的人臉特征。最后一層是一個softmax層分類涂臣。
DeepID:DeepID網(wǎng)絡(luò)有一代和二代兩種,兩種網(wǎng)絡(luò)的區(qū)別主要在于損失函數(shù)的定義耕姊。以DeepID二代為例,其網(wǎng)絡(luò)結(jié)構(gòu)是8層網(wǎng)絡(luò)結(jié)構(gòu)尤泽。4個卷積層鬼店,3個池化層黔龟,1個全連接層,全連接得到的是160特征向量巍棱。然后在根據(jù)160維向量svm或者softmax分類蛋欣。在第一階段處理完之后還根據(jù)生成的結(jié)果訓(xùn)練了用于鑒定圖片是不是一類的貝葉斯分類器陷虎。并用該分類器對特征向量進(jìn)行篩選并且可以泛化的杠袱。除此之外窝稿,該網(wǎng)絡(luò)的最后一層分別和倒數(shù)前兩層相連接(為了視野的互補(bǔ))伴榔。
3.人臉識別流程
人臉識別分為四個過程:人臉檢測、人臉對齊塘安、特征提取援奢、特征匹配萝究。其中,特征提取作為人臉識別最關(guān)鍵的步驟帆竹,提取到的特征更偏向于該人臉獨(dú)有的特征栽连,對于特征匹配起到舉足輕重的作用侨舆,而我們的網(wǎng)絡(luò)和模型承擔(dān)著提取特征的重任,優(yōu)秀的網(wǎng)絡(luò)和訓(xùn)練策略使得模型更加健壯熔恢。
但在Resnet(2015年被提出)網(wǎng)絡(luò)表現(xiàn)力十分優(yōu)秀的情況下叙淌,要提高人臉識別模型的性能愁铺,除了優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu),優(yōu)化損失函數(shù)是另一種選擇茂洒,優(yōu)化損失函數(shù)可以使模型從現(xiàn)有數(shù)據(jù)中學(xué)習(xí)到更多有價值的信息瓶竭。
4.人臉數(shù)據(jù)集
在訓(xùn)練過程中,神經(jīng)網(wǎng)絡(luò)都是基于我們的訓(xùn)練數(shù)據(jù)學(xué)習(xí)特征的堵未,既然是從訓(xùn)練數(shù)據(jù)學(xué)習(xí)特征盏触,最終的方向自然是逼近最終數(shù)據(jù)的最真實(shí)的特征,也就是說雌芽,我們數(shù)據(jù)最原始是什么樣子辨嗽,我們的網(wǎng)絡(luò)的極限就是什么樣子糟需,它不能超越數(shù)據(jù)本身,而研究者在做的事情武花,也就是使得網(wǎng)絡(luò)最后能更加逼近“極限”体箕。所以數(shù)據(jù)在深度學(xué)習(xí)中扮演著極其重要的角色挑童,所以文章中強(qiáng)調(diào)了干凈的數(shù)據(jù)(數(shù)據(jù)清洗)的重要性。這里列舉一些文章中提到的開源數(shù)據(jù)集娃兽。
4.1 VGG2
VGG2Face人臉數(shù)據(jù)集包含有訓(xùn)練集8631個人的臉(總量有3141890張人臉)尽楔,測試集包含有500個人的臉(總量有169396張人臉)翔试,屬于高質(zhì)量數(shù)據(jù)集。
4.2 MS-Celeb-1M
MS1M數(shù)據(jù)集包含有大約10萬個人的臉(大約有1千萬張人臉)冲泥,但是數(shù)據(jù)集中包含有很多的“噪聲”凡恍,所以作者對MS1M做了數(shù)據(jù)清洗,最終作者清洗得到的干凈的數(shù)據(jù)包含有8.5萬個人的臉(包含有380萬張人臉)浮还。
4.3 MegaFace
MegaFace數(shù)據(jù)集包含有69萬個人的臉(包含大約有100萬張人臉)钧舌,所有數(shù)據(jù)由華盛頓大學(xué)從Flickr上組織收集涎跨。MegaFace是第一個在百萬規(guī)模級別的面部識別算法的測試基準(zhǔn)隅很,這個項(xiàng)目旨在研究當(dāng)數(shù)據(jù)庫規(guī)模提升數(shù)個量級時,現(xiàn)有的臉部識別系統(tǒng)能否維持可靠的準(zhǔn)確率屋彪。MegaFace是目前最為權(quán)威绒尊、最熱門的評價人臉識別性能垒酬,特別是海量人臉識別檢索性能的基準(zhǔn)參照之一。
4.4 LFW
LFW(Labeled Faces in the Wild)數(shù)據(jù)集包含了從網(wǎng)絡(luò)收集的13000張人臉圖像,每張圖像都以被拍攝的人名命名口糕。其中磕蛇,有1680個人有兩個或兩個以上不同的照片秀撇。LFW主要側(cè)重于對比兩張人臉照片是否具有相同身份不同。
4.5 CPF
CFP(Celebrities in Frontal Pro?le )數(shù)據(jù)集是美國名人的人臉數(shù)據(jù)集棠绘,其中包含有500個人物對象,有他們的10張正面照以及4張形象照夜矗,因此在作為人物比對驗(yàn)證的時候让虐,作者選用了最有挑戰(zhàn)的正面照與形象照作為驗(yàn)證集(CFP赡突,F(xiàn)rontal-Pro?le,CFP-FP )浪南。
4.6 AgeDB
AgeDB(Age Database )數(shù)據(jù)集包含有440個人的臉(包含有12240張人臉)从媚,但其中包含有不同人的不同年齡階段的照片拜效,最小從3歲到最大101歲時期的照片,每個對象的平均年齡范圍為49年到千。作者采用和LFW一樣的對比驗(yàn)證方式赴穗。
最后般眉,作者在網(wǎng)絡(luò)訓(xùn)練過程中采用了VGG2以及MS1M作為訓(xùn)練集,選用了LFW柿汛、CPF以及AgeDB作為驗(yàn)證集络断,最終使用MegaFace作為評測標(biāo)準(zhǔn)项玛。
5.損失層
關(guān)于Loss對于網(wǎng)絡(luò)的影響,最直觀的就是通過計(jì)算Loss反傳梯度來實(shí)現(xiàn)對模型參數(shù)的更新襟沮,不同的Loss可以使模型更加側(cè)重于學(xué)習(xí)到數(shù)據(jù)某一方面的特性,并在之后能夠更好地提取到這一“獨(dú)有”的特征剥哑,因此Loss對于網(wǎng)絡(luò)優(yōu)化有導(dǎo)向性的作用淹父。
而在近年來人臉識別領(lǐng)域,優(yōu)化Loss對于最終結(jié)果的提高有很大的幫助困介,從Center Loss的提出座哩,到SphereFace粮彤,CosineFace导坟,InsightFace等都有在損失函數(shù)這一環(huán)節(jié)提出新的解決方案,它們的出現(xiàn)對于人臉識別的發(fā)展做出了不可磨滅的貢獻(xiàn)尘惧。
無論是SphereFace递递、CosineFace還是ArcFace的損失函數(shù)登舞,都是基于傳統(tǒng)的softmax loss進(jìn)行修改得到的,所以想要理解ArcFace似踱,需要對之前的損失函數(shù)有一定理解。
5.1 Softmax Loss
這是我們傳統(tǒng)的Softmax公式酵熙,其中驰坊, 代表我們的全連接層輸出,我們在使損失
下降的過程中察藐,則必須提高我們的
所占有的比重分飞,從而使得該類的樣本更多地落入到該類的決策邊界之內(nèi)譬猫。
5.2 Center Loss
Center Loss的整體思想是希望一個batch中的每個樣本的feature離feature 的中心的距離的平方和要越小越好,也就是類內(nèi)距離要越小越好闸准。作者提出,最終的損失函數(shù)包含softmax loss和center loss,用參數(shù)λ來控制二者的比重义屏,如下面公式所示: 因而奶浦,加入了Softmax Loss對正確類別分類的考慮以及Center Loss對類內(nèi)距離緊湊的考慮,總的損失函數(shù)在分類結(jié)果上有很好的表現(xiàn)力隙咸。以下是作者繼上個實(shí)驗(yàn)后使用新的損失函數(shù)并調(diào)節(jié)不同的參數(shù)λλ得到的實(shí)驗(yàn)結(jié)果,可以看到藏否,加入了Center Loss后增加了對類內(nèi)距離的約束副签,使得同個類直接的樣本的類內(nèi)特征距離變得緊湊误证。
5.3 SphereFace
Center Loss的出現(xiàn)愈捅,使得人臉識別的研究轉(zhuǎn)向損失函數(shù)的改進(jìn),對于之前的損失函數(shù)灌具,研究發(fā)現(xiàn)Softmax Loss學(xué)習(xí)到的特征分辨性不夠強(qiáng)咖楣,Center Loss考慮到了使得類內(nèi)緊湊芦昔,卻不能使類間可分咕缎,而Contrastive Loss、Triplet Loss增加了時間上的消耗焙蹭,[SphereFace: Deep Hypersphere Embedding for Face Recognition]這篇文章的作者提出了A-Softmax Loss孔厉。
在Softmax Loss中帖努,由知拼余,特征向量相乘包含由角度信息姿搜,即Softmax使得學(xué)習(xí)到的特征具有角度上的分布特性,為了讓特征學(xué)習(xí)到更可分的角度特性梭纹,作者對Softmax Loss進(jìn)行了一些改進(jìn)变抽。
其中,作者在中約束了
并且令
,并將
從
區(qū)分出來,就是為了讓特征學(xué)習(xí)到更可分的角度特性螃概。通過這樣的損失函數(shù)學(xué)習(xí)训貌,可以使得學(xué)習(xí)到的特征具有更明顯的角分布超燃,因?yàn)闆Q策邊界只與角相關(guān)樱调。
由于cosθ在
在SphereFace的實(shí)際訓(xùn)練過程中岩灭,作者發(fā)現(xiàn)引入Softmax約束可以保證模型的收斂性柱恤。因此妙真,對
后續(xù)的F-Norm SphereFace對SphereFace做了更新鹏漆,僅注重從數(shù)據(jù)中得到的角度信息,而不考慮特征向量的值,所以采用了
5.4 Cosine Margin Loss
與SphereFace相比,CosineFace最明顯的變化就是將中的
提出來變成
搀庶,與之前相比揍庄,這樣有幾個明顯的優(yōu)勢。
- 相對于SphereFace而言要更加容易實(shí)現(xiàn),移除了
钠糊,減少了復(fù)雜的參數(shù)計(jì)算
- 去除了Softmax監(jiān)督約束艘刚,訓(xùn)練過程變得簡潔同時也能夠?qū)崿F(xiàn)收斂
- 模型性能有明顯的改善
5.5 Arcface Margin Loss
盡管在余弦范圍到角度范圍的映射具有一對一的關(guān)系秋度,但他們之間仍有不同之處事期,事實(shí)上,實(shí)現(xiàn)角度空間內(nèi)最大化分類界限相對于余弦空間而言具有更加清晰的幾何解釋性,角空間中的邊緣差距也相當(dāng)于超球面上的弧距。
5.6 Loss對比分析
為了研究 SphereFace悔叽、 CosineFace 和ArcFace是如何提高人臉識別的效果趟庄,作者使用了 LResNet34E-IR網(wǎng)絡(luò)和M1SM人臉數(shù)據(jù)集分別使用不同的損失函數(shù)對網(wǎng)絡(luò)進(jìn)行訓(xùn)練览濒,客觀分析了其中的影響。
6.網(wǎng)絡(luò)
為了衡量怎樣的網(wǎng)絡(luò)更適合人臉識別,作者在基于VGG2Face作為訓(xùn)練集和使用Softmax作為損失函數(shù)的情況下對Resnet網(wǎng)絡(luò)做了不同的設(shè)置,以期望能達(dá)到最好的效果瘪菌。
作者用了8塊特斯拉P40的顯卡撒会,設(shè)置訓(xùn)練時的總的Batch Size為512,同時學(xué)習(xí)率從0.1開始在分別在10萬师妙、14萬诵肛、16萬次迭代下降一個量級,設(shè)置了總的迭代為20萬次默穴,momentum 動量為0.9怔檩,權(quán)值衰減為 5e?4 。
PS:實(shí)驗(yàn)表明采用權(quán)值衰減值為5e?4效果最好蓄诽。
6.1 Input selects L
大多數(shù)的卷積神經(jīng)網(wǎng)絡(luò)為完成Image-Net的分類任務(wù)而設(shè)計(jì)的薛训,所以網(wǎng)絡(luò)會采用224x224的輸入,然而作者所用的人臉大小為112x112仑氛,如果直接將112x112的數(shù)據(jù)作為預(yù)訓(xùn)練模型的輸入會使得原本最后提取到的特征維度是7x7變成3x3乙埃,因此作者將預(yù)訓(xùn)練模型的第一個7x7的卷積層(stride=2)替換成3x3的卷積層(stride=1),這樣第一個卷積層就不會將輸入的維度縮減锯岖,因此最后還是能得到7x7的輸入膊爪,如下圖所示,實(shí)驗(yàn)中將修改后的網(wǎng)絡(luò)在命名上加了字母“L”嚎莉,比如SE-LResNet50D米酬。6.2 Output selects E
對于網(wǎng)絡(luò)的最后幾層,不同的輸出可能會影響模型的性能趋箩,因此作者對Option-A到Option-E分別做了測試赃额,在測試過程中,利用兩個特征向量對距離進(jìn)行計(jì)算叫确。在識別與驗(yàn)證的過程中采用了最近鄰與閾值比較法跳芳。
- Option-A: Use global pooling layer(GP).
- Option-B:Use one fullyconnected(FC) layer after GP.
- Option-C: Use FC-Batch Normalisation (BN) after GP.
- Option-D: Use FC-BN-Parametric Recti?ed Linear Unit (PReLu) after GP.
- Option-E: Use BN-Dropout-FC-BN after the last convolutional layer.Output selects
6.3 Block selects IR
作者改善了Resnet網(wǎng)絡(luò)的殘差塊使其更適合人臉識別模型的訓(xùn)練飞盆,采用 BN-Conv-BN-PReLu-Conv-BN 結(jié)構(gòu)作為殘差塊,并在殘差塊中將第一個卷積層的步長從2調(diào)整到1次乓,激活函數(shù)采用PReLu替代了原來的ReLu吓歇。采用修改過的殘差塊的模型作者在后面添加了“IR”以作為標(biāo)識。綜上所述票腰,最終在Resnet網(wǎng)絡(luò)上做出了3項(xiàng)改進(jìn)城看,第一是將第一個7x7的卷積層(stride=2)替換成3x3的卷積層(stride=1),第二是采用了Option-E輸出杏慰,第三是使用了改善后的殘差塊测柠。
7.評估
作者同時對比測試了其他主流的網(wǎng)絡(luò)結(jié)構(gòu)轰胁,有MobileNet谒主、Inception-Resnet-V2、DenseNet赃阀、Squeeze and excitation networks (SE)以及Dual path Network (DPN)瘩将,評價的標(biāo)準(zhǔn)由精確度、速度以及模型大小組成凹耙。8.參考
收集arxiv.org一些Face Papers
TensorFlow 人臉識別OpenFace潮针、Face-recognition术荤、Insightface和FaceNet源碼運(yùn)行
論文閱讀之Arcface
亞洲人臉數(shù)據(jù)集