回覆列表
  • 1 # 之乎者也h

    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人臉識別的程序

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

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

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

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

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

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

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

  • 中秋節和大豐收的關聯?
  • 幫忙寫出幾首關於春天的古詩(名稱)?