武 杰,秦 輝,陳 瑜,張凌濤
(1.中國電子科技集團公司第二研究所,山西 太原 030024;2.中電科風華信息裝備股份有限公司,山西 太原 030024;3.北京科技成果轉化服務中心,北京 100000;4.廣東韶關工業(yè)園區(qū)管理委員會,廣東 韶關 512000)
在我們日常生活中,隨著計算機超算能力和多媒體技術的發(fā)展,視頻安防監(jiān)控已經(jīng)廣泛的應用于很多公共場合,例如:銀行、機場、車站、停車場出入口等用來保護公共區(qū)域安全。據(jù)我們所知,這些視頻監(jiān)控攝像頭通常都是一天24小時不間斷工作,產(chǎn)生的監(jiān)控數(shù)據(jù)需要被存儲保留至少1個月以上,銀行、機場等特殊場合,數(shù)據(jù)要求儲存保留超過半年甚至是一年??上攵?,我們需要更多存儲器來滿足存儲大量的視頻監(jiān)控數(shù)據(jù)的需求。同時,查閱和翻看這些監(jiān)控視頻來獲取有用信息也需要花費大量的時間。
因此,在安防監(jiān)控領域,有越來越多的算法致力于視頻剪輯技術,從而實現(xiàn)快速提取關鍵幀以及占用少量內存資源。
基于事件(能量矢量)的關鍵幀檢測算法(圖1)最適合用于固定位置的攝像頭產(chǎn)生的視頻剪輯。因為對于靜止不變的背景環(huán)境下,每一幀畫面的能量是固定不變,突然闖入的物體,例如行人、移動的汽車、奔跑的動物等會使得畫面的能量發(fā)生變化。能量的變化可以被看作是事件的發(fā)生,也就是我們監(jiān)控攝像頭采集到的關鍵幀。
圖1 檢測候選關鍵幀
根據(jù)能量檢測算法公式,我們可以得到單一圖片的能量矢量E(x):
(1)
所以,兩張圖片之間的能量矢量差D(x1,x2)也可以用能量檢測算法公式表示:
D(x1,x2)=E(x1)-E(x2).
(2)
將公式(1)帶入公式(2),我們可以得到:
(3)
為了減少運算量,我們通常會將RGB圖片轉換成灰度圖,所以,公式(3)簡化可以得到:
(4)
依據(jù)公式(4),我們可以視頻數(shù)據(jù)流中相鄰幀之間的能量差矢量,(見圖2)并且可以得到視頻局部片段的峰值。
圖2 局部片段的峰值
對于監(jiān)控視頻來講,超過80%的視頻片段都是不變的背景幀,所以我們可以將背景幀的能量矢量作為閾值從而在視頻局部片段的峰值中選出最優(yōu)值作為候選關鍵幀,見圖3。
圖3 候選關鍵幀
通過關鍵幀檢測,我們能夠得到一段視頻中很多候選關鍵幀,在這些候選關鍵幀中,有很多是重復的關鍵幀代表同一個事件。在這種情況下,我們應用了最小二乘法[2]來獲取這些相鄰關鍵幀的標準方差,根據(jù)標準方差將這些候選關鍵幀分到不同的頻譜區(qū)內,再從每個頻譜區(qū)內選出關鍵幀,見圖4。
圖4 頻譜歸類流程圖
首先,載入監(jiān)控視頻,然后通過灰度圖處理等方式對視頻進行預處理,可以減少運算量。然后通過關鍵幀檢測得到候選關鍵幀,再運用頻譜歸類[3]獲得關鍵幀,最后根據(jù)用戶需要選擇輸出靜態(tài)總結或者動態(tài)總結結果。
我們使用能量矢量的關鍵幀檢測算法分析了一段固定位置的監(jiān)控視頻,將時長為39秒的監(jiān)控視頻,一共輸出了10幀作為候選關鍵幀,見圖5。
圖5 候選關鍵幀
在得到候選關鍵幀之后,根據(jù)頻譜歸類法將29、36幀歸為一類;102、116、131、224幀歸為一類;241、247、253幀歸為一類,最后從這三類中各選出一幀就是我們要得到的關鍵幀,見圖6。整個程序的運算時間僅僅只用了0.32秒,大大的節(jié)約了人工檢索的時間和視頻存儲的空間。
圖6 視頻剪輯流程
為了驗證該算法效率和可靠性,我們選取了10段不同類型的監(jiān)控視頻作為測試視頻,這10段測試視頻都是經(jīng)過人工觀看,并且給出了一個確定的關鍵幀數(shù)作為真實數(shù)據(jù),詳見表1。
表1 測試視頻
把經(jīng)過我們的程序處理后結果與真實數(shù)據(jù)作對比,我們可以發(fā)現(xiàn),該程序算法是精確和可靠的,它滿足了上文中提到的一切需求和目的。雖然也出現(xiàn)了一定的誤檢率,但所有的誤檢都是對同一事件的重復輸出,在后續(xù)的研究中有待進一步優(yōu)化,見表2。
表2 分析對照表
視頻(關鍵幀)自動剪輯在監(jiān)控視頻中的應用,大大提升了視頻監(jiān)控的檢索和儲存效率,為安防監(jiān)控智能化提供了技術支撐。剪輯技術的廣泛應用,也為數(shù)據(jù)存儲節(jié)約了大量的服務器空間,有著巨大的經(jīng)濟效益。