人臉識別能力主要的核心點在什麼地方?

智慧城市情報局



01人工設計的LBP特徵

在說LBP特徵之前,我們先回顧一下特徵設計,特徵設計最重要的是魯棒性。比如說一張圖片可能被加了不同的光照,有一些角度旋轉,或者是被放大縮小。那麼怎樣使得這個特徵在不同的光照旋轉或尺度變化中,具有穩定的表達呢?這是特徵設計中一個很重要的問題。

說完這個問題以後,我們再看一下LBP特徵的具體方法:

給定一張圖像,能夠提取圖像中間的每一個像素點以及周圍8個與它相鄰的像素點。將相鄰的8個像素的灰度值與其進行比較,若周圍像素值大於中心像素值,則該像素點的位置被標記為1,否則為0。

這樣,3*3鄰域內的8個點經比較可產生8位二進制數,即得到該窗口中心像素點的LBP值,來反映該區域的紋理信息。

試想一下,LBP特徵怎樣與我們剛才說的魯棒性相對應?

我們看一下光照的魯棒性:因為LBP特徵其實是在某一個像素點以及它的臨域來取值,這個時候如果外界施加了很強的光照,我們可以認為在局部的小區域內,它的光照施加值或者施加的幅度是一致的,這樣就形成了局部的光照不變性。

而對於旋轉或尺度,如果按照一定的規則來構建二進制串的話,它其實是有旋轉不變性。對於尺度來說,就相當於用圖像的一個像素點以及它的鄰域來構建LBP特徵,如果它的尺度發生變化,仍然是可以通過圖像中間的某一區域塊,以及它的鄰域區和鄰域塊來構建LBP特徵。

當我們定義了LBP特徵以後,人臉識別的特徵提取如下圖所示。

首先需要把輸入的原始圖像轉換成LBP圖像,其次在LBP圖像上進行分塊,對於每一塊構建一個值的直方圖,最後再把所有區域的直方圖一次連接到一起作為特徵向量接受下一級的處理。

這裡面區域的劃分以及LBP圖的形成,都有很多不同的變種,這些工作在原始LBP的技術上面也得到了充分的發展。

但是很容易看出,LBP特徵其實會有很多問題,比如圖片中的人臉出現了一定的側臉,形成的直方圖很有可能與原始的直方圖有很大差異性,或者被拍者出現了一些極端的表情,原始的分塊方式很可能就不再適用。

總而言之,簡單的LBP特徵對真實複雜的人臉識別難以適應,複雜的特徵非常依賴於專家經驗,難以設計。

02神經網絡特徵

當機器擁有強大的計算能力,我們更多地會採用自動學習的神經網絡特徵。

神經網絡特徵其實是模擬了人類的細胞或者神經元的傳導機制,包括一些權重的連接,對輸入信號的處理等。

從局部到中層再到高層,類似於一個不斷融合和彙總過程。對應到人臉上其實是一個很好的表達形式,一開始可能關注於人眼的局部,中層特徵關注於人眼的區域,高層特徵則更加關注人臉的整體性。

現在流行的卷積神經網絡,它有兩個關鍵的模塊,第一是卷積模塊。正如我們剛才所說,構建一個全部連接的神經網絡,它的參數量非常大而且可能會有冗餘信息。

所以在全連接的技術上面,研究學者提出了局部連接的神經網絡。比如可以把眼睛的區域連接到固定的神經元上,嘴巴的序列連接到一個固定神經元上,但這樣的過程仍然會有很多冗餘計算。所以在此基礎上,業內又提出了卷積神經網絡,用很多不同的卷積和對圖像整體來進行特徵提取。

卷積神經網絡第二個重要的模塊是池化,對某一個區域的整體來進行一些操作。

通過這種池化的操作,能夠一定程度上克服圖像的一些旋轉和局部的細微變化,從而使得這個特徵的表達更加穩定。

因為卷積的高效特徵提取以及池化的局部不變性,卷積神經網絡在圖像識別領域大放異彩。

