摘要:利用FPGA和USB控制芯片實現(xiàn)了實時視頻監(jiān)視采集系統(tǒng),根據(jù)視頻監(jiān)視和傳輸特點,將采集得到的圖像數(shù)據(jù)先做背景重建,然后利用重建得到的背景進行視頻對象分割,最后將重建的背景、視頻對象以及視頻對象在視頻圖像中的位置保存,作為后續(xù)視頻檢測分析的依據(jù)。實驗結(jié)果表明本文給出的背景重建算法能夠較好地重建背景,得到較精確的運動目標(biāo),同時能夠大幅度的提高實時視頻對象分割速率。
關(guān)鍵字:視頻監(jiān)視 背景重建 視頻對象 視頻對象分割
視頻對象運動檢測是從視頻序列中提取出有意義的運動對象,它是視頻檢索、多媒體內(nèi)容描述以及基于內(nèi)容的視頻編碼的基礎(chǔ)。連續(xù)幀間差分法 [1]、背景差分法[2]和光流法是視頻對象分割的常用方法。連續(xù)幀間差分法對于動態(tài)環(huán)境有很好的適應(yīng)性,但不能完全提取出視頻對象的所有相關(guān)點;背景差分法能夠較完整地提取對象點,卻又對光照和外部條件造成的動態(tài)場景變化過于敏感;光流法雖然能夠直接用于攝像機運動下的視頻對象檢測,但是大多數(shù)光流方法的計算復(fù)雜,不適于實時處理。將時域和空域信息進行有效的融合就能夠得到更有效的結(jié)果[3],但還存在著目標(biāo)輪廓檢測的不完整性和目標(biāo)相關(guān)點保留較少的問題。本文在應(yīng)用FPGA采樣得到視頻圖像的基礎(chǔ)上,提出了一種對Pan方法[4]改進的背景重建方法,進一步的提高了視頻對象分割的效果。
1 硬件系統(tǒng)
1.1 系統(tǒng)原理圖
圖1 視頻監(jiān)視采集系統(tǒng)原理圖
整個系統(tǒng)以FPGA和TUSB3210為核心,負責(zé)視頻數(shù)據(jù)的接收處理,啟動A/D轉(zhuǎn)換,控制FIFO的讀寫及采樣頻率的設(shè)定,與主機之間的通信及數(shù)據(jù)傳輸。
1.2 A/D、FIFO和USB控制芯片
視頻采集部分選用了Philips公司的視頻A/D轉(zhuǎn)換芯片SAA711A(EVIP),通過USB控制芯片提供的一對I2C引腳SDA和SCL進行控制;FIFO采用采用TI公司SN74V293芯片,它的容量為65536×18bit 或131072×9bit,最快讀寫周期為6ns,可以滿足100MHz采樣數(shù)據(jù)的存儲。
SN74V293有獨立的讀寫時鐘控制電路,允許讀寫操作同時進行。SN74V293內(nèi)部有滿、空、半滿輸出信號以及可編程設(shè)定的幾乎滿和幾乎空輸出信號,通過這些信號控制器可以靈活控制FIFO的讀寫操作。
USB控制芯片采用TI公司的TUSB3210,它是TI公司推出的內(nèi)嵌8052內(nèi)核并帶有USB接口的微控制器芯片。TUSB3210有256字節(jié)的內(nèi)部RAM,8K字節(jié)的程序RAM,512字節(jié)的USB數(shù)據(jù)緩沖和端點描述塊EDB(Endpoint Descriptor Blocks),4個通用的GPIO端口P0、P1、P2、P3,I2C接口電路,看門狗電路等。當(dāng)主機與芯片進行USB通信時,會產(chǎn)生外部中斷0,通過中斷矢量寄存器判斷。通過定義Setup_packed_Int、Input_endpoint0_Int、Output_endpoint0_Int這三個中斷,用于與主機建立連接、進行控制傳輸或中斷傳輸;Input_endpoint1_Int、Output_endpoint1_Int這兩個中斷主要在批量傳輸時使用。而在固件中分別執(zhí)行不同的中斷程序來實現(xiàn)USB的數(shù)據(jù)傳輸。
1.3 FPGA控制的實現(xiàn)
FPGA采用XINLINX公司的XC3142,PC終端通過USB口向視頻采集卡傳送start信號,通知視頻采集卡開始工作。視頻信號通過CCD攝像頭進入A/D轉(zhuǎn)換芯片SAA711A,SAA711A產(chǎn)生的數(shù)字視頻信號、控制信號和狀態(tài)信號送入控制處理芯片XC3142,以供XC3142獲得各種采樣信息,并對得到的數(shù)據(jù)與背景數(shù)據(jù)做差,然后將數(shù)字視頻信號寫入到FIFO里面,當(dāng)FIFO里面的數(shù)據(jù)達到半滿(此處半滿狀態(tài)對應(yīng)視頻一幀的數(shù)據(jù)),F(xiàn)IFO半滿標(biāo)志為0(低電平),XC3142檢測到FIFO半滿標(biāo)志為0時,向USB控制芯片發(fā)送中斷(Interrupt)信號,PC終端獲得中斷請求后開始從FIFO里面讀取數(shù)據(jù)。
2 USB接口的驅(qū)動程序與應(yīng)用軟件開發(fā)
USB應(yīng)用系統(tǒng)軟件開發(fā)分為兩部分:主機操作系統(tǒng)上的客戶驅(qū)動程序以及主機應(yīng)用軟件。主機應(yīng)用軟件通過客戶驅(qū)動程序與系統(tǒng)USBI(USB Device Interface)進行通信,由系統(tǒng)產(chǎn)生USB數(shù)據(jù)的傳送動作;固件則響應(yīng)各種來自系統(tǒng)的USB標(biāo)準(zhǔn)請求,完成各種數(shù)據(jù)的交換工作和事件處理。
首先開發(fā)TUSB3210在主機中的驅(qū)動程序。利用WinDDK3.0開發(fā)了Win2000下的驅(qū)動程序,實現(xiàn)了控制傳輸、中斷傳輸和批傳輸?shù)臉?biāo)準(zhǔn)接口函數(shù)。在應(yīng)用程序開發(fā)中,用VC++編制實現(xiàn)應(yīng)用程序。在編成實現(xiàn)中把USB設(shè)備當(dāng)成文件來操作,利用CreateFile得到USB句柄,用DeviceIoControl來進行控制傳輸,用ReadFile、WriteFile進行批量傳輸。
應(yīng)用軟件的結(jié)構(gòu)如圖2所示:
圖2 應(yīng)用軟件結(jié)構(gòu)圖
應(yīng)用軟件程序的基本流程如下:
1)打開通信通道,即確定一個應(yīng)用對象,并對每個應(yīng)用對象創(chuàng)建一個系統(tǒng)對象。2)初始化硬件資源,即為每個系統(tǒng)對象分配數(shù)據(jù)緩存、數(shù)據(jù)采集器和數(shù)據(jù)顯示對象。3)啟動采集過程,即將圖像讀入數(shù)據(jù)緩存,并將緩存賦值給數(shù)組,通過對數(shù)組的處理實現(xiàn)對圖像的處理,圖像數(shù)據(jù)與數(shù)據(jù)顯示相關(guān)聯(lián)后就可以通過顯示控件或窗體顯示預(yù)處理后的結(jié)果。
3 視頻對象分割算法在FPGA中的實現(xiàn)
視頻監(jiān)視系統(tǒng)的主要目的是跟蹤人們感興趣的視頻對象,一般情況下攝像機固定在室內(nèi)或者建筑物的高處,為此可認為背景在一定時間內(nèi)靜止不動。Pan 提出了一種基于背景信息的運動對象檢測方法[4],使用高階統(tǒng)計量來重建背景,該方法能夠較好的檢測到運動對象,但是背景重建速度較慢,使得難以應(yīng)用于實際視頻監(jiān)視系統(tǒng),為此本文提出了一種新的背景重建方法,并應(yīng)用VHDL語言在FPGA中實現(xiàn)了該算法,提高了背景重建速度。
3.1 背景圖像重建
在背景重建中,引入背景置信度圖像為C(x1,x2),它的掩膜圖像為MC(x1,x2),重建背景圖像為B(x1,x2),背景標(biāo)示圖像為BL(x1,x2)。如果C(x1,x2)大于預(yù)定的一個門限,則在視頻幀中像素(x1,x2)為背景的概率更大,如果小于該門限則像素(x1,x2)為運動對象的概率相對較大。BL(x1,x2)是一個二值圖像,用于標(biāo)示對應(yīng)像素的背景是否能重建,即:BL(x1,x2)=1,表示(x1,x2) 像素背景成功重建,否則失敗。
考慮連續(xù)N幀圖像s(x1,x2,k),s(x1,x2,k-1),…,s(x1,x2,k-N),對應(yīng)的N-1個相鄰幀差圖像分別為d(x1,x2,k,k-1),d(x1,x2,k-1,k-2),…,d(x1,x2,k+1-N,k-N),則C(x1,x2),MC(x1,x2),B(x1,x2)和BL(x1,x2)的生成過程如下:
1) 初始化: 對每一個(x1,x2),C(x1,x2)=0 ,MC(x1,x2)=0,B(x1,x2)=0,BL(x1,x2)=0,n=0;
2) 考慮(x1,x2),如果MC(x1,x2)=1,至2)考慮下一個像素;否則至3);
3) 對于(x1,x2),如果d(x1,x2,k-n,k-n-1)
Th1,則C(x1,x2)=0;
4) 如果C(x1,x2)>Th2,則MC(x1,x2)=1,到5);否則至6);
5) B(x1,x2)=[ s(x1,x2,k-n)+…+ s(x1,x2,k-n+Th2)]/Th2,BL(x1,x2)=1;
6) 如果n3.2 視頻對象分割
在視頻分割中本系統(tǒng)采用類間方差閾值分割[5]法,這種方法是由最小二乘法推導(dǎo)得到的,此方法具有簡單易于實現(xiàn)的優(yōu)點。
假設(shè)有兩類K1和K2,則它們的方差是

