一種基于BF561的智能視頻監控儀設計
傳統的監控系統需要安保人員實(shí)時(shí)監控畫(huà)面或事后回放視頻記錄進(jìn)行人工分析,不但成本高,而且效率低。目前很多視頻監控系統也只是做到了網(wǎng)絡(luò )化,而且由于受網(wǎng)絡(luò )帶寬的限制,造成數據的延遲或丟失,也給監控系統帶來(lái)很大的風(fēng)險。針對以上問(wèn)題,本文設計并實(shí)現了一種基于BF561的智能視頻監控儀,可以與現有的監控系統實(shí)現無(wú)縫連接,實(shí)現目標的自動(dòng)監控與跟蹤,有效地提高了監控效率。
本文引用地址:http://dyxdggzs.com/article/256885.htm1系統硬件框架結構
由于在實(shí)時(shí)視頻處理系統中,底層算法的數據量大,運算結構相對比較簡(jiǎn)單,對速度有很高的要求。而高層處理算法控制結構復雜,數據量較底層算法少,故本文采用FPGA+DSP的結構, 其系統的硬件框架如圖1所示。本設計采用ADI公司的嵌入式多媒體處理器BF561(BlackFin561)作為算法處理和控制核心,采用 EP3C25F324C8對圖像進(jìn)行預處理和圖像的背景提取等算法。BF561擁有2個(gè)600 MHz的DSP內核,每個(gè)內核提供兩套乘法器和ALU,有專(zhuān)門(mén)的視頻處理硬件單元和視頻處理指令,具有豐富的DMA通道和大容量高速的SRAM。 BF561采用MSA結構,可作為RISC處理器使用,也可以作為DSP使用[1]。

1.1視頻采集和輸出模塊
本文采用解碼芯片SAA7111將攝像頭輸出的PAL制信號轉換為數字信號。SAA7111是飛利浦公司推出的9位視頻解碼器,提供6路模擬輸入和2個(gè)增強型的模數轉換器。通過(guò)配置SAA7111將PAL制式的模擬基帶信號轉化為ITU-R BT656的4:2:2格式的YUV信號,并將其送入FPGA中進(jìn)行預處理。經(jīng)過(guò)預處理后的圖像數據再由FPGA重新打包成BT656格式的數據送入到 BF561的PPI口。具體連接圖如圖2所示。圖中,VPD[0..7]是數據輸出管腳與FPGA相連,時(shí)鐘同步信號BF561采用MDMA的方式將原始圖像信號存入SDRAM中,供視頻跟蹤算法使用。視頻輸出模塊采用飛利浦公司視頻編碼芯片SAA7105將輸出信號轉化為PAL制式的CVBS信號。標準的YUV數據從FPGA的引腳輸出,送到SAA7105的數據管腳上,場(chǎng)、水平和垂直同步信號分別接到FPGA的控制引腳上。SAA7105的參數配置都是通過(guò)FPGA產(chǎn)生I2C總線(xiàn)來(lái)實(shí)現的。

