當前位置:
首頁 > 最新 > 基於端+雲和正則化方法的人臉識別技術

基於端+雲和正則化方法的人臉識別技術

一個成熟的人臉識別系統通常由人臉檢測、人臉最優照片選取、人臉對齊、特徵提取、特徵比對幾個模塊組成。

圖1人臉識別系統核心流程

從應用場景看,人臉識別應用主要分為1:1和1:N。1:1就是判斷兩張照片是否為同一個人,主要用於鑒權。而1:N的應用,首先得註冊N個ID的人臉照片,再判斷一張新的人臉照片是否是某個ID或者不在註冊ID中。1:1和1:N,其底層技術是相同的,區別在於後者的誤識率會隨著N的增大而增大,如果設置較高的相似度閾值,則會導致拒識率上升。拒識和誤識二者不可兼得,所以評價人臉識別演算法時常用的指標是誤識率小於某個值時(例如0.1%)的拒識率。

人臉識別最為關鍵的技術點就是人臉的特徵提取,直到2014年deepface首次將深度學習的引入,這項技術才得到了質的突破,使得人臉識別技術真正走到了商業可用階段。目前的研究主要集中在網路結構的改進和損失函數的改進上。隨著研究的深入,目前人臉識別技術上的壁壘正在被打破,而人臉資料庫的資源是業內巨頭保持領先的另一個重要武器。

蘇寧:前端實時演算法+資源計算

MTCNN、RSA等基於深度學習的方法在人臉檢測的任務中展現出了驚人的效果,對於遮擋、大角度的人臉變化、極端的光照情況都能較好的應對。

不同於學術界使用更複雜的網路來提高人臉檢測在困難數據集上的精度,在實際商用場景中,蘇寧更關注於人臉檢測演算法的實時性和對計算資源的消耗。因為檢測出的低質量人臉照片對後續的人臉識別工作幫助甚微,而演算法的性能優化卻可以讓人臉識別的應用場景大大增加。

以蘇寧線下門店部署的高清攝像頭為例,在購物高峰時段每分鐘有幾百人湧入門店,需要在一個畫面中檢測出20多個人臉並進行跟蹤,這對演算法提出了很高挑戰。

考慮到蘇寧人臉應用豐富的場景,光是線下門店就有幾千家,為了降低服務成本,我們採用了「端+雲」的解決方案。人臉檢測、人臉跟蹤、人臉最優照片選取的邏輯放在前端進行,而人臉的建模、人臉比對的服務放在中心伺服器進行。同時為了進一步降低成本,通過與攝像頭硬體廠商的深度合作,可以將人臉檢測、人臉跟蹤、人臉最優照採集的演算法邏輯放在嵌入式設備,節省伺服器的同時也提高了系統的穩定性。

圖2人臉識別服務系統架構

對於前端設備的選擇,有很多因素要考慮,一個很大的誤區是普通安防攝像頭就可以滿足人臉的採集。安防攝像頭通常置於棚頂,一般距離地面都有2.7米以上,在行人經過最佳採集位置時很難採集到正臉,而且鏡頭解析度較低,成像雜訊大,即使採集到了人臉也無法滿足人臉識別應用的需求。從識別的準確率考慮,通過實驗發現要保證人臉識別的準確率,人臉照片中雙眼瞳距之間要大於80個像素,這就意味著在選擇攝像頭時要充分考慮焦距和解析度兩個指標。

對於人臉最優照片採集,這更多的是一個工程化的工作,其對最終的產品表現也有很重要的影響。通常要考慮人臉的朝向、人臉的模糊程度、人臉的面部表情、是否存在遮擋等因素給採集的人臉圖像做一個質量打分。要結合場景應用考慮演算法的複雜度,比如在一些場景中,可以完整跟蹤一個人的人臉軌跡,並從中選擇最優的一張照片;而在一些實時性要求比較高的場景中,則要快速做出相應,一旦發現高質量的人臉照片,立即觸發上傳邏輯。

