基于Nios Ⅱ軟核的人臉檢測(cè)系統(tǒng)設(shè)計(jì)
摘要: 本文的人臉檢測(cè)跟蹤系統(tǒng)利用32 位Nios Ⅱ軟核處理器在FPGA上完成設(shè)計(jì), 減小了系統(tǒng)的體積,,而且在PC上開(kāi)發(fā)的程序可移植到Nios Ⅱ處理器上,實(shí)現(xiàn)了片上系統(tǒng),。Nios 是性?xún)r(jià)比較高的微處理器軟核,,可以方便地把用戶(hù)需要的接口和自定義的邏輯加入到系統(tǒng)中,。本文介紹的方法體現(xiàn)了SoPC 嵌入式系統(tǒng)的靈活性。因此,,這種方法能夠有效地縮短開(kāi)發(fā)周期,、 同時(shí)能夠延長(zhǎng)產(chǎn)品的生命周期、 可以不斷地在原有產(chǎn)品的基礎(chǔ)上進(jìn)行升級(jí)設(shè)計(jì),。
Abstract:
Key words :
引言
人臉檢測(cè)跟蹤是計(jì)算機(jī)視覺(jué)中十分重要的研究領(lǐng)域,,正受到越來(lái)越多的關(guān)注。傳統(tǒng)基于PC平臺(tái)的人臉檢測(cè)跟蹤系統(tǒng)體積大,,不能滿(mǎn)足便攜的要求,,更不適合露天使用;而采用通用的DSP芯片組成的系統(tǒng),,外圍電路較復(fù)雜,,設(shè)計(jì)與調(diào)試都需要較長(zhǎng)的時(shí)間,且系統(tǒng)的可擴(kuò)展性和移植性不好,。利用32位Nios Ⅱ軟核處理器在FPGA上完成設(shè)計(jì),,減小了系統(tǒng)的體積,而且在PC上開(kāi)發(fā)的程序可移植到Nios Ⅱ處理器上,,實(shí)現(xiàn)了片上系統(tǒng),。采用Nios Ⅱ處理器的自定義指令,用硬件實(shí)現(xiàn)部分算法,,大大提高了數(shù)據(jù)的處理速度,,保證了較好的實(shí)時(shí)性,。在外圍電路不變的情況下,通過(guò)更新FPGA內(nèi)部的電路設(shè)計(jì),,能使系統(tǒng)功能升級(jí)和增強(qiáng),。
系統(tǒng)組成及工作原理
人臉檢測(cè)跟蹤系統(tǒng)根據(jù)具體應(yīng)用場(chǎng)合可以定制為不同的功能,而且不同的功能只需要在Nios中寫(xiě)入相應(yīng)的C語(yǔ)言程序即可,,不需要再做硬件板,,非常方便。下面介紹一種比較通用的人臉檢測(cè)跟蹤系統(tǒng),。系統(tǒng)的結(jié)構(gòu)如圖1所示,。
圖1 基于Nios Ⅱ軟核的人臉檢測(cè)系統(tǒng)設(shè)計(jì)
本文設(shè)計(jì)的人臉檢測(cè)跟蹤系統(tǒng)主要包括三個(gè)模塊:圖像采集模塊,人臉檢測(cè)跟蹤模塊以及數(shù)據(jù)通信模塊,。
圖像采集模塊
該模塊主要包括攝像頭和外擴(kuò)SRAM,。本系統(tǒng)采用的圖像傳感器是OV7620,OV7620是美國(guó)OmniVision 公司開(kāi)發(fā)的1/ 3英寸,30 萬(wàn)像素CMOS 彩色圖像傳感器,該芯片將CMOS 光感應(yīng)核與外圍輔助電路集成在一起,具有可編程控制與視頻模/ 數(shù)混合輸出等功能,。該芯片的主要特性有:最大分辨率為664 ×492 ,,同時(shí)支持VGA (640 ×480 分辨率) 和QVGA(320 ×240 分辨率) 兩種模式。輸出幀頻在0.5fps~30fps 之間可調(diào),。輸出窗口尺寸在4 ×2~ 664 ×492 之間可調(diào),。圖像數(shù)據(jù)輸出格式可以為8 位/ 16 位的YCrCb 4 : 2 :2 ITU2656 、IR2601GRB 4 :2 :2或RGB Raw Data,。能工作在逐行/隔行掃描方式下,也能工作在彩色/ 黑白模式下,。上述的所有性能,用戶(hù)可以根據(jù)自己的需要,通過(guò)SC2CB 接口設(shè)置芯片內(nèi)相應(yīng)的寄存器進(jìn)行選擇。
人臉檢測(cè)跟蹤模塊
該模塊采用的FPGA選擇Altera公司Stratix系列的EP1S25,。該芯片的片上資源比較豐富,,有25660個(gè)邏輯單元(LE),1944576 bit的RAM,,10個(gè)DSP模塊,,6個(gè)數(shù)字鎖相環(huán)(DPLL),用戶(hù)可用的I/O最多達(dá)到702個(gè),。在EP1S25中嵌入Nios軟核,,控制連接在外部總線(xiàn)上的SRAM和Flash,用它的以太網(wǎng)模塊單元控制以太網(wǎng)接口芯片LAN91C11,。
其中FPGA 是主芯片,在1 片F(xiàn)PGA 中包含了Nios 處理器,、SRAM 控制器、SDRAM 控制器,、Flash控制器,、UART 以及攝像頭和外擴(kuò)SRAM 控制器的用戶(hù)邏輯模塊。這正體現(xiàn)了Nios 的優(yōu)勢(shì),,將很多資源集中在FPGA中為設(shè)計(jì)PCB 帶來(lái)了便利,, 而且對(duì)系統(tǒng)的更改也變得非常容易,只要重新在FPGA 中添加不同的模塊就可以了,。SRAM 中存儲(chǔ)嵌入式系統(tǒng)所用的向量表,、數(shù)據(jù)和程序。Flash 用于在系統(tǒng)掉電的情況下存儲(chǔ)程序和數(shù)據(jù),。
數(shù)據(jù)通信模塊
根據(jù)實(shí)際情況選擇用以太網(wǎng)或GPRS把人臉檢測(cè)跟蹤后的結(jié)果發(fā)送到主控制站,。在有以太網(wǎng)連接的條件下優(yōu)先選用以太網(wǎng)連接,可以提供較高的傳輸速率和可靠性,,在沒(méi)有以太網(wǎng)的條件下選用GPRS進(jìn)行通信,。同時(shí),如果用戶(hù)需要,,也可以直接在LCD上顯示,。
人臉檢測(cè)跟蹤算法的實(shí)現(xiàn)
在實(shí)現(xiàn)人臉檢測(cè)跟蹤算法之前,圖像的預(yù)處理很重要,。圖像預(yù)處理主要有噪聲濾除和圖像增強(qiáng),,提高圖像的質(zhì)量。本系統(tǒng)采用中值濾波進(jìn)行噪聲濾除,。與其它濾波方法相比,,中值濾波不僅能有效濾除圖像中的孤立噪聲點(diǎn),還能保護(hù)邊界信息,。圖像增強(qiáng)技術(shù)主要包括直方圖修改處理,、圖像平滑處理和圖像銳化處理等。所以,,實(shí)際的人臉檢測(cè)系統(tǒng)采用圖像增強(qiáng)來(lái)消除光照影響,。
本系統(tǒng)采用基于膚色和差分幀相結(jié)合的方法來(lái)確定視頻序列中的人臉。這樣不但可以排除類(lèi)似膚色背景的干擾,,提高人臉檢測(cè)的準(zhǔn)確性,,還可以保證檢測(cè)與跟蹤的實(shí)時(shí)性。大量實(shí)驗(yàn)表明,,人臉膚色在YCrCb 空間內(nèi)的Cr和Cb 值分布在特定的范圍之內(nèi),,Cr 范圍為135~156,Cb 的范圍為108~123,。由此建立人臉膚色聚類(lèi)模型,,即彩色圖像的像素B 滿(mǎn)足條件:108 ≤Cb ≤123 和135≤Cr≤156,則B 是膚色點(diǎn),。
(1)根據(jù)公式
可將圖像轉(zhuǎn)化為一個(gè)二值圖像,,其中白色像素點(diǎn)為膚色點(diǎn),黑色像素點(diǎn)為非膚色點(diǎn),。由于頭部與背景的相對(duì)運(yùn)動(dòng),,差分幀法是運(yùn)動(dòng)圖像分析的有效方法,。它檢測(cè)圖像序列相鄰兩幀之間的變化,即直接比較兩幀圖像對(duì)應(yīng)像素點(diǎn)的灰度值,。幀與幀之間的變化可用一個(gè)二值差分圖像表示:
(2)式中的T是閾值
使用Nios II 的定制指令,,可以將一個(gè)復(fù)雜的標(biāo)準(zhǔn)指令序列簡(jiǎn)化為一個(gè)用硬件實(shí)現(xiàn)的單一指令,從而簡(jiǎn)化系統(tǒng)軟件設(shè)計(jì)并加快系統(tǒng)運(yùn)行速度,。在人臉檢測(cè)跟蹤算法中,,對(duì)圖像的處理數(shù)據(jù)運(yùn)算量大,循環(huán)數(shù)目多,,而Nios II 的定制指令個(gè)數(shù)已增加到256個(gè),,可以使用定制指令完成許多循環(huán)內(nèi)的數(shù)據(jù)處理,從而加速數(shù)據(jù)處理的速度,。定制指令邏輯和Nios II 的連接在SoPC Builder 中完成,。Nios II CPU 配置向?qū)峁┝艘粋€(gè)可添加256 條定制指令的圖形用戶(hù)界面,在該界面中導(dǎo)入設(shè)計(jì)文件,,設(shè)置定制指令名,,并分配定制指令所需的CPU 時(shí)鐘周期數(shù)目。系統(tǒng)生成時(shí),,Nios II IDE 為每條用戶(hù)指令產(chǎn)生一個(gè)在系統(tǒng)頭文件中定義的宏,,可以在C 或C + + 應(yīng)用程序代碼中直接調(diào)用這個(gè)宏。
結(jié)語(yǔ)
本文的人臉檢測(cè)跟蹤系統(tǒng)利用32 位Nios Ⅱ軟核處理器在FPGA上完成設(shè)計(jì), 減小了系統(tǒng)的體積,,而且在PC上開(kāi)發(fā)的程序可移植到Nios Ⅱ處理器上,,實(shí)現(xiàn)了片上系統(tǒng)。Nios 是性?xún)r(jià)比較高的微處理器軟核,,可以方便地把用戶(hù)需要的接口和自定義的邏輯加入到系統(tǒng)中,。本文介紹的方法體現(xiàn)了SoPC 嵌入式系統(tǒng)的靈活性。因此,,這種方法能夠有效地縮短開(kāi)發(fā)周期,、 同時(shí)能夠延長(zhǎng)產(chǎn)品的生命周期、 可以不斷地在原有產(chǎn)品的基礎(chǔ)上進(jìn)行升級(jí)設(shè)計(jì),。
此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。