文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2010)07-0131-03
傳統(tǒng)的監(jiān)控系統(tǒng)需要安保人員實(shí)時(shí)監(jiān)控畫面或事后回放視頻記錄進(jìn)行人工分析,不但成本高,而且效率低。目前很多視頻監(jiān)控系統(tǒng)也只是做到了網(wǎng)絡(luò)化,而且由于受網(wǎng)絡(luò)帶寬的限制,造成數(shù)據(jù)的延遲或丟失,也給監(jiān)控系統(tǒng)帶來(lái)很大的風(fēng)險(xiǎn)。針對(duì)以上問(wèn)題,本文設(shè)計(jì)并實(shí)現(xiàn)了一種基于BF561的智能視頻監(jiān)控儀,可以與現(xiàn)有的監(jiān)控系統(tǒng)實(shí)現(xiàn)無(wú)縫連接,實(shí)現(xiàn)目標(biāo)的自動(dòng)監(jiān)控與跟蹤,有效地提高了監(jiān)控效率。
1系統(tǒng)硬件框架結(jié)構(gòu)
由于在實(shí)時(shí)視頻處理系統(tǒng)中,底層算法的數(shù)據(jù)量大,運(yùn)算結(jié)構(gòu)相對(duì)比較簡(jiǎn)單,對(duì)速度有很高的要求。而高層處理算法控制結(jié)構(gòu)復(fù)雜,數(shù)據(jù)量較底層算法少,故本文采用FPGA+DSP的結(jié)構(gòu), 其系統(tǒng)的硬件框架如圖1所示。本設(shè)計(jì)采用ADI公司的嵌入式多媒體處理器BF561(BlackFin561)作為算法處理和控制核心,采用EP3C25F324C8對(duì)圖像進(jìn)行預(yù)處理和圖像的背景提取等算法。BF561擁有2個(gè)600 MHz的DSP內(nèi)核,每個(gè)內(nèi)核提供兩套乘法器和ALU,有專門的視頻處理硬件單元和視頻處理指令,具有豐富的DMA通道和大容量高速的SRAM。BF561采用MSA結(jié)構(gòu),可作為RISC處理器使用,也可以作為DSP使用[1]。
1.1視頻采集和輸出模塊
本文采用解碼芯片SAA7111將攝像頭輸出的PAL制信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)。SAA7111是飛利浦公司推出的9位視頻解碼器,提供6路模擬輸入和2個(gè)增強(qiáng)型的模數(shù)轉(zhuǎn)換器。通過(guò)配置SAA7111將PAL制式的模擬基帶信號(hào)轉(zhuǎn)化為ITU-R BT656的4:2:2格式的YUV信號(hào),并將其送入FPGA中進(jìn)行預(yù)處理。經(jīng)過(guò)預(yù)處理后的圖像數(shù)據(jù)再由FPGA重新打包成BT656格式的數(shù)據(jù)送入到BF561的PPI口。具體連接圖如圖2所示。圖中,VPD[0..7]是數(shù)據(jù)輸出管腳與FPGA相連,時(shí)鐘同步信號(hào)BF561采用MDMA的方式將原始圖像信號(hào)存入SDRAM中,供視頻跟蹤算法使用。視頻輸出模塊采用飛利浦公司視頻編碼芯片SAA7105將輸出信號(hào)轉(zhuǎn)化為PAL制式的CVBS信號(hào)。標(biāo)準(zhǔn)的YUV數(shù)據(jù)從FPGA的引腳輸出,送到SAA7105的數(shù)據(jù)管腳上,場(chǎng)、水平和垂直同步信號(hào)分別接到FPGA的控制引腳上。SAA7105的參數(shù)配置都是通過(guò)FPGA產(chǎn)生I2C總線來(lái)實(shí)現(xiàn)的。
1.2 存儲(chǔ)模塊
BF561的片上存儲(chǔ)器分為兩個(gè)部分:每個(gè)內(nèi)核各使用100 KB的專用、高速L1存儲(chǔ)器和128 KB的大容量共享L2存儲(chǔ)器。本系統(tǒng)通過(guò)EBIU接口外擴(kuò)了SDRAM和Flash兩種存儲(chǔ)器。選取2片MT48L32M16A2來(lái)構(gòu)成SDRAM存儲(chǔ)器,μClinux操作系統(tǒng)的映像、圖像處理數(shù)據(jù)和圖像處理中間結(jié)果可存儲(chǔ)在SDRAM中。系統(tǒng)擴(kuò)展了64 MB的Flash,選用S29GL064M90T芯片存放操作系統(tǒng)的Bootloader和內(nèi)核程序。
1.3 外圍接口模塊
外圍接口模塊包括串口接口、以太網(wǎng)接口和部分通用接口等。本文主要用到串口接口和以太網(wǎng)接口。串口接口的功能是控制云臺(tái)運(yùn)動(dòng),使運(yùn)動(dòng)目標(biāo)隨時(shí)在視場(chǎng)范圍內(nèi),本文選用MAX488芯片實(shí)現(xiàn)BF561內(nèi)的UART接口的電平轉(zhuǎn)換;網(wǎng)絡(luò)接口的功能是通過(guò)系統(tǒng)的嵌入式Web服務(wù)器,實(shí)現(xiàn)智能監(jiān)控儀的遠(yuǎn)程配置、傳遞監(jiān)控參數(shù)等,采用DM9000即可滿足系統(tǒng)需要。
1.4 DSP雙核以及FPGA之間的通信
在本系統(tǒng)中,涉及到BF561兩個(gè)核之間的通信以及BF561與FPGA之間的通信。FPGA給DSP提供圖像數(shù)據(jù)和經(jīng)過(guò)背景提取之后的二值化圖像數(shù)據(jù),DSP將繪制的波門數(shù)據(jù)傳輸?shù)紽PGA,F(xiàn)PGA將波門疊加到原始圖像后送給SAA7105H顯示。常見(jiàn)的雙核通信主要采用中斷、輪詢兩種通信方式[2]。中斷是利用2個(gè)核的中斷機(jī)制來(lái)實(shí)現(xiàn)FPGA與DSP之間的通信;輪詢是通過(guò)在雙核的共享寄存器里設(shè)置一些信號(hào)量,供雙核通信與訪問(wèn)??紤]到本系統(tǒng)的應(yīng)用條件,本文采用輪詢的通信方式,將信號(hào)量定義存放在L2空間。DSP的異步存儲(chǔ)器的地址空間映射到FPGA,通過(guò)FPGA操作數(shù)據(jù)線和地址線,即可完成FPGA與DSP之間的數(shù)據(jù)交互。
2 軟件算法實(shí)現(xiàn)
在本設(shè)計(jì)中,A核運(yùn)行μClinux操作系統(tǒng),B核運(yùn)行視頻監(jiān)控算法。μClinux操作系統(tǒng)主要實(shí)現(xiàn)以太網(wǎng)芯片DM9000的驅(qū)動(dòng)、Flash的驅(qū)動(dòng)、嵌入式Web服務(wù)器BOA的實(shí)現(xiàn)和B核的驅(qū)動(dòng)程序。
2.1 算法
本文實(shí)現(xiàn)的智能視頻分析儀主要用在視頻監(jiān)控中,智能視頻監(jiān)控的核心內(nèi)容之一是對(duì)特定目標(biāo)進(jìn)行自動(dòng)跟蹤。目標(biāo)跟蹤分為運(yùn)動(dòng)目標(biāo)檢測(cè)、行為識(shí)別和目標(biāo)跟蹤3個(gè)主要步驟。
運(yùn)動(dòng)目標(biāo)檢測(cè)是從圖像序列中將變化區(qū)域從背景圖像中提取出來(lái),本文采用目前最常用的運(yùn)動(dòng)檢測(cè)算法即背景消除法。此部分算法主要在FPGA中實(shí)現(xiàn),采用基于改進(jìn)的自適應(yīng)混合高斯模型的背景建模方法[3]來(lái)得到背景圖像。為了節(jié)省存儲(chǔ)空間和提高運(yùn)算速度,在背景建模時(shí),將YUV信號(hào)轉(zhuǎn)化為圖像的灰度值。通過(guò)高斯建模得到背景圖像B及原始圖像A后,為了克服樹枝擾動(dòng)、陽(yáng)光反射等干擾,采用如下策略進(jìn)行處理:
然后采用數(shù)學(xué)形態(tài)學(xué)的方法對(duì)二值化圖像C進(jìn)行處理,得到運(yùn)動(dòng)目標(biāo)的連通域,從而進(jìn)一步得出運(yùn)動(dòng)目標(biāo)的質(zhì)心、大小、位置等信息,建立目標(biāo)鏈。
行為識(shí)別:遍歷目標(biāo)鏈的每個(gè)目標(biāo),判斷連續(xù)各幀之間運(yùn)動(dòng)目標(biāo)的質(zhì)心位移方向和距離,得出目標(biāo)的運(yùn)動(dòng)軌跡。根據(jù)設(shè)置好的規(guī)則和運(yùn)動(dòng)軌跡,判斷目標(biāo)是否滿足觸發(fā)報(bào)警的條件。
目標(biāo)跟蹤:在許多監(jiān)控場(chǎng)景,要求攝像頭隨著運(yùn)動(dòng)目標(biāo)移動(dòng),防止目標(biāo)運(yùn)動(dòng)超出攝像頭的視場(chǎng)范圍內(nèi),從而要求云臺(tái)隨著目標(biāo)的運(yùn)動(dòng)而運(yùn)動(dòng)。在本設(shè)計(jì)中,這種情況下只能由多目標(biāo)跟蹤轉(zhuǎn)為單目標(biāo)跟蹤。目前用于圖像跟蹤的方法比較多,相關(guān)跟蹤是一種常用的、有效的和快速的目標(biāo)跟蹤方法。本文采用改進(jìn)的多模板匹配法對(duì)目標(biāo)進(jìn)行跟蹤,使用多子模板匹配[4]和二值化信息不斷修正模板的方法有效地解決了由于模板滑動(dòng)帶來(lái)的模板更新問(wèn)題;采用歸一化互相關(guān)系數(shù)度量模板的相似度;為了克服遮擋問(wèn)題和提高跟蹤的準(zhǔn)確性和實(shí)時(shí)性,采用Kalman濾波器估計(jì)目標(biāo)的運(yùn)動(dòng)狀態(tài)[5],有效地縮小了目標(biāo)的搜索范圍。目標(biāo)在單位時(shí)間內(nèi)(本文的間隔時(shí)間是3幀)其運(yùn)動(dòng)狀態(tài)變化較小,可以認(rèn)為在單位時(shí)間間隔內(nèi)目標(biāo)是做勻速運(yùn)動(dòng)的,可以建立卡爾曼濾波器模型。觀測(cè)向量為模板匹配運(yùn)算后目標(biāo)的位置,狀態(tài)向量為目標(biāo)實(shí)際位置和當(dāng)前的水平垂直速度,為了提高運(yùn)算速度,分別對(duì)水平方向位置和垂直方向位置進(jìn)行卡爾曼預(yù)測(cè)。
2.2 軟件流程
BF561的視頻監(jiān)控處理流程如圖3所示。首先BF561收到FPGA傳來(lái)的1幀圖像,接著BF561讀取本幀圖像的二值化信息,通過(guò)腐蝕膨脹函數(shù)和取連通域函數(shù)target_mark(),得到當(dāng)前幀運(yùn)動(dòng)目標(biāo)的大小、重心和位置等信息,然后通過(guò)target_update()函數(shù)更新目標(biāo)鏈,采用基于區(qū)域的算法,判斷連續(xù)的各幀之間運(yùn)動(dòng)物體的質(zhì)心位移方向和距離,判斷目標(biāo)的狀態(tài),判斷是新目標(biāo)、原有目標(biāo)、目標(biāo)發(fā)生合并、目標(biāo)發(fā)生遮擋和目標(biāo)丟失等。完成目標(biāo)鏈的更新后,進(jìn)入規(guī)則檢測(cè)函數(shù)rule_check(),根據(jù)目標(biāo)的軌跡信息判斷目標(biāo)鏈中的目標(biāo)是否滿足報(bào)警條件,若滿足報(bào)警條件,給出各種報(bào)警信號(hào),若不滿足,則返回,等待下一次循環(huán)。通過(guò)對(duì)物體運(yùn)動(dòng)軌跡的記錄,可以實(shí)現(xiàn)入侵檢測(cè),人、車數(shù)量統(tǒng)計(jì),遺留物體檢測(cè),攝像頭非法遮擋和移位報(bào)警等功能。若要實(shí)時(shí)跟蹤目標(biāo),則進(jìn)入target_track()函數(shù),采用卡爾曼濾波器對(duì)目標(biāo)位置進(jìn)行預(yù)測(cè)和改進(jìn)的多子模板匹配算法得到目標(biāo)的實(shí)際位置,控制云臺(tái)運(yùn)動(dòng)保證目標(biāo)的連續(xù)跟蹤。實(shí)驗(yàn)結(jié)果如圖4所示,表明本設(shè)計(jì)能準(zhǔn)確、實(shí)時(shí)地跟蹤目標(biāo)。
本設(shè)計(jì)實(shí)現(xiàn)了智能視頻監(jiān)控儀。其獨(dú)立的硬件設(shè)計(jì)結(jié)構(gòu)和豐富的接口,使本平臺(tái)不僅可用于智能化當(dāng)前監(jiān)控系統(tǒng),也可獨(dú)立構(gòu)建新的網(wǎng)絡(luò)化、智能化的監(jiān)控系統(tǒng)。
參考文獻(xiàn)
[1] Analog Device. ADSP-BF561 processor hardware refefence [EB/OL].[2008-02-05] http://www.analog.com
[2] 彭征,朱秀昌.雙核DSP BF-561上XGA視頻編碼的實(shí)現(xiàn)[J].電視技術(shù),2009,33(1):32-34.
[3] STAUFFER C, GRIMSON W. Adaptive background mixture models for real-time tracking.In:Proc[C]. IEEE Conference on Computer Vision and Pattern Recognition, Fort Collins, Colrado,1999:246-252.
[4] 熊旭杰.圖像相關(guān)跟蹤算法的改進(jìn)研究[D].武漢:華中科技大學(xué),2007:21-32.
[5] 孫海燕,傅得勝.視頻監(jiān)控系統(tǒng)中的多目標(biāo)跟蹤技術(shù)[J].計(jì)算機(jī)應(yīng)用與軟件,2005(11):22-23.