專利名稱:運動估計系統(tǒng)中使用圖形引擎獲取的矢量的對象跟蹤的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及輸入圖像序列的運動估計,尤其涉及與基于相機/觀察者的方向和位置產(chǎn)生的候選運動矢量相關(guān)聯(lián)的方法。
背景技術(shù):
運動估計,圖像、幀或視頻場序列中的運動的識別是眾所周知的。運動估計的現(xiàn)有方法一般考慮序列中的兩個或更多個幀,并創(chuàng)建表示圖像區(qū)域的從ー個幀到下一個幀的2D平移運動的運動矢量集。運動估計的ー種可能技術(shù)是運動搜索,在該技術(shù)中,捜索之前的幀以發(fā)現(xiàn)與當(dāng)前幀中的特定區(qū)域最佳匹配的圖像區(qū)域。兩個匹配區(qū)域的位置差異給出了當(dāng)前位置的運動矢量。不同的系統(tǒng)具有不同的運動估計需求。在諸如視頻編碼器的壓縮系統(tǒng)中,該需求 是通過參考序列中的先前幀來形成幀的最緊湊表示。該需求通常用于發(fā)現(xiàn)給出當(dāng)前幀與參考幀中的像素區(qū)域之間的最佳匹配的運動矢量,因為這導(dǎo)致最緊湊編碼。雖然所得到的運動矢量通常表示場景中對象的實際運動,但是并不需要情況總是如此。在其他應(yīng)用中,諸如對象跟蹤或幀率轉(zhuǎn)換,即使視頻中的其他失真意味著相應(yīng)圖像區(qū)域中的像素并不可能總是彼此最佳匹配,運動矢量表示場景的真實運動仍然是更加重要的。通過在運動搜索過程期間應(yīng)用合適的約束,結(jié)果能夠在需要時被指引向“最佳像素匹配”或“真實運動”。幀中的運動矢量集被共同地稱為用于那個巾貞的運動矢量場(motion vector field)。注意,如下文所描述的,術(shù)語“矢量場”的使用不應(yīng)與用于描述交織視頻序列中的數(shù)據(jù)的“場”或“視頻場”的使用混淆。雖然存在用于運動估計的許多方法,但是共有的實施例是基于塊的運動估計器。將通過顯示本發(fā)明如何與基于塊的運動估計器一起使用來描述本專利中公開的發(fā)明,雖然本發(fā)明的原理也可以應(yīng)用于其他類型的運動估計器。在基于塊的運動估計器中,幀典型地被再劃分成稱為塊或宏塊的矩形區(qū)域的規(guī)則網(wǎng)格。在運動搜索過程中,每個塊的像素數(shù)據(jù)與來自之前幀中的各種候選位置的像素數(shù)據(jù)進(jìn)行比較,并計算每個候選的得分函數(shù)。具有最佳得分的塊的相對位置給出了當(dāng)前塊位置的運動矢量。圖I示出了塊匹配運動估計器的典型示例。在包括圖I的所有附圖中,運動矢量用箭頭的頭位于該矢量所對應(yīng)的塊的中心處示出。幀被分成塊,并且之前幀中的對象101已經(jīng)移動到當(dāng)前幀中的位置102。該對象的之前位置被示為疊加在當(dāng)前幀上,并用103表示。針對塊而非針對對象執(zhí)行運動估計,其中當(dāng)前幀中的一批像素與之前幀中的塊大小的像素區(qū)域相匹配,其不必是塊對準(zhǔn)的。例如,塊104被移動的對象102部分覆蓋,并具有如105處所示的內(nèi)容。如果執(zhí)行得好的話,針對塊104的運動估計將發(fā)現(xiàn)之前幀中的像素數(shù)據(jù)區(qū)域106,也能看到該像素數(shù)據(jù)區(qū)域106包含105中所示的像素,也就是好的匹配已經(jīng)被發(fā)現(xiàn)。通過被疊加回當(dāng)前幀上,匹配的像素數(shù)據(jù)區(qū)域位于107處。因此,與塊104相關(guān)聯(lián)的運動矢量由箭頭108示出。不是窮舉性地考慮每ー個可能的位置,許多基于塊的運動估計器通過用諸如絕對差和(SAD)或平均平方差(MSD)的得分函數(shù)對運動矢量候選集進(jìn)行測試來選擇他們的輸出運動矢量,以識別給出最低誤差塊匹配的運動矢量。圖2示出了針對當(dāng)前幀中的塊201的候選評估進(jìn)程,其中塊201具有在211中所示的像素內(nèi)容。在該簡單的示例性系統(tǒng)中,考慮了三個運動矢量候選206、207和208,這三個運動矢量候選對應(yīng)于之前幀中的位置202、203和204處的候選像素數(shù)據(jù)區(qū)域。這些像素數(shù)據(jù)區(qū)域的像素內(nèi)容分別如212、213和214中所見。顯然,位置202處的像素數(shù)據(jù)提供了針對塊201的最佳匹配,因此應(yīng)該被選為最佳匹配/最低差別候選。通過疊加回當(dāng)前幀上,匹配的像素數(shù)據(jù)區(qū)域位于205處,并且相關(guān)聯(lián)的運動矢量是206。已知運動矢量在時間和空間上與相鄰塊中的矢量高度相關(guān),那么這些鄰近矢量常常被用作運動估計中所考慮的用于特定塊的候選運動矢量集的基礎(chǔ)。當(dāng)視頻中的運動改變吋,隨機元素也可以被合并到候選中以允許該系統(tǒng)適應(yīng)。在塊具有不能由其鄰近塊簡單預(yù)測的運動時,系統(tǒng)可以依賴于矢量候選的隨機擾動,稱為抖動。這對于緩慢變化的矢量場是好的,但傾向于不允許運動估計器快速聚合于與其鄰近塊非常不同的新矢量。依賴于隨機性的系統(tǒng)可以隨時間的推移朝正確的運動游蕩,但是易于在局部最小值中形成阻塞,或聚 合得太慢以至于等其到達(dá)那里的時候該運動已經(jīng)再次改變了。因此希望引入能夠更準(zhǔn)確地預(yù)測新的和改變的運動的候選或者改進(jìn)候選運動矢量的選擇以改進(jìn)矢量場的聚合速度。針對每個塊所測試的候選運動矢量的數(shù)目常常是在選擇足夠大以識別真實運動和/或提供具有低殘差的良好匹配同時足夠小以最小化計算開銷的集合之間的折中。視頻序列典型地包括視頻數(shù)據(jù)的一系列非交織幀,或視頻數(shù)據(jù)的一系列交織場。交織序列由在顯示器的交替行上攜帯數(shù)據(jù)的場產(chǎn)生,以便第一場將攜帶用于交替行的數(shù)據(jù),且第二場將攜帯用于缺失行的數(shù)據(jù)。因此將這些場在時間和空間上分隔開。序列中的每個交替場都將攜帯同一空間位置處的數(shù)據(jù)。不是所有的視頻序列都由諸如可由視頻相機產(chǎn)生的“真實”圖像構(gòu)成。諸如游戲、虛擬現(xiàn)實環(huán)境、計算機輔助設(shè)計(CAD)系統(tǒng)等的應(yīng)用典型地輸出可被稱為人工生成的視頻序列的一系列圖像。在計算機圖形尤其是在3D計算機圖形中,通常使用多個坐標(biāo)系統(tǒng)。圖8示出了三個重要的坐標(biāo)系統(tǒng)。自然空間是具有任意原點800的空間,在該自然空間中,相機(或眼睛)點810、屏幕位置820以及三個對象830、840和850在平面視圖中示出。相機正在指向的方向用860表示。呈現(xiàn)該場景的初始步驟是將對象變換到相機空間。在也以平面視圖示出的相機空間中,相機處于原點并沿著z軸指向。屏幕820垂直于觀察方向。第二步驟將對象投影到平面空間,其中屏幕上對象的X,y位置并不僅依賴于其x、y位置,而是還依賴于相機空間中他的z坐標(biāo)。因此這是透視投影,這有助于向該場景提供“三維”外觀。在處理傳統(tǒng)視頻序列的運動估計系統(tǒng)中,對象的運動被認(rèn)為是對象在顯示屏幕上的表示在幀之間移動的距離。運動估計進(jìn)程在整個屏幕空間中出現(xiàn)。實際上,顯示屏幕上對象的運動是通過自然空間中對象的運動、那個運動在屏幕上的投影以及相機的位置和方向的任意改變來確定的。對于視頻序列和人工生成的序列而言都是如此,但是在人工生成的序列中可能呈現(xiàn)出特定的問題,諸如3D游戲,其中快速運動常常與觀察方向的突然改變相結(jié)合。這些相機移動不能由運動估計器容易地進(jìn)行預(yù)測,并因而影響了運動估計性能。為了呈現(xiàn)人工場景,負(fù)責(zé)創(chuàng)建幀序列的圖形引擎必須具有關(guān)于場景中的對象的知識(knowledge)以及關(guān)于相機位置和方向的細(xì)節(jié)。雖然場景中的對象的位置和運動通常不能位于圖形引擎的外部,但是圖形引擎提供API (應(yīng)用編程接口)是普遍的,該API允許一些信息能夠由其他應(yīng)用使用。方便的是,許多API常常以矩陣的形式提供相機位置和方向的細(xì)節(jié),這些細(xì)節(jié)描述了從自然到相機空間的變換以及到屏幕空間的投影。訪問深度(或“Z”)緩沖器信息常常是可能的,該深度緩沖器信息存儲屏幕空間呈現(xiàn)的圖像中的每個像素位置處對象的深度。在已經(jīng)使用傳統(tǒng)的2D視頻相機產(chǎn)生視頻序列的情況中,相機位置和深度信息不是常規(guī)可用的。盡管如此,如果該信息或該信息的近似信息能夠產(chǎn)生,則本發(fā)明仍然可以用于改進(jìn)運動估計。用于近似場景中相機位置、方向以及到對象的距離的可能的方法可以使用計算機視覺中的“運動結(jié)構(gòu)”技術(shù)獲取。
現(xiàn)有技術(shù)Agrawala, Beers 和 Chadda, Model-Based Motion Estimation for Synthetic Animations,ACM Multimedia 1995。
發(fā)明內(nèi)容
本發(fā)明引入了生成候選運動矢量的有效方法,該候選運動矢量從相機的位置和方向中獲取并可選擇地從場景中的相機與對象之間的距離中獲取。相機位置和方向的改變有助于以能夠用于指導(dǎo)運動矢量候選的選擇的可預(yù)測方式進(jìn)行對象的屏幕空間運動。當(dāng)相機運動與對象深度信息結(jié)合時,所得到的屏幕空間對象運動能夠在數(shù)學(xué)上被確定。通過將屏幕空間中的對象運動表示為因相機移動導(dǎo)致的運動和因自然空間中對象移動導(dǎo)致的運動的組合,能夠?qū)崿F(xiàn)運動估計性能的進(jìn)一步改進(jìn)。這些方法可以通過依賴于時間和空間上獲取的候選來引入以其他方式通過其他矢量傳播技術(shù)尚未可用的運動矢量候選來進(jìn)行工作,并提供跟蹤順應(yīng)因相機/觀察者位置改變導(dǎo)致的視運動的運動的更有效的方法。本發(fā)明可以克服由用戶控制的相機引入的不穩(wěn)定的運動,允許快速或正在改變的運動區(qū)域中的更快聚合,允許考慮更少的候選,和/或補償觀察者位置的改變,所有這些都導(dǎo)致更精確的運動矢量場。
現(xiàn)在將參考附圖通過示例的方式詳細(xì)描述本發(fā)明的優(yōu)選實施例,其中圖I示出了典型的塊匹配運動估計器;圖2示出了塊匹配運動估計器如何從候選運動矢量集中選擇“最佳”運動矢量;圖3示出了由相機位置沿著平行于屏幕的矢量平移造成的屏幕空間運動;圖4示出了由相機位置沿著垂直于屏幕的矢量平移造成的屏幕空間運動;圖5示出了由相機方向繞著平行于屏幕的軸旋轉(zhuǎn)造成的屏幕空間運動;圖6示出了由相機繞著垂直于屏幕的軸旋轉(zhuǎn)造成的屏幕空間運動;圖7示出了由相機移動造成的屏幕空間運動對相機至對象的距離的依賴性;圖8示出了 3D計算機圖形中使用的不同坐標(biāo)系統(tǒng)的示例;圖9示出了屏幕空間運動矢量,該矢量是自然空間中的對象運動導(dǎo)致的矢量與相機的觀察位置和方向的變換導(dǎo)致的矢量的和;圖10示出了根據(jù)像素的深度值的像素分類如何允許多個運動矢量被分配給單個塊;圖11示出了現(xiàn)有系統(tǒng)中的動量候選矢量查找的示例;圖12示出了對相機運動進(jìn)行補償?shù)膭恿亢蜻x矢量查找的示例;圖13示出了傳統(tǒng)運動估計器的系統(tǒng)級框圖;圖14示出了運動估計器的系統(tǒng)級框圖,其中外部“視頻結(jié)構(gòu)”系統(tǒng)用于計算近似的相機位置和方向,而且該信息用于在運動估計期間改進(jìn)候選矢量;圖15示出了運動估計器的系統(tǒng)級框圖,其中關(guān)于相機/觀察者位置和方向以及場 景的深度緩沖器的完整信息由圖形引擎提供并用于改進(jìn)在運動估計期間使用的候選矢量。
具體實施例方式在所有附圖中,運動矢量用箭頭的頭位于矢量所對應(yīng)的塊的中心處示出,而且為了簡單起見,認(rèn)為對象具有點的大小。典型相機移動的示例圖3至圖6示出各種典型相機移動的示例,而且示出了期望產(chǎn)生的視運動矢量。圖3示出了在與屏幕的Y軸平行的方向上移動的相機。對于在點301處指出并在由矢量302所示的方向(即向下)上平移的相機,屏幕上的對象的視運動是向上的,如矢量303所示。對于沿著平行于屏幕平面的其他矢量的平移,存在類似的情況。圖4示出了在垂直于屏幕的方向上移動的相機。相機在點401處指出并向著場景移動。該場景中的對象的視運動因此是從中心向外的,如由矢量403和404所示的。更接近于屏幕中心的對象將具有更小的矢量,例如403,而更接近于屏幕邊緣的對象將具有更大的矢量,例如404。圖5示出了繞著大體上平行于屏幕的X軸的軸旋轉(zhuǎn)的相機。相機在點501處指出,并在向上方向上旋轉(zhuǎn),如502所示。屏幕上的對象的視運動是向下的,如矢量503所示。圖6示出了繞著大體上垂直于屏幕的軸旋轉(zhuǎn)的相機。相機在點601處指出并如602所示那樣旋轉(zhuǎn)。場景中的對象看起來沿著弧形移動而且運動矢量與弧形相切,諸如603和604。更接近于屏幕中心的對象將具有更小的矢量,例如603,而更接近于屏幕邊緣的對象將具有更大的矢量,例如604。3D幾何圖形三維計算機應(yīng)用(諸如游戲)中的幾何圖形典型地在齊次坐標(biāo)中給出。該表示將允許定義變換矩陣,該變換矩陣包括了相機位置的6個自由度(三個平移和三個旋轉(zhuǎn))。對于自然空間中的點P,對于相機空間中的相應(yīng)點q的變換由下式給出
Px
Pvp = J
Pz
I>! h r3 (C= ^ ^ ^ ^
r7 r8 r9 tz
0 0 0 1q=Cp在相機矩陣C中,項tx、ty和tz表示平移,以及項!T1至r9表示旋轉(zhuǎn)。本領(lǐng)域技術(shù)人員將意識到,該矩陣還能夠表示諸如縮放和剪切之類的變換,但是這些在相機變換中很少使用。然后由投影矩陣P給出q向齊性屏幕空間矢量r的投影,其中矢量d包括dx、dy和 dz,dx和dy是對屏幕的角的補償,dz是從相機到屏幕的距離
10 0 d:
0 I 0 dv尸=00 I 0
0 0及0r=Pq最后,除以齊次坐標(biāo)得到2D屏幕上的點s的位置。沒有示出比例因子,但是可能還需要該比例因子以將圖像正確地映射到顯示設(shè)備的坐標(biāo)系統(tǒng)上
「 n^JrwS= ,
Lrv/v典型地,深度緩沖器將存儲齊性深度坐標(biāo)rw。相機移動假設(shè)相機矩陣從Clri變成Cn,則必須解決的問題是確定當(dāng)前幀中的點Sn的之前幀中的屏幕空間位置Sm。隨后我們將看到對象Slri的實際屏幕空間位置可以如何區(qū)別于預(yù)測位置。Slri的計算可以通過第一次從Sn來重構(gòu)rn并將其變換回自然空間位置? 來實現(xiàn)。假設(shè)所述點在自然空間中沒有移動,即Pn=Plri,則之后可以使用以上所示的方法將點Plri變換回屏幕空間坐標(biāo)sn_lt)注意,為了從2D矢量Sn構(gòu)建4D矢量rn,我們必須使用來自其他位置的信息。齊性深度rw從深度緩沖器獲取。rz項看起來已經(jīng)丟失了,但是能夠被重新計算,因為我們從投影矩陣P知道rz=qz以及rw=qz/dz。在下面的等式中,注意,我們使用不同的投影矩陣Pn和Pn+以允許不可能的可能性,即投影可以在幀之間改變
Sxjt ■ rw,
S * r
rnv.n w.nK1= ■
_ _Pn^CrlP;lrnIV1=PlriClriPlri如果自然空間位置pn等于Plri,則rn_x =P _lC _lpn_l
權(quán)利要求
1.一種用于圖像序列的運動估計的方法,該方法包括以下步驟 a)確定表示所述圖像序列中的每對場或幀之間相機或觀察者位置和方向的移動的一個或多個運動矢量; b)確定用于從之前場或幀中的對象位置獲取場或幀中的對象位置的候選運動矢量集; c)使用表示相機或觀察者位置的移動的運動矢量調(diào)整所述候選運動矢量集;以及 d)使用調(diào)整的候選運動矢量集由運動估計獲取所述圖像序列的運動矢量集。
2.根據(jù)權(quán)利要求I所述的方法,其中,使用相機或觀察者位置的移動來調(diào)整所述候選運動矢量集通過由從由相機位置或方向的改變預(yù)測的所述運動矢量中獲取的量對常規(guī)搜索范圍進(jìn)行偏移來實現(xiàn)。
3.根據(jù)權(quán)利要求I或2所述的方法,其中,在運動估計進(jìn)程期間測試的矢量在由相機位置或方向的改變預(yù)測的所述運動矢量的方向上被偏置。
4.根據(jù)權(quán)利要求I、2或3中任一項權(quán)利要求所述的方法,其中,用于在運動估計過程期間從候選集中選擇矢量的得分函數(shù)被修改成與由相機位置或方向的改變預(yù)測的運動矢量相類似的有利候選矢量。
5.根據(jù)權(quán)利要求I所述的方法,其中,所述圖像序列中像素的深度信息用于計算因相機位置或方向的改變導(dǎo)致的預(yù)測運動。
6.根據(jù)權(quán)利要求5所述的方法,其中,由調(diào)整步驟獲取的每個候選運動矢量包括因相機位置或方向的改變導(dǎo)致的矢量與因場景中所述對象的移動導(dǎo)致的矢量之和。
7.根據(jù)權(quán)利要求6所述的方法,其中,從鄰近位置選擇的候選運動矢量不利用表示相機或觀察者位置的運動的矢量進(jìn)行調(diào)整。
8.根據(jù)權(quán)利要求7所述的方法,其中,候選運動矢量被存儲在由等于因場景中對象的移動導(dǎo)致的運動的分量的矢量所偏移的位置。
9.根據(jù)權(quán)利要求5或8所述的方法,其中,之前存儲在偏移位置的候選運動矢量的獲得進(jìn)一步由從因相機位置或方向的改變而計算的運動中獲取的量進(jìn)行補償。
10.根據(jù)權(quán)利要求5所述的方法,其中,所述場景的深度信息的可用性允許根據(jù)像素群的類似深度對所述像素群進(jìn)行分類。
11.根據(jù)權(quán)利要求10所述的方法,其中,運動估計處理針對多個像素群中的每個像素群而發(fā)生,以使每個像素群被分配不同的運動矢量。
12.根據(jù)權(quán)利要求11所述的方法,其中,分辨率比所述運動估計器通常操作的分辨率更高的深度信息的可用性允許以所述更高分辨率生成運動矢量場。
13.根據(jù)權(quán)利要求7所述的方法,其中,矢量候選的選擇從與當(dāng)前像素群共享類似深度的鄰近位置選擇矢量。
14.根據(jù)權(quán)利要求7所述的方法,其中,用于在所述運動估計進(jìn)程期間從候選集中選擇矢量的得分函數(shù)被修改成源自與當(dāng)前像素群共享類似深度的位置的有利候選矢量。
15.一種用于圖像序列的運動估計的設(shè)備,該設(shè)備包括 用于確定表示所述圖像序列中的每對場或幀之間相機或觀察者位置和方向的移動的一個或多個運動矢量的裝置; 用于確定用于從之前場或幀中的對象位置獲取場或幀中的對象位置的候選運動矢量集的裝置; 用于使用表示相機或觀察者位置的移動的運動矢量調(diào)整候選運動矢量集的裝置;以及 用于使用調(diào)整的候選運動矢量集由運動估計獲取圖像序列的運動矢量集的裝置。
16.根據(jù)權(quán)利要求15所述的設(shè)備,該設(shè)備包括用于通過由相機位置或方向的改變預(yù)測的量對常規(guī)搜索范圍進(jìn)行偏移的裝置。
17.根據(jù)權(quán)利要求15或16所述的設(shè)備,其中,由用于通過估計進(jìn)行獲取的裝置所測試的矢量在由相機位置或方向的改變所預(yù)測的所述運動矢量的方向上被偏置。
18.根據(jù)權(quán)利要求15、16或17中任一項權(quán)利要求所述的設(shè)備,其中,用于由通過運動估計進(jìn)行獲取的裝置從候選矢量集中選擇矢量的得分函數(shù)被修改成與由相機位置或方向的改變預(yù)測的運動矢量相類似的有利候選矢量。
19.根據(jù)權(quán)利要求15所述的設(shè)備,其中,所述圖像序列中的像素的深度信息用于計算因相機位置或方向的改變導(dǎo)致的預(yù)測運動。
20.根據(jù)權(quán)利要求19所述的設(shè)備,其中,由所述用于調(diào)整所述候選運動矢量集的裝置獲取的每個候選運動矢量包括因相機位置或方向的改變導(dǎo)致的矢量與因場景中所述對象的移動導(dǎo)致的矢量之和。
21.根據(jù)權(quán)利要求20所述的設(shè)備,其中,從鄰近位置選擇的候選運動矢量不利用表示相機或觀察者位置的運動的矢量進(jìn)行調(diào)整。
22.根據(jù)權(quán)利要求21所述的設(shè)備,其中,候選運動矢量被存儲在由等于因場景中對象的移動導(dǎo)致的運動的分量的矢量所偏移的位置。
23.根據(jù)權(quán)利要求19或22所述的設(shè)備,其中,之前存儲在所述偏移位置的候選運動矢量的獲得進(jìn)一步由從因相機位置或方向的改變而計算的運動中獲取的量進(jìn)行補償。
全文摘要
提供了用于圖像序列中的運動估計的方法和設(shè)備。確定表示圖像序列中的每對場或幀之間相機或觀察者位置或方向的移動的一個或多個運動矢量。然后確定用于從之前場或幀中的對象位置獲取場或幀中的對象位置的候選運動矢量集。該候選運動矢量集使用表示相機或觀察者位置的移動的運動矢量進(jìn)行調(diào)整,從而使用所調(diào)整的候選運動矢量集獲取用于圖像序列的運動矢量集。
文檔編號H04N5/14GK102771110SQ201180011195
公開日2012年11月7日 申請日期2011年2月18日 優(yōu)先權(quán)日2010年2月25日
發(fā)明者S·莫費特, S·菲什威克 申請人:想象技術(shù)有限公司