武漢理工大學信息工程學院 申俊杰
人臉識別中主要分量分析(PCA)是一個普遍使用的技術,首先它將一張圖像的每一列的向量首尾相連,構成一個維列向量,然后轉(zhuǎn)置。將L個圖像的維列向量組成人臉樣本矩陣,表示為:
訓練樣本的協(xié)方差矩陣為:
式中mf是所有訓練樣本的平均值向量(所有樣本的平均臉)
式可進一步化簡為:
對(3)式中的矩陣進行特征值和特征向量的求解,并SVD奇異值分解,構造出最終的人臉投影空間:
將Vi化為矩陣,則可以得到特征臉。
LDA的核心思想之一是在平面內(nèi)找一個合適的向量,將所有的數(shù)據(jù)投影到這個向量而且不同類間合理的分開。因為圖片的特征值有很多,相當于是多維的,所以我們需要增加投影向量w的個數(shù),設w為:
w1、w2等是n維的列向量,所以w是個n行k列的矩陣,這里的k其實可以按照需要隨意選取,只要能合理表征原數(shù)據(jù)即可。x在w上的投影可以表示為:
所以這里的y是k維的列向量。這樣我們就可以把多維空間中的特征值降維到一維空間
從投影后的類間散列度和類內(nèi)散列度來考慮最優(yōu)的w,可用μi代表類別i的中心,將類間距離定義為Sb較大,類內(nèi)距離定義為Sw。為了讓每個類(相當于每張圖片)直接的特征值盡量少的有重疊,需要讓類與類之間的距離大,而一個類內(nèi)部之間的距離緊湊。因此我們可以定義:
可以化簡為:
因為Sw要盡量小,而Sb要盡量大,因此可以找到合適的W讓J(w)盡可能大。
2DLDA從人臉圖像矩陣直接得到類內(nèi)和類間離散度矩陣,而不必將人臉圖像矩陣轉(zhuǎn)化為人臉圖像向量。2DLDA估計得到的離散度矩陣比LDA方法精確。另外,由于2DLDA估計得到的離散度維數(shù)等于原始人臉圖像的列數(shù),因此,相比LDA方法得到的離散度矩陣維數(shù)小的多,從而使得求解最佳投影空間時計算量大大降低。由于2DLDA的公式推導較多,本文不在此詳述,直接通過實驗的結果來比較2DLDA相對于LDA的優(yōu)點。
圖1 成功識別
圖2 識別失敗
圖3
我們利用GUI設計可視化的界面,讓實驗結果更好的展示。
可以看到,當面部有偏側(cè)的時,LDA不能很好的識別出正確的人臉,如圖1、圖2所示。
優(yōu)化后的LDA有著更高的準確性,我們在yale的數(shù)據(jù)庫中做了一下測試。在面部有偏側(cè)和帶眼鏡甚至閉眼是都能準確的識別。我們還編寫函數(shù),計算了準確性,經(jīng)過多次實驗,準確性在97%左右,如圖3所示。
為了探究訓練次數(shù)對DLDA準確率的影響,我們編寫了相關函數(shù),結果如表1所示:
表1
根據(jù)表1可以得到結論,當系統(tǒng)的訓練樣本個數(shù)從 5 逐步增長到9 的時候,DLDA算法的人臉識別系統(tǒng)的識別率也在逐漸的增大,可以得出:在設計人臉識別系統(tǒng)時,訓練樣越大,系統(tǒng)的正確識別率就越高,即訓練樣本的數(shù)量要大于每個樣本的空間維數(shù),但是這一點在實際的應用時是比較難做到的。在系統(tǒng)樣本維數(shù)相同的前提下,基于LDA算法的人臉識別系統(tǒng)的正確識別率要比基于PCA 算法的正確識別率要高, 雖然PCA方法和LDA算法都可以降低原始特征空間的維數(shù),但是PCA方法得到的特征是最佳描述特征, 而不是最佳分類特征,因此,在正確識別率方面,LDA算法要比 PCA算法優(yōu)越。