這是一個看臉的世界,尤其在這個刷臉就能夠影響銀行卡余額的時代,如何準確地看臉已經成為關系到民生大計的重大問題。二十年來專注于人臉的中科院計算所研究員、中科視拓董事長兼CTO山世光博士,將帶著大家從技術和應用兩個層面,回顧人臉檢測與識別領域一年來的進展。
過去一年與以往幾年相比,在方法和技術層面的一個核心趨勢是:人臉識別相關技術已經全面深度化。相比其他視覺或機器學習任務,人臉識別的特殊性遠沒有我們之前認為的大,所以我認為過去一年特異于人臉識別的新方法和新技術并不是特別多。但是,在應用方面,人臉識別正可謂“花月正春風”,甚至可以說它引領了計算機視覺的落地應用,不過后面會提到要謹防倒春寒。
我們知道,一套全自動的人臉識別系統大概包括三個不同的步驟:
1.人臉檢測,即從畫面中框出圖像中出現的人臉;
2.特征點定位,即標記出人臉上的眼睛、鼻子、嘴等關鍵點;
3.狹義的人臉識別,即完成輸入人臉與系統已見過、記憶過的人臉的比對。
在這里,我先總體上概括一下這三個步驟上的年度進展:
1. 人臉檢測
在人臉檢測方面,目前主流的方法是通用目標檢測中的R-CNN等這類方法,Cascade CNN則是比較特異于人臉檢測的方法,它將傳統的滑動窗口方法與深度學習相結合,也取得了不亞于R-CNN系列方法的性能。人臉檢測曾被認為是一個已經解決的問題,事實上并不是,在人臉分辨率極低、姿態很大、背光、偏光、極低照度等惡劣光照條件下,還是會有很多漏檢。有鑒于此,去年出現了一個新的人臉檢測Benchmark,應該會對人臉檢測領域產生重要促進作用。
2. 特征點定位
對于第二個步驟,即特征點定位,我們感覺去年的一個趨勢是從過去流行的基于深度特征學習的Cascaded Shape Regression策略,到引入RNN這樣的循環神經網絡策略,并試圖解決大姿態條件下的特征點定位問題。
3. 狹義人臉識別
對于第三個步驟,即狹義的人臉識別或人臉比對,個人認為技術上并沒有太多新的進步,主流的方法仍然是采用各種深度卷積神經網絡(DCNN),特別是ResNet,來學習更有判別力的特征。實戰中性能的提升主要還是來自越來越多的人臉數據,不同場景下的人臉識別技術均取得了很大的進步,并在快速進入市場。當然,這個領域需要新的benchmark來度量技術的本質進步情況。
原有數據集
從人臉檢測的角度來看,在過去的幾年里,學術界大多數還是在用FDDB做測試用的benchmark。目前,在這個共有2845幅圖像、5171個人臉的數據集上,在共輸出100個誤檢的情況下,用Fast R-CNN可以輕松取得90%以上的檢測率或稱召回率。工業界有些報道號稱已經做到了95%,所以它基本上趨于飽和了。當然,值得特別注意的是,這個檢測率在不少時候是有歧義的,有些團隊報告的是10折平均的結果,有些報告的是一次性全部檢測的結果,這兩個結果是不可比的:10折平均的結果可能會偏高1-3個百分點。
Wider Face數據集
2016年人臉檢測領域的一個重要變化是出現了一個新的Benchmark:香港中文大學貢獻了一個規模更大、數據變化更豐富的新數據集——Wider Face。其中包括1.6萬測試圖像,共19.4萬個標注人臉。更重要的是,如上圖所示,數據集中的人臉有大小、姿態、光照、遮擋以及表情等各方面非常復雜的變化。特別的,其中50%的人臉高度小于50個像素,甚至大量高度小于20個像素的Tiny face。
Wider Face將測試圖像分為“難”、“中”、“易”三種不同的難度等級。
從目前State of the art方法的檢測曲線不難看出,在最“難”的測試子集上,目前只能做到80%的檢測率和80%的精度,對檢測任務而言,這是相當低的結果了。可見,在該數據集上,現有方法的性能在“難”等級下還有非常長的路可以走。
小人臉檢測:Tiny Face
針對小人臉檢測問題,去年出現了TinyFace方法,該方法希望能夠找到更小的人臉。在過去,典型人臉檢測系統能夠檢測到的最小人臉是20*20像素,而在很多現實應用中,最小的人臉可能是16*16,甚至是10*10這樣的級別,TinyFace方法試圖探究如何找到這些非常小的人臉。其實,該方法并沒有太多技術創新,它本質上采用了圖像金字塔把小臉變大,再進行人臉檢測,同時引入了大容量的網絡如ResNet101,以及多尺度融合等技術,充分利用更多的上下文信息,并在Wider Face的Hard子集上取得了82.3%的精度,大大超過了之前的其他方法。但值得注意的是,高精度的代價是檢測速度非常慢!
從面部特征點定位的角度看,過去一年的主要技術路線仍然是把特征定位問題轉化為瀑布式的形狀回歸問題進行求解。和過去幾年一樣,其中仍然是采用深度學習的特征,并用遞歸方式求解回歸問題。
2016年,該領域的一個有趣進展是引入了循環神經網絡RNN,對Cascaded Shape Regression中stage-by-stage refine的策略進行建模,特別是通過把上一級的隱層輸出作為下一層的輸入等手段,在300W這樣的數據集上面取得了比較大的進步。
大姿態人臉特征點定位
2016年另一個值得關注的面部特征點定位方法是密西根州立大學的Xiaoming Liu團隊的工作。他們發表在CVPR2016上的工作特別針對大姿態人臉的特征點定位問題,采用深度改進后的3DMM方法對人臉進行三維建模,然后將建模后人臉的三維信息與二維圖像相結合,再做形狀回歸。在大姿態人臉上,取得了顯著優于已有方法的定位精度。
狹義的人臉識別方面的進展
1. 什么是狹義人臉識別
所謂的狹義人臉識別指的是:首先采用前述的人臉檢測和特征定位對所有人臉進行對齊,然后裁剪出眉眼鼻嘴形成的核心人臉區域,之后從中提取人臉特征進行存儲或與已知人臉的特征進行相似度計算的過程。
2. 核心技術
里面的核心是“如何提取具有區分能力的特征”,2012年以來,采用深度卷積神經網絡進行特征學習已經成為人臉識別領域的標準技術。過去一年來,這方面主要的進步還是來自更大規模實戰數據以及殘差卷積神經網絡ResNet的應用。
3. 數據增廣
此外,對于一些難以獲取大量數據的場景,研究人員也在想法設法采用半自動或自動的方法“增廣”數據集,包括基于三維人臉模型合成人臉或者采用GAN這類方法生成數據,這里的3D人臉模型既可能是采用專用設備采集的,也可能是采用3D MM等方法自動重建的。值得注意的是,盡管GAN很火熱,也能合成出一些視覺效果不錯的人臉圖像,但其合成的增廣人臉數據是否能夠用來增廣特定人的數據并提高特征學習的效果,目前尚不得而知。此外,面向移動終端和嵌入式應用等實際應用需求,也有大量工作是進行模型壓縮和計算加速的。
表情識別
接下來簡單說說表情識別。感覺表情識別一直不溫不火,進步并不明顯,這其中的核心障礙我認為還是來自數據收集的困難。從早期的Posed Expression,到后來的自發表情(spontaneous expression)數據,大量真實自然表情數據的收集都非常不容易。
不過,盡管表情數據集的規模相比人臉識別的數據規模小得多,深度學習還是快速滲透進來,并已經在7類基本表情識別和幾十個面部動作單元(AU)的檢測方面均取得了不小的進步。如何利用較小規模的標注表情數據集進行更加魯棒的表情識別是非常值得關注的!
EmotioNet數據集
2016年出現了一個包含百萬圖像的數據集——EmotioNet 。在該數據集上,可以采用深度學習這類方法做更多表情強度的估計和動作單元強度的估計。不過,需要特別注意的是,盡管這個表情數據集規模非常大,但它并不是完全由手工標注,而是通過半自動的方式標注的,所以可能存在很多噪聲。如何利用好這樣的數據也是值得關注的。
Data is king!Math is Queen?”
最后介紹一下工業界一年來的技術和應用進展情況。我想工業界已經越來越深刻的體會到了“Data is king!”這個著名論斷在深度學習時代的正確性。甚至于有人開始懷疑:“Math is Queen”是否還正確。從學術界的觀點來說,Math的重要性是顯然的,也是未來技術突破的基石,但工業界確實目前更多的在享受著大數據帶來的紅利。
過去一兩年,與人臉識別核心技術創新的乏善可陳相比,人臉識別的應用進展切實進入了“高鐵”時代!我們知道,人臉識別有很多應用場景,不同場景的成熟度差異很大。
1. 第一種場景,1:1 的人證合一驗證系統。
典型的應用是:刷身份證讀取卡內照片,將其與現場采集的用戶人臉去做比對,看是否身份證的合法持有人。這個任務在三四年前大多數人臉識別專家還認為幾乎是不可能完成的任務,但就在最近一兩年,通過上萬甚至幾十萬人此類應用數據的訓練,在被識別人配合的情況下,最好的系統已經可以在0.01%的誤識率時達到95%以上的正確驗證率。也就是說,一萬個人來冒充某個人A,只有一個可以冒充成功,而A本人在95%的情況下可以被正確識別出來。如果允許誤識率更高一些,比如到0.1%,識別率甚至可以進一步提高到99%以上(對配合用戶)。這種場景還是1:1驗證中最有挑戰性的:因為身份證卡內照片只有102*126像素,而且被壓縮成了1K字節存儲在身份證內,而且其中人臉已經有多年的老化。
2. 第二種場景,1:N靜態照片比對系統。
典型應用場景是公安人員對不明身份嫌疑人照片進行公安大庫照片比對,以確定其身份。這種應用甚至在幾年前就已經基本成熟,當N為千萬甚至數億量級條件下,首選識別率可以做到90%或更高,需要注意的是,區別于后面要提到的1:N+1場景,這類1:N場景不需要設置拒識率。這方面,我們的人臉識別技術在幾年前就已經被合作伙伴上海銀晨科技產業化,應用于護照人臉和多個省公安廳的大庫比對中,并取得了相當多的實戰成功案例。就在最近,學術界也出現了大規模人臉識別測試庫MegaFace,其中人臉數量達到了100萬規模,最好的系統目前首選識別率能夠做到83.29%(注:2017年4月結果),是我的一個博士李紹欣在騰訊優圖完成的。MegaFace主要是生活照或新聞照,所以難度要更大一些。
3. 第三種場景是1:N+1動態人臉識別場景。
區別于前面的1:N場景,這類場景是需要拒識非目標人的,所以是N+1。這種場景實際上還可以細分為三類:目標人配合場景(比如無卡考勤或門禁),目標人不配合場景(比如黑名單卡口人臉布控),以及處于二者之間的、被識別人既不配合也不刻意回避的場景(比如VIP識別系統)。不妨分別稱之為A場景,C場景和B場景。
4. 三類場景的技術成熟度差異
這三類場景的技術成熟度差別很大:在N等于10000人、誤識率不高于1%時,A場景識別率可以做到98%以上,B場景可以做到70%~90%,C場景恐怕只能做到80%以下,某些條件下甚至可能低的不忍直視。需要特別強調的是,這里誤識率1%看起來有點高,但在N等于1萬人時,大概相當于1:1場景下的百萬分之一的誤識率,實際上已經非常有挑戰了。
此外,年末歲初,百度的人臉識別系統在《最強大腦》上也著實火了一把,在老化人臉識別場景下超過了人類的《最強大腦》,這確實也代表了人臉識別發展水平的一個側面。據了解,百度人臉識別團隊為此收集了大量類似畢業照場景的人臉進行訓練。在基于大數據的深度學習面前,也許這個問題并沒有想象的那么難。我們曾找了幾個類似的例子進行測試,發現即使是直接用沒有刻意對這種場景訓練的Seeta企業版人臉識別系統,也可以把要找的人放在前幾位。
近年來人臉識別的進步是有目共睹的,但人臉識別遠不是一個已經解決了的問題,它還存在如下一些問題:
1. 在開放環境下,如何確保識別的魯棒性的問題
例如,即使目前最好的系統,恐怕也還做不到在家庭環境下,讓一個矮小的機器人隨時隨地準確地識別出一個家庭的5-6個成員,這涉及到視角、光照、距離、遮擋等等諸多因素帶來的魯棒性問題。
2. 人臉防騙技術
這是一場魔高一尺、道高一丈的博弈“游戲”,風險確實是存在的,盡管可能并沒有央視報道的那么夸張。
3. 黑名單動態布控系統
對于人臉識別最大的實戰應用場景,即黑名單動態布控系統,也就是前面所說的3C場景,目前N等于1萬人,錯誤接收率等于1%,條件較好的時候首選識別率可以做到80%左右。但實際需求是在開放監控場景下,N等于100萬人,誤識率要求低于0.01%,甚至要對各種試圖逃避識別的目標人達到首選識別率90%以上——這是極具挑戰的任務,難度比現在能做到的要高4~5個數量級。是否能在兩三年內做到我個人持謹慎的懷疑態度,這個過程中工業界需要保持冷靜,避免因過度承諾而失去用戶信任,帶來人臉識別應用的“倒春寒”。
簡單總結一下:
1. 學術界的挑戰
從學術界來講,人臉識別研究已經進入了一個“無所適從”的歷史階段,我們希望不要把我們自己從碼農變成數工,但事實上新方法能帶來的增益短期內難以抗衡工業界用大數據帶來的性能增益,甚至導致了工業界技術上的“領先”,這一點大家去看LFW和FDDB之類競賽的結果就可以明顯地看出這個趨勢。
2. 學術界的機會
而因為商業原因,學術界對工業界的實際進展難以把控。當然,學術界的機會恰恰在工業界不愿意關注的地方,比如在數據少甚至沒有標注數據的情況下,如何可以仍然有效的學習模型?在有數據但數據臟亂差的情況下如何魯棒的訓練模型?
總之,人臉識別作為計算機視覺領域最落地的技術之一,是CV技術應用的排頭兵,確實已經引爆了眾多用戶對計算機視覺應用的濃厚興趣,這或許是更值得我們欣喜的。
謝謝大家!
(審核編輯: 智匯張瑜)
分享