基于TMS320C6713的人臉識(shí)別系統(tǒng)設(shè)計(jì)
南京航空航天大學(xué) 姜鈺 丁萬(wàn)山
摘要: 為了人臉識(shí)別的相關(guān)算法能快速運(yùn)行,選擇了TI公司的DSP處理器,另附加鍵盤模塊和PAL制式輸出模塊,可以脫離PC獨(dú)立對(duì)PAL視頻信號(hào)進(jìn)行采集和處理,并獨(dú)立運(yùn)行人臉的定位,特征抽取以及人臉的識(shí)別。硬件方面,系統(tǒng)采用了存儲(chǔ)器切換系統(tǒng),使得圖像數(shù)據(jù)緩存和讀取分別由CPLD和DSP獨(dú)立且同時(shí)執(zhí)行,縮短了數(shù)據(jù)的處理周期,保證了系統(tǒng)的實(shí)時(shí)運(yùn)行。軟件設(shè)計(jì)包括了:人臉定位、人眼定位、樣本存儲(chǔ)以及人臉識(shí)別。其中樣本由DSP自動(dòng)選取,根據(jù)人眼定位和人臉標(biāo)記方框的大小共同決定,選取一部分大小相等且眼距相同的圖片作為訓(xùn)練樣本以及待識(shí)別樣本。在主分量分析過(guò)程中,提取出主分量構(gòu)成特征臉空間,將原樣本投影到該空間內(nèi)一點(diǎn),再輸送到KNN分類器中進(jìn)行分類。該設(shè)備攜帶方便,功耗低并可通過(guò)軟件設(shè)計(jì)將其應(yīng)用到其他領(lǐng)域,如運(yùn)動(dòng)識(shí)別、動(dòng)態(tài)跟蹤等。
Abstract:
Key words :
為了人臉識(shí)別的相關(guān)算法能快速運(yùn)行,選擇了TI公司的DSP處理器,另附加鍵盤模塊和PAL制式輸出模塊,可以脫離PC獨(dú)立對(duì)PAL視頻信號(hào)進(jìn)行采集和處理,并獨(dú)立運(yùn)行人臉的定位,特征抽取以及人臉的識(shí)別。硬件方面,系統(tǒng)采用了存儲(chǔ)器切換系統(tǒng),使得圖像數(shù)據(jù)緩存和讀取分別由CPLD和DSP獨(dú)立且同時(shí)執(zhí)行,縮短了數(shù)據(jù)的處理周期,保證了系統(tǒng)的實(shí)時(shí)運(yùn)行。軟件設(shè)計(jì)包括了:人臉定位、人眼定位、樣本存儲(chǔ)以及人臉識(shí)別。其中樣本由DSP自動(dòng)選取,根據(jù)人眼定位和人臉標(biāo)記方框的大小共同決定,選取一部分大小相等且眼距相同的圖片作為訓(xùn)練樣本以及待識(shí)別樣本。在主分量分析過(guò)程中,提取出主分量構(gòu)成特征臉空間,將原樣本投影到該空間內(nèi)一點(diǎn),再輸送到KNN分類器中進(jìn)行分類。該設(shè)備攜帶方便,功耗低并可通過(guò)軟件設(shè)計(jì)將其應(yīng)用到其他領(lǐng)域,如運(yùn)動(dòng)識(shí)別、動(dòng)態(tài)跟蹤等。
1 人臉檢測(cè)的算法
人臉檢測(cè)系統(tǒng)可以分為人臉檢測(cè)和人臉識(shí)別模塊,這兩大模塊又進(jìn)一步可劃分為人臉檢測(cè)與定位、規(guī)范化、特征提取和人臉識(shí)別4個(gè)模塊。其詳細(xì)結(jié)構(gòu),如圖1所示。
1.1 人臉的定位
通過(guò)已獲得的樣本來(lái)判斷人臉的位置,選取合適的人臉,截取出做樣本是重要的步驟。人臉特征定位與特征提取質(zhì)量的好壞對(duì)于人臉圖像識(shí)別效果有直接的影響。首先確定人眼的坐標(biāo)(x1,y1)和(x2,y2),由此可間接得到正方形人臉的左上頂點(diǎn)和右下頂點(diǎn)的坐標(biāo),設(shè)其分別為(X1,Y1)和(X2,Y2),其詳細(xì)計(jì)算方法如下所示
式中,RH和RV均為經(jīng)驗(yàn)常數(shù),在設(shè)計(jì)過(guò)程中將其分別取值為2.0和3.5。如此可在原圖中得到人臉的區(qū)域座標(biāo),其尺寸隨眼距Widtheyes的大小而變化,但是作為PCA的輸入,要求輸入樣本的維數(shù)相同,所以必須對(duì)圖片進(jìn)行歸一化處理。在設(shè)計(jì)中將所得人臉區(qū)域樣本均縮放至24×24。此外還需要對(duì)圖片進(jìn)行對(duì)比度調(diào)節(jié)和直方圖均衡等操作,以提高識(shí)別的準(zhǔn)確性。
1.2 人臉特征提取
在設(shè)計(jì)人臉識(shí)別分類器時(shí),通常將一幅圖片看成一個(gè)一維向量。雖然這與傳統(tǒng)的將圖片看成矩陣形式有差別,但是卻能為采用主分量分析(PCA)進(jìn)行特征臉提取創(chuàng)造有利條件。
特征臉?lè)诸惖姆椒ㄊ菍⒁环鶊D像投影到一個(gè)特定“臉空間”的一個(gè)點(diǎn)。這個(gè)“臉空間”由一股互相正交的向量組成。這些向量便是表征各個(gè)人臉聚類的重要組成部分。不同人臉的圖片在此空間的相差較遠(yuǎn),相同人臉的不同圖片在此空間上的投影相距較近。因此可以使用PCA的方法為整個(gè)人臉識(shí)別系統(tǒng)打下基礎(chǔ)。
第一步,采集到N個(gè)樣本用作訓(xùn)練集X,求出樣本平均值m,如式(1)所示
其中,xi∈樣本訓(xùn)練集X=(x1,x2,…,xN)。
第二步,求出散布矩陣S,如式(2)所示
根據(jù)PCA的基本原理,必須求出散布矩陣的特征值λi和對(duì)應(yīng)的特征向量ei。其中,ei便是主分量,且其對(duì)應(yīng)的特征值的大小代表它包含信息的多少。所以需要將特征值從大到小依次排列λ1,λ2,…。如圖2所示,左邊是由λ1對(duì)應(yīng)的特征向量重建的人臉圖像,基本能分辨出人臉的輪廓,右邊是由λ100對(duì)應(yīng)的特征向量重建的圖像,看起來(lái)更像是噪聲,如果將其應(yīng)用到系統(tǒng)中,對(duì)識(shí)別是不利的。
假設(shè)取出p個(gè)值,λ1,λ2,…,λp可以確定出臉空間E=(e1,e2,…,eP),在此臉空間上,訓(xùn)練樣本X中,每個(gè)元素投影到該空間的點(diǎn)可以由式(3)得到
由上式得到的是將原向量經(jīng)過(guò)PCA降維后的p維向量,下一步便是將其輸入KNN分類器進(jìn)行分類。
1.3 KNN分類器的構(gòu)建
KNN的實(shí)現(xiàn)分訓(xùn)練和識(shí)別兩步。訓(xùn)練時(shí),把每類樣本降維后的結(jié)果作為KNN的輸入。K近鄰算法將一個(gè)測(cè)試點(diǎn)x分類為與它最接近的K個(gè)近鄰中出現(xiàn)最多的那個(gè)類別,從測(cè)試樣本點(diǎn)開始生長(zhǎng),不斷擴(kuò)大區(qū)域,直到包含進(jìn)K個(gè)訓(xùn)練樣本點(diǎn)為止,并且把測(cè)試樣本點(diǎn)的類別歸為這最近K個(gè)訓(xùn)練樣本點(diǎn)中出現(xiàn)頻率最大的類別。如圖3所示,圓圈表示待識(shí)別數(shù)據(jù)所處的位置,選擇K值為3時(shí),選中實(shí)線圓中的3個(gè)數(shù)據(jù),識(shí)別結(jié)果為三角形代表的類;選擇K值為5時(shí),選中虛線圓中的5個(gè)數(shù)據(jù),識(shí)別結(jié)果為正方形代表的類。所以選取恰當(dāng)?shù)腒值對(duì)分類的結(jié)果有很大影響。如果K值選取過(guò)大時(shí),可能能較正確地分類,但是同時(shí)犧牲了性能,提高了計(jì)算復(fù)雜度。如果K值選取過(guò)小,則大大降低了計(jì)算復(fù)雜度,但是可能會(huì)影響分類的準(zhǔn)確性。
2 系統(tǒng)硬件設(shè)計(jì)
系統(tǒng)設(shè)計(jì)時(shí)選用TMS320C6713,這是TI公司生產(chǎn)的C6000系列的浮點(diǎn)處理器,其采用了VLIW體系結(jié)構(gòu),指令運(yùn)行的等效周期數(shù)較低,運(yùn)行速度較快。圖像的采集采用了PAL制式輸出的普通攝像頭加上TI公司生產(chǎn)的圖像編碼芯片TVP5147,該芯片支持多種制式,多種接口輸入,并可以輸出YUV格式的視頻數(shù)據(jù),同時(shí)提供行同步信號(hào)和垂直同步信號(hào)等。數(shù)據(jù)暫存使用CPLD和SRAM實(shí)現(xiàn)。設(shè)計(jì)系統(tǒng)構(gòu)成,如圖4所示。
2.1 TVP5147芯片
系統(tǒng)上電時(shí),TMS320C6713首先對(duì)TVP5147初始化,其通過(guò)I2C總線實(shí)現(xiàn),DSP自帶I2C總線控制器。芯片I2C地址是由芯片引腳I2CA的電平控制的,如該引腳接高電平,則I2C寫地址為0xB8,否則為OxBB。
假如系統(tǒng)初始化為從Y[9..O]端口輸出10位的YUV混合視頻數(shù)據(jù),則可知道其輸出符合以下時(shí)序,如圖5所示。
圖中第一行為DATACLK信號(hào),其為TVP5147芯片提供的數(shù)據(jù)時(shí)鐘信號(hào),第二行為數(shù)據(jù)Y[9…0],當(dāng)每一行圖像開始之前,會(huì)有4個(gè)SAV信號(hào),同樣,結(jié)束之后也有4個(gè)EAV信號(hào),如圖5所示,數(shù)據(jù)是YCbCr格式,每個(gè)像素點(diǎn)的數(shù)據(jù)為4個(gè)數(shù)據(jù)組成,一次為Cb,Y,Cr,Y。而由圖5中可以看出AVID信號(hào)為高電平時(shí),表明當(dāng)前的數(shù)據(jù)為有效數(shù)據(jù)。這為CPLD采集有效數(shù)據(jù)提供了參考信號(hào)。同時(shí)TVP5147芯片還輸出FID信號(hào),該信號(hào)為奇偶場(chǎng)指示信號(hào)。
2.2 CPLD讀寫SRAM
存儲(chǔ)器選擇了DS1265AB,它是SRAM存儲(chǔ)器,具有存儲(chǔ)速度快的優(yōu)點(diǎn),并能夠在系統(tǒng)掉電時(shí)保存數(shù)據(jù)10年。DS1265具有1 MB的容量,20根地址線,8根數(shù)據(jù)線,另有WE,OE,CE信號(hào)輸入端。
CPLD選用EPM7128具有價(jià)格便宜、計(jì)數(shù)頻率高等優(yōu)點(diǎn)。將存儲(chǔ)器SRAM接到CPLD的IO引腳上,配合時(shí)序便能達(dá)到對(duì)SRAM讀寫的要求,原理圖,如圖6所示。
編寫CPLD程序使得輸出時(shí)序滿足SRAM的存儲(chǔ)要求,當(dāng)然對(duì)于設(shè)計(jì)的具體要求,利用兩片SRAM分別存儲(chǔ)奇偶場(chǎng)的數(shù)據(jù),SRAM的切換是由奇偶場(chǎng)信號(hào)FID控制多片74HC245實(shí)現(xiàn)的,詳細(xì)過(guò)程,如圖7所示。當(dāng)FID處于高電平時(shí),此時(shí)M1和M4使能,此時(shí)CPLD將地址信號(hào)CPLDaddr輸入SRAM1中,DSP將地址信號(hào)DSPaddr輸入至SRAM2中,同時(shí)M6和M8使能,由圖中可以看出,此時(shí)CPLD正向SRAM1寫入數(shù)據(jù),而DSP正從SRAM2中讀取數(shù)據(jù),同時(shí)M10使能,CPLD的信號(hào)CPLDctl控制SRAM1的讀寫,而DSP的信號(hào)DSPctl控制SRAM2的讀寫,當(dāng)FID轉(zhuǎn)為低電平時(shí),正好將SRAM1和SRAM2實(shí)現(xiàn)了交換。以這種方式構(gòu)建的系統(tǒng),能同時(shí)將視頻的兩場(chǎng)數(shù)據(jù)同時(shí)記錄下來(lái),實(shí)現(xiàn)了CPLD和DSP的有機(jī)結(jié)合。至此CPLD的任務(wù)就是將有效的圖像數(shù)據(jù)存儲(chǔ)到對(duì)應(yīng)的SRAM中,當(dāng)TVP5147芯片AVID引腳上升沿時(shí),置地址為初始值00h,即從首地址依次往后寫入。每一個(gè)數(shù)據(jù)時(shí)鐘信號(hào)DATACLK上升沿時(shí)將TVP5147輸出的Y[9…2]存儲(chǔ)到當(dāng)前地址單元,Y0和Y1位舍棄,因?yàn)樗x擇的SRAM數(shù)據(jù)位為8位,當(dāng)放棄Y0和Y1位后,降低了圖像數(shù)據(jù)的精度,但對(duì)識(shí)別效果的影響卻很小,然后隨著DATACLK每次上升沿的來(lái)臨,CPLD將地址單元加1,這樣實(shí)現(xiàn)每一場(chǎng)數(shù)據(jù)的寫入。當(dāng)切換至另一場(chǎng)數(shù)據(jù)時(shí),執(zhí)行的過(guò)程相同,只是存儲(chǔ)的對(duì)象被74HC245強(qiáng)制更改,如此循環(huán),便可將每場(chǎng)數(shù)據(jù)記錄下來(lái)。
2.3 圖像輸出系統(tǒng)的設(shè)計(jì)
系統(tǒng)設(shè)計(jì)時(shí)為了減輕負(fù)擔(dān),采用電視監(jiān)控的方法,將小型電視機(jī)通過(guò)TI公司的視頻編碼芯片THS8135連接至DSP總線,將得到的YUV數(shù)據(jù)通過(guò)THS8135直接輸出至電視AV的視頻接收端,并且通過(guò)DSP可以將一些信息顯示到電視屏幕上,這樣使得識(shí)別的過(guò)程更加人性化。
3 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)硬件調(diào)試成功后,需要提供一定的軟件算法等,以實(shí)現(xiàn)軟件和硬件的結(jié)合,在此設(shè)計(jì)中,SRAM是擴(kuò)展在DSP處理器EMIF上的,DSP處理器通過(guò)讀信號(hào)的觸發(fā)將有效奇偶場(chǎng)數(shù)據(jù)分別存儲(chǔ)為兩個(gè)一維數(shù)組,以供處理。
3.1 DSP的圖像預(yù)處理
TVP5147芯片輸出的圖像數(shù)據(jù)并非RGB格式,而是以YUV格式輸出的。需要通過(guò)DSP處理器轉(zhuǎn)換成RGB格式,才能進(jìn)行圖像的預(yù)處理,轉(zhuǎn)換公式如式(4)所示
DSP將圖像數(shù)據(jù)讀入內(nèi)存空間,然后對(duì)其進(jìn)行運(yùn)算,將得到的RGB分別放到對(duì)應(yīng)的存儲(chǔ)單元,并算出灰度值Gray,運(yùn)算公式如式(5)所示
將最后得到的灰度值存放到對(duì)應(yīng)的數(shù)組當(dāng)中。每張圖片由兩場(chǎng)圖片構(gòu)成,所以完整的圖片分辨率為720×576。但是對(duì)于系統(tǒng)本身無(wú)需對(duì)其每一個(gè)像素都進(jìn)行轉(zhuǎn)換,所以截取其中320×240進(jìn)行存儲(chǔ),這樣每場(chǎng)的分辨率為320×120,大大降低了由YUV到灰度圖像預(yù)處理和臉部定位的時(shí)間,提高了系統(tǒng)的性能。
3.2 人臉判別流程
將得到的320×240的圖片經(jīng)過(guò)人臉的檢測(cè)后,將截取人臉的部分作為人臉樣本。設(shè)計(jì)時(shí),人臉的所有樣本都將在顯示器上顯示出來(lái),降低了人臉錯(cuò)誤檢測(cè)的可能,一定程度上提高系統(tǒng)的準(zhǔn)確性。
人臉的樣本分辨率為24×24,作為576維的一維向量輸入至PCA。圖8(a)為計(jì)算PCA投影矩陣的流程圖,圖8(b)為KNN分類器的工作流程圖,其中訓(xùn)練樣本經(jīng)過(guò)PCA投影后的數(shù)值,不需要在每次識(shí)別中重新計(jì)算,可以作為初始化時(shí)的計(jì)算,也可存儲(chǔ)于掉電非易失介質(zhì)中,如Flash存儲(chǔ)器中,可以提高設(shè)備的運(yùn)行效率,降低運(yùn)算量。
如圖8所示,KNN分類器可以判斷最接近的分類,但是并不能拒絕分類,于是產(chǎn)生了任何人的臉都將被分到內(nèi)置樣本集的一類中。這樣的分類方式是不可取的,所以必須加入是否拒絕的判定,流程圖如圖9所示。
如流程圖中顯示,當(dāng)樣本點(diǎn)經(jīng)過(guò)PCA降維后,輸送至KNN分類器進(jìn)行分類,所得到的結(jié)果一定可以判定為第K類,此時(shí)不能急于定論,先求出待測(cè)點(diǎn)與K類標(biāo)號(hào)的樣本點(diǎn)的歐氏距離之和sum。定義兩個(gè)閾值a和b,如果sum<a值則判定為第一類;如果sum>b值則判定為拒絕類;如果sum介于a和b值之間,則引入精度控制量accuracy,計(jì)算出sum與a的差值,如若小于精度控制量accuracy,則判定為第K類,否則拒絕分類。由這樣的過(guò)程,間接解決了樣本錯(cuò)分和無(wú)法判否的問(wèn)題。
4 試驗(yàn)結(jié)果
該實(shí)驗(yàn)中,選定a的值為12 400,b的值為16 200,這兩個(gè)值的確定需要進(jìn)行大量的實(shí)驗(yàn),從中找出規(guī)律。x的值的大小直接影響識(shí)別的效果,文中分別選取x=4和x=5進(jìn)行了測(cè)試。
(1)x=4時(shí):程序在測(cè)試可識(shí)別庫(kù)中的分屬12個(gè)人的36幅人臉圖像時(shí),正確識(shí)別出其中的33幅,其余3幅圖像均被判否,0個(gè)判錯(cuò)。程序在測(cè)試不可識(shí)別庫(kù)中的分屬3個(gè)人的33幅人臉圖像時(shí),22幅圖像被成功判否,11幅被誤判;
(2)x=5時(shí):程序在測(cè)試可識(shí)別庫(kù)中的分屬12個(gè)人的36幅人臉圖像時(shí),正確識(shí)別出其中的25幅,其余l(xiāng)l幅圖像均被判否,O幅判錯(cuò)。程序在測(cè)試不可識(shí)別庫(kù)中的分屬3個(gè)人的33幅人臉圖像時(shí),28幅圖像被成功判否,5幅被誤判。
分析上面的實(shí)驗(yàn)數(shù)據(jù)可知,x=4時(shí),可識(shí)別庫(kù)的識(shí)別率為91.6%,不可識(shí)別庫(kù)的判否率為66.7%。x=5時(shí),可識(shí)別庫(kù)的識(shí)別率為69.4-%,不可識(shí)別庫(kù)的判否率為84.8%。因此,應(yīng)用于不同的場(chǎng)合時(shí),應(yīng)選擇不同的x值,當(dāng)要求盡可能拒絕外來(lái)人臉時(shí),可選x值為5,當(dāng)要求盡量識(shí)別已知人臉時(shí),可選x值為4。
5 結(jié)束語(yǔ)
此人臉識(shí)別系統(tǒng)的構(gòu)建,充分考慮了其推廣性,未采用USB攝像頭作為圖像采集設(shè)備,而以通用視頻標(biāo)準(zhǔn)的模擬攝像頭取而代之,因此用戶在攝像頭選擇的時(shí)候,可以更加自由。同時(shí)該設(shè)備支持多種接口輸入,除了普通的R-jack口之外,還提供了Svideo,YPbPr和RGB等輸入方式。該設(shè)備的識(shí)別精度可達(dá)90%以上,基本滿足了識(shí)別要求。系統(tǒng)實(shí)時(shí)性好、攜帶方便,可以通過(guò)程序的修改推廣到動(dòng)態(tài)圖像跟蹤、運(yùn)動(dòng)檢測(cè)等領(lǐng)域。
此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。