《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 一種多區(qū)域視頻監(jiān)控入侵檢測報(bào)警方法的研究
一種多區(qū)域視頻監(jiān)控入侵檢測報(bào)警方法的研究
李益民 黃曉芳
摘要: 研究一種用于多區(qū)域視頻監(jiān)控的智能入侵報(bào)警方法。該方法以多線程技術(shù)為基礎(chǔ),采用基于混合高斯背景建模的移動(dòng)偵測算法實(shí)現(xiàn)多個(gè)區(qū)域?qū)崟r(shí)入侵報(bào)警;采用視頻監(jiān)控卡自帶函數(shù)庫實(shí)現(xiàn)監(jiān)控視頻的顯示。提出了剪貼板完成視頻數(shù)據(jù)流的截取和數(shù)據(jù)格式的轉(zhuǎn)換,避免了硬盤的反復(fù)讀寫,提高了監(jiān)控畫質(zhì)和程序運(yùn)行速度。最后給出了實(shí)驗(yàn)結(jié)果,結(jié)果表明該方法能有效的對(duì)入侵目標(biāo)進(jìn)行檢測報(bào)警,且誤報(bào)率較低,為1%~2%。
Abstract:
Key words :

    智能視頻監(jiān)控技術(shù)是利用計(jì)算機(jī)視覺技術(shù)對(duì)監(jiān)控場景的視頻圖像內(nèi)容進(jìn)行分析,自動(dòng)檢測監(jiān)控畫面中的異常情況,并警報(bào)和提供有用信息,從而能夠更加有效地提醒安防人員及時(shí)處理非法入侵。
    目前,智能視頻監(jiān)控技術(shù)中入侵檢測算法常見的有幀間差分法、背景減法和光流法。它們從視頻序列中檢測運(yùn)動(dòng)目標(biāo)來實(shí)現(xiàn)入侵報(bào)警功能。但是,這些算法集中于對(duì)一個(gè)視頻場景中移動(dòng)物體偵測的研究,而監(jiān)控系統(tǒng)往往是多個(gè)區(qū)域同時(shí)監(jiān)控。為此,給出了一種適用于多區(qū)域視頻監(jiān)控系統(tǒng)中智能入侵報(bào)警的實(shí)現(xiàn)方法。該方法采用混合高斯背景建模移動(dòng)偵測算法、OpenCV、多線程等技術(shù)實(shí)現(xiàn)了對(duì)入侵目標(biāo)的有效檢測報(bào)警功能。

1 混合高斯背景建模移動(dòng)偵測算法
   
混合高斯背景建模移動(dòng)偵測算法屬于減背景移動(dòng)偵測算法的一種。減背景移動(dòng)偵測算法是通過當(dāng)前幀與背景圖像差分來得到移動(dòng)目標(biāo)區(qū)域。這種算法對(duì)背景圖像的要求是:1)不含運(yùn)動(dòng)目標(biāo);2)不斷地更新以適應(yīng)背景不斷變化。構(gòu)建背景圖像的方法很多,混合高斯背景建模算法是其中典型的一種,該算法對(duì)外界環(huán)境不斷變化的適應(yīng)性較好。
1.1 混合高斯背景建模
   
對(duì)視頻幀中的每一個(gè)像素定義K個(gè)狀態(tài),每個(gè)狀態(tài)用一個(gè)高斯分布函數(shù)表示。這些狀態(tài)中有一部分表示背景的像素值,而另一部分則表示前景的像素值。若每個(gè)像素點(diǎn)像素值用變量Xt表示,則其概率密度函數(shù)可用K個(gè)高斯分布函數(shù)描述,如式(1)所示:

1.2 混合高斯背景建模參數(shù)更新
   
