姿勢|刷臉背後的“姿勢”

2019-06-16 09:22:09


全文共4409字,閱讀大約需要7分鐘。

本報記者
張明悅 資訊科學技術學院2017級碩士研究生
2018年暑假,一臺刷臉閘機通道在小西門安置了下來,通道前立著一塊牌子,“歡迎體驗刷臉入校”。然而一陣新奇之後,大家發現,這套人臉識別系統有時也不太準確,機器並不給大家面子,必要的時候還是得掏卡進入。

隨著後臺資料庫的擴充,以及系統的升級,2018年9月開學時,計算中心將25臺人臉識別裝置佈置到了迎新報到的地點。很快,西門、南門、東南門、圖書館,也佈置上了刷臉閘機通道。

計算機眼中的人臉

計算機作為矽基生命,紛繁複雜的世界在它眼中,不過是一段段0101程式碼罷了。經過億萬年的進化,人類擁有了一套複雜的視覺系統,可以在幾十毫秒內認出一把椅子,一隻小狗,或是一張人臉。但計算機才是真正的“臉盲”,因為它的“腦海”中,人臉和其他影象一樣,僅僅是以特定格式儲存的資料。

當一張人臉出現在計算機面前時,攝像頭就像它的眼睛一樣,人臉反射的光線經過光學鏡頭,投射到影象感測器上,感測器將光訊號轉化為電訊號,在晶片中進行處理,最後通過電路傳輸到計算機中。

普通的攝像頭只是被動地接收人臉反射的光線,就像拍照一樣,得到的只是臉部的二維資訊。更高階的攝像頭則採用三維影象技術,比如iPhone X的Face ID,就是通過手機配置的一套可以感知深度的前置攝像頭實現的。

iPhone X的前置攝像頭

iPhone X的點陣投影器(Dot projector)在進行人臉識別時,向前方投射出3萬多個光點,感光元件接收到這些光點反射回來的光線,可以得到整個臉部的三維資訊,這些光點肉眼是看不到的,通過紅外攝像頭可以看到點陣投影器投出的光。

紅外攝像頭下所見點陣投影器投出的光點

但不管是高階的三維攝像頭,還是普通的攝像頭,計算機都往往是以高維矩陣來儲存這些影象的。對於一張高為M畫素,寬為N畫素的影象,計算機會用一個M行N列的二維陣列來儲存,矩陣中每個元素的值就是影象中對應位置的顏色的值。用八位二進位制數來編碼顏色,一共有256個取值。

當然,這種編碼並不能完全表示出我們所看到的奼紫嫣紅,但好在有“三原色光模式”,用紅綠藍三種顏色的光以不同比例相加,就可以得到各種各樣的光。於是,對於一張彩色影象,計算機將其分為紅、綠、藍三個頻道(channel),用三個二維矩陣來儲存這三種顏色的值。這樣,計算機眼中的“人臉”就成型了。


人臉識別流程

計算機想要完成人臉識別,通常需要四個步驟:人臉檢測,人臉標定,人臉表徵,人臉匹配。

人臉檢測,即從輸入的影象中找到人臉所在位置。由於億萬年來的進化,對於人類而言,找到一張臉是非常容易的,但對於計算機來說,則是非常困難的一件事。一張色彩影象,在計算機眼中只是一個由數字填充的高維矩陣。通常的人臉檢測演算法是一個“遍歷”加“判斷”的過程,演算法遍歷整個影象,再判斷該區域是否存在人臉。

當確定人臉的位置後,接下來的工作就是人臉標定,即從臉上找到五官等關鍵位置。這個過程需要一個特徵點檢測器來完成,在簡單的 2D 對齊情況中,即為尋找最適合參考點的最佳仿射變換。更復雜的 3D 對齊演算法還能實現人臉正面化,即將人臉的姿勢調整到正面向前。

人臉配準完成後,還會進一步地做人臉特徵提取,即把人臉的關鍵位置資訊以數值串的形式表達出來,這叫做人臉表徵。在人臉表徵階段,人臉影象的畫素值會被轉換成緊湊且可判別的特徵向量,這也被稱為模板。理想情況下,同一個主體的所有人臉都應該對映到相似的特徵向量。

人臉識別的流程

