劉 嵩,譚建軍
(湖北民族學(xué)院 信息工程學(xué)院,湖北 恩施445000)
人臉識別是計算機視覺中的一個熱點,其較為關(guān)鍵的技術(shù)就是特征提取。主元分析法(Principle Component Analysis,PCA)是經(jīng)典的特征提取方法,它提取的特征是代數(shù)特征,滿足投影方差最大的原則,且是相互正交的[1]。但PCA 方法沒有利用樣本數(shù)據(jù)的高階信息,而高階信息更有利于人臉分類?;诤说姆蔷€性變換因其在支持向量機(SVM)中出色應(yīng)用而引起眾多研究人員關(guān)注,為了利用樣本的高階信息,研究人員將核函數(shù)的思想引入到人臉識別中。Scholkopf 提出了核主元分析(Kernel Principle Component Analysis,KPCA)的方法來提取特征,并應(yīng)用于人臉識別[2]。KPCA 基本思想是:首先通過非線性映射將原始樣本數(shù)據(jù)從低維空間變換到高維特征空間,然后在這個新的空間中使用PCA 方法。為避免“維數(shù)災(zāi)難”問題,引用支持向量機(Support Vector Machine,SVM)中的核函數(shù),即用滿足Mercer 條件的核函數(shù)來計算特征空間中向量的內(nèi)積[3-5],避免了顯式的求解映射函數(shù)。實驗結(jié)果表明,KPCA不僅能夠抽取非線性特征,而且有著比主成分分析更好的識別效果。
然而,基于KPCA 的人臉識別方法需要多次計算內(nèi)積來求解核矩陣,其耗時占總識別時間的80%以上,特別是在樣本維數(shù)較高的時候更為明顯。另外考慮到在工程實踐中對成本、體積、后期升級等方面的要求,傳統(tǒng)的基于PC 機的人臉識別算法在實際應(yīng)用中受到很大限制。隨著數(shù)字信號處理(Digital Signal Processing,DSP)技術(shù)的快速發(fā)展,其運算能力顯著提高,能實時處理海量數(shù)據(jù),同時擁有較高的性價比[6]。鑒于此,本文提出了一種利用DSP 實現(xiàn)核主元分析的方法,實驗結(jié)果證明了該方法的有效性。
假設(shè)空間映射為Υ,x1, x2, …, xM為訓(xùn)練樣本,則映射可以定義如下:
假設(shè)特征空間數(shù)據(jù)滿足中心化的條件,即
則特征空間中的協(xié)方差矩陣為
現(xiàn)求Q 的特征值λ≥0 和特征向量ν滿足下式:
即有
考慮到所有的特征向量可表示為 Υ(x1),Υ(x2), …, Υ(xM)的線性張成,即
則有
定義M×M 維矩陣K:
則式(7)可以簡化為
顯然滿足
求解式(10)就可以得到特征值和特征向量,對于測試樣本在特征向量空間Vk的投影為
將內(nèi)積用核函數(shù)替換則有
當(dāng)式(2)不成立時,需進行調(diào)整:
則核矩陣可修正為
常見的核函數(shù)有線性核函數(shù)、d 階多項式核函數(shù)和高斯徑向基函數(shù)核函數(shù)3 種,分別為
TI 公司的TMS320C6000 系列DSP 具有較強的數(shù)據(jù)處理能力,特別適合做圖像處理??紤]到后期的升級和總的開發(fā)成本,本系統(tǒng)選擇TMS320C6201芯片作為核心處理器搭建硬件平臺。TMS320C6201是一種高性能的定點數(shù)字信號處理器[7]。
系統(tǒng)實現(xiàn)的硬件平臺總體框圖如圖1 所示,系統(tǒng)以DSP 為核心, 包括DSP 處理模塊、電源模塊、LED 顯示模塊、存儲模塊和擴展接口等部分,其中電源模塊為系統(tǒng)提供電能供應(yīng),顯示模塊顯示識別結(jié)果,存儲模塊包括SDRAM 模塊和FLASH 模塊,分別用來運行程序和固化程序,接口模塊是為了后期系統(tǒng)升級預(yù)留的接口。
圖1 系統(tǒng)總體框圖Fig.1 Diagram of system hardware
移植到TMS320C6201 平臺上的人臉識別算法實現(xiàn)流程如圖2 所示。系統(tǒng)上電后,首先進行初始化,然后按預(yù)先設(shè)定的程序讀取訓(xùn)練圖像,在預(yù)處理階段運行幾何歸一化和灰度歸一化程序。幾何歸一化是指將圖像中人臉變換到同一位置和同樣大小,得到大小、位置相當(dāng)?shù)膱D像?;叶葰w一化將圖像的灰度值和方差歸一化到一個特定的區(qū)間,從而將減少光照變化對人臉識別率的影響。訓(xùn)練圖像和測試圖像經(jīng)過預(yù)處理后再通過核主元分析方法提取人臉圖像的高維非線性特征,最后經(jīng)過分類器進行分類識別并顯示識別結(jié)果。
圖2 算法流程圖Fig.2 Algorithm flow chart
優(yōu)化是指通過提高硬件資源的并行利用程度,提高代碼運行速度,減少運行時間[8]。DSP 的算法優(yōu)化一般經(jīng)過3 個階段,流程如圖3 所示。
圖3 算法優(yōu)化流程圖Fig.3 Algorithm op timization flow chart
第一階段是直接使用C 語言實現(xiàn)算法功能。TI公司提供了片上支持庫(Chip Support Library,CSL)來簡化程序開發(fā)。CSL 是一個C 語言程序庫,給出了配置和控制片上外設(shè)的C 語言接口。雖然也可以用寫匯編程序的方法來操作片上外設(shè),但使用片上支持庫可以帶來以下好處:使外設(shè)的使用變得容易、縮短開發(fā)時間、提供了所有外設(shè)寄存器和寄存器字段的字符表示、方便將代碼移植到其他DSP。
第二階段是C 語言程序的優(yōu)化。對于耗時較長的程序段,采取從軟件入手, 兼顧硬件的優(yōu)化原則,重新組織程序結(jié)構(gòu)。
第三階段是匯編語言優(yōu)化。找出不能滿足效率要求的代碼段,用線性匯編語言改寫,利用匯編優(yōu)化器進行優(yōu)化。
在本實驗中主要采取了如下優(yōu)化手段。
(1)存儲器優(yōu)化
DSP 內(nèi)部存儲空間不大,在優(yōu)化過程中需要合理配置片內(nèi)存儲器,避免反復(fù)的搬移數(shù)據(jù)增大程序運行時間。因為圖像數(shù)據(jù)都比較大,可以存儲在外部存儲器,而求得的特征矢量因為要反復(fù)使用,可以存儲在內(nèi)部存儲器,同時開辟一部分片內(nèi)程序作為cache,提高程序訪問數(shù)據(jù)的速度。
(2)編譯器優(yōu)化
編譯器選項用來控制編譯器的行為,選擇不同的編譯器選項,通過設(shè)置參數(shù)來優(yōu)化編譯過程, 可以提高編譯后匯編代碼的效率。
(3)EDMA 技術(shù)
高效的數(shù)據(jù)處理能力也需要高效的數(shù)據(jù)供給,DMA 數(shù)據(jù)搬移技術(shù)可在沒有CPU 參與的情況下進入后臺操作,達到高效搬移的功能。
(4)軟件流水
在人臉識別中有大量的循環(huán)運算,軟件流水是用來安排循環(huán)指令,使這個循環(huán)的多次迭代并行執(zhí)行的一種技術(shù),是提高代碼性能的最關(guān)鍵優(yōu)化方式。可以采用人工的干預(yù),使編譯器生成效率更高的軟件流水,這些干預(yù)包括消除冗余循環(huán)、向編譯器傳遞循環(huán)次數(shù)信息、循環(huán)展開等。
(5)線性匯編
在識別程序中,內(nèi)積運算的C 語言程序效率較低,使用線性匯編重新改寫,可以大大提高計算速度。
(6)定點運算
由于TMS320C6201 是定點系列的DSP,使用浮點數(shù)運算勢必會加大DSP 的運行時間,不利于DSP算法的運行效率,所以在程序中將運算轉(zhuǎn)為定點運算,可以節(jié)約運算時間。
實驗使用的人臉圖像集來自O(shè)RL 人臉數(shù)據(jù)庫。該數(shù)據(jù)庫的人臉圖像分別是在不同時期、不同光照、不同頭部角度和不同表情條件下攝制而得,由40 個人每人10 幅共400 幅構(gòu)成,是目前使用最廣泛的標(biāo)準(zhǔn)圖像。在實驗中隨機抽取數(shù)據(jù)庫中的部分圖像作為訓(xùn)練樣本,在余下部分中選擇相同數(shù)目的圖像作為測試樣本,訓(xùn)練樣本數(shù)目與測試樣本數(shù)目相等,而且統(tǒng)一選擇高斯徑向基函數(shù)作為核函數(shù),核函數(shù)的參數(shù)取值為10,選擇的分類器是最小距離分類器。每一個實驗都重復(fù)30 次,對實驗結(jié)果取平均值。
實驗中首先對比了KPCA 算法在PC 機運行和本硬件平臺運行的人臉識別率和識別時間,并且也對比了程序優(yōu)化對算法的改善。樣本數(shù)目和測試數(shù)目都為200,實驗結(jié)果如表1 所示。從表1 可以看出,在兩種平臺之上運行KPCA 算法,其識別率沒有變化,均為93%,但是DSP 平臺在識別時間方面大為減小,PC 平臺平均消耗時間為7.8 s,而DSP 平臺的平均消耗時間在優(yōu)化前是5.0 s,而優(yōu)化后僅僅需要1.6 s,識別速度提高了68%,效率顯著提高。
本文也比較了在DSP 平臺上不同的樣本數(shù)目對算法移植的影響。表2 對比了樣本數(shù)目分別為100 和200 時算法的優(yōu)化效果。從表2 可以看出,樣本數(shù)目越大, 優(yōu)化效果越明顯,主要原因在于DSP在處理大量數(shù)據(jù)的時候優(yōu)勢更為明顯。
表2 DSP 平臺不同樣本數(shù)目的識別時間對比Tab le 2 Recognition rate comparison between different sample numbers
本文將基于核主元分析的人臉識別算法移植到TI 公司的TMS320C6201 DSP 平臺,并進行了相關(guān)優(yōu)化。經(jīng)過優(yōu)化后的移植算法在保證識別率的前提下,節(jié)約了大量的識別時間,效率優(yōu)勢明顯,而且硬件系統(tǒng)運行穩(wěn)定,可擴展性強,有一定的參考價值。如何在DSP 平臺上進一步提高人臉識別率和運行效率是下一步研究工作的重點。
[ 1] 俞寧.一種用于人臉識別的新PCA 算法[J] .電訊技術(shù),2009,49(12):65-69.
YU Ning.A Novel PCA Algorithm For Face Recognition[ J] .Telecommunication Engineering, 2009, 49(12):65 -69.(in Chinese)
[2] Scholkopf B, Smola A.NonlinearComponent Analysis as a Kernel Eigenvalue Problem[ J] .Neural Computer, 1998, 10(2):1299-1319.
[3] Gu Y F, Liu Y, Zhang Y.A Selective KPCA Algorithm based on H igh -order Statistics for Anomaly Detection in Hyperspectral Imagery[ J] .IEEE Geoscience and Remote Sensing Letters,2008, 5(1):43-47.
[4] LIU Chang-ping.Gabor based kernel PCA with fractional power polynom ial models for face recognition[ J] .IEEE Transactions on Pattern Analysis and M achine Intelligence, 2004,26(5):572-581.
[5] 杜卓明, 屠宏,耿國華.KPCA 方法過程研究與應(yīng)用[ J] .計算機工程與應(yīng)用, 2010,46(7):8-10.
DU Zhuo-ming,TU Hong,GENG Guo-hua.KPCA Method Research and Application Process[ J] .Computer Engineering and Applications,2010,46(7):8-10.(in Chinese)
[6] 舒紅霞, 王繼紅.分布式DSP 實時操作系統(tǒng)的設(shè)計與實現(xiàn)[J] .小型微型計算機系統(tǒng),2010,31(7):1407-1410.
SHU Hong-xia,WANG Ji-hong.Design and Implementation of a Distributed DSP Real Time Operating System[ J] .Mini-Micro Systems,2010,31(7):1407-1410.(in Chinese)
[7] Eyre J, Bier J.The Evolution of DSP Processors From Early Architectures to The Latest Developments [ J] .IEEE Signal Processing Magazine, 2000, 17(2):43-51.
[8] 鄒土土土, 張超.基于DSP 的人臉識別算法實現(xiàn)與優(yōu)化[ J] .計算機應(yīng)用,2010,30(3):854-856.
ZOU Yao, ZHANG Chao.Implementation and Optimization of Face Recognition Algorithm based on DSP[ J] .Journal of Computer Applications,2010, 30(3):854-856.(in Chinese)