當(dāng)獲得某一點(diǎn)t時(shí)刻像素值It時(shí),首先利用序貫相似性檢測算法檢測所有高斯分布函數(shù)中那個(gè)與當(dāng)前像素值It匹配,其步驟如下:
    1)設(shè)定偏差門限T;
    2)選取均值μi,t與像素值It最接近的高斯分布函數(shù),并檢測兩者之差的絕對(duì)值是否小于Tσi,t-1,如果|It-μi,t-1|≤Tσi,t-1成立,則判定該高斯分布函數(shù)與當(dāng)前像素值匹配,并按式(2)~式(4)更新相關(guān)參數(shù);如果|It-μi,t-1|≤Tσi,t-1不成立,則判定無高斯分布函數(shù)與當(dāng)前像素值匹配,并將權(quán)重最小的高斯分布函數(shù)以一個(gè)新的高斯分布函數(shù)替代。新的高斯分布函數(shù)均值μi,t為It,標(biāo)準(zhǔn)差σi,t為最大初始標(biāo)準(zhǔn)差,權(quán)重ωi,t為最小初始權(quán)重。
   
    式中,α為模型學(xué)習(xí)率,用于控制權(quán)重ωi,t的修正速度;ρ為參數(shù)學(xué)習(xí)率,近似為ρ≈(α/ωi,t)。
    3)其他高斯分布函數(shù)參數(shù)不變,只歸一化它們的權(quán)重。
1.3 背景像素判斷
   
混合高斯背景建模算法通過計(jì)算模型中每個(gè)高斯分布函數(shù)的ωi,t/σi的值來判斷該高斯分布函數(shù)所表示的狀態(tài)是否表示背景像素值。值越高,則越可能是背景像素。

2 混合高斯背景建模入侵檢測
    OpenCV是Intel公司支持的基于C/C++語言開發(fā)的圖像處理和計(jì)算機(jī)視覺開源函數(shù)庫。其中大部分函數(shù)是基于Intel處理器指令集的優(yōu)化代碼,能最大程度的發(fā)揮處理器的性能。
    OpenCV具有強(qiáng)大的圖像和矩陣運(yùn)算能力,是計(jì)算機(jī)視覺、圖像處理二次開發(fā)的理想工具。
    OpenCV提供了混合高斯背景建模函數(shù),其主要函數(shù)如下:
   
    功能:利用一幀圖像數(shù)據(jù)初始化混合高斯背景模型。
    參數(shù):first_frame為混合高斯背景建模第一幀圖像數(shù)據(jù);parameters為混合高斯背景建模初始化參數(shù)。
    本文使用函數(shù)默認(rèn)設(shè)置:狀態(tài)數(shù)K=5,即混合高斯背景模型內(nèi)含5個(gè)高斯分布,偏差門限T=2.5,模型學(xué)習(xí)率α,最大初始方差,背景點(diǎn)判定閾值ωi,t/σi>0.7。
   
    功能:更新混合高斯背景模型。
    參數(shù):pFrame為更新高斯背景模型的視頻流幀圖像數(shù)據(jù);bg_model為混合高斯背景模型指針,通過bg_model->background和bg_model->foreground即可獲得背景和前景圖像。
   
    功能:釋放高斯背景模型參數(shù)占用的內(nèi)存。
    前景圖像再經(jīng)形態(tài)學(xué)處理后,可檢測出一定大小的移動(dòng)區(qū)域,即判定有人入侵。結(jié)果如圖1所示。



3 視頻監(jiān)控圖像數(shù)據(jù)獲取及轉(zhuǎn)換
3.1 視頻監(jiān)控圖像數(shù)據(jù)捕獲

     使用天敏公司的SDK-2500型視頻監(jiān)控卡自帶函數(shù)庫編程與使用VFW函數(shù)庫編程獲得的監(jiān)控畫質(zhì)差別很大。使用自帶函數(shù)庫可充分發(fā)揮視頻監(jiān)控卡處理器的性能,監(jiān)控畫質(zhì)高,顯示分辨率可達(dá)720x576(PAL),而使用VFW函數(shù)庫時(shí),顯示分辨率僅為320x240。兩種方法所獲監(jiān)控畫質(zhì)比較如圖1所示。為獲得高分辨率監(jiān)控畫質(zhì),本文使用視頻監(jiān)控卡自帶函數(shù)庫開發(fā)視頻監(jiān)控系統(tǒng)軟件。
    視頻監(jiān)控卡自帶函數(shù)庫提供了兩類捕獲當(dāng)前幀圖像數(shù)據(jù)的函數(shù)。一類將圖像數(shù)據(jù)以文件形式保存在磁盤上,另一類將圖像數(shù)據(jù)復(fù)制到剪貼板上。由于剪貼板是Windows系統(tǒng)中單獨(dú)預(yù)留出來的一塊內(nèi)存,由于內(nèi)存讀寫速度是硬盤讀寫速度十倍以上,同時(shí)使用剪貼板也可避免對(duì)硬盤的反復(fù)讀寫,因此利用剪貼板捕獲圖像數(shù)據(jù),代碼如下:

    參數(shù)說明:int n為視頻監(jiān)控卡卡號(hào):LPBITMAPINFO lpBI為指BITMAPINFO結(jié)構(gòu)的指針;void*pDIBBits為指向位圖數(shù)據(jù)的指針。
