專利名稱:估計圖象中物體的位置的制作方法
技術領域:
申請文件中的至少一個實現與動態狀態估計相關。
背景技術:
動態系統涉及其狀態隨著時間變化而變化的系統。該系統表現為其狀 態為任意選擇的變量的集合,但是該狀態通常包括感興趣的變量。例如, 一個動態系統被用于表現一個視頻。例如,視頻可能描述一個網球比賽, 狀態可能被選擇用于網球的位置。該系統之所以為動態的是因為網球的位 置隨著時間而變化。令人感興趣的是估計該系統的狀態,即在視頻的一個新幀中網球的位置。
發明內容
根據本發明的一個總的方面, 一個軌跡被確定。該軌跡用于數字圖象 序列的一個特定圖象中的物體,并且該軌跡是基于該物體在數字圖象序列 的一個或多個在前圖象中的一個或多個在前位置。基于該軌跡到一個粒子 的距離,在用于追蹤物體的基于粒子的框架中確定該粒子的權重。使用基 于粒子的框架確定物體的位置估計,該位置估計基于確定的粒子權重。
下面結合附圖來闡釋一個或多個實現的細節。盡管這些實現是以某一 特定的方式來闡釋的,但是這些實現可以以其它不同的方式配置或者具體 化。例如, 一個實現做為方法執行,或者具體化為用于執行一個操作集合 的設備,或者具體化為用于存儲用于執行一個操作集合的指令的設備,或 者具體化為信號。通過結合附圖、權利要求和下面的具體描述來考慮本發 明,就能夠了解本發明的其它方面和特征。
圖1的塊圖示出狀態估計器的一個實現;
圖2的塊圖示出了用于實現圖1的狀態估計器的設備的一個實現; 圖3的塊圖示出了基于圖1狀態估計器估計的狀態用于編碼數據的系 統的一個實現;
圖4的塊圖示出了基于圖1狀態估計器估計的狀態用于處理數據的系 統的一個實現;圖5示例性的示出圖1狀態估計器的實現執行的各種功能; 圖6的流程圖示出用于在數字圖象序列的一個圖象中確定物體的位置 的方法的一個實現;
圖7的流程圖示出用于實現粒子濾波器的方法的一個實現;
圖8的流程圖示出了用于實現離子濾波器的另一個方法;
圖9的流程圖示出了用于實現圖8方法中動態模型的方法的一個實
現;
圖10的流程圖示出用于在粒子濾波器中實現包括計算運動估計的動 態模型的方法的一個實現;
圖11的流程圖示出了用于在粒子濾波器中實現測量模型的方法的一 個實現;
圖12示例性示出帶有阻擋的物體位置的投影軌跡的一個實施例;
圖13的流程圖示出了在使用粒子濾波器估計狀態后,用于確定是否 更新模板的方法的一個實現;
圖14的流程圖示出了在使用粒子濾波器估計狀態后,用于確定是否 更新模板和改進物體位置的方法的一個實現;
圖15示例性示出了相對于投影軌跡用于改進物體的估計位置的方法 的一個實現;
圖16的流程圖示出了用于估計物體位置的方法的一個實現; 圖17的流程圖示出了用于選擇位置估計的方法的一個實現; 圖18的流程圖示出了用于在粒子濾波器中確定粒子位置的方法的一 個實現;圖19的流程圖示出了用于確定是否更新模板的方法的一個實現; 圖20的流程圖示出了用于在粒子濾波器中檢測粒子阻擋的方法的一 個實現;
圖21的流程圖示出了基于粒子濾波器輸出的粒子,用于估計狀態的 方法的一個實現;
圖22的流程圖示出了用于改變物體的估計位置的方法的一個實現; 圖23的流程圖示出了用于確定物體位置的方法的一個實現。
具體實施例方式
一個或者多個實施方式提供了用于動態狀態估計的方法。 一個或者多 個實施方式提供了用于估計動態狀態的方法。 一個使用動態狀態估計實施 例被用來在幀間預測視頻的一個特征的運動。 一個視頻的例子是壓縮視 頻,例如,使用MPEG—2格式來壓縮的視頻。在壓縮視頻中, 一般只有幀 的子集才包括與幀相關的圖象的全部信息。包括全部信息的這類幀在MPEG 一2格式中被稱作I幀。大部分幀僅僅提供指示該幀和一個或多個鄰近幀 (例如鄰近I幀)的區別的信息。在MPEG-2格式中,該類幀被稱作P幀和B 幀。在保持數據壓縮的基礎上,提供足夠多的信息用于預測視頻中一個特 征的變化是一個挑戰。
例如,在運動賽事中的一個球可以是視頻的一個特征。這樣的球包括 網球、足球和籃球。本方法的一個應用實例被用來在一個多幀視頻的幀間 預測球的位置。這個球可以是相對較小的物體,例如,其占據的空間小于 30像素。視頻的特征的另一個例子是運動賽事中的運動員或者裁判員。在視頻幀之間追蹤(track)物體的運動的困難在于一個或者多個幀 內存在物體的阻擋(occlusion)。阻擋的一種形式為該物體隱藏在前景的 一個特征的后面。這種阻擋被稱作"實阻擋"(real occlusion)。例如, 在網球比賽中,網球可能從運動員的后面經過。這種阻擋有著多種方式, 比如,該物體被隱藏、阻礙或者覆蓋。在另一種情況下,阻擋可能以背景 的形式存在,并且該背景致使難于或者不能確定物體位置。這種阻擋被稱 作"虛阻擋"(virtual occlusion)。例如,網球可能在雜亂的背景前面 經過,比如人群,由于人群中包括很多和網球大小以及顏色都很接近的物 體,因此很難或者不能把網球從其它類似的物體中選擇出來。在另一個例 子中,網球可能在和網球有著同樣顏色的區域前面經過,因此這時也很難 或者不能確定網球的位置。包括雜亂的阻擋使得在粒子濾波器中生成粒子 的正確可能性估計變得困難。包括雜亂的阻擋經常導致物體追蹤的不確 定。
對于小物體或者快速移動的物體,這些問題通常變得更加嚴重。例如, 其中的一個原因是小物體的位置通常在視頻的連續圖象(例如幀)之中不 重疊。當物體位置不重疊時,物體本身也不重疊。這就意味著物體在兩個 連續圖象的時間間隔中移動了至少其本身寬度的距離。由于沒有重疊,通 常很難在下一個圖象中找到物體,或者沒有很大程度的把握在下個圖象中 找到物體。
物體追蹤的不確定并不僅限于小物體。例如, 一個雜亂的背景可能包 含與要追蹤的物體類似的特征。在這種情況下,無論物體大小有多少,都 會導致追蹤的不確定。確定物體是否被阻擋可能也是一個難題。例如, 一個用于確定物體阻
擋的已知方法是通常點/孤立點比(inlier/outlier ratio)。但是,在存 在小物體和/或雜亂背景的情況下,通常點/孤立點比可能也很難確定物體 是否被阻擋。
一個實現通過在基于粒子的框架(particle — based framework)中 形成度量面(metric surface)來解決這些難題。另一個實現通過在基于 粒子的框架中使用和計算運動估計來解決這些難題。還有一個實現通過在 可能性估計中使用多假設(multiple hypotheses)來解決這些難題。
在基于粒子的框架中,通常對很多粒子使用蒙特卡羅模擬(Monte Carlo simulation)。例如,這些粒子代表物體在一個幀中不同的可能存 在的位置。基于蒙特卡羅模擬確定的可能性,選擇出一個特定粒子。粒子 濾波器(particle filter, PF)是一個典型的基于粒子的框架。在粒子 濾波器中,生成一些代表可能狀態的粒子,這些可能狀態對應于物體在一 個圖象中可能存在的位置。在粒子濾波器中每一個粒子都和一個可能性 (也被稱作權重)相關聯。在粒子濾波器中,在一個或者多個再抽樣步 驟中排除掉帶有較低可能性或者較小權重的粒子。例如,代表粒子濾波器 的輸出的狀態可能是粒子的加權平均量。
在圖l所示的一個實現中,系統100包括狀態估計器110,該狀態估計 器可在計算機上實現。該狀態估計器110包括粒子算法模塊120、本地模式 模塊130和數量適配模塊140。粒子算法模塊120執行基于粒子的算法用于 估計動態系統狀態,例如,該算法為粒子濾波器。本地模式模塊130應用 本地查尋機制,例如,通過在PF的粒子上執行均值移動分析(mean-shiftanalysis)。數量適配模塊140修改基于粒子的算法使用的粒子數量,例如 通過對PF的粒子應用庫爾貝克一萊布勒距離(Kullback-Leibler distance, KLD)抽樣處理。在一個實現中,粒子濾波器根據粒子所在的 狀態空間的大小能夠實現自適應抽樣。例如,如果發現粒子存在于狀態空 間的很小一部分,則抽樣少量的粒子。如果狀態空間大或者狀態不確定性 高,則抽樣大量的粒子。模塊120 — 140可以單獨的實現或者集成到一個算 法中。
狀態估計器110把起始狀態150和數據輸入160做為輸入,并提供估計 的狀態170做為輸出。例如,可以通過起始狀態檢測器或者人工過程來確 定起始狀態150。通過考慮一個以數字圖象序列的一個圖象(例如視頻的 一個幀)中的一個物體的位置為其狀態的系統,本發明提供了更具體的例 子。在這樣的系統中,起始物體位置可以通過一個使用邊緣檢測和模板比 較的自動物體檢測方法來確定,或者通過用戶觀看視頻來人工確定。數據 輸入160可以是一個視頻圖象序列。估計的狀態170可以是在某一特定視頻 圖象中網球位置的估計。
圖2示出了用于實現圖1的狀態估計器110的示例性設備190。設備190 包括處理裝置180,處理裝置180用于接收起始狀態150和數據輸入160,以 及提供估計的狀態170做為輸出。處理裝置180對存儲裝置185進行存取, 存儲裝置185用于對數字圖象序列中的某一特定圖象相關的數據執行存 儲。
估計的狀態170可以被應用于多種用途。為提供進一步的上下文環境, 使用圖3和圖4來描述幾種應用實例。在圖3所示的一種實現中,系統200包括一個連接到發送/存儲裝置220 的編碼器210。編碼器210和發送/存儲裝置220可以使用計算機或者通信編 碼器來實現。編碼器210讀取由圖1中系統100的狀態估計器110提供的估計 狀態170,以及讀取由狀態估計器110使用的數據輸入160。編碼器210根據 多種編碼算法中一種或多種對數據輸入160編碼,并提供經過編碼的數據 輸出230給發送/存儲裝置220。
進一步地,編碼器210使用估計狀態170對數據輸入160的不同部分進 行有區別地編碼。例如,如果狀態所表示的為視頻中物體的位置,編碼器 210則使用第一編碼算法對與估計的位置相對的視頻的部分進行編碼,以 及使用第二編碼算法對不與估計的位置相對的視頻的另一部分進行編碼。 第一編碼算法可能比第二編碼算法提供更多的編碼冗余,從而估計的物體 的位置(最好是物體)在再生成的過程中會具有比視頻其它部分更多的細 節和更好的分辨率。
因此,低分辨率傳輸可以為被追蹤的物體提供較高的分辨率,從而允 許用戶更容易的觀看高爾夫比賽中高爾夫球。 一個這樣的實現允許用于在 較小的帶寬(低數據率)的情況下在移動設備上觀看高爾夫比賽。移動設 備可以是蜂窩電話或個人數字助理。通過使用低數據率對高爾夫比賽的視 頻進行編碼,從而把數據率維持在較低的水平,但是相對于圖象的其它部 分,額外的比特被用來編碼高爾夫球。
傳輸/存儲裝置220可能包括存儲裝置和傳輸裝置 的一個或多個。相 應地,傳輸/存儲裝置220讀取經過編碼的數據230,并或者傳輸數據230, 或者存儲數據230。在圖4所示的一個實現中,系統300包括連接到本地存儲裝置315和顯 示器320的處理裝置310。處理裝置310讀取圖1系統100的狀態估計器110提 供的估計的狀態170,以及讀取狀態估計器110使用的數據輸入160。處理 裝置310使用估計的狀態170來增強數據輸入160,并提供增強的數據輸出 330。處理裝置310可以把包括估計的狀態、數據輸入以及它們的元素的數 據存儲到本地存儲裝置315,并能從本地存儲裝置315中重新獲得這些數 據。顯示器320讀取增強的數據輸出330,并把這些增強的數據在顯示器320 上顯示出來。
在圖5中,圖400為動態系統的狀態的概率分布函數410。圖400示意性 地描述了狀態估計器110的一個實現執行的各種函數。圖400示出了在A、 B、 C和D級別處的一個或多個函數。
級別A示出了通過使用PF, 4個粒子A1、 A2、 A3和A4的生成。方便起見, 使用垂直虛線指示4個粒子A1、 A2、 A3和A4的每一個粒子在概率分布函數 410上對應的位置。
級別B示出了基于均值移動分析通過使用本地模式査尋算法,4個粒子 A1—A4到其對應粒子B1—B4的轉移。方便起見,使用垂直實線指示4個粒 子B1、 B2、 B3和B4的每一個粒子在概率分布函數410上對應的位置。使用 相應的箭頭MS1—MS4來圖形化地示意出粒子A1—A4中每一個粒子的轉移, 這些箭頭分別指示了從由粒子A1—A4指示的位置到由粒子B1—B4指示的 位置的粒子移動。
級別C示出了經過加權的粒子C2—C4,它們分別和粒子B2—B4有同樣 的位置。粒子C2—C4有著不同的大小,其大小指示了在PF中確定的用于粒子B2—B4的權重。級別C還反映出根據一個抽樣處理粒子數量的減少,例 如,該抽樣處理為KLD抽樣處理,其中,粒子B1在該抽樣處理中被丟棄。 級別D示出了在一個再抽樣處理中生成的三個新的粒子。如箭頭R所示 (R代表再抽樣),在級別D中生成的粒子的數量和級別C中生成的粒子數量 相同。
圖6示出了用于在數字圖象序列的圖象中確定物體位置的方法的處理 流程600。基于前幀的位置信息估計物體的軌跡605。本領域的技術人員知 曉軌跡估計方法。運行粒子濾波器610。下面會描述粒子濾波器的各種實 現。檢查由粒子濾波器的輸出預測的物體的位置是否被阻擋615。下面會 對用于檢査是否被阻擋的方法的實現進行說明。如果發現阻擋620,那么 使用車九跡投影禾口插值(trajectory projection and interpolation)來 確定一個位置625。下面會結合圖16說明位置確定的一個實現。如果沒有 發現阻擋,那么粒子濾波器的輸出被用于確定粒子位置630。如果沒有發 現阻擋,那么為了偏差(drift)對模板進行檢測635。偏差為在模板中的 變化,例如,物體變遠、變近或者顏色變化,會引起模板的變化。如果發 現偏差超過一個閾值635,那么就不更新物體模板640。因為大的偏差值意
味著存在粒子阻擋,所以這一措施將會很有用。基于粒子阻擋來更新模板 會致使差模板被使用。相反地,如果偏差沒有超過該閾值,則對模板進行 更新645。當小的變化(小的偏差值)發生時,這些變化在很大程度上是 發生在物體上的真實的變化,并且該變化也不是由于阻擋引起的。
圖7示出實現粒子濾波器的方法500。方法500包括從前一狀態 (previous state)中讀取粒子的一個起始集合和累積加權因子510。累積加權因子可以從一個粒子權重集合中生成,并且通常允許快速處理。值 得注意的是,當第一次執行方法500時,前一狀態為起始狀態,并且粒子 的起始集合和權重(累積加權因子)需要被生成。例如,該起始狀態可以 被用來做為圖1的起始狀態150。
再轉回圖7,對循環控制變量"it"進行初始化515,并在確定當前狀 態之前重復執行循環520。循環520使用循環控制變量"it",并執行 "iterate"次。在循環520中,對粒子的起始集合中的每一個粒子都單獨 使用一個循環525中進行處理。在一個實現中,對以網球比賽的視頻應用 PF用于追蹤網球。對于每一個新幀把循環520執行預先確定的次數(循環 重復變量"iterate"的值)。循環520的每一次執行都會改進粒子的位置, 從而,當為每一幀估計網球的位置的時,該估計被推定是基于良好的粒子。 循環525包括基于累積加權因子選擇粒子530。 一個選擇的方法是選擇 帶有最大權重的剩余的粒子位置。值得注意的是,同一個位置可能存在很 多粒子,在這種情況下,只需要對每一個位置執行一次循環525。然后, 循環525包括通過對選擇的粒子在狀態空間里預測一個新的位置來對粒子 進行更新535。該預測使用PF的動態模型。下文將會對這一步進行詳細地 說明。
動態模型以幀和幀之間物體狀態的變化為特征。例如,可以使用反映 物體運動量的運動模型或著運動估計。在一個實現中,帶有固定噪點變化 的固定常量速度模型(fixed constant velocity model with fixed noise variance)在過去的幀中被適應于物體的位置。
然后,循環525包括使用PF的測量模型確定更新的粒子的權重540。確定權重包括對觀測/測量的數據(例如當前幀的視頻數據)進行分析。繼 續以網球比賽為例,把當前幀中粒子指示位置的數據和網球前一個位置的 數據相比較。這個比較可能包括分析顏色直方圖或者執行邊緣檢測。基于 比較的結果確定這個粒子的權重。操作540也包括為粒子位置確定累積加 權因子。
然后,循環525包括確定是否有別的粒子要進行處理542。如果有更多 的粒子要進行處理,那么循環525要被重復執行,并且方法500跳轉到操作 530。在對粒子的起始集合(或者舊的集合)中的所有粒子執行完循環525 之后,更新粒子的一個完整的集合會被生成。
然后,循環520包括使用再抽樣算法來生成粒子的一個新的集合和新 的累積加權因子545。再抽樣算法是基于粒子的權重,從而關注帶有較大 權重的粒子。再抽樣算法生成粒子的一個集合,在這個集合中,所有的粒 子都具有相同的權重,但是很多粒子都位于某些位置上。因此這些位置一 般具有不同的累積加權因子。
再抽樣還可以減輕PF中常見的退化問題。有很多方法可以用于再抽 樣,比如多項再抽樣、剩余再抽樣、分層再抽樣和系統再抽樣。因為剩余 再抽樣對于粒子次序不敏感,所以一個實現使用剩余再抽樣。
循環520通過增加循環控制變量"it" 550和把"it"與重復變量 "iterate"比較555來繼續運行。如果還需要繼續運行循環520,則把粒 子的新的集合及其累積加權因子變為可使用560。
在把循環520執行"iterate"次后,這個粒子集合應該為良好的粒子 集合,并且確定當前的狀態565。通過對新的粒子集合中的粒子進行平均來確定新的狀態。
圖8說明了包括粒子濾波器的處理流程的另一個實現。其整體處理流 程與上面結合圖7介紹的處理流程類似。因此下面將不會詳細描述圖7和圖
8中相同的元素。方法800包括從前一狀態中獲取粒子的起始集合和累積加 權因子805。對循環控制變量"it"進行初始化810,并且在確定當前狀態 之前重復地執行循環。在該循環中,根據累積加權因子選擇出一個粒子。 該方法然后通過為該選擇出的粒子在狀態空間中預測一個新的位置來對 粒子進行更新820。該預測使用PF的動態模型。
然后,使用相關面(correlation surface)查尋粒子的本地模式, 例如基于SSD的相關面825。先識別出SSD的本地最小量(local minimum), 然后把粒子的位置改變為識別出的SSD的本地最小量。另一個實現使用合 適的表面識別這個表面的本地最大量(local maximum),然后把粒子的位 置改變為識別出的本地最大量。然后在測量模型中確定這個移動的粒子的 權重830。作為例子,下面將描述使用相關面和多假設來計算權重的方法。 如果有別的粒子要進行處理835,那么該循環返回去挑選一個粒子。如果 已經處理完所有的粒子,那么基于新的權重對粒子進行再抽樣,并且生成 一個新的粒子組840。增加循環控制變量"it"的值845。如果"it"小于 重復閾值850,那么該方法把舊的粒子組和新的粒子組進行轉換870,并且 重復上述處理過程。
如果所有的重復己經執行完畢,那么在獲得當前狀態之前還需要執行 一個步驟。在前幀中檢查用于物體的阻擋指示器(occlusion indicator) 855。如果阻擋指示器表明前幀中存在阻擋,那么考慮粒子的一個子集用于選擇當前狀態860。具體最大權重的粒子被選入到粒子的子集中。在一 個實施方式中,粒子的子集為帶有最大權重的一個粒子。如果具有相同的 最大權重的粒子數量超過l個,那么這些具有最大權重的粒子都被選入到 粒子的子集中。粒子的狀態可能被視為檢測狀態。之所以選擇出粒子的子 集,是因為阻擋降低了帶有較低權重的粒子的可靠性。如果阻擋指示器表 明前幀中不存在阻擋,那么新的粒子組的平均量會被用來確定當前狀態
865。在這種情況下,粒子的狀態是追蹤狀態。能夠認識到,根據粒子的 權重可能對平均量進行加權。還能夠認識到,可以使用除了平均量(比如 平均數)外的其它統計測量來確定當前的狀態。
圖9示出了圖8的動態模型820的一個實現900。在動態模型中,前幀中 的運動信息會被使用。通過使用前幀的運動信息,粒子將更加可能接近物 體的實際位置,從而提高效率、準確性或者兩者兼顧。在動態模型中,做 為一種替代方案,可以使用隨機行走來生成粒子。
動態模型可能使用用于小物體追蹤的狀態空間模型。例如,在時間t, 用于在數字圖像序列的一個圖象中追蹤小物體的狀態空間模型用公式表 達為-
,
其中,Zf表示物體狀態向量,^表示觀察向量,,和g表示兩個向
量值函數(分別為動態模型和觀察模型),^和《分別表示處理或動態噪 聲和觀察噪聲。在運動估計中,物體狀態向量被定義為X二 (x, y),其中
(x, y)是物體窗口中心的坐標。優選地,估計的運動從前幀的數據中獲
得,以及可能使用光流等式(optic lfow equation)估計出來。用F表示物體在時間t時候的圖象中估計的運動。動態模型可表示為
預測噪聲方差(variance of prediction noise)"可以從運動數據 中估計出來,例如從運動估計的錯誤測量中估計預測噪聲方差。可以使用 光流等式中的運動剩余。做為選擇地,預測噪聲方差可能為基于亮度的標 準,例如運動補償剩余;但是,基于運動數據的方法可能會優于基于亮度 數據的方差。
如塊905所示,為每一個粒子讀取一個存儲的阻擋指示器。阻擋指示 器指出物體在前幀中是否被阻擋。如果讀取的阻擋指示器指出物體被阻擋 910,那么在動態模型中不應用運動估計925。能夠認識到,阻擋會削弱運 動預測的正確性。粒子的預測噪聲方差值會被設置為最大量930。與之相 對地,如果讀取的阻擋指示器指出前幀中不存在阻擋,則使用運動預測來 生成粒子915。使用預測噪聲方差的方法從運動數據中估計預測噪聲方差 920。
圖10示出了抽樣前在粒子濾波器的動態模型中為每一個粒子執行的 處理流程的一個實現1000。最初,檢査內存中的阻擋指示器1005。該阻擋 指示器用于指示前幀中物體的阻擋。如果在前幀中發現物體被阻擋1010, 那么在動態模型中不使用運動估計1030,并且粒子的預測噪聲方差被設置 為最大量1035。如果存儲的阻擋指示器沒有指出物體在前幀中被阻擋,那 么執行運動估計1015。
運動估計可能基于在光流等式中使用以往幀中物體的位置。本領域的 技術人員知曉光流等式。運動估計之后,在由運動估計產生的粒子位置上 執行失敗檢測1020。多種度量方法可以用于失敗檢測。在一個實現中,計算模板對應的物體圖象和其中心位于從運動估計獲得的粒子位置周圍的 圖象塊之間的絕對亮度差的平均量。如果該平均量超過了一個選定的閾 值,那么該運動預測就被視為是失敗的1025,并且不為粒子使用運動預測
結果1030。粒子的預測噪聲方差可能被設置為最大量1035。如果運動預測 沒有被視為失敗,則運動預測結果被保存1040,把其做為該粒子的預測。 然后對預測噪聲方差進行估計1045。例如,可以使用光流等式來提供運動 剩余值,該運動剩余值可被用做預測噪聲方差。
圖11描述了使用測量模型計算粒子權重的一個實現。對每一個粒子執 行方法IIOO。方法1100以度量面的計算做為開始,例如,其可以是塊1105 指示的相關面。度量面被用來測量模板或目標模型和當前候選粒子間的差 別。在一個實現中,可以按照下文所述的方法來生成度量面。
用于模板和侯選粒子之間差別的度量可以是度量面,例如相關面。本 發明的一個實現使用了平方差總和(sum of squared differences, SSD) 面,其公式如下,
<formula>formula see original document page 20</formula>
其中,W表示物體窗口, Neib為物體中心A周圍小的周邊區域。T是物 體模板,I是當前幀中的圖象。在帶有雜亂背景的小的物體中,這個面不 代表準確的可能性估計。進一步的示例性的相關面如下<formula>formula see original document page 20</formula>
相關面的大小可能會不同。基于運動估計的質量,相關面的大小會有 所不同。其中,運動估計的質量可以確定做為方差的倒數。 一般地,運動估計質量越高,相關面就越小。
基于度量面生成用于粒子運動的多假設iiio。侯選假設和相關面的本 地最小量或者最大量相關聯。例如,如果J個SSD相關面的侯選在區域Neib
中被設別,那么J+1個假設被定義為 //0={。=C:_/ = 1, ...,/},
= (。 = r,c, = C:/ = Z#y二^ ... 乂
其中,。=7意味著第」'個侯選是真實匹配,。;e則相反。假設仏意
味著沒有一個侯選是真實匹配。在這個實現中,我們假設雜亂均勻地分布
在周邊區域Neib上。否則,面向真實匹配的測量(true match-oriented measurement)為高斯分布。
基于上述假設,與每一個粒子相關的可能性被表達為
尸o, i =《o"(.)+Cw Z!二力.w(。 , a )
其中,^為標準化因數,《。是假設仏的事前概率(prior
probability), ^是假設^的概率,j=l,…,J。相應地,通過多假設的 使用,使用SSD的可能性測量被進一步改進,從而能夠把雜亂納入到考慮范圍。
在塊1115中,估計響應分布方差(response distribution variance)。 執行用于確定粒子是否被阻擋的粒子阻擋確定。該粒子阻擋確定可以 依據基于亮度的評估1120,例如,平均差總和(sum of average differences, SAD)度量。該度量被用于比較物體模板和侯選粒子。本領域技術人員知曉 該基于亮度的評估。基于SAD,對那些很有可能被阻擋的粒子進行確定。阻擋的基于亮度的評估在計算量上相對簡便,但是在具有雜亂背景的情況 下,該評估可能不是很準確。通過設置一個大的閾值,通過使用基于亮度 的評估1125, 一些粒子會被確定為被阻擋的粒子。對于這些粒子,把它們 的權重設置為最小量1130。在這種情況下,有很大可能發生了阻擋。例如, 選擇一個閾值使其能夠識別不帶有雜亂的實阻擋的情況,但是識別不出其 它情況的阻擋。
如果基于亮度的評估指出沒有阻擋,則執行概率粒子阻擋確定1135。
概率粒子阻擋檢測可以基于生成的多假設和響應分布方差估計。生成一個
趨近于SSD表面的分布,并且基于該生成的分布,使用協方差矩陣的特征 值來確定阻擋的存在與否。下面將給出進一步的說明。
響應分布被定義用于在真實匹配位置上趨近于概率分布。換言之,粒
子位置是真實匹配位置的概率D為
D(A) = exp(-P'K義,)),
其中,p是標準化因子。標準化因子的選擇要使得能夠保證一個選擇
的最大量響應,比如最大量響應為0.95。從響應分布中構造的與測量^相
關的協方差矩陣^為
'LZ(w"'",力"-、)("力) S(wA",力("6)2」"
其中,(、,力)是每個侯選的窗口中心,^ "2^,力E他,力A"力是協 方差標準化因子。使用協方差矩陣《的特征值的倒數做為與侯選相關的置
信度量(confidence metric)。在一個實現中,把協方差矩陣《的最大特 征值與一個閾值相比較。如果最大特征值超過了該閾值,那么檢測為存在阻擋。響應于檢測出阻擋1140,賦予粒子最小有效權重1130,該最小有效
權重通常不為o。如果檢測出不存在阻擋,則計算一個可能性。
在一個實現中,如果檢測出阻擋,該方法在不考慮軌跡的前提下基于 亮度和運動生成粒子可能性,而不是把權重或者可能性設置為最小值。另 一方面,如果沒有檢測出阻擋,那么基于亮度生成粒子的可能性。
在一個實現中,將要賦予給粒子的權重至少部分基于粒子指示位置的 周邊的部分圖象的考慮。例如,對于一個給定的粒子,把物體模板的一個
片,如5X5的像素塊,和該粒子指示的位置以及其它區域相比較。該比較 可能基于絕對誤差總和(sum of absolute differences, SAD)矩陣或者直 方圖,對于大的物體尤其如此。把物體模板和粒子指示位置周圍的圖象相 比較。如果偏離位置比較(off-position comparison)顯示明顯的不同, 則賦予粒子一個較大的權重。另一方面,如果粒子指示的區域和其它區域 很相似,則相應地減少粒子的權重。基于比較,生成如SSD這樣的相關面 來對偏離位置區域建模。
如果確定的結果是粒子沒有被阻擋,則對軌跡可能性進行估計1145。 使用加權的確定來估計粒子權重1150。
加權的確定包括亮度可能性(例如,模板匹配),運動可能性(例如,
物體過去位置的線性外推)和軌跡可能性中的一個或多個。粒子濾波器可
能考慮這些因素來確定每一個粒子的可能性或權重。在一個實現中,我們
假設攝像機的運動不會影響軌跡平滑(trajectory smoothness),因而其
不會影響軌跡可能性。在一個實現中,粒子可能性的定義如下, I X,) = P(Z)加IX,)戶(Z廣'IX, )P(Z,'。 I)其中,Z'=『',Zm ^是基于ssD面的亮度測量,Z'自是運動可 能性,";是軌跡可能性。這三個值一般被認為是獨立的。本領域的技術
人員知曉亮度可能性P(z"1 D的計算。
基于粒子位置變化(速度)和當前幀內物體位置的平均變化的差值來 計算運動可能性
L -flA^-^ + flAM-M, t>1
其中,C^i,Ajrf是關于O^^J的粒子位置變化,C3^5)是選擇的當前
幀內的物體的平均速度,艮P,
因此,可以基于動態模型預測的位置和粒子位置之間的距離《。'(例 如,歐幾里德距離)來計算運動可能性。該計算公式如下,
在一個實現中,可以從粒子相對于軌跡的接近度中估計軌跡平滑可能 性,該軌跡基于視頻的當前幀中物體的一系列位置來計算。軌跡函數表達 為y二f (x),其參數形式如下,
其中,"'表示多項式參數,m是多項式函數的階(例如,m=2)。在軌 跡函數的計算中,公式可能被修改。第一種修改的情況為,如果在過去的 一個幀中物體位置對應為阻擋狀態,那么忽略或不考慮物體位置。第二 修改的情況為, 一個叫做遺忘因子的權重因子被計算用來對粒子相對于軌 跡的接近度進行加權。在其中物體被阻擋的幀的數量越多,估計的軌跡就越不可靠,相應地,遺忘因子也就越大。
遺忘因子只是一個置信值。用戶基于多方面的考慮為遺忘因子賦值。 例如,這些考慮包括前一圖像中物體是否被阻擋,在其中物體被阻擋的在 前的幀的數量,在其中物體連續被阻擋的在前的幀的數量,以及非阻擋數 據的可靠度。每一個圖象可能具有一個不同的遺忘因子。
在一個示例的實現中,給出如下的軌跡平滑可能性
,. i y-ocT p(z;。 i《)=Ti-eXpf L "丄 J)
",■ 2c^乂
其中,接近度的值為《。=|;; —/(X)I, ^是人為選擇的遺忘比率, 0〈、<1 (例如,~=0.9), t—ocl是在其中物體被阻擋的最近的幀的數量。
在一個實現中,如果確定在前一幀中物體被阻擋,則基于亮度可能性 和軌跡可能性來確定粒子可能性,在這里,粒子可能性的確定不考慮運動 可能性。如果確定在前一幀中物體沒被阻擋,則基于亮度可能性和運動可 能性來確定粒子可能性,在這里,粒子可能性的確定不考慮軌跡可能性。 通常這么做是有益的。這是因為當在前一幀中知道物體位置的時候,提供 軌跡限制通常帶來的好處比較少。并且軌跡限制的引進會破壞時間馬爾可 夫鏈假設,即,軌跡限制的使用使得后續的狀態依據幀中的狀態,而不是 依據前一幀。如果物體被阻擋或者運動估計被確定低于一個閾值,那么在 粒子可能性的確定中包括運動可能性不會有任何好處。在這個實現中,粒 子可能性表達如下,
其中,如果物體被阻擋,那么0,=0,否則其值為l。 圖12示出了相對于視頻幀中物體的位置對物體的軌跡進行適應。元素
251205、 1206和1207代表了一個小物體在視頻的三個幀中的位置。元素1205、1206和1207在一個區1208中,并且沒有被阻擋。元素1230和1231代表小物體在元素1205、 1206和1207代表的幀之后的兩個視頻幀中的位置。元素1230和1231在區1232中,并且確定為被阻擋,從而對于確定的位置有著等級很高的不確定性。因此,在圖12中,t—ocl=2。 1210為實際的軌跡。實際的軌跡被投影到一個預測的軌跡1220。
圖13示出了模板的一個實現的處理流程。在圖13處理流程的開始,估計物體的一個新的狀態。例如,可以使用粒子濾波器來進行估計。這個新的估計的狀態與物體在新的一個幀中的估計位置相對應。圖13的處理流程1300可以用來確定是否使用現有的模板估計下一幀的狀態。如步驟1305所示,在當前幀中物體新估計的位置上執行阻擋檢測。如果檢測出阻擋1310,則在內存中設置一個阻擋指示器1330。例如,該阻擋指示器的指示可能被粒子濾波器用于后續幀。如果沒有檢測出阻擋,那么處理流程繼續檢測偏差(drift) 1315。在一個實現中,偏差可能以新幀中物體的圖象和起始模板之間的運動剩余的形式存在。如果偏差超過一個閾值1320,則不更新模板1335。如果偏差沒有超過閾值,則使用當前幀的物體窗口更新模板。并且對物體運動參數也進行更新。
圖14的流程圖示出了用于更新物體模板和改進位置估計的處理流程1300的另一個實現。在處理流程1400中,在確定當前物體狀態后,對確定的物體位置和當前幀執行阻擋檢測1405。如果檢測出阻擋1410,則修改已經估計出的物體位置。因為阻擋會降低"確定的物體位置 計是有用的。在一個例子中,阻擋的確定可能是基于雜亂的存在,并且確定的物體位置可 能實際上是一些雜亂的位置。
通過使用和軌跡平滑相關的信息來實現修改。通過使用前幀的位置數 據的信息,物體位置被投影在一個確定的軌跡上1415。例如,可以采用使 用常速度的直線投影。對位置進行改進1420。
圖15示出了在軌跡上投影物體位置和改進該物體位置的過程。1505為 一條軌跡。位置1510代表先前的一個幀中物體的位置。數據點1515代表在 j時刻的一個先前幀中的位置^。數據點1520代表在i時刻的一個先前幀中 的位置《。數據點1510、 1515和1520代表了沒有被阻擋的物體位置,因此, 其為相對高質量的數據。數據點1525、 1530、 1535和1540代表了物體在先 前幀中的位置,但是都遭受了阻擋。相應地,這些數據點在軌跡計算過程 中或者被忽視或者被賦予小的權重。軌跡1505通過適應這些數據點被生 成,其中,這些數據點中的一些數據點因為阻擋而被加權。
使用直線和常速度來執行在時刻為cur的當前幀中物體位置的起始計 算。其使用的公式如下
<formula>formula see original document page 27</formula>
這是一個直線投影1550 (也被稱為線性外推)。通過使用直線預測獲 得當前幀的估計的起始位置1545 (也被稱為線性位置估計)。然后,當前
幀的估計的起始位置被投影到計算后的軌跡的位置A"r (也被稱為投影 點)。^"r是軌跡上距離Z,最近的點。該預測使用的公式如下<formula>formula see original document page 27</formula>
其中,^是遺忘比率,0<々<1 (例如,、=0.9), t—ocl是從上一次物體可見開始在其中物體被阻擋的幀的數量。在一個實現中,投影可能為 Z,和^^之間以內插值替換的軌跡上的一點。因而,投影將位于^^和 之^之間的一條線上。在這個實現中,投影表示如下
在圖15中,物體在最近的兩個幀中被阻擋,這兩個幀為1530和1535。 因此,t_ocl=2。通過應用這個公式,物體位置被移動到軌跡和直線投影 之間的一個位置。t一ocl的值越大,軌跡就越不確定,相應地,物體位置 也就越接近直線投影。在圖15給出的例子中,確定了以內插值替換的位置 1540。因為位置1540在被阻擋區1560中,因此位置1540被阻擋。
再轉回到圖14,當阻擋檢測結果為沒有阻擋的時候,下面對其后續流 程進行說明。確定物體模板的偏差1425。通過對當前模板和起始模板應用 運動估計來檢測模板的偏差。比較它們的結果。如果在應用運動估計后兩 個模板之間的差值超過一個閾值1430,則存在著偏差。在該情況下,則不 對先前模板進行更新1445,并獲得一個新的模板。如果差值不超過該閾值, 則對模板進行更新1435。
這個處理流程中也包括了對內存中的阻擋指示器進行更新1440。在對 后一幀進行位置估計的時候,在粒子濾波器中對前一幀的阻擋指示器進行 檢測。
圖16示出了方法1600。該方法包括在用于追蹤物體的基于粒子的框架 中生成度量面1605。該度量面與數字圖象序列中的某一特定圖象相關。基 于該度量面,生成該圖象的物體位置的多假設1610。基于多假設的概率估 計物體的位置1615。在圖17中,方法1700包括對用于數字圖象序列的某一特定圖象中物體 的運動估計進行評估1705,該運動估計基于該數字圖象序列的前一個圖 象。基于計算的結果為該物體選擇至少一個位置估計1710。該位置估計為
用于追蹤物體的基于粒子的框架的一部分。
在圖18中,方法1800包括在用于在數字圖像序列的圖象之間追蹤物體 的基于粒子的框架中選擇一個粒子1805,該粒子有一個位置。方法1800還 包括讀取一個面,該面指示了一個或多個粒子與物體相匹配的程度1810。 方法1800還包括在該面上確定一個位置1815,這個位置與所選粒子相關, 并且這個位置還指示了所選粒子與物體相匹配的程度。方法1800還包括把 確定的位置與該面的本地最小量或者本地最大量相關聯1820。方法1800還 包括對應著確定的本地最小量或者本地最大量對所選粒子的位置進行移 動1825。
在圖19中,方法1900包括為數字圖象序列中的物體生成一個物體模板 1905。方法1900還包括在數字圖象序列的一個特定圖象中生成估計的物體 位置,其中,通過使用基于粒子的框架來生成該估計。把物體模板與在估 計位置處的圖象部分相比較1915。基于比較的結果來確定是否對物體模板 進行更新1920。
在圖20中,方法2000包括在用于在數字圖象序列的圖象之間追蹤物體 的基于粒子的框架中,執行基于亮度的評估來檢測阻擋2005。在一個實現 中,基于亮度的評估可能是基于數據關聯。如果沒有檢測出阻擋2010,則 執行概率評估來檢測阻擋2015。在一個實現中,概率評估可能包括上述的 基于相關面的方法。選擇性地存儲阻擋檢測處理結果的指示器2020.在圖21中,方法2100包括選擇有效粒子的一個子集用于在數字圖像序
列的圖象之間追蹤物體2105。在一個實現中,如圖21所示,選擇具有最高 可能性的粒子。基于所選的粒子的子集對狀態進行估計2110。
在圖22中,方法2200包括確定數字圖像序列的某一幀中估計的物體位 置是否被阻擋2205。為該物體估計軌跡2210。基于估計的軌跡改變估計的 物體位置2215。
在圖23中,方法2300包括確定一個物體軌跡2310。例如,物體在數字 圖象序列的某一特定圖象中,并且軌跡是基于數字圖像序列中一個或者多 個在前圖象中的一個或多個在前位置。方法2300還包括基于粒子到軌跡的 距離確定粒子權重2320。例如,該粒子在用于追蹤物體的基于粒子的框架 中被使用。方法2300還包括基于確定的粒子權重確定物體位置2330。例如, 可以使用基于粒子的框架來確定物體位置。
例如,本發明的實現可以用于生成物體的位置估計。位置估計可以被 用于對包含物體的圖象進行編碼。編碼可能使用MPEG—1、 MPEG—2、 MPEG —4、 H. 264或其它編碼技術。可以在信號介質或者處理器可讀介質上提供 位置估計或者編碼。這些實現也可被修改用于非物體追蹤的應用或者非視 頻的應用。例如,狀態代表的是一個特征而不是物體位置,并且其也不必 和物體有關。
這里所描述的實現可以實現在方法、流程、設備或者軟件程序中。即 使僅僅以某一種形式對實現進行了描述(例如,僅僅使用方法進行描述), 實現還可以以其它形式進行實現(例如,設備或者程序)。例如,設備可 以在適當的硬件、軟件和固件中實現。方法可以在一個設備中實現,例如,設備為處理器。處理器一般也被稱作處理裝置。其通常包括計算機、微處 理器、集成電路和編程邏輯裝置。處理裝置還包括通信裝置,例如,計算 機、蜂窩電話、移動數字助理/個人數字助理,和其它用于終端用戶間信 息交換的裝置。
本發明描述的各種處理流程和特征的實現可能被包含在各種設備或 者應用中。例如,與數據編解碼相關的設備或者應用。設備的例子包括視 頻編碼器、視頻解碼器、視頻編解碼器、網絡服務器、機頂盒、筆記本、
個人電腦、蜂窩電話、個人數字助理和其它通信設備。應該清楚的是,設 備可以是移動的,甚至可以安裝到移動的交通工具中。
此外,可以通過可由處理器執行的指令來實現本發明的方法,并且這 些指令可以被存儲在處理器可讀介質上,例如,集成電路,軟件載體或者
其它存儲設備,例如,硬盤、光盤、隨機存取存儲器(random access memory, RAM)或者只讀存儲器(read-only memory, R0M)。這些指令可以形成應 用軟件,然后有形地存儲在處理器可讀介質上。指令可以存在于硬件、固 件、軟件及其組合中。指令可以在操作系統、單獨的應用程序或者兩者的 組合中被發現。處理器表現為用于執行處理流程的裝置或者包括具有執行 處理流程指令的計算機可讀介質的裝置。
本領域的技術人員能夠認識到,本發明的實現能夠生成信號,用于承 載被存儲或傳輸的信息。其中,信息包括用于執行方法的指令或者由上文 描述的一個實現產生的數據。信號可以被格式轉換為電磁波(例如,使用 頻譜的射頻部分)或基帶信號。格式轉換步驟可能包括對數據流進行編碼, 以及使用編碼后的數據流對載波進行調制。信號承載的信息可能為模擬信息或者數字信息。信號可能在多種不同的有線鏈路或者無線鏈路上傳輸。
本發明描述了多種實現。但是,應該認識到,可以對這些實現做不同
的修改。例如,不同的實現的組成部分可以組合、添加、修改或者移除,
從而生成其它的實現。另外,本領域的技術人員能夠認識到可以使用其它
結構和處理流程來代替本發明描述的結構和流程,并且能夠至少能夠以基
本相同方式,實現基本上相同的功能,并達到基本相同的效果。相應地,
這些實現能夠被發明所預見,并且被本發明的權利要求的保護范圍所覆 生
權利要求
1.一種方法,包括確定數字圖像序列的一個特定圖象中的物體的軌跡,所述軌跡基于在所述數字圖像序列的一個或多個在前圖象中的一個或多個在前的物體位置;在用于追蹤物體的基于粒子的框架中為一個粒子確定一個權重,所述權重的確定基于所述軌跡到所述粒子的距離;和使用所述基于粒子的框架為所述物體確定一個位置估計,所述位置估計基于確定的粒子權重。
2. 如權利要求l所述的方法,進一步包括 確定包括所述物體的位置估計的所述特定圖象的物體部分; 確定和所述物體部分相分離的所述特定圖象的非物體部分;和 對所述物體部分和所述非物體部分進行編碼,使得所述物體部分的編碼比所述非物體部分的編碼帶有更多的編碼冗余。
3. 如權利要求l所述的方法,其中,所述物體足夠的小,使得所 述物體的一個或多個在前位置在一個圖象中互相不重疊。
4. 如權利要求l所述的方法,其中,在所述基于粒子的框架中為 所述粒子確定權重也基于下面的一個或多個在所述數字圖像序列的一個或多個在前圖象中的一個或多個在前 的物體位置的線性外推;和一個模板和對應于粒子位置的所述特定圖象的部分的比較。
5. 如權利要求l所述的方法,其中,確定的軌跡是非線性的。
6. 如權利要求l所述的方法,其中,用于確定所述軌跡的一個或 多個在前的物體位置是非阻擋的位置。
7. 如權利要求l所述的方法,其中,所述軌跡的確定至少部分地 基于所述數字圖像序列的在前圖象中加權后的物體阻擋出現率。
8. 如權利要求l所述的方法,其中,在生成軌跡的過程中不考慮在所述數字圖像序列的在前圖象中處于阻擋狀態的物體位置。
9. 如權利要求l所述的方法,其中,使用和在一個或多個在前圖象中的物體阻擋相關的信息對估計的軌跡的可靠性進行加權。
10. 如權利要求1所述的方法,其中所述物體的大小小于30像素。
11. 如權利要求1所述的方法,其中,所述基于粒子的框架包括 粒子濾波器。
12. 如權利要求l所述的方法,其中所述方法被實現在編碼器中。
13. —種設備,包括存儲裝置,用于存儲和數字圖象序列相關的數據;和 處理器,用于(1)確定數字圖象序列的一個特定圖象中物體的軌 跡,所述軌跡基于在所述數字圖象序列的一個或多個在前圖象中的一 個或多個在前的物體位置;(2)在用于追蹤物體的基于粒子的框架中 為一個粒子確定一個權重,所述權重的確定基于所述軌跡到所述粒子 的距離;和(3)使用所述基于粒子的框架為所述物體確定一個位置估 計,所述位置估計基于確定的粒子權重。
14. 如權利要求13所述的設備,進一步包括編碼器,所述編碼器 包括所述存儲裝置和所述處理器。
15. —種處理器可讀介質,包括存儲在所述處理器可讀介質上的 指令,所述指令用于執行確定數字圖像序列的一個特定圖象中的物體的軌跡,所述軌跡基 于在所述數字圖像序列的一個或多個在前圖象中的一個或多個在前的 物體位置;在用于追蹤物體的基于粒子的框架中為一個粒子確定一個權重,所述權重的確定基于所述軌跡到所述粒子的距離;和使用所述基于粒子的框架為所述物體確定一個位置估計,所述位 置估計基于確定的粒子權重。
16. —種設備,包括用于存儲和數字圖象序列相關的數據的裝置;和 用于執行如下步驟的裝置(1)確定數字圖象序列的一個特定圖象中的物體的軌跡,所述軌跡基于在所述數字圖象序列的一個或多個在前圖象中的一個或多個在前的物體位置;(2)在用于追蹤物體的基于粒子的框架中為一個粒子確定一個權重,所述權重的確定基于所述軌跡到所述粒子的距離;和(3)使用所述基于粒子的框架為所述物體 確定一個位置估計,所述位置估計基于確定的粒子權重。
全文摘要
本發明的一個實現提供了一種用于確定數字圖象序列的某一特定圖象中的物體的軌跡的方法,該軌跡基于該序列的一個或多個在前圖象中的一個或多個在前的物體位置;在用于追蹤物體的基于粒子的框架中,基于軌跡到一個粒子的距離確定該粒子的權重;使用該基于粒子的框架為物體確定位置估計,該位置估計基于確定的粒子權重。
文檔編號G06T7/20GK101681517SQ200780043400
公開日2010年3月24日 申請日期2007年11月30日 優先權日2006年12月1日
發明者瓊·利亞奇, 宇 黃 申請人:湯姆遜許可公司