最後一個步驟是人臉匹配,在人臉匹配構建模組中,兩個模板會進行比較,從而得到一個相似度分數,它代表了兩者屬於同一個主體的可能性。計算機將輸入的影象轉化為特徵值,根據這個特徵值,到後臺資料庫進行比較,找到和資料庫中相似度最高的人臉,完成識別。當然,如果資料庫中沒有這個人的照片,這樣檢索出來的人臉相似度一定不會太高,就可以判定此人不在資料庫中,自動閘機就可將其拒之門外。

為什麼會“認證失敗”?

人臉識別看起來都這麼智慧了,那為何會“認證失敗”呢?

簡單地講,一是資料庫圖片的問題,刷臉系統的圖片資訊取自校園卡的證件照,或者是自己主動錄入。如果學籍資訊的照片年代久遠,影象模糊,自然會影響系統的識別,這就需要我們去主動錄入照片。如果在識別過程中有誤差,可以到保安室再去現場照一張,更新資料庫中的資訊。此外,計算中心還在開發新的功能,在客戶端上傳認證照片,提高人臉識別的識別率。

二是刷臉的姿勢有問題,天氣、光線、表情、化妝等內外因素也會使得識別不準確,這些細微的干擾,是對演算法的魯棒性極大的考驗。

但是,憑什麼我的Face ID就能輕而易舉地認出我,而學校的門禁卻經常“六親不認”呢?這個鍋還是得人臉識別的演算法來背。

在人工智慧裡,有一個概念叫做“過擬合”,指的是一個演算法在學習時學得過度優越,把一些不該學到的噪音或者錯誤資訊也學到了。舉例來說,小明上傳的照片總是一本正經、留著短髮,鬍鬚也剃得很乾淨,演算法學了很長時間,發現這個人的特徵是“表情嚴肅,短髮,臉上很光滑”,加上其他面部特徵,就能確定他是小明。但是在現實中,小明一旦好幾天鬚髮不理,計算機就可能以“有鬍子”為由,判斷這個人不是小明。這時,這個人臉識別演算法就是過擬合了。

與之對應的有“欠擬合”,指的是演算法完全沒有學習的資料的特徵關係。比如,演算法在學習識別小明時,總結出兩個眼睛、一個鼻子、一個嘴巴的就是小明。於是在現實中,演算法可能就把所有人都認成是小明瞭。

如下圖,紅色的點為學習的樣本,藍色的線是預測出來的曲線,左邊是欠擬合,中間剛好合適,右邊是過擬合。當然,過擬合和欠擬合是相對的,在資料有限的情況下,很難直接給出過擬合、欠擬合的標準。



但在實際操作中,演算法的設計者往往會遵循一個稱為“奧卡姆剃刀”的定理。原話是這麼說的:“切勿浪費較多東西去做,用較少的東西,同樣可以做好的事情。”在上圖的例子中,左邊紅點和藍線相差太大,自然不能採用,而對於中間和右邊兩種情況,兩者的紅點與藍線都比較接近,但右邊一種更為複雜,按照奧卡姆剃刀定理,右邊這種情況應該是一種更不好的模型。

正是由於演算法的不同,才導致有的機器可以一眼就認出是誰——比如高鐵刷臉,有的機器卻彷彿老花眼一樣六親不認——比如校門的自動閘機。沒辦法,有些演算法的設計得確很強大,但有些演算法確實不盡人意。

此外,與iPhone的Face ID相比,學校目前使用的還是二維的技術,二維與三維相比丟失的資訊更多,諸如鼻樑高度,眼窩深度、兩耳位置都不能很好地表現出來,精確度自然要差很多。

總的說來,原始的身份驗證影象質量不高,演算法結構問題,二維建模技術,是學校人臉識別不給力的三大重要原因。

拓展閱讀:走向深度學習時代


最早、最傳統的方法應該是基於幾何特徵的方法。這類方法應該是受到了繪畫的啟發,將人臉視為眼睛、鼻子、嘴巴、耳朵、下巴等部件的組合物,這些部件的形狀、大小、排布確定了人臉的形象。其流程大致為,首先確定人臉的眼耳鼻嘴等特徵點的位置,然後計算這些特徵之間的距離,相對位置資訊,幾何佈局等,從而得到一組特徵向量。


