基于DSP的智能視頻監控系統的實(shí)現
引言
本文引用地址:http://dyxdggzs.com/article/257490.htm隨著(zhù)社會(huì )經(jīng)濟發(fā)展,城市交通和基礎設施的不斷進(jìn)步,人們對安全的要求不斷提高,視頻監控系統已經(jīng)廣泛用于小區安全監控、火警監控、流量控制以及軍事、銀行、商場(chǎng)、機場(chǎng)、地鐵等公共場(chǎng)所的安全防范。近年來(lái),數字視頻監控正以其無(wú)可比擬的優(yōu)勢逐漸取代模擬視頻監控,為用戶(hù)提供更安全、更智能化的視頻監控服務(wù)。智能監控向網(wǎng)絡(luò )化,智能化,數字化發(fā)展。目前最先進(jìn)的數字視頻監控系統已經(jīng)具有智能化分析功能,以計算機圖像處理技術(shù)為基礎,對實(shí)時(shí)場(chǎng)景中的目標進(jìn)行檢測、識別、跟蹤分析,并在此基礎之上進(jìn)行行為理解分析,從而代替或者部分代替人類(lèi)進(jìn)行監視活動(dòng)。
近年來(lái),視頻監控系統平臺的設計層出不窮,而少有系統架構設計層面的介紹。國內外較為常見(jiàn)的系統設計,一種是使用PC機作為算法運行的硬件平臺,如Morita等采用的C/S結構[1]或Dias等采用的分布式結構[2]。這種系統的主要缺點(diǎn)是成本高,由于PC對數字圖像處理不易優(yōu)化,智能算法很難達到實(shí)時(shí)要求。另一種使用專(zhuān)門(mén)數字圖像處理器構建硬件平臺。這種系統的最大不足在于隨著(zhù)系統規模擴大、信息量增多,加大了服務(wù)器負擔,進(jìn)而影響了整個(gè)系統。
在算法研究上,視頻監控關(guān)鍵技術(shù)包括:背景建立,動(dòng)目標檢測,動(dòng)目標提取與跟蹤,動(dòng)目標智能分析。其中背景建立和動(dòng)目標檢測是關(guān)鍵技術(shù)中的基礎,其實(shí)現的好壞直接影響監控效果。目前較常見(jiàn)的算法有:幀間差分法[3],背景差分法[4],光流法[5]等。已有很多仿真工作見(jiàn)報道,但是較少有系統實(shí)現了的基于數字信號處理器DSP的嵌入式實(shí)時(shí)處理。
本文設計的視頻監控系統遵循數字化、網(wǎng)絡(luò )化和智能化的發(fā)展趨勢,綜合考慮對上述不足進(jìn)行改進(jìn),可以使用普通模擬攝像頭作為視頻源進(jìn)行本地實(shí)時(shí)智能監控,也可以使用網(wǎng)絡(luò )攝像機作為視頻源進(jìn)行遠程實(shí)時(shí)智能監控。在算法上較好地解決了監控算法背景更新,動(dòng)目標檢測等關(guān)鍵技術(shù)。提出并實(shí)現了對可疑物報警、對貴重物體丟失報警等算法。
系統設計
系統硬件
本系統的硬件由多塊自行開(kāi)發(fā)的數字信號處理(DSP)板卡組成,主要提供對本地和遠程視頻監控的硬件支持。每塊DSP板卡包括:基于TMS320DM642(TI多媒體數字信號處理DSP芯片,下文簡(jiǎn)稱(chēng)DM642)核心處理模塊,外設存儲器模塊,總線(xiàn)控制模塊,模擬視頻輸入模塊,PCI模塊。系統硬件框圖如圖1。
系統軟件
·DSP端軟件
DSP板卡運行多通道的智能監控算法,算法以庫形式提供。軟件構架則以算法庫為核心、DSP/BIOS[6]和RF5[7]為框架進(jìn)行構建。DSP/BIOS是TI公司提出的高度優(yōu)化、可裁剪的DSP實(shí)時(shí)操作系統內核,提供了搶占式的線(xiàn)程調度,內存管理,外設管理和可視化的調試工具等特性。RF5是一種基于DSP/BIOS的DSP軟件框架,提供了內存管理策略,線(xiàn)程模型,通道封裝和算法管理。一臺服務(wù)器主機中可以安裝5張獨立的DSP板卡。
DSP軟件包括自啟動(dòng)、初始化、和線(xiàn)程創(chuàng )建,流程如圖2所示。
圖2中第五步動(dòng)態(tài)創(chuàng )建了1個(gè)算法處理線(xiàn)程(ProcessTsk)、2個(gè)PCI通信線(xiàn)程(SendTsk,ReceiveTsk)以及一個(gè)中斷服務(wù)子程序(PCI_ISR):ProcessTsk根據客戶(hù)端為每個(gè)通道設定的監控規則,對通道中的圖像進(jìn)行算法分析,若有目標違規,則記錄違規場(chǎng)景,產(chǎn)生報警信息,否則送出原始圖像。SendTsk負責把ProcessTsk產(chǎn)生的報警信息或者圖像通過(guò)PCI傳輸到PC端;ReceiveTsk負責接收來(lái)自本地板卡的模擬攝像頭和來(lái)自PC端的網(wǎng)絡(luò )攝像頭圖像,以及PC端來(lái)的信息。并傳遞給ProcessTsk;PCI_ISR負責監聽(tīng)來(lái)自PC端的請求,根據不同請求發(fā)送不同的旗語(yǔ),控制線(xiàn)程間的運行。
主機服務(wù)器準備傳輸控制命令或者圖像的時(shí)候,向DSP發(fā)送中斷請求。PCI_ISR將響應這些請求,根據主機服務(wù)器的不同信息向其他線(xiàn)程發(fā)送不同的控制旗語(yǔ):如果是PC端接收一幀圖像完畢,則向SendTsk 發(fā)旗語(yǔ)PCI_READ_OK,表示可以接收下一幀圖像;如果是斷開(kāi)、連接通道請求,則向ReceiveTsk發(fā)送旗語(yǔ)PCI_WRITE_OK,表示可以接收信息。ReceiveTsk接收網(wǎng)絡(luò )攝像機或者模擬攝像機圖像和控制命令。如果收到圖像,將其存儲在SDRAM的一個(gè)緩沖區中,以待進(jìn)行算法分析; 如果收到控制命令,將其存儲在由PC、DSP共同維護的一個(gè)緩沖區中。然后發(fā)起SCOM通信,把信息傳送到ProcessTsk維護的SCOM中。SCOM是RF5框架中的通信模塊,提供了隊列 (Queue)和旗語(yǔ)(Semaphore)的雙重功能。ProcessTsk收到信息后,會(huì )使用視頻緩沖區和控制命令緩沖區中的數據作為算法參數進(jìn)行計算。ProcessTsk計算完成后,會(huì )產(chǎn)生相應的結果,比如警報或者處理信息。這些數據會(huì )保存在一個(gè)字節數組中,然后將其打包封裝成一個(gè)Message 對象,將其發(fā)送到SendTsk維護的SCOM中,SendTsk接收到這個(gè)Message包后,對其進(jìn)行相應的處理,然后發(fā)送到PC主機。線(xiàn)程通信如圖 3所示。
·PC端軟件
在服務(wù)器主機端,主要實(shí)現三個(gè)功能:(1)接收來(lái)自網(wǎng)絡(luò )攝像頭的視頻流并解碼,對應模塊為網(wǎng)絡(luò )攝像機模塊;(2)構建用戶(hù)界面,即客戶(hù)端模塊,記錄用戶(hù)算法設置、控制命令等,用戶(hù)可以根據自己的需求在規則設置界面中對特定的通道設置算法參數和控制命令等;(3)將圖像數據和算法參數、控制命令傳給DSP端,對應模塊為后臺服務(wù)模塊。
算法設計與DSP實(shí)現
基于DM642的智能視頻監控系統的核心是智能視頻監控算法,本算法可以實(shí)現對監控目標物越線(xiàn)產(chǎn)生報警,對貴重物體消失產(chǎn)生報警,對可疑物體產(chǎn)生報警。算法原理:首先利用改進(jìn)的幀間差分法來(lái)初始化背景模型,得到自適應背景圖像[9];然后把當前圖像和背景圖像做差分運算;再使用動(dòng)態(tài)閾值法對差值圖像二值化,引入形態(tài)學(xué)噪聲濾波器來(lái)消除噪聲影響[8];進(jìn)而使用快速二值圖像連通域標記算法提取動(dòng)目標;最后與用戶(hù)預先設置的警戒規則進(jìn)行比較,如有違規,產(chǎn)生報警信息。算法流程如圖4所示。
自適應背景模型建立
在運動(dòng)目標檢測過(guò)程中背景模型建立的準確與否直接影響到目標檢測結果的好壞。由于背景是個(gè)漸變的過(guò)程,所以采用了自適應背景更新方法:在視頻圖像序列中先假設第一幀圖像為參考圖像I0,在隨后的圖像序列中找兩幀圖像I1和I2,要求運動(dòng)部分在I0,I1以及I2中所占區域沒(méi)有重疊,將三幀圖像的灰度值平均得到圖像I:
將圖像I與I0進(jìn)行比較,如果差別較大(差值超出某一閾值T0),則為目標區域,否則為背景區域;在目標區域,進(jìn)一步判斷I1與I2的灰度值,如差別不大(差值小于某一閾值T1),則可用I1或I2中對應區域作為背景對應區域,否則用I0中對應區域作為背景對應區域,經(jīng)過(guò)這一替代,就可以得到一個(gè)不包含運動(dòng)目標的背景圖像Ib。然后用此參考圖像初始化背景圖像模型,公式如下:
差值圖像建立及二值化
自適應背景BL產(chǎn)生后,每一幀視頻圖像將與BL差分,并得到差分后的差值圖像,進(jìn)而進(jìn)行二值化。在這一過(guò)程中,閾值選取的優(yōu)劣是二值化結果好壞的關(guān)鍵。本文采用動(dòng)態(tài)閾值法進(jìn)行二值化處理。它的基本思想是對于需要二值化的每一幀差值圖像,確定一個(gè)最佳閾值,使圖像進(jìn)行二值化處理后,能方便而準確的定位目標物。具體過(guò)程如下。
設差值圖像灰度值取值分布范圍為1~K,像素總數為N,灰度為i的像素數為ni,則每個(gè)圖像灰度值的取值概率為:pi=ni/N。設以h為閾值將圖像分割為兩個(gè)區域A、B,灰度為1到h的像素和灰度為h+1到K的像素分別構成區域A和B,各組產(chǎn)生的概率為:
以類(lèi)間方差作為衡量分離性能的準則,極大化的過(guò)程就是自動(dòng)取定閾值的過(guò)程,因此,最佳閾值為: 。換句話(huà)說(shuō),類(lèi)間方差最大的那個(gè)圖像灰度值就是當前差值圖像的最佳閾值。
運動(dòng)目標檢測
動(dòng)態(tài)閾值確定以后,可根據此閾值對差值圖像進(jìn)行二值化,得到二值圖像。但是在背景和目標中還會(huì )存在一定量的噪聲斑點(diǎn),再經(jīng)過(guò)形態(tài)學(xué)運算處理后的圖像更有利于目標提取,濾波后的二值圖像通常包含多個(gè)連通區域。本文采用改進(jìn)快速標記算法對各連通域進(jìn)行檢測提取。該算法對原圖像只進(jìn)行一次掃描后通過(guò)特殊的邊界像素標記,就能搜集足夠信息,可方便快捷的獲得目標幾何特征參數,算法分為像素掃描、整理等價(jià)表和圖像代換,共三個(gè)環(huán)節。
根據用戶(hù)設置的算法規則判斷報警
得到動(dòng)目標的外接矩形以后,對每一個(gè)目標物進(jìn)行跟蹤監控就具體化為對每一個(gè)矩形框的跟蹤監控。這一過(guò)程中,用戶(hù)通過(guò)PC端的客戶(hù)端模塊中的用戶(hù)界面來(lái)選擇算法規則,實(shí)現對人或車(chē)的監控。用戶(hù)可以在主機服務(wù)器界面中設定規則,包括對場(chǎng)景設置虛擬警戒線(xiàn)、警戒區域和違規行為(比如貴重物體消失報警,可疑物的出現報警,目標物的越線(xiàn)報警)。一旦當前幀有外接矩形違規,則產(chǎn)生報警信息。
結語(yǔ)
本文實(shí)現了一個(gè)支持多板卡,多通道以及網(wǎng)絡(luò )監控的智能視頻監控系統。提供了一個(gè)完整的包括DSP硬件、軟件框架、算法及實(shí)現的解決方案,較好的解決了背景更新,動(dòng)目標提取等監控系統中的重要技術(shù)環(huán)節,提出并實(shí)現了對可疑物的報警、對貴重物體的報警等實(shí)用算法?;贒M642的DSP硬件板卡如圖5所示,系統運行結果如圖6所示。整個(gè)系統的技術(shù)指標如表1所示。
評論