人臉識別技術的發展狀況
在深度學習技術出現之前,幾乎所有人臉檢測都是采用滑動窗口式的方法。在識別輸入圖像前,我們會先用一個固定大小的窗口在輸入圖像上進行滑動,窗口框定的區域會被送入到分類器,去判斷是人臉窗口還是非人臉窗口?;瑒拥拇翱谄浯笮∈枪潭ǖ模侨四樀拇笮t多種多樣,為了檢測不同大小的人臉,還需要把輸入圖像縮放到不同大小,使得不同大小的人臉能夠在某個尺度上和窗口大小相匹配。這種滑動窗口式的做法有一個很明顯的問題,就是有太多的位置要去檢查,去判斷是人臉還是非人臉。
2000年前后出現的Viola-Jones人臉檢測器,使得這種人臉檢測技術開始成熟起來,并出現了相關的實際應用,例如數碼相機中的人臉對焦的功能,照相的時候,相機會自動檢測人臉,然后根據人臉的位置把焦距調整得更好。
就人臉檢測而言,人臉可以大致看成是一種剛體,通常情況下不會有非常大的形變,比方說嘴巴變到鼻子的位置上去。但是對于公安實際應用中既關注人臉也關注全身來說,人可以把胳膊抬起來,也可以把腿翹上去,這使得人體有非常多的非剛性變化,從而使得檢測的準確率大大降低。
2013年底,深度學習給人臉檢測任務點起了一把火,這個火種就是R-CNN,其中R對應于“Region(區域)”,意指CNN以圖像區域作為輸入,這個工作最終發展成了一個系列,R-CNN的變革首當其沖的是拋棄了滑動窗口范式,取而代之的是一個新的生成候選窗口的環節;其次不再采用人工設計的特征,而是用CNN來自動學習特征。傳統滑動窗口范式做目標檢測時,需要對每一個物體去設計和和學習單獨的檢測器,例如做人臉檢測和車輛檢測,兩個檢測器特征會不一樣,分類器也不一樣,對于每一類物體,需要去嘗試不同的特征和分類器的組合。但是現在,采用深度學習的R-CNN在物體類別上沒有任何限制。換句話說,它既可以檢測人臉,也可以同時檢測其他類別的物體,比如說人體形態,這在公安實戰應用中是一個非常重要的優勢。
R-CNN帶來了目標檢測精度的一次巨大提升,然而由于所采用的候選窗口生成方法和深度網絡都具有比較高的計算復雜度,因而檢測速度非常慢。為了解決R-CNN的速度問題,緊接著出現了Fast R-CNN和Faster R-CNN,速度一個比一個快。與此同時,一部分研究人員把研究視角切換到將傳統的人臉檢測技術和深度網絡(如CNN)的結合,保證檢測速度的情況下進一步提升精度,專做人臉檢測的Cascade CNN可以認為是傳統技術和深度網絡相結合的一個代表,吸取傳統人臉檢測技術中的精華,借鑒深度學習研究的最新成果,提升某一類目標檢測精度和速度,這是一條值得繼續探索的道路。
目前,人臉檢測方法正日趨成熟,在現實場景中也已經得到了比較廣泛的應用,在特定配合場景下如照片的檢索、門禁考勤等應用,目前已基本成熟。但是人臉檢測問題還并沒有被完全解決,復雜多樣的姿態變化、千奇百怪的遮擋情況、捉摸不定的光照條件、不同的分辨率、迥異的清晰度、微妙的膚色差,各種內外因素的共同作用讓人臉的變化模式變得極其豐富,在非配合場景下的萬級及以上的目標檢測如安防監控庫的應用,依舊任重道遠。
安防行業應用人臉識別
具體到安防行業,特定配合場景下如公安系統的大庫比對、身份查重等,人臉識別等應用已經有很多成功的案例。與簡單的靜態場景相比,安防市場中應用前景更廣闊的一個方向是動態場景下的人臉識別:基于視頻中的人臉照片進行遠距離、快速、無接觸式的重點人員布控預警。讓應用于車站、機場、地鐵等重點場所和大型商場超市等人群密集的公共場所視頻監控系統能夠對視頻圖像進行采集、自動分析、抓取人臉實時比對,主動在監控場景中識別重點關注人員,實現重點人員的布控和識別。這是一個熱鬧的研究方向,同時也是一個巨大的研究挑戰。
算法前移:計算資源與算法精度的平衡問題
采用深度學習的方法來做人臉識別,需要消耗非常多的計算資源,針對服務器資源昂貴的市場情況,想要實現智能監控系統的大規模部署,必須要考慮到承擔的經濟成本。目前不少公司采用了將算法內嵌至前端攝像機的經濟做法,比如科達公司推出的感知型攝像機等,讓前端攝像機具備人臉檢測的功能,后端服務器再做二次分析,以此減少后端服務器的計算壓力。
顯而易見,如果想在前端攝像機上集成精度高速度快的人臉識別模塊,勢必需要前端硬件性能的匹配。而目前已有的硬件還達不到這樣的要求,只能在算法上做一些犧牲,如降低算法的復雜性,但這樣應用到實際場景中,則會造成檢測效果的降低,如漏檢、誤檢。
大數據訓練:數據從何而來以及如何訓練
深度學習最核心的優勢在于深度化,用足夠多的數據來訓練,訓練的越多,算法的魯棒性、泛化能力越強。目前深度學習算法的訓練數據普遍都是幾十萬、上百萬級,像一些互聯網行業的IT巨頭們,他們的訓練數據都是上千萬、甚至上億級別。
Fei-Fei LI在2015年TED TALK中向公眾介紹人工智能中計算機視覺技術的最新進展時說道,ImageNet中下載了接近十億張照片,在巔峰時期,總共有接近五萬工作者,來自167個國家,幫助他們清理、分類、標記,接近十億張候選圖片。“十億張”、“五萬工作者”這些關鍵詞無不暗示著獲取有標注數據的時間和金錢成本。
首先,安防行業的“十億張”從何而來?據了解,盡管視頻監控帶來了圖片與視頻資源的激增,一方面出于安全及隱私的考慮,不少公司做大數據訓練時,樣本采用的是本公司自有建設的監控資源庫,小范圍的區域監控遠遠夠不成海量;另一方面,目前安防產品的形態并沒有給深度學習留下一個很好的空間,比如說安防系統的數據大多都存儲在一個錄像機、存儲設備里,他們可以是DVR、NVR、IPSAN或者云存儲里,這樣的構成體系不太方便讓一個計算設備把它的數據挖掘出來,然后去處理。如果在未來可以有一個更友好的基礎設施出現:所有的監控攝像機都連到一個云上,在云上把深度學習的算法加載在上面,讓其接觸并分析所有的數據,真正實現大數據訓練。
其次,“五萬工作者”的研發體量可望不可及。每天,安防企業的研發者都需要花大量的精力和人力投入到給圖像打標簽的工作上,但是大量無監督數據的獲取成本卻是微乎其微的。
回顧深度學習的發展史,有趣的是,2006年Hinton教授等人倡導的卻恰恰是利用無監督學習來對深層神經網絡進行預訓練。對無監督數據的學習能力嚴重不足,以致大量無監督數據就像富含黃金的沙海,我們卻沒有高效淘金的利器。直接從大量無監督數據中學習模型確實是非常困難的,“無師自通”并非朝夕之功,但“少量有監督數據+大量無監督數據”的模式也許值得大力研究。
監控攝像機:智能是左手,高清是右手
從模擬到720p到1080p到4K,更高清甚至超清的監控攝像機始終是安防人的首要關注點,畢竟沒有有效的圖像采集信息,后面一切圍繞圖片或視頻展開的智能應用都是紙上談兵。
一個很典型的例子便是2013年波士頓馬拉松暴恐案的偵破過程,警方在監控畫面中定位到涉案的兩個嫌疑人,盡管嫌疑人距離監控攝像機不遠,但他們的面部完全沒有到達一個清晰可辨的程度,后來警方借助現場媒體、民眾提供的視頻、照片,才鎖定了犯罪嫌疑人。因此,如果數據在采集過程中就沒有捕捉到,后期是沒有辦法把它捏造出來的,要根本解決這個問題,需要發明更好的監控攝像機,能夠在大廣角的情況下,仍然可以看清很遠的距離。時至今日,除了特定場景下的高空瞭望攝像機外,我們依然沒有很好的監控攝像機可以遠距離采集有效的人臉信息。
總結
人臉識別的最終訴求莫過于確認身份,回答“他是誰?”、“他在干什么?”、“何地?”、“何時?”這四個問題,從而通過決策推理解決“應該采取什么措施”的問題。在科研上,人臉識別技術日新月異,但落地到實際應用時,大規模部署時系統的經濟性、復雜環境下系統的魯棒性以及對應的硬件支撐都是需要考慮的現實問題,解決了這些,小目標的達成也將觸手可及。