很顯然,這種做法非常粗糙,精確率遠遠不能滿足要求。後來有了區域性特徵分析法,簡單地說就是提取一些重要的特徵值,降低計算量。


在前人的基礎上,特徵臉法也出現了,其基本思想是,用主成分分析的方法,給影象的高維資料降維,抽取出表徵人臉分佈的基本元素。這個方法簡單高效,一時間非常流行,各種改進,零敲碎打的優化,上世紀九十年代,PCA之於人臉識別,其熱度不亞於如今的CNN之於計算機視覺。這種方法是將影象做Karhunen-Loeve 變換,把高維向量轉化為低位向量,消除每個分量的關聯性。影象經過 K-L 變換後,其具有很好的位移不變性和穩定性。所以,特徵臉的人臉識別方法具有方便實現,並且可以做到速度更快,以及對正面人臉影象的識別率相當高等優點。但是,該方法也具有不足的地方, 就是比較容易受人臉表情、姿態和光照改變等因素的影響,從而導致識別率低的情況。


特徵臉法,首先把一批人臉影象轉換成一個特徵向量集,稱為“Eigenfaces”,即“特徵臉”,它們是最初訓練影象集的基本元件。識別的過程是把一副新的影象投影到特徵臉子空間,並通過它的投影點在子空間的位置以及投影線的長度來進行判定和識別。將影象變換到另一個空間後,同一個類別的影象會聚到一起,不同類別的影象會聚力比較遠,在原畫素空間中不同類別的影象在分佈上很難用簡單的線或者面切分,變換到另一個空間,就可以很好地把他們分開了。Eigenfaces選擇的空間變換方法是 PCA(主成分分析), 利用 PCA 得到人臉分佈的主要成分,具體實現是對訓練集中所有人臉影象的協方差矩陣進行本徵值分解,得到對應的本徵向量,這些本徵向量就是“特徵臉”。每個特徵向量或者特徵臉相當於捕捉或者描述人臉之間的一種變化或者特性。這就意味著每個人臉都可以表示為這些特徵臉的線性組合。


區域性二值模式(LBP),以中心畫素的灰度值作為閾值,與他的領域相比較得到相對應的二進位制碼來表示區域性紋理特徵。LBP是提取區域性特徵作為判別依據的。LBP方法顯著的優點是對光照不敏感,但是依然沒有解決姿態和表情的問題。不過相比於特徵臉方法,LBP 的識別率已經有了很大的提升。


特徵臉法用得熱火朝天時,神經網路還在坐冷板凳。八十年代早期,“人工神經網路”還只是作為一個有趣的仿生學概念,被少部分學者所關注,傳說中的CNN(卷積神經網路)也不過是作為一個識別手寫數字的奇技淫巧,在論文中被提及。


2005年,深度學習被正式提出,其成名之戰便是在計算機視覺,不單單是識別人臉,還能識別各種動物、各種車輛等等,其準確率和人類相當。很快深度學習的技術席捲了整個人工智慧領域,很多傳統的演算法,尤其是人臉識別的演算法,都被這股浪潮推到了沙灘上。看臉,識人已經沒有任何問題,就連通過核磁共振判斷疾病這原本只有專家能做的事情,計算機也能很好地完成了。


深度學習的出現使人臉識別技術取得了突破性進展。人臉識別的最新研究成果表明,深度學習得到的人臉特徵表達具有手工特徵表達所不具備的重要特性,例如它是中度稀疏的、對人臉身份和人臉屬性有很強的選擇性、對區域性遮擋具有良好的魯棒性。這些特性是通過大資料訓練自然得到的,並未對模型加入顯式約束或後期處理,這也是深度學習能成功應用在人臉識別中的主要原因。


2019年3月27日,圖靈獎頒給了Yoshua Bengio、Geoffrey Hinton、Yann LeCun三位“當代人工智慧教父”,用以表彰其對深度神經網路的巨大貢獻。而正是深度學習在計算機視覺、自然語言處理、語音識別的應用,掀起了人工智慧又一波浪潮。

圖1、2、3來自網路,圖4、5來自本報記者
微信編輯|沈博妍


在看



熱點新聞