導(dǎo)讀:隨著硬件性能的提升和人臉數(shù)據(jù)量的增大,人臉識別也越來越成熟,商業(yè)應(yīng)用也越來越多。經(jīng)??吹胶芏辔恼抡f,人臉識別算法做了什么什么改進(jìn)在LFW上的識別準(zhǔn)確率達(dá)到99.6%以上。
實際上,僅僅一個準(zhǔn)確率指標(biāo)是無法衡量一個模型的性能,準(zhǔn)確率無法體現(xiàn)出人臉識別中最重要的指標(biāo)通過率和拒絕率,通過率包含兩種情況同一個人通過的概率和不同人通過的概率,拒絕率包含兩種情況不同人被拒絕的概率和同一個人被拒絕的概率,通常我們希望模型在不同人通過率越低的情況下同一個人通過率越高越好,下面的評估指標(biāo)主要也是基于這兩個進(jìn)行演化的。
人臉識別
現(xiàn)在人臉識別的應(yīng)用多種多樣,如人臉考勤、實名驗證、身份驗證、人臉支付以及天網(wǎng)系統(tǒng)等。實際上底層的實現(xiàn)技術(shù)主要還是依靠人臉驗證和人臉?biāo)阉?,人臉驗證也稱為1:1人臉匹配,人臉?biāo)阉饕卜Q為1:N人臉匹配。
首先我們從包含人臉的圖片中通過人臉檢測提取出人臉的位置信息以及人臉關(guān)鍵點,然后通過仿射變換結(jié)合人臉關(guān)鍵點進(jìn)行人臉對齊,獲取到對齊后的人臉圖片。再將人臉圖片通過人臉識別模型進(jìn)行人臉特征提取,提取出來的特征是一個高維向量,這個向量的維度通常是128、256、512、1024甚至更高。
判斷兩張人臉圖片是否相似的度量主要有兩個指標(biāo)歐式距離和余弦相似度。先通過人臉識別模型將人臉圖片轉(zhuǎn)換為特征向量。歐式距離顧名思義就是計算兩個向量的歐式距離,所以兩個向量的歐式距離越小表示他們越相似。余弦相似度就是計算兩個向量的夾角的余弦值,cosθ的取值范圍在[?1,1],我們可以對其進(jìn)行歸一化操作到[0,1]通過0.5+0.5?cosθ來實現(xiàn),余弦相似度越大表示是同一個人的概率越大。
無論是1:1人臉匹配還是1:N人臉匹配,我們都需要先確定一個閾值(歐式距離或相似度),通常人臉相似的度量指標(biāo)都是用的相似度,我們后面所說的閾值其實也就是一個相似度閾值。通過人臉數(shù)據(jù)集根據(jù)指定通過率或拒絕率來確定閾值,大于這個閾值表示為同一個人否則不是同一個人。
人臉驗證
1:1人臉驗證(verification),比對兩張圖片是否為同一個人,常見的應(yīng)用有火車站人臉閘機實名驗證、手機人臉解鎖等。通過判斷比對圖片的相似度是否大于閾值,常用的性能評估指標(biāo)有如下幾個
FAR
FAR(False Accept Rate)認(rèn)假率,表示錯誤的接受比例,與FPR(False Positive Rate)假正例率等價,指不是同一個人卻被錯誤的認(rèn)為是同一個人占所有不是同一個人比較的次數(shù),計算公式如下
關(guān)于詳細(xì)的混淆矩陣(TP、TN、FP、FN)說明,請參考我的另一篇文章分類算法中常用的評估指標(biāo)
TAR
TAR(True Accept Rate)表示正確的接受比例,與TPR(True Positive Rate)真正率等價,指是同一個人且被正確的認(rèn)為是同一個人占所有同一個人比較的次數(shù),計算公式如下
FRR
FRR(False Reject Rate)錯誤拒絕率,與FNR(False Negative Rate)假負(fù)率,指是同一個人但被認(rèn)為不是同一個人占所有是同一個人比較的次數(shù),計算公式如下
在一些1:1的人臉識別比賽中,也會有一些其它的評估指標(biāo),F(xiàn)MR(false match rate)和FNMR(false non-match rate)。FMR指錯誤匹配率等價于FAR,F(xiàn)NMR指錯誤的不匹配率等價于FRR。
有時候還會看見類似于FNMR @ FMR = 0.000001,這種表達(dá)式所指示的是先在數(shù)據(jù)集上計算出FMR = 0.000001時的閾值,然后再根據(jù)這個閾值計算FNMR。類似于這種TAR=0.998@FAR=1e-6,表示的是當(dāng)不是同一個人通過率為1e-6時,相同人的通過率為99.8%。對于1:1人臉驗證來說當(dāng)FAR越低的情況下,TAR越高越好
人臉?biāo)阉?/p>
1:N人臉識別評估分為兩種情況開集識別(open-set identification)和閉集識別(close-set identification)。
在評估1:N的人臉識別時我們需要三組圖像,galleryG(底庫,已注冊的人臉庫),probe(探針,待識別的人臉圖像),probe分為Pn和Pg,Pn中的人臉照片不在gallery中,被稱為imposter,Pg中的人臉照片在gallery中,被稱為genius。
開集識別
開集識別(open-set identification):開集識別需要解決的問題是判斷一個probePj在不在gallery中,如果在這個人是誰。Pj可以在gallery中,也可以不在。
假設(shè)galleryG={g1,g2.....gn},gi表示gallery中的一個人,待測人臉Pj與每個gi計算一個相似度,用Sji表示,Sji表示兩張人臉圖片是同一個人的概率。我們將G中的每一個人與Pj計算相似度,得到一個集合S{sj1,sj2.....sjn},對集合S進(jìn)行由大到小的排序(用的歐式距離就是從小到大排序)。假定與Pj在gallery中對應(yīng)人的是g?,定義rank(Pj)=n表示Pj與g?的相似度排在第n位,rank1也稱為top match。
對于刷臉支付就是一個TOP1的open-set identification,人臉身份驗證就是一個topk的open-set identification。
閉集識別
閉集識別(close-set identification):閉集識別需要解決的問題是,在gallery中找到probePj,Pj屬于gallery中。與開集識別一樣,閉集識別關(guān)心的也是在topk中是否包含正確的識別結(jié)果。
評估指標(biāo)
下面的評估指標(biāo)在開集識別和閉集識別中都適用
DIR
DIR(Detection and Identification Rate):指Pj∈Pg與G中的真實的結(jié)果s?之間的相似度大于τ且大于其他所有與Pj不是同一個人的相似度在Pg中所占的比例,DIR衡量的是庫內(nèi)人員的通過性能。計算公式如下
下面我們來舉例說明一下
假設(shè)G中有A、B、C三個人的人臉信息每個人有一張照片,Pj是屬于C的另一張人臉照片,如果Pj與A、B、C的相似度分別為0.5、0.6、0.9,τ為0.7,那么此時才算是匹配正確。如果Pj與C的相似度為0.68<τ,會被認(rèn)為是庫外人員從而導(dǎo)致漏匹配。如果Pj與A、B、C的相似度為0.6、0.8、0.78,那么此時Pj的TOP1匹配應(yīng)該是B,因為C與Pj的相似度排在第二位是rank(Pj)=2,此時Pj匹配上了錯誤的人。
FAR
FAR(False Alarm Rate):指Pj∈Pn與G中最相似的人相似度大于τ在Pn中所占的比例,F(xiàn)AR衡量的是對庫外人臉的拒絕性能也是人臉識別系統(tǒng)安全性的保證。計算公式如下
對于1:N的人臉?biāo)阉鱽碚f,當(dāng)FAR越低的情況下,DIR越高時,表示模型的性能越好,下面我們通過一個例子來說明一下,這兩個評估指標(biāo)是如何計算的
上表展示了Pg(照片在G中)和Pn(照片不在G中)在gallery(G)中的測試結(jié)果,a、b、c在G中分別對應(yīng)A、B、C,d、e、f均不在G中。閾值τ取0.7時,我們來計算一下DIR和FIR
a與A的相似度最高,且SaA>τ,所以匹配成功雖然b與B的相似度SbB>τ,但SbBc與C的相似度最高,但ScC<τ,所以匹配錯誤
所以DIR=1/3≈33.33%
d與A的相似度最高,且SdA<τ,因為d不在庫中,所以匹配正確e與C的相似度最高,且SeC>τ,因為c不在庫中,所以匹配錯誤f與C的相似度最高,且SfC<τ,因為f不在庫中,所以匹配正確
所以FAR=1/3≈33.33%