(1)
其中:f為閾值;ω1,ω2,μ1,μ2分別是K1和K2 類的出現(xiàn)概率和均值;L為灰度級。
f的等價判決準(zhǔn)為
分別為K1和K2類的類間和類內(nèi)方差,則最佳閾值

(2)
在后處理過程中,為了去除孤立點和填充空洞,在對視頻圖像幀差圖像閾值分割完成后,進行數(shù)學(xué)形態(tài)學(xué)的開、閉和區(qū)域標(biāo)示運算。視頻對象分割試驗結(jié)果如圖3所示。
圖3 視頻對象分割結(jié)果
圖3中a是一段視頻圖像列中的兩幀圖像;c是使用Pan方法的視頻對象實時分割結(jié)果;b是使用本文的方法的對象分割結(jié)果。比較圖3中 b、c可看出,本方法較Pan方法有更好的目標(biāo)輪廓完整性和目標(biāo)輪廓內(nèi)目標(biāo)相關(guān)點的連通性。本算法在普通PC機(Pentium3 800M CPU ,256M DDRAM)上運行,視頻圖像為標(biāo)準(zhǔn)的CIF(288*384),256級灰度黑白圖像,利用本文算法其采集檢測速率為24幀/s,利用Pan方法的速率為10幀/s。
4 結(jié)論
利用FPGA和USB控制芯片實現(xiàn)了實時視頻監(jiān)視采集系統(tǒng),結(jié)合背景重建的方法可以實現(xiàn)視頻圖像的實時連續(xù)采集(每秒采集24幀視頻圖像)和視頻對象分割的要求;改進后的背景重建和視頻對象分割算法,較Pan方法有更好的檢測效果和更快的分割速度。