人臉識別:人腦認知與計算機算法詳解

視覺皮層是第一個被現代神經解剖學就定義的功能皮層區域,其解剖特徵和功能特徵都是高度的結構化的。同時,視覺皮層佔有的皮層表面積/體積又很大,這客觀上方便了視覺皮層的解剖結構和認知功能的研究。因此,不難理解地,視覺皮層和視覺功能是我們在神經科學方面研究最為深入、理解最為透徹的。

人腦的視覺信號傳導通路,在進入大腦皮層之前是高度的結構化的、分工明確的。而且一般認為,視覺信息在進入大腦皮層前,人腦幾乎被把它做任何實質意義上的處理,也不從中提取有用的信息。

人臉識別:人腦認知與計算機算法詳解

視覺通路,視覺信息進入大腦皮層(Primary Visual Cortex) 前的情況

視覺信息一旦進入大腦皮層(從Primary Visual Cortex初級視覺皮層進入),就體現出其結構化的特徵。視覺信息的空間位置跟初級視覺皮層的位置對應起來,總體上表現為空間相鄰的位置對應的初級視覺皮層位置也相鄰,這種拓撲結構的對應被稱為視網膜拓撲映射(Retinotopy)。 信息經由初級視覺皮層處理之後,其發出方向就變得複雜起來,總體上分出兩個主要的層次結構流:腹側通路(Ventral Pathway)和背側通路(Dorsal Pathway),前者的損傷導致人的物體識別功能受損,因此被也被稱為What通路,後者的損失導致人的空間判別和視覺注意能力受損,因此也被稱為Where通路。

人臉識別:人腦認知與計算機算法詳解

What 通路和Where 通路

特別地,根據獼猴(Macaque Monkey)視皮層的解剖結果,人們重建了其各個視皮層之間的分級結構:

人臉識別:人腦認知與計算機算法詳解

人臉識別:人腦認知與計算機算法詳解

獼猴視覺皮層分級結構圖

在比較低級的視覺皮層區域,還發現其中的神經元對特定的模式刺激放電頻率增加,這種模式可能是物體的視角,也可能是熟悉物體的形狀。這些發現為理解大腦物體識別的層次模式提供了越來越全面的信息,從而,我們逐漸理解了人腦物體識別的分級結構模型:

人臉識別:人腦認知與計算機算法詳解

人腦物體識別的分層模型

從初級到更高級的視覺皮層,視覺信息逐級傳遞。人腦理解的內容越來越複雜化、抽象化,由“模式”變成具體的物,再到物的特性和物與物之間的關係。進入到初級視覺皮層的信號是非常的繁雜和全面的,顯然地,人腦並不需要所有的這些信號,而是隻需要提取其中的有用信號就可以了,否則會給大腦的視覺理解帶來太大的壓力,基於層次結構特徵,人腦發展出了視覺編碼壓縮方式,把通過視覺通路傳遞過來的信號,跟自己的經驗比對,比照經驗中的常見圖像模式,經過比對之後,找到最為匹配的模式(線、角、圓……;斑馬線,轉角……),並以該模式取代實際的事物。這就好比給視覺信號做了一次編碼,以人腦的內稟信號取代實際信號對視覺圖像做了極大的壓縮,併為後續的快速處理做好了基礎。另外,在整個層次模型的處理過程中,信息流在層級間幾乎完全表現為“前饋”式 [7]。這為計算機模擬方法的可行性和快速性提供了基礎。

上面提到的無疑是人腦的通用物體識別架構,基於這些知識設計了模擬大腦皮層結構的層次物體識別模型 ( Hierarchical Models of Object Recognition in/and Cortex, HMAX):

人臉識別:人腦認知與計算機算法詳解

HMAX Model

可見這實際上是一種早期形式的深度神經網絡,它的每一層也是需要根據具體的任務情況進行訓練。

在做人臉識別訓練方面,人腦認知與計算機算法的第一個不同在於,人類接受的人臉圖像訓練是多角度的、動態的,而目前計算機算法在訓練之中使用的基本上是靜態的圖片。現有的圖像訓練數據庫,無論是常用的一類公開數據集LFW, CASIA-WebFace, 還是Google和Facebook使用的閉源數據庫,即便對同一個人有很多張不同時間和場景的圖片,他們都只是截取了有限的角度。

