關 閉

新聞中心

EEPW首頁 > 工控自動化 > 設計應用 > 基于OpenCV的人臉識別設計方案

基于OpenCV的人臉識別設計方案

作者: 時間:2012-07-17 來源:網(wǎng)絡 收藏

3.2 圖像預處理

由于大部分的臉部檢測算法對光照,臉部大小,位置表情等非常敏感, 當檢測到臉部后需利用cvCvtcolor()轉(zhuǎn)化為灰度圖像,利用cvEqualizeHist()進行直方圖歸一化處理。

3.3 臉部檢測方法

采用一種叫做Haar cascade classifier 的檢測器,他利用保存在XML 文件中的數(shù)據(jù)來確定每一個局部搜索圖像的位置,先用cvLoad()從文件中加載CvHaarClassifierCascade 變量, 然后利用cvHaarDetectObjects()來進行檢測,函數(shù)使用針對某目標物體訓練的級聯(lián)分類器在圖像中找到包含目標物體的矩形區(qū)域,并且將這些區(qū)域作為一序列的矩形框返回,最終檢測結(jié)果保存在cvRect 變量中。

3.4 臉部方法

步驟及所需函數(shù)如圖2 所示。


圖2 步驟(visio)

PCA 方法(即特征臉方法)是M.Turk 和A.Pentland在文獻中提出的,該方法的基本思想是將圖像向量經(jīng)過K-L 變換后由高維向量轉(zhuǎn)換為低維向量,并形成低維線性向量空間,即特征子空間,然后將投影到該低維空間,用所得到的投影系數(shù)作為識別的特征向量。識別時,只需將待識別樣本的投影系數(shù)與數(shù)據(jù)庫中目標樣本集的投影系數(shù)進行比對,以確定與哪一類最近。

PCA 算法分為兩步:核心臉數(shù)據(jù)庫生成階段,即訓練階段以及識別階段。

3.4.1 訓練階段

主要需要經(jīng)過如下的幾步:

(1) 需要一個訓練人臉照片集。

(2) 在訓練人臉照片集上計算特征臉,即計算特征值,保存最大特征值所對應的的M 張圖片。這M 張圖片定義了“特征臉空間”(原空間的一個子空間)。當有新的人臉添加進來時,這個特征臉可以進行更新和重新計算得到。

(3) 在“特征臉空間”上,將要識別的各個個體圖片投影到各個軸(特征臉)上,計算得到一個M 維的權(quán)重向量。簡單而言,就是計算得到各個個體所對應于M 維權(quán)重空間的坐標值。

實現(xiàn)為:先用cvLoadImage()載入圖片并利用cvCvtcolor()轉(zhuǎn)換為灰度圖片,建立自定義的迭代標準CvTermCriteria,調(diào)用cvCalcEigenObjects()進行PCA 操作,計算出的Eigenface 都存放在向量組成的數(shù)組中,利用cvEigenDecomposite()將每一個訓練圖片投影在PCA 子空間(eigenspace)上,結(jié)果保存在矩陣數(shù)組中,用cvWrite《datatype》()將訓練結(jié)果保存至XML文件中。下面圖3 為訓練得到的部分特征臉圖像。


圖3 特征臉圖像

c++相關文章:c++教程


cvt相關文章:cvt原理


全息投影相關文章:全息投影原理


評論


相關推薦

技術(shù)專區(qū)

關閉