基于D S P/B I O S的門禁系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
引言
在數(shù)字化網(wǎng)絡(luò)化飛速發(fā)展的今天,門禁技術(shù)也得到了迅猛的發(fā)展。生物認(rèn)證技術(shù)由于其具有高可靠性、安全性、方便性等特點(diǎn),逐漸受到社會的矚目。傳統(tǒng)的人臉圖像識別系統(tǒng)依賴于較大型設(shè)備,速度較慢、實(shí)時性較差、價格昂貴。隨著數(shù)字信號處理器DSP的飛速發(fā)展,以DSP為核心的硬件系統(tǒng)同樣可以用來進(jìn)行圖像處理。隨著DSP的運(yùn)算速度和運(yùn)算精度不斷提高,片內(nèi)的存儲容量不斷加大,系統(tǒng)功能、數(shù)據(jù)處理能力以及與外部設(shè)備的通信功能不斷增強(qiáng),人們完全可以脫離PC機(jī)開發(fā)出基于DSP的圖像處理系統(tǒng)。
本文利用DSP和實(shí)時嵌入式操作系統(tǒng)DSP/BIOS開發(fā)了基于人臉識別技術(shù)的門禁系統(tǒng)。系統(tǒng)利用攝像頭獲取人臉圖像,利用DSP完成人臉圖像的處理和特征提取以及識別,利用液晶顯示器完成識別信息的顯示,并通過串口與外部通信。
1 DSP/BIOS簡介
DSP/BIOS是一種簡易的實(shí)時嵌入式操作系統(tǒng),主要面向?qū)崟r調(diào)度與同步、主機(jī)與目標(biāo)系統(tǒng)通訊以及實(shí)時監(jiān)測等應(yīng)用,具有實(shí)時操作系統(tǒng)的諸多功能,如任務(wù)的調(diào)度管理、任務(wù)問的同步和通訊、內(nèi)存管理、實(shí)時時鐘管理、中斷服務(wù)管理、外設(shè)驅(qū)動程序管理等。DSP/BIOS由三個部分組成:DSP/BIOS實(shí)時內(nèi)核與API、DSP/BIOS分析工具以及DSP~IOS配置工具” 。
1.1 DSP/BIOS中的線程
DSP~IOS內(nèi)核通過在單一處理器上允許高優(yōu)先級線程搶先低優(yōu)先級線程的方式支持不同優(yōu)先級的多種線程,并負(fù)責(zé)處理各線程之間的各種相互作用,包括通訊、同步等。DSP/BIOS支持四種線程:硬件中斷(HWI)、軟件中斷(SWI)、任務(wù)(TSK)、后臺線程(IDL)。它們的優(yōu)先級依次從高到低。DSP~IOS用HWI模塊來管理硬件中斷,為DSP中的每個硬件中斷配置了中斷服務(wù)程序(ISR)。硬件中斷用來處理時間要求苛刻的關(guān)鍵任務(wù),如系統(tǒng)時鐘等。軟件中斷通過SWI模塊管理,用于處理一些對實(shí)時性要求較低的任務(wù)。任務(wù)通過TSK模塊管理,后臺線程的優(yōu)先級最低,用于沒有時間限制的處理,只有在其它線程不運(yùn)行時,它才運(yùn)行。
任務(wù)管理與軟件中斷的區(qū)別是,每個任務(wù)都有自己的堆棧,任務(wù)問支持同步和通訊,一個任務(wù)可以掛起以等待某一資源的釋放,因此,特別適用于門禁系統(tǒng)的應(yīng)用。本文中用到了兩個任務(wù):tskvideocapture與tskloopback,其中tskvideocapture是視頻獲取任務(wù),tskloopback是視頻處理和顯示任務(wù)。TASK任務(wù)級的通訊主要使用SCOM(Synchronized COMmunication module)消息隊(duì)列。SCOM消息是用戶定義的一個數(shù)據(jù)結(jié)構(gòu),用于task之間交換信息。
1.2 DSP/BIOS程序開發(fā)
DSP/BIOS支持交互式的應(yīng)用程序開發(fā)模式,開發(fā)人員可以用DSP/BIOS先為應(yīng)用程序生成一個框架,在使用實(shí)際的算法之前給程序加上一個仿真的運(yùn)算負(fù)荷來測試程序,看是否滿足時序要求。開發(fā)步驟如下:① 用配置工具建立應(yīng)用程序要用到的對象;②保存配置文件,系統(tǒng)會生成編澤和鏈接應(yīng)用程序時需的庫文件;③為應(yīng)用程序編寫一個框架,可以使用C、c++、匯編語言;④在CCS環(huán)境下編譯并鏈接程序;⑤使用仿真器和DSP/BIOS分析工具來測試應(yīng)用程序;⑥ 重復(fù)步驟① 到⑤ 直到程序運(yùn)行正確;⑦硬件開發(fā)好后,修改配置文件以支持硬件,并進(jìn)行測試。
1.3 CDB配置文件
CDB文件包含了以下幾個部分內(nèi)容:系統(tǒng)部分(System)、實(shí)時分析部分(Instrumentation)、調(diào)度部分(Scheduling)、同步部分(Synchronization)、輸入輸出部分(Input/Output)、芯片支持庫部分(CSL)。DSP/BIOS配置工具采用可視化界面,如圖l所示。
圖l DSP~IOS配置界面
具體地說,CDB文件的主要配置內(nèi)容有以下幾部分。系統(tǒng)部分:Global Settings體現(xiàn)系統(tǒng)所用處理器型號及其各種參數(shù)特性;MEM體現(xiàn)系統(tǒng)的程序和代碼的放置位置以及占用空間的大小。調(diào)度部分:TSK—Task Manager主要定義用戶定義任務(wù)及系統(tǒng)后臺線程所調(diào)用的子函數(shù),任務(wù)的優(yōu)先級以及其存放位置和堆棧大小的設(shè)置情況。輸入輸出部分:定義視頻各個輸入輸出端口如何實(shí)現(xiàn)與片級支持庫CSL的鏈接,從而實(shí)現(xiàn)微驅(qū)動和參數(shù)傳遞。
2 門禁系統(tǒng)的硬件結(jié)構(gòu)
本系統(tǒng)基于TI公司的TMS320DM642設(shè)計(jì)硬件平臺,因?yàn)镈M642有豐富的外部設(shè)備接口,完全能夠滿足門禁系統(tǒng)的需要。DM642通過外部存儲器接口(EMIF)訪問片外存儲器SDRAM和FLASH。SDRAM為4M x 64位的同步動態(tài)存儲器接口,用于存儲程序、數(shù)據(jù)和圖像處理中間結(jié)果,配置在EMIF接口的CE0空間;FL ASH為4M x8位的異步靜態(tài)存儲器接口,用來存儲人臉的模板特征、固化程序、導(dǎo)入裝載和配置信息,配置在DM642的EMIF的CE1子空間。此外,CE1子空問還分配給狀態(tài)/控制寄存器、UART等資源使用。因此,F(xiàn)lash的最大的可尋址范圍為512K x 8位。為了訪問到Flash的所有地址空間,本系統(tǒng)采用分頁技術(shù)來實(shí)現(xiàn)對Flash的訪問,即將整個4M x 8位的Flash分成8個512×8位的頁,而頁地址則由位于CPLD中的頁地址寄存器提供。選用TVP5150視頻解碼芯片,通過I2C可編程總線進(jìn)行控制,采用8位并行總線實(shí)現(xiàn)數(shù)據(jù)的傳輸。
系統(tǒng)將模擬PAL視頻信號轉(zhuǎn)換為BT.656格式的YCbCr(4:2:2)模式的數(shù)字視頻信號,選用SAA7121視頻編碼芯片,將BT.656格式的數(shù)字視頻信號轉(zhuǎn)換為PAL格式的視頻輸出。選用TL16C752B實(shí)現(xiàn)二路異步串口,每路異步串口占用8個8位存儲單元。本系統(tǒng)可通過網(wǎng)絡(luò)接口實(shí)現(xiàn)功能擴(kuò)展。門禁系統(tǒng)的硬件結(jié)構(gòu)如圖2所示。
圖2 門禁系統(tǒng)的硬件結(jié)構(gòu)
加電后,系統(tǒng)完成初始化,存儲在FLASH中的程序和數(shù)據(jù)被加載到SDRAM中。在無人進(jìn)門時,系統(tǒng)進(jìn)行視頻的采集和回放。當(dāng)有人要進(jìn)門時,系統(tǒng)通過串口給DSP一個中斷信號,TVP5150視頻解碼芯片將對攝像頭采集的視頻數(shù)據(jù)進(jìn)行解碼,實(shí)現(xiàn)A/D轉(zhuǎn)換,并給出LLC2(采集時鐘)、VREF(場同步參考信號)、HREF(行同步參考信號)等采集參考控制信號,并將解碼得到的YCbCr(4:2:2)模式的人臉圖像存儲在SDRAM中。之后,DSP對存儲在SDRAM中的圖像進(jìn)行人臉檢測和特征提取,將提取的特征與存儲在FLASH中的模板數(shù)據(jù)作對比,最后將識別結(jié)果顯示在液晶屏上,并通過多通道緩沖串口給門鎖控制器發(fā)送開門信號或報警信號。
3 基于DSP/B10S的軟件程序設(shè)計(jì)實(shí)現(xiàn)
本系統(tǒng)基于DSP/BIOS架構(gòu)開發(fā)實(shí)現(xiàn),系統(tǒng)結(jié)構(gòu)分為三部分:輸入控制部分、視頻處理部分和輸出部分。輸入控制部分通過串口中斷來響應(yīng)外部的輸入;視頻處理部分主要完成視頻流中圖像的人臉檢測、特征提取和人臉識別并將結(jié)果輸出;輸出部分主要是完成識別結(jié)果的顯示并通過串口向門鎖控制器發(fā)送信號。整個DSP上的軟件由二個任務(wù)線程組成:tskvideo—capture線程從視頻輸入端口讀取數(shù)據(jù);tskloopback線程完成視頻流中圖像的處理并將結(jié)果輸出。二者之間靠SCOM消息隊(duì)列進(jìn)行同步和消息傳遞 。系統(tǒng)流程如圖3所示。
當(dāng)系統(tǒng)上電啟動后,首先對系統(tǒng)進(jìn)行初始化。初始化完成后,系統(tǒng)進(jìn)行視頻圖像的采集和回放,GIO/FVID(項(xiàng)層類驅(qū)動)控制TVP5150通過EDMA將視頻數(shù)據(jù)YCbCr(4:2:2)傳遞到視頻輸入任務(wù)請求的緩沖I~capFrameBuf中。當(dāng)系統(tǒng)接收到串El中斷信號后,視頻處理任務(wù)通過SCOM通訊從capFrameBuf中將數(shù)據(jù)取走,進(jìn)行人臉檢測、特征提取和人臉識別等一系列操作,并將結(jié)果輸出。
本系統(tǒng)軟件通過在YCbCr色彩空間中建立人臉膚色模型對人臉進(jìn)行粗檢測。實(shí)驗(yàn)發(fā)現(xiàn)當(dāng)Cb取值范圍為[90,135】,Cr取值范圍為[120,168]時,系統(tǒng)對膚色檢測效果最好。人臉粗檢測后再通過數(shù)學(xué)形態(tài)學(xué)中的開運(yùn)算去除孤立的小點(diǎn)、毛刺和小橋(即連通兩塊區(qū)域的小點(diǎn)),最后通過對膚色中連通域的標(biāo)記和統(tǒng)計(jì)去除非人臉區(qū)域,得到人臉圖像 。在提取人臉特征之前對人臉圖像進(jìn)行灰度拉伸和歸一化,使用離散余弦變換提取人臉特征,提取的人臉特征可以進(jìn)行兩種操作:作為模板存入人臉特征庫或進(jìn)行人臉識別。系統(tǒng)通過計(jì)算人臉特征,再與模板庫中的人臉特征進(jìn)行相似度比對和識別。
4 結(jié)束語
本文將DM642芯片結(jié)合視頻編解碼芯片和實(shí)時嵌入式操作系統(tǒng)DSP/BIOS應(yīng)用于門禁系統(tǒng),實(shí)現(xiàn)了完全脫離PC機(jī)的圖像采集、處理和結(jié)果顯示系統(tǒng)。算法運(yùn)算速度快,實(shí)時性高。系統(tǒng)可以通過串口或網(wǎng)絡(luò)接口實(shí)現(xiàn)人機(jī)交互,并具有良好的可擴(kuò)展性和獨(dú)立性。