人臉識別:人腦認知與計算機算法詳解

典型人臉數據集圖片

人類在要認識一個陌生人時,不免需要多觀察幾眼,特別是對於一個長的美貌/化妝過的人臉,由於更接近平均人臉,外在特徵(external features: hair, face, outline)和內在特徵(internal features: eyes, nose, mouth) 相對來說不明顯,一般需要動態觀察更久才能記住。

實驗室條件下的受限環境刺激和訓練證明,人類識別/記住一個陌生人臉,使用動態圖像比使用靜態圖片更有優勢:

人臉識別:人腦認知與計算機算法詳解

靜態人臉v.s動態人臉

人臉識別:人腦認知與計算機算法詳解

靜態人臉v.s動態人臉任務的反應時間,反應時間越短越好

不難想象的,動態人臉能提供來自更多角度的更多可供識別的信息,即使實驗場景下,這些動態人臉提供的信息跟真實場景中的還有一定的差距,但是動態人臉刺激相比於靜態人類刺激的優勢在實驗場景下可觀測的。

在計算機算法方面,近年來隨著深度學習的引入,主流人臉識別算法對訓練圖像的數量提出了越來越高的需求,動則達到數百萬以上,Google 的FaceNet更是達到令人嗔目結舌的20億數量級,但是不開放。傳統學術界的實驗室算法受限於使用公開數據集,為了達到更好的效果不得不另闢蹊徑,在有限的圖像上獲取更多信息,也就是Data Augmentation。 最簡單的Face Data Augmentation無疑是變換圖像的左右,但是這種做法有可能已經改變了人臉的內在特徵。需要權衡帶來的好處(圖像數量增加)與缺陷(部分特徵可能被抵消)。另一類算法通過模擬人臉在其他視角的圖像做Face Data Augmentation. 最初來源於人臉擺正(face frontalization)。

人臉識別:人腦認知與計算機算法詳解

人臉擺正算法流程

人臉擺正中算法通過Face Landmark Detector處理目標圖像和三維模型圖像(二維化之後),得到一組對應的Landmark. 而二維化之後的三維模型上的Landmark({Xi, Yi})在三維模型中具有對應的座標({Xi, Yi, Zi}). 據此可以估測相機參數,進行相機標定。從而可以模擬模型與目標圖像一樣的角度,反過來得出目標圖像中像素在擺正之後的位置。

人臉識別:人腦認知與計算機算法詳解

相機標定,得出圖像座標(二維)跟世界座標(三維)之間的對應關係

人臉識別:人腦認知與計算機算法詳解

通過相機標定,可以將圖像座標在不同視角之間變換

不難理解的,該套算法稍加變化,就可以使用一張人臉圖片得出多個角度的人臉圖片,即既可以用來做人臉擺正,也可以生成側臉圖像:

人臉識別:人腦認知與計算機算法詳解

通過相機標定和3D模型模擬,生成其他視角的人臉圖像

這種做法雖然沒有增加投入到訓練算法中的信息,但大大增加了算法的識別率並降低了誤識率(FAR, False Acceptance Rate):

人臉識別:人腦認知與計算機算法詳解

僅僅是通過現有圖片生成多個角度(pose)的圖片,然後投入訓練算法,就能大大增加性能

當然,生成不同角度的圖像更原本就有同一個場景的連續變化視角的圖像(視頻)對人臉識別來說還是有一些不同的。更為接近自然場景中人腦的人臉識別任務的,是視頻中人臉圖像的識別。但是目前由於受限於人臉視頻的稀缺性(蒐集一個人臉的視頻比蒐集其圖片要繁瑣的多,同時視頻中的特徵標定也是一個嚴重的問題),深度學習/深度神經網絡在視頻人臉圖像的研究還卻如。目前在這個領域使用的一般是基於模型的傳統算法。視頻中人臉的分辨率跟目前人臉圖像數據及中的分辨率還有一定差距,同時視頻圖像的噪聲更大,場景的複雜度好更高。因此視頻中人臉識別跟靜態圖像中人類識別幾乎是用的是完全不同的方法。在結合這兩者,應用大量視頻圖像做人臉識別算法訓練之前還得解決以上一系列的技術問題。


分享到:


相關文章: