方勇
(上海易維視科技有限公司 上海市 200082)
在MPEG 系列標準中,將視頻對象定義為“在視頻場景中用戶可以存取(搜索、瀏覽)和操作(剪切和粘貼)的實體”,如自然場景中一個人、一輛車、一棟大樓等,要求具有語義上的完整性[1]。但是,通過低層視覺分割來得到具有語義完整性的視頻對象非常困難,因為視頻對象的一致性在低層視覺特征上不一定能反映出來,往往需要借助語義概念,而目前語義概念還難以用機器語言進行準確的定義和描述。因此,視頻對象提取一直是視頻內容分析與計算機視覺中的難點,目前大多數的視頻對象提取集中在運動目標的提取上,要實現語義上的視頻對象提取,一般需要先驗知識或模型。當前,視頻對象提取是一個研究熱點,提出的方法和相關的文獻非常多,大體上可以分為三類:空域提取、時域提取和時空聯合分析[2,3, 4]。
本文基于時空聯合分析提出了一種視頻對象提取算法,首先在空域運用Canny 算子獲得邊緣圖[5],并對邊緣圖進行后處理,去除不閉合的較短的線段和分支邊緣,然后結合運動檢測提取運動邊緣;再次,基于多階段仿射運動分割獲得運動區域圖;最后,采用主動輪廓模型融合運動邊緣圖和運動區域圖[6],進行邊界校正,獲得較準確的視頻對象。
運動視頻對象具有兩個基本的特征:
(1)視頻對象是運動的;
(2)對象的邊界是圖像邊緣像素集合的子集。

圖1:結合運動與邊緣信息的視頻對象提取算法流程

圖2:Canny 算子與Sobel 算子邊緣提取對比示例

圖3:金字塔實現的L-K 光流估計示例
因此本文提出的視頻對象提取算法主要依賴運動信息,再結合空域的邊緣信息進行邊界校正,整個算法流程如圖1 所示。整個算法大體上可以分為四個部分,第一個是邊緣分析模塊,第二個是運動分析模塊,第三個是映射與跟蹤模塊,第四個是綜合分析模塊。
運動邊緣力場的基本過程是:第一步,用Canny 算子檢測邊緣;第二步,運動檢測;第三步,檢測運動邊緣;第四步,高斯擴展,形成一個光滑的運動邊緣吸引力場。
2.2.1 邊緣檢測
Canny 算子檢測邊緣效果很好,如圖2 所示,圖中用Sobel 算子做對比,其中(a)為原始視頻幀,(b)為Canny 算子提取的邊緣,(c)為Sobel 算子提取的邊緣。從圖中可以看出,Canny 算子應用到自然場景,會出現許多噪聲邊緣,主要表現為短的線段與分支;也有可能出現邊緣不閉合的情況。
2.2.2 運動檢測
鏡頭內相鄰兩幀之間的運動檢測方法最簡單的是幀差法;此外,對幀差進行閾值化操作,還可以獲得運動區域掩模。設幀差圖為

一般情況下,直接根據幀差法進行運動檢測,獲得的運動區域掩模往往很難準確地反映場景中的真實運動情況,如空洞、噪聲斑點等。但是,如果只是利用幀差進行運動邊緣檢測,只要對幀差圖進行簡單的處理,就有可能獲得比較理想的結果。本文對幀差圖的處理主要有兩點:第一,不進行閾值化處理,避免閾值對最終運動邊緣檢測結果的影響;第二,對幀差圖進行一次窗口為3×3 的極大值操作,進行膨脹,以避免邊緣檢測時邊緣定位偏差的影響,

2.2.3 運動邊緣
獲得Canny 邊緣圖與幀差圖后,就可以進行運動邊緣檢測,運動邊緣在視頻對象提取中最大的優點是可以避免靜態邊緣對運動視頻對象提取的干擾。運動邊緣檢測分兩步進行:第一,將幀差圖與二值邊緣圖相乘,獲得運動邊緣圖;第二,在運動邊緣圖上使用類似Canny 邊緣檢測的雙閾值方法進行二值運動邊緣檢測。設運動邊緣圖為

根據式(3)可知,運動邊緣圖的特點是:只有同時存在邊緣和運動才是運動邊緣。由于運動圖像的復雜性,真正有運動邊緣的地方由于灰度的相似性,也有可能導致幀差很小,為了避免這種影響,不宜對運動邊緣圖直接進行閾值化處理,檢測二值運動邊緣。在本文中,使用雙閾值的方法來檢測二值運動邊緣,如果ME(x,y)對于大閾值,則是運動邊緣;如果ME(x,y)小于小閾值,則不是運動邊緣;如果介于兩者之間,則通過一個跟蹤或生長過程來完成運動邊緣檢測。
運動信息是視頻對象提取算法的主要依據,在自然場景的視頻對象提取中,運動是最可靠的提取線索。本文中,采用多階段仿射運動分割的方法進行運動分割。
2.3.1 稠密光流估計
要依據運動信息提取運動目標,首先要進行光流估計,獲取稠密光流場。本文采用金字塔分層實現的L-K 光流估計方法估計光流場,該方法的最初目的是估計稀疏光流,用于特征跟蹤,但是也可以實現任意尺度的光流估計。該方法由于對圖像進行金字塔分解,逐層估計,在準確性、時間效率與魯棒性方面取得了一個很好的折衷。其次,為了便于投影與跟蹤,對于當前幀n,在n 與n+1 幀之間進行光流估計。圖3 是典型視頻幀的光流場,其中(a)和(b)分別為兩組相鄰的視頻幀,(c)分別為對應的光流場。
2.3.2 全局運動估計
全局運動的一般過程是先用一個參數模型描述全局運動,然后再根據視頻相鄰幀的相關性估計模型參數。仿射運動模型的參數估計可以基于視頻幀的運動場進行,本文采用基于運動場的六參數線性模型,

其中,(vx,vy)為運動速度或光流,使用最小二乘法來估計模型參數。設全局運動區域為A,根據光流場計算全局運動模型如下式:

本文采用閾值可變雙迭代方法估計模型參數,該方法將全局運動的迭代過程分解成為兩個迭代過程:在第一個迭代過程中,使用一個遞減的百分比閾值來排除外點,并估計模型參數的近似解,主要用來獲得可靠的全局運動區域;在第二個迭代過程中,用一個固定閾值或自適應閾值來區分內點與外點,并獲得完整的全局運動區域和準確的運動模型參數。
2.3.3 運動區域連通性分析與標識
根據視頻檢索的特點,使用對象進行檢索,一般適合場景中主體不是特別多、特別復雜的情形,因此,我們采用快速分層的多階段運動模型擬合與連通性分析方法來分割運動區域。經過全局運動分析后的,如果有多個運動目標,則在局部運動區域中,有可能存在多個運動區域。如果運動目標不重疊或不相鄰,理想情況下,一個運動區域對應一個運動目標。但是,在實際場景中,運動目標有可能重疊,因此需要對每個運動區域進行運動一致性分析,判定是否屬于一個運動目標。首先,對局部運動區域進行連通性分析,標識出全部連通區域;第二步,對每個連通區域用六參數模型進行擬和,如果異常點數小于連通區域像素數目的一定比例,即式(8)成立,

圖4:獨立運動區域分割示例

其中,V(x,y)為估計運動矢量,v'(x,y)擬和運動矢量,用擬合的六參數模型計算,F 為連通區域,Tg為異常點閾值,c 為異常點比例系數,通常取為5%,|F|為連通區域像素集合大小。則該連通區域為獨立運動區域,對應著一個獨立的運動目標。如果某個連通區域包含有兩個或兩個以上不同運動屬性的運動目標,則采用多階段的方法用類似全局運動分析對該連通區域進行運動模型擬合,直至分割出所有的獨立運動區域,如圖4(c)所示,其中,(a)為全局運動分析標識出的局部運動區域(黑色),(b)為局部運動區域進行連通分析的連通區域圖,(c)為運動分割圖。由于原視頻序列中水面也在運動且圖像中右邊存在邊緣,導致運動估計不準確,因此圖像中右邊出現干擾運動區域。
運動視頻中的跟蹤方法主要有兩種:一種是區域跟蹤法,另一種是輪廓跟蹤法,當然,在視頻對象跟蹤中還有可能使用一些其它的信息,如顏色、背景模型等。區域跟蹤法為整個目標區域建立參數運動模型,通過運動模型將當前幀中目標區域映射到下一幀中得到新的目標區域,然后再進行邊界修正。區域跟蹤法非常適合剛體運動跟蹤,缺點是難以處理復雜的非剛體運動。輪廓跟蹤法通常用于非剛體運動目標的跟蹤,輪廓跟蹤法包括輪廓演化與輪廓預測[6]。輪廓演化法使用主動輪廓模型,主動輪廓模型的缺點是容易受復雜紋理的干擾,其次是運算量較大;輪廓預測法是將前一幀中獲得的目標區域的輪廓映射到當前幀中,作為當前幀中的目標區域輪廓,然后再進行目標邊界修正,輪廓預測法的缺點是邊界的不封閉性問題,尤其是部分目標區域在當前幀被遮擋的時候。
在CBVR 中,為了準確地提取視頻對象的各種特征,重要的是視頻對象不能出現大的區域性錯誤。為了滿足這個要求,本文提出的視頻對象跟蹤方法自然地融合了以上各種方法的優點,避免其缺點。首先將前一幀中的目標區域根據其六參數仿射模型映射到當前幀,由于本文的運動估計是在當前幀與下一幀之間進行的,因此這種映射具有較好的準確性;其次,由于存在目標從場景中消失的可能,如目標遮擋、目標離開場景等,因此還應該進行目標的存在性判斷,設目標區域為A,如果式(9)成立,則目標存在,否則為消失或遮擋,

其中,|A|為區域像素數目,Tp為閾值。如果式(9)成立,則當前幀的映射區域為跟蹤區域。跟蹤區域用于綜合分析模塊,與運動區域圖、邊緣圖進行融合,以處理非剛體運動,利用輪廓預測法的優點。

