Haar AdaBoost人臉檢測原理

2021-08-15 11:37:36 字數 1408 閱讀 3731

**:

對人臉檢測的研究最初可以追溯到 20 世紀 70 年代,早期的研究主要致力於模板匹配、子空間方法,變形模板匹配等。近期人臉檢測的研究主要

集中在基於資料驅動的學習方法,如統計模型方法,神經網路學習方法,統計知識理論和支援向量機方法,基於馬爾可夫隨機域

的方法,以及基於膚色的人臉檢測。目前在實際中應用的人臉檢測方法多為基於 adaboost 學習演算法的方法。

viola人臉檢測方法是一種基於積分圖、 級聯檢測器和adaboost 演算法的方法,方法框架可以分為以下三大部分:

第一部分,使用harr-like特徵表示人臉,使用「 積分圖」實現特徵數值的快速計算;

第二部分, 使用adaboost演算法挑選出一些最能代表人臉的矩形特徵( 弱分類器),按照加權投票的方式將弱分類器構造為乙個強分類器;

第三部分, 將訓練得到的若干強分類器串聯組成乙個級聯結構的層疊分類器,級聯結構能有效地提高分類器的檢測速度。

adaboost 演算法是一種用來分類的方法,它的基本原理就是「三個臭皮匠,頂個諸葛亮」。它把一些比較弱的分類方法合在一起,組合出新的很強的分類方法。

例如下圖中

需要用一些線段把紅色的球與深藍色的球分開,然而如果僅僅畫一條線的話,是分不開的。

a

b

c

d

使用adaboost演算法來進行劃分的話,先畫出一條錯誤率最小的線段如圖 1 ,但是左下腳的深藍色球被錯誤劃分到紅色區域,因此加重被錯誤球的權重,再下一次劃分時,將更加考慮那些權重大的球,如 c 所示,最終得到了乙個準確的劃分,如下圖所示。

人臉檢測的目的就是從中找出所有包含人臉的子視窗,將人臉的子視窗與非人臉的子視窗分開。

大致步驟如下:

(1)在乙個 20*20 的提取一些簡單的特徵(稱為harr特徵),如下圖所示。

它的計算方法就是將白色區域內的畫素和減去黑色區域,因此在人臉與非人臉的相同位置上,值的大小是不一樣的,這些特徵可以用來區分人臉和分人臉。

(2)目

前的方法是使用數千張切割好的人臉,和上萬張背景作為訓練樣本。訓練一般歸一化到 20*20 的大小。在這樣大小的中,可供使用的 haar 特徵數在 1 萬個左右,然後通過機器學習演算法 —adaboost 演算法挑選數千個有效的 haar 特徵來組**臉檢測器。

(3)學習演算法訓練出乙個人臉檢測器後,便可以在各個場合使用了。使用時,將影象按比例依次縮放,然後在縮放後的的 20*20 的子視窗依次判別是人臉還是非人臉。

人臉檢測的流程

人臉檢測在實際中主要用於人臉識別的預處理,即在影象中準確標定出人臉的位置和大小。

目前人臉檢測技術在門禁系統、智慧型監控系統中已得到了很好的應用。另外,目前的膝上型電腦中也陸續開始使用人臉識別技術作為計算機登入的憑證。近年來,在數位相機和手機中也整合了人臉檢測演算法,作為乙個新的功能提供使用者使用。在這些應用中,人臉檢測都是發揮著至關重要的作用

基於Haar Adaboost的人臉識別

基於haar adaboost的人臉識別 這樣的乙個人臉識別系統實現的功能很簡單,基本上就是拿著從opencv官網上訓練好資料集的xml檔案 的乙個功能的實現。具體步驟如下 1.匯入檔案 2.匯入face以及eye的xml檔案 3.影象的灰度化 4.呼叫face xml檔案下的乙個方法,face x...

Python OpenCV實現簡單的人臉檢測

匯入opencv庫 import cv2 載入特徵分類器 opencv自帶 face cascade cv2.cascadeclassifier haarcascade frontalface default.xml 開啟電腦攝像頭 capture cv2.videocapture 0 獲得攝像頭捕...

python opencv實現人臉和眼睛檢測

coding utf8 import cv2 import time defdetect 定義乙個檢測函式 face cascade cv2.cascadeclassifier d program files opencv opencv sources data haarcascades haarc...