劉 嵩,譚建軍
(湖北民族學院 信息工程學院,湖北 恩施445000)
人臉識別是計算機視覺中的一個熱點,其較為關鍵的技術就是特征提取。主元分析法(Principle Component Analysis,PCA)是經典的特征提取方法,它提取的特征是代數特征,滿足投影方差最大的原則,且是相互正交的[1]。但PCA 方法沒有利用樣本數據的高階信息,而高階信息更有利于人臉分類。基于核的非線性變換因其在支持向量機(SVM)中出色應用而引起眾多研究人員關注,為了利用樣本的高階信息,研究人員將核函數的思想引入到人臉識別中。Scholkopf 提出了核主元分析(Kernel Principle Component Analysis,KPCA)的方法來提取特征,并應用于人臉識別[2]。KPCA 基本思想是:首先通過非線性映射將原始樣本數據從低維空間變換到高維特征空間,然后在這個新的空間中使用PCA 方法。為避免“維數災難”問題,引用支持向量機(Support Vector Machine,SVM)中的核函數,即用滿足Mercer 條件的核函數來計算特征空間中向量的內積[3-5],避免了顯式的求解映射函數。實驗結果表明,KPCA不僅能夠抽取非線性特征,而且有著比主成分分析更好的識別效果。
然而,基于KPCA 的人臉識別方法需要多次計算內積來求解核矩陣,其耗時占總識別時間的80%以上,特別是在樣本維數較高的時候更為明顯。另外考慮到在工程實踐中對成本、體積、后期升級等方面的要求,傳統(tǒng)的基于PC 機的人臉識別算法在實際應用中受到很大限制。隨著數字信號處理(Digital Signal Processing,DSP)技術的快速發(fā)展,其運算能力顯著提高,能實時處理海量數據,同時擁有較高的性價比[6]。鑒于此,本文提出了一種利用DSP 實現核主元分析的方法,實驗結果證明了該方法的有效性。
假設空間映射為Υ,x1, x2, …, xM為訓練樣本,則映射可以定義如下:
假設特征空間數據滿足中心化的條件,即
則特征空間中的協(xié)方差矩陣為
現求Q 的特征值λ≥0 和特征向量ν滿足下式:
即有
考慮到所有的特征向量可表示為 Υ(x1),Υ(x2), …, Υ(xM)的線性張成,即
則有
定義M×M 維矩陣K:
則式(7)可以簡化為
顯然滿足
求解式(10)就可以得到特征值和特征向量,對于測試樣本在特征向量空間Vk的投影為
將內積用核函數替換則有
當式(2)不成立時,需進行調整:
則核矩陣可修正為
常見的核函數有線性核函數、d 階多項式核函數和高斯徑向基函數核函數3 種,分別為
TI 公司的TMS320C6000 系列DSP 具有較強的數據處理能力,特別適合做圖像處理??紤]到后期的升級和總的開發(fā)成本,本系統(tǒng)選擇TMS320C6201芯片作為核心處理器搭建硬件平臺。TMS320C6201是一種高性能的定點數字信號處理器[7]。
系統(tǒng)實現的硬件平臺總體框圖如圖1 所示,系統(tǒng)以DSP 為核心, 包括DSP 處理模塊、電源模塊、LED 顯示模塊、存儲模塊和擴展接口等部分,其中電源模塊為系統(tǒng)提供電能供應,顯示模塊顯示識別結果,存儲模塊包括SDRAM 模塊和FLASH 模塊,分別用來運行程序和固化程序,接口模塊是為了后期系統(tǒng)升級預留的接口。
圖1 系統(tǒng)總體框圖Fig.1 Diagram of system hardware
移植到TMS320C6201 平臺上的人臉識別算法實現流程如圖2 所示。系統(tǒng)上電后,首先進行初始化,然后按預先設定的程序讀取訓練圖像,在預處理階段運行幾何歸一化和灰度歸一化程序。幾何歸一化是指將圖像中人臉變換到同一位置和同樣大小,得到大小、位置相當的圖像?;叶葰w一化將圖像的灰度值和方差歸一化到一個特定的區(qū)間,從而將減少光照變化對人臉識別率的影響。訓練圖像和測試圖像經過預處理后再通過核主元分析方法提取人臉圖像的高維非線性特征,最后經過分類器進行分類識別并顯示識別結果。
圖2 算法流程圖Fig.2 Algorithm flow chart
優(yōu)化是指通過提高硬件資源的并行利用程度,提高代碼運行速度,減少運行時間[8]。DSP 的算法優(yōu)化一般經過3 個階段,流程如圖3 所示。
圖3 算法優(yōu)化流程圖Fig.3 Algorithm op timization flow chart
第一階段是直接使用C 語言實現算法功能。TI公司提供了片上支持庫(Chip Support Library,CSL)來簡化程序開發(fā)。CSL 是一個C 語言程序庫,給出了配置和控制片上外設的C 語言接口。雖然也可以用寫匯編程序的方法來操作片上外設,但使用片上支持庫可以帶來以下好處:使外設的使用變得容易、縮短開發(fā)時間、提供了所有外設寄存器和寄存器字段的字符表示、方便將代碼移植到其他DSP。
第二階段是C 語言程序的優(yōu)化。對于耗時較長的程序段,采取從軟件入手, 兼顧硬件的優(yōu)化原則,重新組織程序結構。
第三階段是匯編語言優(yōu)化。找出不能滿足效率要求的代碼段,用線性匯編語言改寫,利用匯編優(yōu)化器進行優(yōu)化。
在本實驗中主要采取了如下優(yōu)化手段。
(1)存儲器優(yōu)化
DSP 內部存儲空間不大,在優(yōu)化過程中需要合理配置片內存儲器,避免反復的搬移數據增大程序運行時間。因為圖像數據都比較大,可以存儲在外部存儲器,而求得的特征矢量因為要反復使用,可以存儲在內部存儲器,同時開辟一部分片內程序作為cache,提高程序訪問數據的速度。
(2)編譯器優(yōu)化
編譯器選項用來控制編譯器的行為,選擇不同的編譯器選項,通過設置參數來優(yōu)化編譯過程, 可以提高編譯后匯編代碼的效率。
(3)EDMA 技術
高效的數據處理能力也需要高效的數據供給,DMA 數據搬移技術可在沒有CPU 參與的情況下進入后臺操作,達到高效搬移的功能。
(4)軟件流水
在人臉識別中有大量的循環(huán)運算,軟件流水是用來安排循環(huán)指令,使這個循環(huán)的多次迭代并行執(zhí)行的一種技術,是提高代碼性能的最關鍵優(yōu)化方式??梢圆捎萌斯さ母深A,使編譯器生成效率更高的軟件流水,這些干預包括消除冗余循環(huán)、向編譯器傳遞循環(huán)次數信息、循環(huán)展開等。
(5)線性匯編
在識別程序中,內積運算的C 語言程序效率較低,使用線性匯編重新改寫,可以大大提高計算速度。
(6)定點運算
由于TMS320C6201 是定點系列的DSP,使用浮點數運算勢必會加大DSP 的運行時間,不利于DSP算法的運行效率,所以在程序中將運算轉為定點運算,可以節(jié)約運算時間。
實驗使用的人臉圖像集來自ORL 人臉數據庫。該數據庫的人臉圖像分別是在不同時期、不同光照、不同頭部角度和不同表情條件下攝制而得,由40 個人每人10 幅共400 幅構成,是目前使用最廣泛的標準圖像。在實驗中隨機抽取數據庫中的部分圖像作為訓練樣本,在余下部分中選擇相同數目的圖像作為測試樣本,訓練樣本數目與測試樣本數目相等,而且統(tǒng)一選擇高斯徑向基函數作為核函數,核函數的參數取值為10,選擇的分類器是最小距離分類器。每一個實驗都重復30 次,對實驗結果取平均值。
實驗中首先對比了KPCA 算法在PC 機運行和本硬件平臺運行的人臉識別率和識別時間,并且也對比了程序優(yōu)化對算法的改善。樣本數目和測試數目都為200,實驗結果如表1 所示。從表1 可以看出,在兩種平臺之上運行KPCA 算法,其識別率沒有變化,均為93%,但是DSP 平臺在識別時間方面大為減小,PC 平臺平均消耗時間為7.8 s,而DSP 平臺的平均消耗時間在優(yōu)化前是5.0 s,而優(yōu)化后僅僅需要1.6 s,識別速度提高了68%,效率顯著提高。
本文也比較了在DSP 平臺上不同的樣本數目對算法移植的影響。表2 對比了樣本數目分別為100 和200 時算法的優(yōu)化效果。從表2 可以看出,樣本數目越大, 優(yōu)化效果越明顯,主要原因在于DSP在處理大量數據的時候優(yōu)勢更為明顯。
表2 DSP 平臺不同樣本數目的識別時間對比Tab le 2 Recognition rate comparison between different sample numbers
本文將基于核主元分析的人臉識別算法移植到TI 公司的TMS320C6201 DSP 平臺,并進行了相關優(yōu)化。經過優(yōu)化后的移植算法在保證識別率的前提下,節(jié)約了大量的識別時間,效率優(yōu)勢明顯,而且硬件系統(tǒng)運行穩(wěn)定,可擴展性強,有一定的參考價值。如何在DSP 平臺上進一步提高人臉識別率和運行效率是下一步研究工作的重點。
[ 1] 俞寧.一種用于人臉識別的新PCA 算法[J] .電訊技術,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 方法過程研究與應用[ J] .計算機工程與應用, 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)的設計與實現[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 的人臉識別算法實現與優(yōu)化[ J] .計算機應用,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)