對人臉檢測的研究最初可以追溯到 20 世紀 70 年代,早期的研究主要致力於模板匹配、子空間方法,變形模板匹配等。近期人臉檢測的研究主要集中在基於數據驅動的學習方法,如統計模型方法,神經網絡學習方法,統計知識理論和支持向量機方法,基於馬爾可夫隨機域的方法,以及基於膚色的人臉檢測。目前在實際中應用的人臉檢測方法多爲基於Adaboost學習算法的方法。
Viola人臉檢測方法是一種基於積分圖、級聯檢測器和AdaBoost算法的方法,方法框架可以分爲以下三大部分:
第一部分,使用Harr-like特徵表示人臉,使用“積分圖”實現特徵數值的快速計算;
第二部分,使用Adaboost算法挑選出一些最能代表人臉的矩形特徵(弱分類器),按照加權投票的方式將弱分類器構造爲一個強分類器;
第三部分,將訓練得到的若干強分類器串聯組成一個級聯結構的層疊分類器,級聯結構能有效地提高分類器的檢測速度。
Adaboost算法是一種用來分類的方法,它的基本原理就是“三個臭皮匠,頂個諸葛亮”。它把一些比較弱的分類方法合在一起,組合出新的很強的分類方法。
例如下圖中
需要用一些線段把紅色的球與深藍色的球分開,然而如果僅僅畫一條線的話,是分不開的。
人臉檢測的目的就是從圖片中找出所有包含人臉的子窗口,將人臉的子窗口與非人臉的子窗口分開。
大致步驟如下:
(1)在一個 20*20的圖片提取一些簡單的特徵(稱爲Harr特徵),如下圖所示。
它的計算方法就是將白色區域內的像素和減去黑色區域,因此在人臉與非人臉圖片的相同位置上,值的大小是不一樣的,這些特徵可以用來區分人臉和非人臉。
(2)目前的方法是使用數千張切割好的人臉圖片,和上萬張背景圖片作爲訓練樣本。訓練圖片一般歸一化到20*20的大小。在這樣大小的圖片中,可供使用的 haar特徵數在 1 萬個左右,然後通過機器學習算法 —adaboost算法挑選數千個有效的 haar 特徵來組成人臉檢測器。
(3)學習算法訓練出一個人臉檢測器後,便可以在各個場合使用了。使用時,將圖像按比例依次縮放,然後在縮放後的圖片的 20*20的子窗口依次判別是人臉還是非人臉。
人臉檢測的流程
人臉檢測在實際中主要用於人臉識別的預處理,即在圖像中準確標定出人臉的位置和大小。
目前人臉檢測技術在門禁系統、智能監控系統中已得到了很好的應用。另外,目前的筆記本電腦中也陸續開始使用人臉識別技術作爲計算機登錄的憑證。近年來,在數碼相機和手機中也集成了人臉檢測算法,作爲一個新的功能提供用戶使用。在這些應用中,人臉檢測都是發揮着至關重要的作用