03深度學習人臉特徵提取的公開方案

下面我們來看一下,基於深度學習的人臉特徵提取,一些比較有名和公開的方案。

首先是卷積神經網絡在人臉識別中的奠基之作,2014年FaceBook提出了一種名為Deep Face的方法。

這個方法用到了三維的人臉對齊,更重要的是它開啟了人臉識別的特徵提取模型訓練的方案,引入了一種更新更好人臉特徵提取的方案。經過很多層的卷積神經網絡,最後接入到一個4000類的人臉分類的任務中去,並在這個模型的訓練過程中間形成一個特徵的表達。

這個特徵的訓練過程,其實是利用了圖像分類的原理,基於這樣一套方法, FaceBook提出的這個方案能夠很好的在開放環境中間進行人臉識別。除了技術之外,在這裡我們還要考慮另外一個因素——數據。

這個工作使用了大概400萬張照片,這個數據量相對於當時的傳統方法來說是非常巨大的,所以這個工作其實也一定程度上的反應了數據取得成功。

接下來是港中文提出的DeepID方法,在FaceBook基於分類任務的基礎上,提出了一些額外的優化函數設計,主要是將優化目標從單獨的分類變成了分類與比對相結合的方案。這個方案更加接近於我們實際中的使用。

這個方案能夠使得分類比對相互促進,使得表達能力更加的強大。因為港中文的的數據遠遠少於FaceBook之前的工作,為了彌補數據量的不足,港中文的工作也提出了將人臉劃分成不同的區域、尺度,通過尺度和區域特徵的融合,達到效果的最大化。

人臉特徵提取裡面最近最經典的論文,是谷歌在2015年提出的FaceNet。我們之前說過,Facebook提出的方法其實利用了分類準則,使得特徵具有類別的區分性,而港中文的方法面對著我們最終要使用的人臉相似度比對,加入了一些人臉比對的準則。

谷歌的方法表現更加直接,即根據人臉比對來進行優化函數的設計。這個優化函數可以理解成,當我們有一個錨點,同時又有同類別的另外一個樣本,以及不屬於這個類別的樣本。我門的目標就是使得同類之間的樣本距離足夠小,不同類的樣本距離足夠大。這種思路隱含著類內距離和內間距離的同時優化,可以看成是人臉特徵比對定製的一個目標函數。

當然,谷歌提出的方法同樣是基於他們後端龐大的數據庫來構建,論文中間宣稱他們已經有超過了2億張的圖像。此方法也更加符合工業界的應用,因為工業界不缺樣本。

04人臉識別的進程

除了算法和方案,我們仍然需要關注最近人臉識別的發展進程。

對於學術界而言,可能大家會比較關注一些優化函數的設計。舉個例子,如果直接利用分類準則去訓練模型的話,假設有十類的分類任務,那麼模型訓練後特徵的分佈就如下圖所示,是散斑狀。

對於這種形式有一些容易混淆的樣本,使得它的實際分類準確率沒有那麼高。目前學術界針對這樣的情況有幾種處理的方案:

第一種基於類中心的優化,把它從一個散斑狀的狀態變成空間中間團聚的狀態;還有一些是這個散度不斷的減小,使它類似於發射的直線。還有一些是幾何球面的約束,來優化最終結果。

工業界則可能更加關注數據迭代的構建,這裡面有個詞叫漣漪效應。多漣漪效應,或者說多數據的漣漪構建,其實就是相當於利用某一個特定場景的數據,來提升針對這個場景所訓練出的模型效果。同時又能將這個場景的數據與其他場景的數據結合起來,提升通用的泛化能力。

當然,一種典型的數據迭代模式,是我們提供了一些算法、集成上線、上線以後要進行不斷的數據回收、清洗篩選,最後這些數據又能夠充分加入到算法優化過程中去。

這裡面我們要強調的是,好的數據帶來的提升往往大於好的算法,但處理海量數據的能力還需要有強大的算法支持。


分享到:


相關文章: