王凌云,李朝暉,李冬梅
(中國傳媒大學(xué) 信息工程學(xué)院,北京 100024)
隨著計算機(jī)視覺技術(shù)的快速發(fā)展,人們已經(jīng)不滿足于二維圖像所傳遞出的信息,而是更希望獲得能使人產(chǎn)生強(qiáng)烈沉浸感和臨場體驗(yàn)的立體視頻,因此立體視頻技術(shù)獲得了越來越多的關(guān)注。立體視頻分割是基于對象立體視頻編碼的關(guān)鍵步驟,同時也是立體視頻編輯與合成、三維場景重建的基礎(chǔ),故而對立體視頻對象分割技術(shù)的研究具有十分重要的理論和實(shí)際意義。
立體視頻對象分割技術(shù)是在圖像分割技術(shù)和單通道視頻分割技術(shù)的基礎(chǔ)上發(fā)展起來的。不同的是,立體視頻具有單通道視頻所不具有的深度信息,它包含了三維場景中物體的空間信息,這些信息可以用來分割處于不同深度層面的目標(biāo)對象。
中國傳媒大學(xué)的呂朝暉[1][2]等人提出了基于分水嶺算法和均值漂移的立體視頻對象分割算法,兩種算法均采用直接對視差圖進(jìn)行分割的方法獲取視頻對象。這種算法對視差圖精度要求比較高,而且沒有利用視頻序列在時域上的相關(guān)性。寧波大學(xué)的朱仲杰[3]等人在單通道視頻對象分割的基礎(chǔ)上采用輪廓跟蹤匹配算法提取立體視頻目標(biāo)對,然后提出一種基于目標(biāo)的視差估計算法來得到視頻對象,這種算法運(yùn)算時間短,但對初始輪廓的精度比較敏感。吉林大學(xué)的王世剛[4]等人結(jié)合視差圖提取和二次幀差運(yùn)動提取,提出了一種新算法:對立體圖像對進(jìn)行一維窗匹配,初次提取出不同深度層面上的目標(biāo)對象;然后在模板范圍內(nèi)進(jìn)行二次幀差提取,再結(jié)合邊緣檢測得到較為精確的運(yùn)動對象。這種算法對視差圖精度的要求比較大,不適用于遮擋區(qū)域較大的視頻序列。
不難看出,對于立體視頻分割技術(shù)的研究已經(jīng)取得了不少成果,但依然還有很大的研究空間。本文提出了一種基于背景重建和視差信息的分割算法,將廣泛應(yīng)用于單通道視頻分割的背景重建算法與立體視頻特有的視差信息相結(jié)合,實(shí)驗(yàn)結(jié)果表明,該算法能夠有效地分割出立體視頻中的運(yùn)動對象,同時解決了背景中存在運(yùn)動物體時,運(yùn)動對象的提取問題。
本算法的基本思想是:先采用基于塊的背景重建方法獲取立體視頻序列的背景信息,然后利用背景消減算法獲得運(yùn)動對象的初步分割結(jié)果,再利用通過立體匹配獲得的視差圖對初步分割結(jié)果進(jìn)行修正,最后利用邊緣信息和后處理操作獲得最終的立體視頻運(yùn)動對象。圖1為本算法的基本流程圖。
圖1
計算每個差分子塊的亮度:
如果子塊屬于背景區(qū)域,那么該子塊的亮度應(yīng)該很小,根據(jù)這一準(zhǔn)則可以得出子塊B(k,i,j)屬于背景條件為:F(DB(k,i,j))≤T,理想狀態(tài)下,T的值應(yīng)該為0。但是由于光照、噪聲等因素的影響,T的值一般都大于0,具體數(shù)值由實(shí)驗(yàn)獲取。如果B(k,i,j)屬于背景子塊,則將該子塊復(fù)制到背景幀的對應(yīng)位置。每處理一幀圖像,判斷背景幀是否已經(jīng)被填滿背景數(shù)據(jù),如果沒有填滿,則繼續(xù)處理下一幀,直到背景幀完全填滿,背景幀獲取的流程圖可以用圖2表示。
圖2 背景重建流程圖
在獲得重構(gòu)背景幀之后,通過將背景幀與當(dāng)前幀相減的方法獲得運(yùn)動對象的初步分割結(jié)果,但直接相減的圖像通常存在噪聲、空洞和毛刺等,而且若視頻序列背景中也存在運(yùn)動物體,則不能一次檢測出運(yùn)動主體,這些問題將通過視差圖和邊緣信息等進(jìn)行修正。
圖3和圖4分別是典型立體視頻序列AC和IU的重建背景圖和運(yùn)動對象的初步分割結(jié)果,從圖3和圖4中可以看出,背景幀中下部均有一部分背景不夠完整,這主要是由于運(yùn)動對象肩膀或者上身部分的運(yùn)動范圍很小,始終擋住了背景,但不完整的部分均在運(yùn)動對象內(nèi)部,因此不會影響檢測到運(yùn)動對象的邊緣,也不會對最終結(jié)果產(chǎn)生影響。另外,IU序列除了前景中的運(yùn)動主體以外,背景中也存在運(yùn)動物體,若只采用背景消減的方法,顯然不能起到分割出運(yùn)動主體對象的效果,因此,還需要利用視差圖來將位于不同深度層上的運(yùn)動對象區(qū)分出來,完成運(yùn)動對象分割的目的。
第5幀 第30幀 第100幀 重建出的背景
第5幀 第30幀 第100幀圖3 典型立體視頻序列AC的重建背景圖和初步分割結(jié)果
第20幀 第30幀 第80幀 重建出的背景
第20幀 第30幀 第80幀圖4 典型立體視頻序列IU的重建背景圖和初步分割結(jié)果
所謂視差是指立體成像系統(tǒng)中,三維場景的一個點(diǎn)在不同圖像中投影點(diǎn)位置的差異,包括各攝像機(jī)的攝像角度、相對運(yùn)動及場景中對象的運(yùn)動所產(chǎn)生的差異。假設(shè)攝像機(jī)的焦距為F,圖像對的基線距離為B,令pl和pr分別代表點(diǎn)P在左右圖像上的投影,(x1,y1)、(xr,yr)分別代表p1和pr的坐標(biāo),則視差矢量為:
d=(x1-xr,y1-yr)
(1)
在平行雙目攝像系統(tǒng)中,y1=yr,因此視差d與景物深度z的關(guān)系可以簡化為:
(2)
由式(2)可知,如果兩攝像機(jī)的相對位置及焦距已知,由視差圖就能計算出場景中可見點(diǎn)的深度信息。
從目前的研究成果來看,視差圖通常是根據(jù)立體匹配算法獲取的,而立體匹配算法大致可分為基于特征和基于區(qū)域兩類方法[5]。其中,基于特征的方法,主要是通過提取點(diǎn)、線或邊緣等特征,然后對特征點(diǎn)進(jìn)行匹配。但基于特征的方法只能得到稀疏的視差圖,不利于修正對象的運(yùn)動范圍。而基于區(qū)域法可以得到高密度深度圖[6],盡管有在遮擋區(qū)域、無紋理區(qū)域以及深度不連續(xù)處可能得不到正確結(jié)果的缺陷,但基本可以滿足分割的需求。
在平行雙目攝像系統(tǒng)中,右圖像可近似看作是左圖像中各像素點(diǎn)沿水平軸平移的結(jié)果,即左圖中第N行中某點(diǎn)若在右圖中存在匹配點(diǎn),則該匹配點(diǎn)必然在右圖中的第N行。另外,進(jìn)行由左圖像至右圖像的立體匹配時,實(shí)際是在右圖像中找左圖像中某點(diǎn)的匹配點(diǎn),因此,視差在水平方向上的分量是負(fù)的。因此,只需在水平方向進(jìn)行負(fù)向匹配,匹配范圍為0到最大視差。
本算法采用基于區(qū)域的累計絕對誤差和(sum of absolute difference,SAD)算法進(jìn)行每個像素的視差提取,其定義如下:
-fR(x+i-j,y+i)|
(3)
其中,win表示窗口大小,j的取值范圍為[0,最大視差值]。fL(x+i,y+i)和fR(x+i-j,y+j)分別表示左圖像和右圖像中對應(yīng)像素的像素值。[0,最大視差值]范圍內(nèi),SAD最小值對應(yīng)的j值即為左圖像(x,y)點(diǎn)的視差值。該算法具有不需要乘法運(yùn)算、實(shí)現(xiàn)簡單方便的優(yōu)點(diǎn)。
匹配點(diǎn)搜索的具體流程如下:
(1)以左圖像的點(diǎn)(x,y)為中心,構(gòu)造一個M*M的小窗口,M=2*win+1。
(2)用M*M窗口覆蓋右圖像以點(diǎn)(x,y)為中心的同樣區(qū)域。
(3)按照(3)式計算(x,y)點(diǎn)的SAD值
(4)在[0,最大視差值]的范圍內(nèi),水平負(fù)向逐像素移動右邊圖像的窗口,重復(fù)(2)和(3)的操作,此時右圖中窗口的中心為(x-j,y)。
(5)找到搜索范圍內(nèi)使SAD值最小的j值,即找到了左圖(x,y)點(diǎn)的匹配點(diǎn)(x-j,y),而j的值則表示(x,y)的視差。
圖5和圖6分別給出了AC和IU序列的視差圖,從圖中可以看出,采用SAD算法計算出的視差圖并不十分準(zhǔn)確,但是前景中的運(yùn)動主體和背景中的運(yùn)動物體在視差上的差別很容易區(qū)分,而且,右邊緣的視差邊緣十分明顯(由于該算法采用的是以右圖為參照,在左圖上計算視差的方法,因此遮擋的干擾使得運(yùn)動對象左邊的邊緣不明顯),因此,該視差圖已經(jīng)足夠用于修正初步分割結(jié)果。但同時,計算出的視差圖還存在很多噪點(diǎn),會對修正效果產(chǎn)生影響,因此,本算法采用低通濾波去除噪聲。
第5幀 第30幀 第100幀
第5幀 第30幀 第100幀圖5 AC序列的視差圖
第20幀 第30幀 第80幀
第20幀 第30幀 第80幀圖6 IU序列的視差圖
運(yùn)動對象通常深度較小,根據(jù)視差與深度的反比關(guān)系,可以通過設(shè)定閾值的方法,提取出對象的大致范圍。將根據(jù)視差圖獲取的對象范圍與經(jīng)過運(yùn)動檢測獲得的初步分割結(jié)果進(jìn)行“與”操作,即可修正根據(jù)運(yùn)動檢測獲得的初步分割結(jié)果,但修正后的分割結(jié)果仍然存在邊緣不明顯、內(nèi)部存在空洞、邊緣存在毛刺的缺點(diǎn)。
為此,本文采用了Canny檢測來處理邊緣信息,然后選取合適的結(jié)構(gòu)元素并利用數(shù)學(xué)形態(tài)學(xué)對目標(biāo)內(nèi)部的空洞區(qū)域進(jìn)行填充,以得到比較精確的分割效果。最終采用先膨脹后腐蝕的方法來達(dá)到填充空洞和去除毛刺的目的。
采用典型立體視頻序列AC和IU對本算法進(jìn)行仿真,仿真結(jié)果分別如圖7和圖8所示。
第5幀 第30幀 第100幀
第5幀 第30幀 第100幀圖7 AC序列分割結(jié)果
從實(shí)驗(yàn)結(jié)果可以看出,該算法可以有效的將運(yùn)動對象分割出來。
第20幀 第30幀 第80幀
第20幀 第30幀 第80幀圖8 IU序列分割結(jié)果
另外,AC序列背景固定且只有一個運(yùn)動對象,采用單通道視頻分割已經(jīng)可以分割出比較完整的運(yùn)動對象,視差圖主要對初步分割結(jié)果進(jìn)行二次分割,使分割更為精確。而對于有兩個運(yùn)動對象(深度存在差異)的IU序列,采用基于背景消減的單通道視頻分割算法只能檢測出運(yùn)動對象,而不能準(zhǔn)確區(qū)分出運(yùn)動主體和背景中的運(yùn)動物體,而立體視頻所獨(dú)有的視差信息則具備將位于不同深度層面的物體區(qū)分出來的能力,因此,對于背景中也存在運(yùn)動物體的雙目立體視頻序列,本算法可以有效地分割出運(yùn)動對象。
本文提出了一種基于背景重建和視差圖的立體視頻對象分割算法,實(shí)驗(yàn)結(jié)果表明,該算法不僅能夠有效地解決固定背景序列中運(yùn)動對象的提取,還能夠解決背景中存在運(yùn)動物體時,運(yùn)動對象的提取問題。但是本算法僅適用于背景中的運(yùn)動和主動主體距離較遠(yuǎn)的情況,若兩者在深度上差距不大,則需要進(jìn)一步提高視差提取的精度,因此下一個階段將對視差圖的精確提取進(jìn)行研究,以便使本文提出的算法應(yīng)用于更為廣泛的立體視頻序列。
[1]呂朝輝,王暉.基于改進(jìn)分水嶺算法的立體視頻對象分割[J].光電子·激光,2009,(09).
[2]沈縈華,呂朝輝.基于均值漂移的立體視頻對象分割[J].電視技術(shù),2010,(12).
[3]朱仲杰,蔣剛毅,郁梅,等.目標(biāo)基視頻編碼中運(yùn)動目標(biāo)提取與跟蹤新算法[J].電子學(xué)報,2003,31(9).
[4]Zhou qian,Wang shigang,Yang hong.Research on disparity-based object segmentation in stereo[C]/ / Proceeding of the Asia-Pacific Workshop on Visual InformationProcessing.Beijing:2006:115-118.
[5]Massicott J F,WilllsonS D,Wyatt R,et a1.1 480nm pumped erbium doped fiber amplifier with all optical automatic gain contml[J].Electron Lett,1994,30(12):962-964.
[6]An Ping,Zhang Zhao-yang,Ma Ran.Hierarchical MRF/GRF modelbased disparity estimation and segmentation for stereo images[J].ACTA Electronic Sinica,2003,31(4):597-601.