即使只上傳人臉照片到雲端,在如此多的人臉應用場景中,對網路的帶寬以及響應的速度還是提出了很高的挑戰。為了降低計算、帶寬、存儲的資源消耗,我們會對進行特徵提取的人臉照片尺寸和大小進行優化。考慮到後續人臉提取的神經網路會對人臉進行歸一化,我們認為人臉大小在滿足比對要求時控制在150個像素是比較合適的。

同時對圖片質量的壓縮也是非常必要的。經我們測試,75%的jpeg壓縮率對人臉識別的性能影響可以忽略,卻可以節約幾倍的帶寬資源。除了常用的jpeg、png圖像編碼,蘇寧還使用WebP圖像壓縮格式,可以使帶寬資源的佔用進一步降低20%~30%。

人臉識別背後的演算法模型

softmaxLoss

其實人臉識別與imagenet的圖像分類比賽並沒有本質的區別,蘇寧在早期拍照購物中累積的商品識別項目經驗很多都可以用在人臉識別的項目中,比如早期的VGG net、Inception、後來的ResNet這些網路結構在圖像分類中取得的成功同樣可以在人臉識別中復現。

圖3softmaxLoss結構

圖3是一個典型神經網路輸出層softmaxLoss的結構。其lossfunction為

其中xi表示第i個樣本屬於第yi類的人臉照片所提取的特徵,wj表示最後一層全鏈接層屬於第j個類別的權重,b為偏置bias,m和n分別對應batch size和分類的類別數。

不同於imagenet這種close-set的分類任務,人臉識別問題實際上是在一個open-set上進行測評,所以是一個特徵提取的問題,需要找到一個合適的特徵度量空間,softmaxLoss訓練的分類器雖然可以將相似樣本成功劃分,卻不能保證類內的聚攏。為了解決這個問題,學術界提出了一系列方法來聚攏類內距離,增大類間距離,從而學到一個泛化能力更強的特徵表示。

人臉聚類

人臉聚類的工作已經有很多,比如Center loss、Contrastive loss、Triplet loss。重點介紹我認為一個突破性的工作sphereface,這個工作提出將weights歸一化,同時將bias置,把問題轉化為角度約束,表示更加清晰,變為,從公式中可以很明確的看到影響模型的三個要素:weights的模長、feature的模長、對θ加margin。

圖4人臉聚類margin幾何示意圖

weightsnormalization

weightsnormalization,即,其實這種操作之前就有人研究過,不過更多是把其看作weightdecay,一種為了避免過擬合的L2正則懲罰,並沒有從幾何角度更多解讀它。其進行反向傳播對權重w進行更新時,當其中一類樣本過少的時候,會導致其樣本對梯度影響不明顯,導致該類別的權重學習不充分,權重的L2norm較小[1]。由於softmaxloss的決策邊界是,bias置零後為,兩向量正交,如果其中一個權重學習的不充分,L2norm較小時,決策邊界也會向該w傾斜,這會降低分類器的性能,如圖5所示。

圖5 weights normalization對決策邊角的影響

蘇寧在實際項目中也遇到了訓練樣本不均衡的問題,我們通過鏡像、隨機擾動等方式增加照片數較少類的樣本。這種data augmentation雖然可以增加該類別的訓練樣本,卻不能有效的增大該類別樣本的凸包,對分類器的性能提升有限,而我們通過weightsnormalization則使學到的決策邊界更加平衡,可以進一步提升分類器性能。

featurenormalization

再來看一下featurenormalization,文章[2][3]對feature的L2-norm都有比較細緻的分析,發現高質量正面人臉得到的featureL2-norm比較大,而模糊低質量人臉得到的featureL2-norm比較小。這也比較好解釋,當一張人臉照片質量比較低的時候,能夠區分人臉的這些神經元無法被充分激活,得到的feature自然比較小。

從weightsnormalization的分析中可以看出featurenormalization對決策邊界其實沒有影響,無外乎樣本是分布在球體表面還是分布在一個錐體里。但是其對loss的作用結果是不同的,進行featurenormalization後再scale到一個比較大的值,通過softmax後其分布會變得更加集中,在反向傳播的時候,其權重的更新會得到加強,從而加強訓練的模型對低質量人臉的識別能力。

