關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 基于OpenCV的人臉識(shí)別設(shè)計(jì)方案

基于OpenCV的人臉識(shí)別設(shè)計(jì)方案

作者: 時(shí)間:2012-07-17 來(lái)源:網(wǎng)絡(luò) 收藏

3.2 圖像預(yù)處理

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

3.3 臉部檢測(cè)方法

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

3.4 臉部方法

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


圖2 步驟(visio)

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

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

3.4.1 訓(xùn)練階段

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

(1) 需要一個(gè)訓(xùn)練人臉照片集。

(2) 在訓(xùn)練人臉照片集上計(jì)算特征臉,即計(jì)算特征值,保存最大特征值所對(duì)應(yīng)的的M 張圖片。這M 張圖片定義了“特征臉空間”(原空間的一個(gè)子空間)。當(dāng)有新的人臉添加進(jìn)來(lái)時(shí),這個(gè)特征臉可以進(jìn)行更新和重新計(jì)算得到。

(3) 在“特征臉空間”上,將要識(shí)別的各個(gè)個(gè)體圖片投影到各個(gè)軸(特征臉)上,計(jì)算得到一個(gè)M 維的權(quán)重向量。簡(jiǎn)單而言,就是計(jì)算得到各個(gè)個(gè)體所對(duì)應(yīng)于M 維權(quán)重空間的坐標(biāo)值。

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


圖3 特征臉圖像

c++相關(guān)文章:c++教程


cvt相關(guān)文章:cvt原理


全息投影相關(guān)文章:全息投影原理


評(píng)論


相關(guān)推薦

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

關(guān)閉