3.2 DIB到IPLImage數(shù)據(jù)格式的轉(zhuǎn)換
   
由于剪貼板捕獲的圖像數(shù)據(jù)格式為DIB,而OpenCV函數(shù)庫中圖像的基本格式為IPlImage*,因此,需要將DIB圖像數(shù)據(jù)格式轉(zhuǎn)為IPLImage*圖像數(shù)據(jù)格式,其代碼如下:


4 多區(qū)域?qū)崟r(shí)移動(dòng)偵測
   
32位Windows操作系統(tǒng)采用搶先式多任務(wù)方式運(yùn)行應(yīng)用程序。當(dāng)一個(gè)程序運(yùn)行后,操作系統(tǒng)就啟動(dòng)了一個(gè)進(jìn)程。為了讓進(jìn)程完成一些工作,每個(gè)進(jìn)程必須包含至少一線程。線程負(fù)責(zé)執(zhí)行包含在進(jìn)程地址空間中的代碼,每個(gè)線程共享所有的進(jìn)程資源,包括打開的文件、信號(hào)標(biāo)識(shí)及動(dòng)態(tài)分配的內(nèi)存等。
    線程是系統(tǒng)分配CPU時(shí)間的基本實(shí)體,它也是代碼執(zhí)行的最小單位。實(shí)際上,同一時(shí)間只有一個(gè)線程在運(yùn)行,由于每個(gè)線程劃分的時(shí)間很小(20 ms左右),CPU通過分時(shí)在各個(gè)線程之間頻繁地切換,使得系統(tǒng)看起來有多道程序在同時(shí)運(yùn)行。
    Windows提供了2種線程——輔助線程和用戶界面線程。兩種線程均為MFC庫所支持。用戶界面線程通常有窗口,因此,它具有自己的消息循環(huán)。輔助線程沒有窗口,因此,它不需要處理消息。
    用戶界面線程用于響應(yīng)用戶操作和程序的其他控制,輔助線程用于多個(gè)區(qū)域視頻圖像的捕獲,并利用移動(dòng)偵測算法實(shí)現(xiàn)實(shí)時(shí)入侵報(bào)警功能。程序流程如圖2所示。



5 實(shí)驗(yàn)結(jié)果
   
為了驗(yàn)證本文提出的多區(qū)域視頻監(jiān)控入侵檢測報(bào)警方法的性能,實(shí)驗(yàn)采用兩塊SDK-2500型視頻監(jiān)控卡同時(shí)對(duì)室內(nèi)、室外兩個(gè)區(qū)域進(jìn)行長時(shí)間的視頻監(jiān)控,監(jiān)控視頻幀率為30幀/秒。為捕獲穩(wěn)定的視頻圖像,在輔助線程內(nèi)添加了100 ms的等待時(shí)間。隨機(jī)抽取100次報(bào)警結(jié)果,其結(jié)果如表1所示。


    從測試結(jié)果可以看出,本文方法室內(nèi)誤報(bào)率為1%,室外誤報(bào)率為2%。根據(jù)保存的視頻圖像分析得知:室內(nèi)誤報(bào)警發(fā)生于開燈情況下,是因環(huán)境亮度急劇變化引起的;室外兩次誤報(bào)警均發(fā)生于刮風(fēng)情況下,由于樹枝大幅度搖擺造成的。

6 結(jié)束語
   
本文利用多線程技術(shù)實(shí)現(xiàn)了視頻監(jiān)控系統(tǒng)中多區(qū)域移動(dòng)偵測入侵報(bào)警自動(dòng)化。該方法利用視頻監(jiān)控卡自帶函數(shù)庫,充分發(fā)揮了視頻監(jiān)控卡處理器的性能,獲得了較高的監(jiān)控畫質(zhì);該方法誤報(bào)率較低,可廣泛適用于各種視頻監(jiān)控系統(tǒng)中。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。