在線下場景的實際落地效果看,受應用場景的條件限制,很難保證採集人臉照片的高質量,而通過featurenormalization訓練的模型在實際應用中泛化能力更強。

Augular margin

Sphereface提出angularmargin是一種全局約束,m=4的約束條件太強,很多樣本無法滿足max intra-class angle [4]和ArcFace[5]的margin條件則相對寬鬆。AM-softmax中的margin實現與bias很像,所不同的是margin只作用於本類別的targetlogit。而ArcFace則進一步將margin的大小與θ關聯起來。

人臉識別最具挑戰的場景就是大規模的1:N的人臉應用,而目前市面上的成熟商業產品還幾乎沒有,以前這種需求集中在公安系統,其實在智慧零售中也需要大規模1:N人臉識別能力。

蘇寧線下門店人臉識別應用的難度又進一步增加:首先這是一個非用戶配合的場景;其次蘇寧有幾億會員,這個N是很恐怖的;再次,從業務上希望能夠對用戶進行分組,能夠去除店員的信息,識別出VIP會員,還要能對新用戶進行挖掘,同時要能做到黑名單的安防布控;除此之外,有幾千家門店的數據推流,系統的流量也是很大的。要設計這樣的解決方案是非常恐怖的。

這裡不過多討論系統架構的複雜,單從1:N的開放場景的模型設計介紹一下蘇寧的實戰經驗。在N如此大的情況,要求誤識率很低,又要保證模型對相似人的分辨能力,甚至能區分雙胞胎,僅靠前面提到的全局margin是很困難的。除了將人臉按地區區域分組降低N的比對範圍,我們另一個實際經驗是通過tripletloss進一步增加localmargin。

在蘇寧這樣規模的應用場景里,其實人臉數據的來源和規模不是問題,前面提到的全局margin在這樣的超大規模數據集中顯得有些乏力,tripletloss則可以通過三元訓練樣本的選擇技巧來增加局部margin。

不過我們實踐發現現有的tripletloss是作用在歐式空間的,好不容易通過global angular margin學到的特徵子空間再映射到歐式空間性能反而會有下降,為了解決這個問題,我們將Dist(A,P)+margin

為了找到合適的triplet樣本對來調整localmargin,我們從三個角度考慮進行hard-example的挖掘:圖像質量不高的樣本、學習不充分的樣本、難以區分的樣本,其中前兩種類型的樣本通常的表現就是featurenorm比較小,第三種類型的樣本表現是feature距離其他類別過近。

在訓練中要注意逐漸增加訓練樣本困難程度,可以有效防止模型梯度彌散,模型的表現往往可以更進一步。我認為tripletloss有很大的工程應用研究價值。作為一種數據驅動的方法,其最大的優勢是可操作空間非常大。

榨取人臉數據金礦

對於人臉識別網路訓練另一個重要問題是訓練數據的獲取,已有公開數據集中可玩性比較強的幾個數據集有MS_celeb_1M、VggFace2、CASIA_WebFace。這些數據集存在一個普遍問題就是雜訊很大,需要清洗,而且我們實踐發現用公開數據訓練出的模型有一個很普遍的問題就是對東方人識別能力不夠優秀。為了克服這個問題,蘇寧也構建了東方人的人臉資料庫資源,這樣訓練出的模型在實際場景中有更好的區分能力。

圖6蘇寧「北斗」系統人臉檢測效果

除了蘇寧一些內部場景的人臉數據採集,為了更加豐富我們的人臉樣本,我們也通過互聯網搜索引擎收集了海量名人人臉庫。有了豐富的圖像來源還不夠,因為這些人臉圖像有很嚴重的雜訊;雖然演算法模型對一定的人臉雜訊足夠魯棒[6],我們研究發現,更加高質量的數據集的確可以提高演算法模型性能,所以仍需要通過清洗標註來去除這些雜訊數據。