圖5:準確的視頻對象提取示例
在綜合分析模塊中,第一步就是新目標檢測。在運動分析模塊中,檢測出了獨立運動區域,但并沒有區分是待跟蹤區域還是新目標區域,因此首先根據運動分析模塊與映射與跟蹤模塊的結果區分待跟蹤區域與新目標區域。設前一幀中的目標在當前幀中的映射為Oi,當前幀中獨立運動區域為Rj,如果

成立,則Rj為待跟蹤區域,且待跟蹤區域擴展為其中,Tn為跟蹤運動區域閾值。在判斷待跟蹤區域時,由于非剛體運動的存在,一個跟蹤目標可能會產生多個獨立運動區域,因此可能出現多個獨立運動區域為同一個目標的待跟蹤區域,此時,目標的跟蹤區域應該為映射區域與可能的多個獨立運動區域的并。同樣,如果在當前幀中,存在獨立運動區域對所有的映射區域Oi都不滿足式(10),則該獨立運動區域為新目標區域。
經過新目標區域檢測后,跟蹤目標與新目標區域都已獲得,但由于運動分割的局限性及非剛體運動的存在,目標區域的邊界一般不是很準確,如圖5 所示。此時,需要進行邊界校正。本文采用主動輪廓模型來引進邊緣信息,進行邊界校正,其主要優點是能較好地擬合邊緣,且能處理空域邊緣不閉合的情況。主動輪廓模型也稱為Snake 模型、可變形模型,能夠較好的實現目標的輪廓提取與跟蹤[6]。主動輪廓模型實質上是對一個目標能量函數進行優化的過程,使之在內力與外力平衡時停止運動,內力來自于曲線本身,如曲線的平滑力與彈性力;外力來自于圖像數據,通常是圖像的梯度場等,根據提取的特征的不同而不同,在本文中就是前面計算得到的邊緣吸引力場。設圖像平面內的輪廓曲線為,其中,s 為空間參數,即曲線參數,t 為時間參數,即迭代參數,則主動輪廓模型的能量函數的基本形式為

其中,Xs、Xss分別為X 的一階和二階導數,α 和β 分別為控制主動輪廓模型張緊和剛性的權重,其目的是控制輪廓曲線光滑且有彈性;Eimg(X)是外部能量項,通常由圖像的灰度或邊緣等獲得,用來引導模型去擬合目標的邊緣輪廓,本文中,

擬合邊緣的過程就是能量函數式(11)最小化的過程。求式(11)的最小值,可通過Euler 方程求解,具體的計算過程可參見文獻[6]。具體實現時,第一步根據跟蹤目標與新目標區域提取每一個目標的輪廓,設目標區域個數為N 個,則可以得到N 個初始輪廓曲線;第二步,根據主動輪廓模型算法進行曲線演化,求取能量極小值時對應的輪廓曲線,得到目標準確的輪廓曲線;第三步,對N 個閉合輪廓曲線進行填充,從而獲得目標區域,輸出結果,整個過程如圖5 所示,其中,(a)和(b)為原始視頻幀,(c)運動分割掩模,(d)為當前幀圖像的邊緣,(e)為最終提取的視頻對象掩模,(f)為最終提取的視頻對象。一般情況下,主動輪廓模型的計算量比較大,由于本文算法是根據目標的運動分割掩模提取初始輪廓,不會偏離真實邊緣太大,一般情況下只需迭代有限的若干次即可獲得滿意的結果。應用主動輪廓模型的主要目的是:第一,校正視頻對象邊界,運動分割由于運動矢量估計的原因,邊界一般不準確,需要校正,主動輪廓模型在擴展邊緣吸引力場的作用下可以實現平滑的調整,收斂到真實邊緣;第二,處理斷裂邊緣,許多情況下,目標邊緣不連續,即使是擴展邊緣也不一定在所有的邊緣像素處形成平滑的吸引力場,主動輪廓模型在曲線的平滑力與彈性力的作用下,在一定程度上可以解決這個問題。
獲得目標區域后,對每一個目標區域根據其對應的光流用六參數仿射模型進行擬合,用于下一幀視頻對象提取時的映射與跟蹤模塊。
本文提出了一種有效的視頻對象提取方法,采用時空聯合分析方法提取視頻對象區域,優點有三個:一個是使分割結果更加完整,連接或去除孤立的小區域和小的空洞,目標邊界更加準確,更加接近對象真實邊界;第二個能夠處理視頻對象的各種運動狀態;第三個是在一定程度上可以處理非剛體運動和肢節運動,因為純粹的剛體運動在實際視頻場景中很少見。通過全局運動估計來提取局部運動區域,同時實現攝像機操作識別;對局部運動區域進行運動分割,獲得獨立運動區域,并與前一幀的提取結果進行融合,檢測出跟蹤目標與新目標區域;最后再結合邊緣信息采用主動輪廓模型校正視頻對象的邊界。實驗結果表明這種時空聯合分析方法能有效的提取視頻場景中的視頻對象。但是,基于目前計算機視覺技術的局限性,背景復雜的視頻場景中的視頻對象提取依然是一個難以解決的問題。