呂金娜,張志軍
(1. 河南科技學(xué)院 信息工程學(xué)院,新鄉(xiāng) 453003;2. 空軍95824部隊(duì),北京 100195)
視頻存儲(chǔ)是視頻監(jiān)控系統(tǒng)的關(guān)鍵技術(shù),嵌入式視頻監(jiān)控系統(tǒng)中,數(shù)據(jù)存儲(chǔ)技術(shù)一般的做法是把從嵌入式視頻監(jiān)控服務(wù)器端的視頻數(shù)據(jù)存儲(chǔ)在大容量的存儲(chǔ)器中,但是在許多場(chǎng)合存儲(chǔ)時(shí)間都會(huì)受到存儲(chǔ)器大小的限制,從而會(huì)在存儲(chǔ)終端增加存儲(chǔ)器容量。其實(shí)一般被人們關(guān)注的存儲(chǔ)視頻往往是那些異常視頻,基于這樣的事實(shí)[1],本文提出一種基于緩沖區(qū)和異常檢測(cè)機(jī)制的視頻存儲(chǔ)算法。
基于緩沖區(qū)與異常檢測(cè)機(jī)制的視頻存儲(chǔ)算法是在視頻圖像中的場(chǎng)景出現(xiàn)異常時(shí),才執(zhí)行視頻存儲(chǔ)操作。這樣大大節(jié)省硬盤(pán)空間,減少訪問(wèn)硬盤(pán)的頻率,有效性地提高系統(tǒng)效率。
基本思想:利用異常檢測(cè)機(jī)制,只有在場(chǎng)景中發(fā)生異常的情況下才進(jìn)行視頻存儲(chǔ),視頻存儲(chǔ)時(shí)引入緩沖區(qū)機(jī)制,根據(jù)異常檢測(cè)精度的需求的不同設(shè)置緩沖區(qū)大小,存儲(chǔ)異常視頻幀前后某個(gè)閾值內(nèi)的視頻流,同時(shí)為可以滿足以后視頻回放的需求,一般用戶只對(duì)異常發(fā)生時(shí)候的前后一段的內(nèi)視頻感興趣。
緩沖區(qū)技術(shù)實(shí)現(xiàn)的基本思想是:當(dāng)用戶要求在某個(gè)設(shè)備上進(jìn)行讀操作時(shí),從系統(tǒng)中獲得一個(gè)空的緩沖區(qū),并將一個(gè)物理記錄讀到緩沖區(qū)中。當(dāng)用戶要求使用這些數(shù)據(jù)時(shí),系統(tǒng)將根據(jù)用戶要求,把當(dāng)前需要的邏輯記錄從緩沖區(qū)中取出并發(fā)送到用戶進(jìn)程存儲(chǔ)中。緩沖區(qū)技術(shù)可以提高CPU和I/O設(shè)備的并行性,以及I/O設(shè)備之前的并行性[2],從而提高整個(gè)系統(tǒng)的效率。
在本算法中引入緩沖區(qū)機(jī)制,可以比較完整的存儲(chǔ)異常產(chǎn)生時(shí)的視頻信息,同時(shí)提高系統(tǒng)效率。具體的引入緩沖區(qū)機(jī)制的異常檢測(cè)存儲(chǔ)算法步驟如下:
1)申請(qǐng)一個(gè)緩沖區(qū)Buffer[n];//n為一個(gè)取定的素?cái)?shù);
2)對(duì)于緩沖區(qū)Buffer[n]接收第k幀采集的視頻圖像并把第k幀圖像存放在Buffer[k%n];
3)當(dāng)k%n=[n/2]時(shí),調(diào)用異常檢測(cè)算法進(jìn)行異常檢測(cè);
4)如果第k幀圖像被判定為異常,將緩沖區(qū)Buffer[n]的視頻信息存儲(chǔ)到硬盤(pán)中,否則第i
5)如果沒(méi)有輸入視頻圖像,則算法停止。
運(yùn)動(dòng)檢測(cè)的靈敏度、正確性和魯棒性是嵌入式視頻監(jiān)控系統(tǒng)性能評(píng)價(jià)的關(guān)鍵指標(biāo)[3,4],在傳統(tǒng)的運(yùn)動(dòng)檢測(cè)方法中一般使用單一的準(zhǔn)則來(lái)判斷是否發(fā)生異常情況,這必然導(dǎo)致靈敏度、正確性和魯棒性指標(biāo)相互沖突。該算法采用運(yùn)動(dòng)矢量與運(yùn)動(dòng)補(bǔ)償技術(shù)。運(yùn)動(dòng)矢量是用來(lái)計(jì)算圖像幀之間的變化,而運(yùn)動(dòng)補(bǔ)償技術(shù)屏蔽因噪聲或其它輕微變化產(chǎn)生的影響,從而降低誤報(bào)率提高監(jiān)控系統(tǒng)的魯棒性。具體算法如下:
1)采用運(yùn)動(dòng)檢測(cè)與加權(quán)運(yùn)動(dòng)補(bǔ)償技術(shù),獲取變化的運(yùn)動(dòng)標(biāo)量MSk與加權(quán)運(yùn)動(dòng)補(bǔ)償后的殘差信號(hào)能量 D iffEnergyk;
2)根據(jù)假定的運(yùn)動(dòng)矢量與殘差信號(hào)能量的閾值:MSmin與DiffEnergymin,判斷當(dāng)前場(chǎng)景是否為正常,異常、可疑狀態(tài)。
3)如果MSk≥MSmin且DiffEnergyk≥ D iffEnergymin,當(dāng)前幀為異常幀,返回異常狀態(tài);
4)如果MSk<MSmin且DiffEnergyk< D iffEnergymin,當(dāng)前幀為正常幀,返回正常狀態(tài);
5)如果MSk≥MSmin且 DiffEnergyk< D iffEnergymin,當(dāng)前幀為可疑幀,進(jìn)行連續(xù)運(yùn)動(dòng)分析,轉(zhuǎn)到7);
6)如果MSk<MSmin且DiffEnergyk≥ D iffEnergymin,當(dāng)前幀為可疑幀,進(jìn)行連續(xù)運(yùn)動(dòng)分析,轉(zhuǎn)到7);
其中MSk與DiffEnergyk的計(jì)算如下:
運(yùn)動(dòng)矢量刻畫(huà)了圖像中的運(yùn)動(dòng)信息。H.264標(biāo)準(zhǔn)的運(yùn)動(dòng)預(yù)測(cè)具有1/4像素精度,對(duì)運(yùn)動(dòng)矢量的計(jì)算比以往標(biāo)準(zhǔn)更為精細(xì)。因此,當(dāng)有外來(lái)物體進(jìn)入畫(huà)面時(shí),即運(yùn)動(dòng)緩慢,其運(yùn)動(dòng)趨勢(shì)也可以立即在運(yùn)動(dòng)矢量集合中得到體現(xiàn),有助于提高監(jiān)控系統(tǒng)的靈敏度[5]。
在H.264編碼標(biāo)準(zhǔn)中,運(yùn)動(dòng)估計(jì)補(bǔ)償比以前的標(biāo)準(zhǔn)更加靈活有效,支持可變塊大小的運(yùn)動(dòng)估計(jì)運(yùn)動(dòng)補(bǔ)償模式[6]。設(shè)H.264編碼流中的某一幀圖像經(jīng)過(guò)運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)后被劃分為Np個(gè)圖像塊,利用SAD加權(quán)系數(shù)值最小作為匹配準(zhǔn)則進(jìn)行運(yùn)動(dòng)預(yù)測(cè),對(duì)于左上端頂點(diǎn)位于s=(x,y)處、序號(hào)為 n p(1≤ np≤Np)、尺寸為 S izenp=M×N的圖像塊,設(shè)最終得到的運(yùn)動(dòng)矢
其中SAD值由下式得到:
其中, Yn為當(dāng)前圖像的亮度值,YR為參考圖像的亮度值。Wnp是為了補(bǔ)償光線變化的影響所引入的加權(quán)系數(shù),定義如下:
可見(jiàn)運(yùn)動(dòng)標(biāo)量MSk是圖像運(yùn)動(dòng)塊的距離之和。
為了降低計(jì)算復(fù)雜度,采用式(1)使用的SADnp值作為第 np個(gè)圖像塊的殘差信號(hào)能量值,該值可以在運(yùn)動(dòng)預(yù)測(cè)過(guò)程中直接得到。于是第k幀圖像的殘差信號(hào)能量 D iffEnergyk可表示為: D iffEnergyk
視頻監(jiān)控異常檢測(cè)涉及的異常變化種類(lèi)繁多[7],對(duì)算法的性能和效率進(jìn)行評(píng)估并不容易,本文根據(jù)異常檢測(cè)算法的實(shí)時(shí)性和有效性,根據(jù)正確檢測(cè)率RD和錯(cuò)誤報(bào)警率RFA對(duì)本文算法與以下幾種算法做比較,包括一般的運(yùn)動(dòng)異常檢測(cè)、靜止物體緩慢變化時(shí)的監(jiān)控、背景變換情況下的檢測(cè)和光線緩慢變化時(shí)背景的更新[8]。分析比較結(jié)果如表所示。其中:
KTP表示正確檢出異常發(fā)生的情況;KFP表示錯(cuò)誤檢出的運(yùn)動(dòng)無(wú)力的情況;KFN表示存在異常但未檢出的情況即漏檢。
表1 各種異常檢測(cè)算法效率評(píng)價(jià)
RD反映了異常檢測(cè)的正確度,RFA反映了算法的精度,誤報(bào)率越低精度越高,在這里,本文有加入算法平均時(shí)間TE和算法效率ηHE兩個(gè)參數(shù),因?yàn)樵谝曨l監(jiān)控中實(shí)時(shí)性要求很高,盡量要設(shè)計(jì)簡(jiǎn)單執(zhí)行效率的高的算法才能滿足系統(tǒng)的整體性能。其中TE用算法復(fù)雜度來(lái)衡量,ηHE計(jì)算如下:
其中α、β、γ為RD、RFA和TE在評(píng)價(jià)中所占的權(quán)重。
本算法分析的測(cè)試實(shí)驗(yàn)是利用包含大約2000幀圖像,由10個(gè)具有一定圖像細(xì)節(jié)和運(yùn)動(dòng)的圖像序列組成的視頻流,異常情況有:物體進(jìn)出鏡頭、物體的位移和形變、光線的變換,采用公式(5)到公式(7)計(jì)算公式對(duì)幾種算法進(jìn)行分析,結(jié)果如表1所示。其中正確檢測(cè)率最高的是光線緩慢變化時(shí)背景的更新算法,但是它的誤報(bào)率較高,因?yàn)榇怂惴ㄔ诒尘爸写嬖诰徛兓奈矬w時(shí)不斷替換背景,一旦場(chǎng)景發(fā)生劇烈變化就產(chǎn)生持續(xù)報(bào)警,背景無(wú)法更新。背景變化情況下的檢測(cè)誤報(bào)率低,但是算法平均時(shí)間比較長(zhǎng),本文算法正確檢測(cè)率高,雖然存在一定的誤報(bào)率,不過(guò)也非常低,而且算法效率較高,算法平均時(shí)間短,能夠嵌入式視頻監(jiān)控的實(shí)時(shí)性和高效性。
為了提高視頻監(jiān)控系統(tǒng)中視頻存儲(chǔ)的效率,本文提出一種基于緩沖區(qū)與異常檢測(cè)機(jī)制的視頻存儲(chǔ)算法。該算法有效節(jié)省視頻監(jiān)控系統(tǒng)存儲(chǔ)負(fù)荷,并可以比較完整的存儲(chǔ)異常視頻信息。同時(shí)有利于用戶回放視頻的便捷性。通過(guò)實(shí)驗(yàn)分析,與目前算法相比,本算法具有高效性與較高的正確檢測(cè)率。
[1] 呂金娜,周兵,張志軍.嵌入式數(shù)字視頻監(jiān)控系統(tǒng)通用存儲(chǔ)與檢索方案[J].計(jì)算機(jī)工程與設(shè)計(jì),2009,30(21):4864-4867.
[2] 宋麗華,張曉彤,王沁,郭艷飛.一種高效嵌入式協(xié)議棧緩沖區(qū)管理機(jī)制[J].小型微型計(jì)算機(jī)系統(tǒng),2008,29(1):1-6.
[3] 武智霞,王化,王沛.基于H.264壓縮域的運(yùn)動(dòng)目標(biāo)檢測(cè)算法[J].電子科技,2010,23(7):4-6.
[4] Peng Zhang, Yanning Zhang, Tony Thomas. Moving people tracking with detection by latent semantic analysis for visual surveillance applications. Multimedia Tools and Applications.2012.5(13).
[5] 吳國(guó)紅.基于H.264視頻流鏡頭邊界檢測(cè)的研究[D].武漢:武漢科技大學(xué).2008.
[6] 王敬.基于壓縮域的運(yùn)動(dòng)目標(biāo)檢測(cè)與跟蹤算法研究[D].上海師范大學(xué).2012.
[7] Ping-guang Cheng,Zeng Zheng. Moving Object Tracking in Intelligent Video Surveillance System. Proceedings of the International Conference on Information Engineering and Applications (IEA) 2012(2).
[8] 宋磊.視頻監(jiān)控若干關(guān)鍵技術(shù)的初步研究[D].北京:北京工業(yè)大學(xué),2003.