蘇寧的圖像團隊早在2015年就關注到了數據標註的問題,並在商品識別項目中累計了豐富的工程經驗,這些經驗在人臉數據的清洗標註中也同樣適用。具體我們通過多級過濾的方案對人臉數據進行清洗:首先是通過一些簡單的分類器去除比較嚴重的雜訊;然後我們發現數據量足夠大的時候,同一個人的人臉分布是非常緊湊的,我們利用這一先驗知識對類內樣本清洗、類間相同樣本進行聚類合併;除了聚類清洗,我們還使用一個訓練好的模型,對已有的樣本進行預測,根據置信度對樣本進行過濾,這樣清洗後的數據經過人工校驗後再對模型進行fine-tune,從而逐步得到比較乾淨的一個訓練數據。

圖7商品曬單圖像清洗流程

人臉識別的當下與未來

除了模型的改進和源源不斷高質量的人臉數據,行業內各家技術比拼還體現在算力上。俗話說天下武功,唯快不破。我們通過高性能GPU伺服器組成的集群快速迭代驗證演算法,使模型更新速度從幾周更新一次到十幾小時更新一次,讓不同的模型適配不同的場景,讓演算法更精準。蘇寧擁有18萬員工以及幾千家門店,2018年還會再增加5000家門店,通過人臉識別技術在蘇寧內部以及線上線下的應用,蘇寧的人臉識別演算法能力還會進一步的迭代提升。

雖然人臉識別發展到今天已經相對成熟,機器對於人臉的識別能力已經遠超人類。但是在商業應用中這種基於二維圖像的人臉識別還是受到很多限制,比如人皮面具的活體攻擊問題,線下各種場景都有複雜的光照情況,比如逆光、光線較弱、室外。夜晚蘇寧的酒店走廊里可能光照比較暗,而在一些門店的條件又限制了攝像頭安裝的角度和高度,同時也不希望攝像頭的安裝影響顧客的購物體驗,這都對人臉識別的落地提出了挑戰。

為了解決這些問題,蘇寧已經開啟基於3D感測器的人臉識別技術的研發。iphoneX的成功為人臉識別開啟了新的思路,這種基於VCSEL(垂直腔面發射激光器)3D結構光的人臉識別硬體也一定會成為未來的標準輸入設備,據了解華為和小米的下一代旗艦機也都會配備該硬體。VCSEL晶元具有效率高、響應時間短的特點,過去主要用於短距光通信,其發射的紅外光經過反射、衍射後可以形成幾萬個紅外結構光射出。

其紅外陣列圖像的響應強度就是人臉的三維結構信息,通過預處理和歸一化後,同樣送入神經網路中進行訓練學習,得到的人臉識別準確率甚至要優於傳統的人臉識別方法。基於3D結構光測距得到的人臉特徵具有響應快、防攻擊、對環境光照不敏感的優點,可以很好的補充蘇寧的一些受限場景下的人臉識別應用。

參考文獻

[1] Guo Y, Zhang L. One-shot facerecognition by promoting underrepresented classes[J]. arXiv preprintarXiv:1707.05574, 2017.

[2] Parde C J, Castillo C, Hill M Q, et al.Deep Convolutional Neural Network Features and the Original Image[J]. arXivpreprint arXiv:1611.01751, 2016.

[3] Ranjan R, Castillo C D, Chellappa R.L2-constrained softmax loss for discriminative face verification[J]. arXivpreprint arXiv:1703.09507, 2017.

[4]Wang F, Liu W, Liu H, et al. AdditiveMargin Softmax for Face Verification[J]. arXiv preprint arXiv:1801.05599, 2018.

[5] Deng J, Guo J, Zafeiriou S. ArcFace:Additive Angular Margin Loss for Deep Face Recognition[J]. arXiv preprintarXiv:1801.07698, 2018.

[6] Wu X, He R, Sun Z, et al. A light CNNfor deep face representation with noisy labels[J]. arXiv preprintarXiv:1511.02683, 2015.

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 CSDN技術頭條 的精彩文章:

如何利用 Puppeteer 爬取數據?

TAG:CSDN技術頭條 |