《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于TMS320C6713的人臉識別系統(tǒng)設(shè)計
基于TMS320C6713的人臉識別系統(tǒng)設(shè)計
南京航空航天大學(xué) 姜鈺 丁萬山
摘要: 為了人臉識別的相關(guān)算法能快速運行,,選擇了TI公司的DSP處理器,,另附加鍵盤模塊和PAL制式輸出模塊,可以脫離PC獨立對PAL視頻信號進(jìn)行采集和處理,并獨立運行人臉的定位,特征抽取以及人臉的識別。硬件方面,系統(tǒng)采用了存儲器切換系統(tǒng),使得圖像數(shù)據(jù)緩存和讀取分別由CPLD和DSP獨立且同時執(zhí)行,,縮短了數(shù)據(jù)的處理周期,保證了系統(tǒng)的實時運行,。軟件設(shè)計包括了:人臉定位,、人眼定位、樣本存儲以及人臉識別,。其中樣本由DSP自動選取,,根據(jù)人眼定位和人臉標(biāo)記方框的大小共同決定,選取一部分大小相等且眼距相同的圖片作為訓(xùn)練樣本以及待識別樣本,。在主分量分析過程中,,提取出主分量構(gòu)成特征臉空間,將原樣本投影到該空間內(nèi)一點,,再輸送到KNN分類器中進(jìn)行分類,。該設(shè)備攜帶方便,功耗低并可通過軟件設(shè)計將其應(yīng)用到其他領(lǐng)域,,如運動識別,、動態(tài)跟蹤等。
Abstract:
Key words :

    為了人臉識別的相關(guān)算法能快速運行,,選擇了TI公司DSP處理器,,另附加鍵盤模塊和PAL制式輸出模塊,可以脫離PC獨立對PAL視頻信號進(jìn)行采集和處理,,并獨立運行人臉的定位,,特征抽取以及人臉的識別。硬件方面,,系統(tǒng)采用了存儲器切換系統(tǒng),,使得圖像數(shù)據(jù)緩存和讀取分別由CPLD和DSP獨立且同時執(zhí)行,,縮短了數(shù)據(jù)的處理周期,保證了系統(tǒng)的實時運行,。軟件設(shè)計包括了:人臉定位,、人眼定位、樣本存儲以及人臉識別,。其中樣本由DSP自動選取,,根據(jù)人眼定位和人臉標(biāo)記方框的大小共同決定,選取一部分大小相等且眼距相同的圖片作為訓(xùn)練樣本以及待識別樣本,。在主分量分析過程中,提取出主分量構(gòu)成特征臉空間,,將原樣本投影到該空間內(nèi)一點,,再輸送到KNN分類器中進(jìn)行分類。該設(shè)備攜帶方便,,功耗低并可通過軟件設(shè)計將其應(yīng)用到其他領(lǐng)域,,如運動識別、動態(tài)跟蹤等,。

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