1.2 存儲模塊
BF561的片上存儲器分為兩個(gè)部分:每個(gè)內核各使用100 KB的專(zhuān)用、高速L1存儲器和128 KB的大容量共享L2存儲器。本系統通過(guò)EBIU接口外擴了SDRAM和Flash兩種存儲器。選取2片MT48L32M16A2來(lái)構成SDRAM存儲器,μClinux操作系統的映像、圖像處理數據和圖像處理中間結果可存儲在SDRAM中。系統擴展了64 MB的Flash,選用S29GL064M90T芯片存放操作系統的Bootloader和內核程序。
1.3 外圍接口模塊
外圍接口模塊包括串口接口、以太網(wǎng)接口和部分通用接口等。本文主要用到串口接口和以太網(wǎng)接口。串口接口的功能是控制云臺運動(dòng),使運動(dòng)目標隨時(shí)在視場(chǎng)范圍內,本文選用MAX488芯片實(shí)現BF561內的UART接口的電平轉換;網(wǎng)絡(luò )接口的功能是通過(guò)系統的嵌入式Web服務(wù)器,實(shí)現智能監控儀的遠程配置、傳遞監控參數等,采用DM9000即可滿(mǎn)足系統需要。
1.4 DSP雙核以及FPGA之間的通信
在本系統中,涉及到BF561兩個(gè)核之間的通信以及BF561與FPGA之間的通信。FPGA給DSP提供圖像數據和經(jīng)過(guò)背景提取之后的二值化圖像數據,DSP將繪制的波門(mén)數據傳輸到FPGA,FPGA將波門(mén)疊加到原始圖像后送給SAA7105H顯示。常見(jiàn)的雙核通信主要采用中斷、輪詢(xún)兩種通信方式[2]。中斷是利用2個(gè)核的中斷機制來(lái)實(shí)現FPGA與DSP之間的通信;輪詢(xún)是通過(guò)在雙核的共享寄存器里設置一些信號量,供雙核通信與訪(fǎng)問(wèn)??紤]到本系統的應用條件,本文采用輪詢(xún)的通信方式,將信號量定義存放在L2空間。DSP的異步存儲器的地址空間映射到FPGA,通過(guò)FPGA操作數據線(xiàn)和地址線(xiàn),即可完成FPGA與DSP之間的數據交互。
2 軟件算法實(shí)現
在本設計中,A核運行μClinux操作系統,B核運行視頻監控算法。μClinux操作系統主要實(shí)現以太網(wǎng)芯片DM9000的驅動(dòng)、Flash的驅動(dòng)、嵌入式Web服務(wù)器BOA的實(shí)現和B核的驅動(dòng)程序。
2.1 算法
本文實(shí)現的智能視頻分析儀主要用在視頻監控中,智能視頻監控的核心內容之一是對特定目標進(jìn)行自動(dòng)跟蹤。目標跟蹤分為運動(dòng)目標檢測、行為識別和目標跟蹤3個(gè)主要步驟。
運動(dòng)目標檢測是從圖像序列中將變化區域從背景圖像中提取出來(lái),本文采用目前最常用的運動(dòng)檢測算法即背景消除法。此部分算法主要在FPGA中實(shí)現,采用基于改進(jìn)的自適應混合高斯模型的背景建模方法[3]來(lái)得到背景圖像。為了節省存儲空間和提高運算速度,在背景建模時(shí),將YUV信號轉化為圖像的灰度值。通過(guò)高斯建模得到背景圖像B及原始圖像A后,為了克服樹(shù)枝擾動(dòng)、陽(yáng)光反射等干擾,采用如下策略進(jìn)行處理:

然后采用數學(xué)形態(tài)學(xué)的方法對二值化圖像C進(jìn)行處理,得到運動(dòng)目標的連通域,從而進(jìn)一步得出運動(dòng)目標的質(zhì)心、大小、位置等信息,建立目標鏈。
行為識別:遍歷目標鏈的每個(gè)目標,判斷連續各幀之間運動(dòng)目標的質(zhì)心位移方向和距離,得出目標的運動(dòng)軌跡。根據設置好的規則和運動(dòng)軌跡,判斷目標是否滿(mǎn)足觸發(fā)報警的條件。
目標跟蹤:在許多監控場(chǎng)景,要求攝像頭隨著(zhù)運動(dòng)目標移動(dòng),防止目標運動(dòng)超出攝像頭的視場(chǎng)范圍內,從而要求云臺隨著(zhù)目標的運動(dòng)而運動(dòng)。在本設計中,這種情況下只能由多目標跟蹤轉為單目標跟蹤。目前用于圖像跟蹤的方法比較多,相關(guān)跟蹤是一種常用的、有效的和快速的目標跟蹤方法。本文采用改進(jìn)的多模板匹配法對目標進(jìn)行跟蹤,使用多子模板匹配[4]和二值化信息不斷修正模板的方法有效地解決了由于模板滑動(dòng)帶來(lái)的模板更新問(wèn)題;采用歸一化互相關(guān)系數度量模板的相似度;為了克服遮擋問(wèn)題和提高跟蹤的準確性和實(shí)時(shí)性,采用Kalman濾波器估計目標的運動(dòng)狀態(tài)[5],有效地縮小了目標的搜索范圍。目標在單位時(shí)間內(本文的間隔時(shí)間是3幀)其運動(dòng)狀態(tài)變化較小,可以認為在單位時(shí)間間隔內目標是做勻速運動(dòng)的,可以建立卡爾曼濾波器模型。觀(guān)測向量為模板匹配運算后目標的位置,狀態(tài)向量為目標實(shí)際位置和當前的水平垂直速度,為了提高運算速度,分別對水平方向位置和垂直方向位置進(jìn)行卡爾曼預測。
模數轉換器相關(guān)文章:模數轉換器工作原理
存儲器相關(guān)文章:存儲器原理
評論