周渝斌
(上海工程技術大學機械工程學院 上海 201620)
海量監(jiān)控視頻快速回放與檢索技術
周渝斌
(上海工程技術大學機械工程學院 上海 201620)
為解決海量監(jiān)控視頻的快速瀏覽和檢索,介紹了一種基于目標索引的視頻摘要和檢索方法。該方法在光流分析的基礎上,在畫面的靜止區(qū)域更新背景,運動的區(qū)域利用差分法分割出運動目標圖像。經過優(yōu)化的快速特征匹配和建立運動跟蹤模型后,根據目標運動軌跡,按照時空距離進行聚類。在以目標圖像數據和運動參數進行XML結構化存儲為索引的基礎上,最后在檢索時,將符合條件的所有目標圖像按照其原有時間順序逐幀貼到同一個背景圖像中,形成動態(tài)的摘要視頻。該方法剔除了背景中大量的時空冗余信息,可在較短回放時間內瀏覽全部有用目標,顯著提高海量監(jiān)控視頻的查閱效率。
視頻摘要 視頻濃縮 視頻檢索 視頻監(jiān)控 目標跟蹤
遍布大街小巷的監(jiān)控攝像頭實時錄制了海量的視頻數據,不僅有效地遏制了一些犯罪隱患,同時也提供了犯罪的證據,給警方破案帶來了很大的便利。然而,這些海量視頻數據的查找、分析工作常常會耗用警方大量的時間和人力。例如2012年1月6日上午發(fā)生在南京的銀行槍擊殺人搶劫案,警方為盡快鎖定劫匪在南京的活動軌跡,動用了500多名民警24小時不間斷工作,對上萬小時的視頻斷進行逐一甄別,終于找到了兩段共14秒有用視頻,為警方破案提供了寶貴的線索。由此可見,如何忽略監(jiān)控視頻中大量的無用信息而快速檢索目標信息,是當前視頻監(jiān)控一種重要的研究課題。
傳統(tǒng)的快速視頻瀏覽技術有兩種,一種是快放,即以正常速度的幾倍至十幾倍的速度回放原始視頻,為快速解碼,通常需要丟幀;另一種稱為視頻摘要,其實現(xiàn)方法是通過一定的規(guī)則提取關鍵幀或關鍵視頻片段,來實現(xiàn)靜態(tài)或動態(tài)的視頻摘要。但這兩種方法都以損失大量有用信息為代價來達到快速瀏覽的目的,也可以稱之為有損視頻摘要,不適合刑偵破案的需要。
本文介紹一種利用面向運動目標時空分析的技術來建立視頻的摘要信息,將原本在不同時間出現(xiàn)的運動目標同時播放出來。這是一種面向目標的摘要提取方法,能同時實現(xiàn)快速視頻檢索切不損失有用信息,也可稱為“視頻濃縮”技術,或者稱為“視頻字典”。在提出利用時空分析濃縮視頻形成摘要方法后,后來A.Rav-Acha和Y.Pritch等人開始將這種技術應用到單場景監(jiān)控視頻進行時間壓縮摘要分析,2009年波斯頓大學的Z.Li又提出一種視頻條帶時空分析的摘要方法。這些方法都是以動態(tài)目標分析為基礎,當目標靜止后就不再跟蹤。利用這種概念從原始視頻中提取感興趣運動目標后建立索引目錄,可形成目標字典數據庫,通過字典詞條,快速檢索到目標運動數據并定位到原始視頻片段。查詢摘要的時候,可根據用戶輸入的查詢條件,如尺寸、速度、顏色等,過濾掉不符合條件的目標,剩下的目標在調整遮擋參數后,逐幀融合到背景畫面中,形成一個全新的視頻段,其長度也根據畫面中目標的數量和密度而變化。一段監(jiān)控視頻通??蓧嚎s成原始長度幾十分之一的新視頻。用戶甚至可在短短幾分鐘內,就能瀏覽完十幾個小時的監(jiān)控視頻。由于這種技術可以大大加快案件偵破中的海量視頻檢索,所以也是目前警方最迫切需要的一種新智能視頻分析技術。本文提出了運動跟蹤的目標提取方法,可解決對目標在運動過程中不斷變化運動狀態(tài)下仍然可以有效跟蹤的問題;同時對實際應用中遇到的幾個問題提出了解決方法,如快速檢索的數據組織方法,多線程的同步等。
2.1 時空圖像體運動估計
由于監(jiān)控相機絕大多數都固定不動,背景圖像比較穩(wěn)定,序列圖像的變化主要來源于運動物體,因此,運動分析可以從時間相鄰幀的像素梯度最小的方向獲得,靜止區(qū)域像素的梯度方向顯然與圖像平面法線平行,其他方向則為運動區(qū)域,如圖1所示。
圖1 序列圖像的運動估計
定義運動目標在時空圖像體中的速度v=(u,v,1),其中u、v分別為空間x、y方向的速度,時間軸方向速度為1。像素灰度值g(x,y)在軌跡s方向上變化為0,即dg(t)/ds=0,該方程即為運動約束方程:
由于光照變化、物體變形和噪聲等影響,實際上為dg(t)/ds→0,找到最小誤差即可:
上式最小值可以通過不同的測度達到,若以w(x,t)小窗口的圖像差分為基準進行運動估計,上式最小值處即為最匹配位置,即計算:
窗函數縮寫后,上式可簡化成:
上式將運動變成張量J的特征值分析,減少了計算量,只要找到最小張量方向,即為運動方向。這種采用在時空圖像體中計算運動光流后,其圖像平面的光流F跟時空中的運動關系可定義為:
其中φx和φy分別為物體x、y運動方向與像法線的夾角,上式可用來計算時空圖像序列中運動目標的速度,據此建立目標的運動模型,以提高跟蹤的可靠性。
2.2 背景學習與更新
光流雖然可以分割出運動區(qū)域,但是不可能對每個像素進行計算,否則計算量太大,而且光流也會把目標的靜止部分分割成背景。從背景分割出目標的方法很多,基本上都是基于圖像差分法,經過優(yōu)化后能有效分割出目標外形輪廓。幀間差分法可獲得運動目標信息,但是無法分割靜態(tài)目標。背景差分法能較完整地分割目標,本文采用兩階段背景差分法分割目標,并改進了學習策略。
背景學習的關鍵在于如何有效、快速的背景更新,特別在天氣變化、車燈等原因導致畫面亮度變化時,背景的更新速度要能跟進這種變化才能持續(xù)有效地使用差分法找到目標。當更新太快時,靜態(tài)目標、樹葉等小的目標會影響背景像素的灰度值,反而帶來新的干擾。本文提出一種兩階段背景更新方法,在保證背景快速學習的同時,可有效消除光線突變、運動、靜止目標等干擾。該方法在第一階段學習過程中,每次記錄下更新區(qū)域,當所有的區(qū)域都更新完畢后,進行第二階段。經過第一階段后,通過背景差分可提取出運動目標區(qū)域,第二階段只更新非運動目標區(qū)域。當目標從運動變成靜止時,可通過對運動目標的跟蹤,判斷出運動目標所在的區(qū)域,而這時目標還沒被更新到背景中,該區(qū)域能夠被差分出來,該部分也從背景可更新區(qū)域中扣除。第一階段幀間差分得到靜態(tài)區(qū)域,加上靜止目標區(qū)域,剩下的區(qū)域像素才被更新。
背景差分后的像素灰度進行閾值分割可獲得目標區(qū)域:
上述閾值取Thres=20時,可獲得目標外形輪廓,分割出目標區(qū)域,但是當整幅畫面的亮度都出現(xiàn)較大的變化時,閾值失效,如車燈或畫面中進入較大的白色或暗色物體,相機的自增益會造成整個畫面的亮度變化,導致差分結果異常。采用閾值隨亮度自適應變化的分割方式,即差分后的閾值自動跟著當前圖像亮度的變化自動調整,將差分圖像的平均亮度加上20作為閾值:Thres=Avg(fdiff)+20,能適應多數情況下的亮度變化。這個方法雖然很簡單,但是很多算法,如ViBe、OpenCV的codebook都沒有這樣做,導致實際測試效果較差。
摘要重建是以每個運動目標為單位,將每個目標的全生命周期信息作為一個整體建立摘要索引,為此需要跟蹤目標的運動軌跡,并根據運動參數和軌跡進行分類。
幀間目標的跟蹤通過建立目標的運動模型后可實現(xiàn)。跟蹤目標質心在序列圖像中位置的運動,而不必對每一個特征點進行跟蹤。幀間的立體運動信息包括速度和線性加速度,暫不考慮角加速度,將速度在兩個方向上進行分解:水平vx和垂直vy,每個方向的當前運動速度都等于勻速和加速度之和,可得到:
由于幀間時間間為1,下一幀的水平方向速度vx就是當前幀跟前一幀間的運動矢量MV,加上當前幀運動矢量跟上一幀運動矢量的變化量,即加速度ax,垂直方向也是如此。于是每一點的運動矢量應該是包含兩個方向的勻速運動和加速度:(vx,vy,ax,ay)。幀間運動速度的變化量,包括加速度ax、ay,可以用來預測目標質心點在下一幀中的位置。預測的位置可以縮小追蹤匹配的范圍,加快運算速度,目標每次初始進行跟蹤時,(⊿x,⊿y)可取較大的范圍,一旦跟蹤確定后,新的(⊿x,⊿y)可以根據其幀間速度和加速度縮小為 xi±(vx+ax+εx),yi±(vy+ay+εy)。(εx,εy)為修正值,可取(εx,εy)=(0.1xi,0.1yi)。
運動預測的另一個好處是,當目標被遮擋后,要根據其原本的運動速度,預測其位置,特別是小目標被大目標擋住后,根據運動方程預測目標的位置,在重新出現(xiàn)后,能在小范圍內繼續(xù)跟蹤。如行人被汽車完全擋住后,行人可能連續(xù)多幀從畫面中消失,為了保證行人重新出現(xiàn)后繼續(xù)跟蹤,在遮擋發(fā)生后,根據行人遮擋前一刻的運動模型,繼續(xù)預測其運動位置。
對跟蹤到的目標可計算出運動速度、加速度、行為模式、運動位置等多種參數,這些參數可以用來進一步進行異常行為判斷,如徘徊、越界、逃跑等。但是,在視頻濃縮中,主要滿足用戶的條件檢索,將不同時間出現(xiàn)的多個符合條件的目標,同時顯示在背景畫面上,并保持各自原有的運動軌跡,以正常速度播放。如果不對目標的軌跡進行運算,在回放的時候,不同時間出現(xiàn)的運動目標可能出現(xiàn)在畫面中的同一位置,導致目標圖像層疊而無法分辨。
4.1 目標間的時空距離
運動目標的圖像、參數按其原本的時間順序存入數據文件,回放的時候,再按照原有的時間順序保持其運動趨勢,同時以目標像素替換背景中相應位置的像素,就可以動態(tài)地還原運動目標的空間和時間信息。為了提高回放效率,總是將多個不同時間出現(xiàn)的目標貼在同一背景上,經常會出現(xiàn)有的地方多個目標間相互遮擋,而有的地方卻沒有目標的現(xiàn)象。為了提高回放的可視性,需要根據目標的時間位置信息,即軌跡,來調整其在回放的時間順序。
根據目標的軌跡調整目標的回放時間,要計算回放時目標間遮擋系數,據此定義兩個目標在t時刻軌跡間的時空距離為:
其中l(wèi)i(t1)和lj(t2)分別為第i和第j個目標在t1和t2時刻的位置,t2=t1+△t,△t為目標j的調整時間。假設兩個目標的半徑分別ri、rj,可通過下式判斷是否發(fā)生遮擋:
由于目標大小在不同時刻不斷變化,ri、rj值也要更新??梢杂嬎銉赡繕税l(fā)生遮擋總數為:
每設置一次時間調整值△t,可重新計算C,可找到最小遮擋次數時的值△t。
4.2 運動軌跡分類
由于畫面中的目標很多,所有目標間都進行這種相關運算顯然不合適,因此,需要對目標的軌跡進行分類,找到幾條常用路徑。當同一類目標同時出現(xiàn)時,才進行距離運算。在一般監(jiān)控場景中的路徑都不會很多,絕大多數只有5~8種主要路徑。如圖2中的廠區(qū)門口,可看出馬路上運動目標的路徑只有5種:機動車道、非機動車道和三條不同方向進出小區(qū)的路徑。
圖2 目標運動軌跡及區(qū)域分割
如果選擇SVM方法對這些軌跡進行分類則需要大量數據進行訓練,而實時監(jiān)控中有多達成千上萬個目標需要進行分類,顯然不切實際。無監(jiān)督k-medoids聚類方法對只有幾種類別的路徑分類比較有效,速度也較快。首先確定路徑區(qū)域,將路徑區(qū)域分割成大小相等的矩形,計算每個矩形中的目標出現(xiàn)的頻次。然后對根據每個目標的起始和終點位置計算運動方向,將運動分為8個方向,根據運動方向進行初分類。搜索所有的矩形區(qū)域,當矩形中的運動方向滿足g∈(-gr,gr),r=0,1,2,…,7,其中gr為8個方向的角度閾值。判斷該區(qū)域屬于某個方向后,統(tǒng)計該方向出現(xiàn)的頻次,建立方向頻次矢量參數P(X,Y,G,N),X,Y為矩陣的中心點坐標,G為方向,N為頻次。根據該參數進行聚類,可以將所有的路徑區(qū)域分開,同方向不同位置的機動車道和非機動車道由于空間位置X,Y不同,被分割在不同的路徑類。經過分類后的軌跡不僅為檢索回放時提供條件查詢,同時可由時間調整以減少相互遮擋、提高渲染效果。
濃縮視頻在檢索的時候,根據用戶輸入的檢索條件,將滿足條件的多個不同時間出現(xiàn)的目標,按照它們的空間位置,調整時間差△t,以C→min最小遮擋的方式,同時顯示在背景畫面上,并保持各自原有的運動軌跡,以正常速度播放,同時滿足慢放、快放等。將目標圖像按照被調整的時間重新貼在背景上并實現(xiàn)實時回放,同時支持用戶動態(tài)調整目標密度、播放速度,需要短時間內快速檢索出這些數據,所以目標數據的存儲方式必須有較高的效率。
5.1 數據存儲
當動態(tài)的摘要視頻按照時間順序逐幀播放的時候,同時支持用戶選擇其中的目標,查看相應的參數,如時間、速度、原始視頻,回放過程中每一個目標的參數和對應的圖像數據要同時讀出來,所以在摘要分析時,每個目標的參數和圖像交叉存儲在同一個文件中,如圖3所示,d為參數,p為圖像。確認目標消失后,將目標數據存入文件。由圖3中可以看到,目標存儲的順序并沒有按照其出現(xiàn)的時間順序,而是按照消失的時間順序。但這并不能影響回放,因為回放是按照目標時空遮擋來調整順序的。
圖3 目標數據隊列n(1,2,3…):目標序號和統(tǒng)計參數;d:參數;p:圖像
由于目標數據是按照一個整體存入文件,所以讀出時也是按照一個整體讀入內存。每個目標數據參數和圖像數據全部讀出后,在新目標加入前,所有的操作都是內存操作,節(jié)省了大量的磁盤文件操作。另外,為了加快目標檢索速度,每個目標都建立一個檢索數據結構,存入索引數據文件。由于每個目標數據在寫入之前已經結束,數據長度已知,將目標數據的長度、目標路徑類型、目標大小、平均速度等各種統(tǒng)計參數當作索引,用XML存儲,根據目標的類型存入不同的節(jié)點?;胤艜r通過目標起始位置的參數用文件定位的方式快速搜索到某一個目標數據的起始位置,均勻讀出各類目標。用這種方式檢索數據,在回放過程中使用很少的時間就可以通過索引讀出大量的目標數據,實現(xiàn)快速實時摘要出視頻的重建和回放。
5.2 目標隊列調整
目標在背景上渲染的順序按照先前的路徑分類方式,經過調整時間差,計算時空距離后決定是否要渲染在背景上。將第一個目標貼在背景畫面后,以后的每一個目標讀出后,都要計算同類別目標間的時空距離,如果出現(xiàn)重疊遮擋,則將該目標的渲染時間往后移,直至不遮擋。如果某一段連續(xù)時間內同一路徑上的目標很多,則讀入內存的目標數量遠遠大于渲染在背景上的目標數量,所以在讀入的時候,要有選擇地讀出在不同路徑上的目標數據,對于相同路徑上的目標數據達到一個最大值后,不再繼續(xù)讀入。這樣雖然同時渲染在背景上的目標數量有可能少于設置定數量,即畫面中的目標數量是隨時間不斷變化的,但是這樣的變化并不會很大,在一個路徑上的目標經過幾幀后就會讓出其位置空間,其他目標就會補上,從長期來看,背景中不同位置的目標大致總能被占滿。圖4a中沒有做時間調整,許多目標疊加在一起,遮擋嚴重,經過時空距離運算后,將出現(xiàn)同一類相互遮擋的目標播放次序時間調整,目標間遮擋明顯減少,提高了視覺清晰度,如圖4b中所示。
圖4 目標顯示時間調整后的空間位置
5.3 多線程任務同步
摘要分析過程中,背景學習和目標跟蹤同時進行,分析的目標要寫入文件?;胤胚^程中,從文件讀入多個目標的參數和圖像數據,然后根據路徑調整時間后按次序貼到背景中,同時還要不斷更新背景圖像,響應用戶操作等。這些不同的任務要同時并行處理,特別是回放摘要時,每幀重建的畫面要等時間間隔勻速地渲染出來,多個任務之間不能相互等待數據,任務必須是非阻塞式的。結合當前的多核CPU采用多線程同步技術,可加快摘要數據的訪問和回放。
回放中,負責數據更新的寫線程不斷檢查和更新目標隊列,負責渲染的讀線程從隊列中取數據。為防止訪問沖突,同時考慮到時空遮擋而進行的時間調整,數據隊列中的實際目標數量比可讀數量多10~15個。隊列是單鏈式,從前往后讀目標數據,當目標最后一幀讀完,從隊列中清除,繼續(xù)往后,一直到倒數第三個目標。更新線程,定時檢查隊列中的目標數量,當數量比預定值小時,開始讀出新的目標數據,然后添加在隊列尾部。由于添加新目標時,在讀出新目標數據時不更新隊列數據,只是在最后一個目標尾部添加鏈接地址,這時可鎖定數據,由于鎖定時間很短,可有效地避免訪問沖突。在每次添加時,可一次性添加5~10個新目標,進一步降低訪問頻次。
5.4 目標檢索與過濾
目標跟蹤過程中,可以提取到多種類型的特征參數:速度、大小、顏色、區(qū)域等,這些參數寫入數據庫后,在回放過程中,可以用來進行目標過濾,實現(xiàn)條件查詢。顏色和區(qū)域查詢相對簡單,對于速度和大小,由于鏡頭畫面與真實空間的仿射變形,同一個勻速目標離鏡頭近時較大較快,逐漸遠離鏡頭后,外形變小,速度也變慢,需要對查詢參數進行修正,或者將不同空間位置的目標參數歸一化,在統(tǒng)一的數據空間內進行目標過濾。
本文大致全面地介紹了一種面向目標的動態(tài)監(jiān)控視頻摘要實現(xiàn)方法,由于篇幅關系,還有很多的理論和技術無法詳細論述,例如在目標分割中,被遮擋后跟蹤方法中的特征更新、半遮擋后目標的分割、樹葉等干擾目標的過濾等,還有海量摘要數據的存儲與快速檢索、實時動態(tài)摘要視頻的重建,以及多場景關聯(lián)的特征匹配和搜索等課題,都需要進一步深入研究去解決,而每一個課題都還有很多的理論和實際問題有待解決。希望更多的研究人員加入該課題的研究,發(fā)現(xiàn)和解決遺留問題,只有這樣視頻摘要才能早日形成一個滿意的應用型技術,為刑偵人員提供完善的監(jiān)控視頻檢索工具。
1.王毅,李弼程,彭天強.視頻摘要技術[J].信息工程大學學報,2009,10(4)
2.陳宏.基于圖像聚類與挖掘的視頻摘要方法[J].視頻應用與工程,2011,35(11)
3.姚彬,史萍,葛菲,等.監(jiān)控視頻的摘要提取方法研究[J].視頻應用與工程,2010,34(4)
4.M.Irani, P.Anandan, J.Bergen, etal.Efficient representations of video sequences and their applications[J].Signal Processing:Image Communication,1996,8(4)
5.A.Rav-Acha,Y.Pritch,S.Peleg.Making a Long Video Short:Dynamic Video Synopsis,Proc.IEEE Conf[C].Computer Vision and Pattern Recognition,2006
6.Y.Pritch,A.Rav-Acha,A.Gutman,etal.Webcam Synopsis:Peeking Around the World,Proc.Int’l Conf[C].ComputerVision,2007
7.Z.Li,P.Ishwar,J.Konrad.Video conden sation by ribbon carving.IEEE Trans[C].Image Process,Nov.2009,18
8.B.Jahne.Spatio-Temporal Image Processing:Theoryand ScienticApplications[J].Computer Science,1993,751,(8)
9.熊亮,劉偉銘.基于背景Codebook模型的前景檢測算法[J].科學技術與工程,2010,10(9)
10.高韜,劉正光,張軍,等.基于特征點的多運動目標跟蹤[J].電子與信息學報,2010,32(5)