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