人臉識別,是視覺模式識別的一個細分問題,也大概是最難解決的一個問題。 其實我們?nèi)嗣繒r每刻都在進行視覺模式識別,我們通過眼睛獲得視覺信息,這些信息經(jīng)過大腦的處理被識別為有意義的概念。于是我們知道了放在我們面前的是水杯、書本,還是什么別的東西。
我們也無時無刻不在進行人臉識別,我們每天生活中遇到無數(shù)的人,從中認出那些熟人,和他們打招呼,打交道,忽略其他的陌生人。甚至躲開那些我們欠了錢還暫時還不上的人。然而這項看似簡單的任務,對機器來說卻并不那么容易實現(xiàn)。
對計算機來講,一幅圖像信息,無論是靜態(tài)的圖片,還是動態(tài)視頻中的一幀,都是一個由眾多像素點組成的矩陣。比如一個1080p的數(shù)字圖像,是一個由1980×1080個像素點組成矩陣,每個像素點,如果是8bit的rgb格式,則是3個取值在0-255的數(shù)。機器需要在這些數(shù)據(jù)中,找出某一部分數(shù)據(jù)代表了何種概念:哪一部分數(shù)據(jù)是水杯,哪一部分是書本,哪一部分是人臉,這是視覺模式識別中的粗分類問題。
而人臉識別,需要在所有機器認為是人臉的那部分數(shù)據(jù)中,區(qū)分這個人臉屬于誰,這是個細分類問題。
人臉可以分為多少類呢?這取決于所處理問題的人臉庫大小,人臉庫中有多少目標人臉,就需要機器進行相應數(shù)量的細分類。如果想要機器認出每個他看到的人,則這世界上有多少人,人臉就可以分為多少類,而這些類別之間的區(qū)別是非常細微的。由此可見人臉識別問題的難度。
更不要提,這件事還要受到光照、角度、人臉部的裝飾物等各種因素的影響。這也不難解釋為什么人臉識別技術(shù)目前還沒有大量應用在日常生活中,大部分人只能在科幻電影中接觸人臉識別了。
一些不太被人熟悉的事物,經(jīng)常會伴隨著大量的概念混淆。比如對西方宗教不太了解的國人,可能搞不清楚為什么有些人信上帝但不信耶穌;都是在教堂工作的大叔,為什么有些要禁欲,有些卻能結(jié)婚。而人臉識別作為一個新事物,也伴隨著大量的概念混淆,而分清這些概念,對于理解人臉識別還是比較重要的。
完成人臉識別的工作,要經(jīng)過幾個步驟。首先計算機需要在圖像或視頻中找到人臉的位置,這部分工作一般叫做人臉檢測。如前所述,這是一種粗分類,具體到人臉檢測中,實際上是二分類,計算機只需要判斷目標圖像是或者不是人臉。但由于并不能事先確定人臉的大小和位置,計算機需要以每個可能的人臉大小對全圖進行掃描,逐個判斷子窗口所截取的圖像是否為人臉。而每次掃描過程,子窗口移動的步長可能是幾個像素。
所以你可以大致想象一下,做一張圖的人臉檢測,計算機需要做多少次二分類判斷。