專利名稱:使用多種線索對多個人的自動探測和追蹤的制作方法
技術領域:
本發明涉及影像和/或音頻處理,和/或計算機視覺,尤其是涉及對多個人的自動探測和追蹤。
背景技術:
分析視頻數據的系統變得越來越流行了。視頻會議系統就是這種系統的實例——它們允許進行視覺互動的會議,盡管與會者可能位于不同的地理位置。典型情況下,視頻會議的視覺方面使它比電話會議更加引人入勝,而同時與一個或多個參加者必須旅行到會議地點才能親自到會相比,這也是花銷更低的一種替代形式(典型情況下,也能夠以更短的通知來實現)。
某些當前的視頻會議系統使用自動的基于音頻的探測技術和/或預置來移動攝像頭(例如使攝像頭搖攝或俯仰)。然而,當前的視頻會議系統存在著許多問題。一個這樣的問題是,基于音頻的發言者探測技術的準確度不高。另外,典型情況下,視頻會議系統不知道會場上有多少參加者(包括參加者進入或離開會場時)、參加者位于何處(坐或立)以及哪個參加者正在發言。雖然某些系統可以手工設定參加者的信息(例如參加者的數目及其位置),但是這就需要用戶進入設定的信息范圍,它勢必限制與會者在房間內移動的能力,以及與會者加入會議的能力。
本文中介紹的多個人的自動探測和追蹤,有助于解決這些和其它的問題。
發明內容
本文介紹多個人的自動探測和追蹤。
一方面,接收內容(例如音頻和/或視頻)的一幀,并且在該幀中為了一個新的面孔區域而確認一個或多個候選區域。然后使用分級驗證法來驗證某個人的面孔是否在候選區域中,如果分級驗證法驗證了一個人的面孔是在候選區域中,就產生該候選區域包括一張面孔的一個標記。驗證了區域之后,在內容中一幀一幀地使用多個線索來追蹤每個驗證后的面孔。
一方面,在這種探測和追蹤的框架中有三個主要的模塊自動初始化模塊、分級驗證模塊和多線索追蹤模塊。由自動初始化模塊來接收內容(例如音頻和/或視頻)的一幀,并且在該幀中為了一個新的面孔(或其它目標)區域而確認一個或多個候選區域。然后使用分級驗證模塊驗證某個人的面孔是否在候選區域中,如果分級驗證模塊驗證了一個人的面孔是在候選區域中,就產生該候選區域包括一張面孔的一個標記。區域經過驗證之后,多線索追蹤模塊在內容中一幀一幀地使用多個線索來追蹤每個驗證后的面孔。在整個追蹤過程中,被追蹤的面孔由分級驗證模塊持續地驗證。如果置信度水平高,多線索追蹤模塊就保持該面孔的追蹤;如果置信度變低了,就終止特定面孔的追蹤。追蹤模塊和驗證模塊等待初始化模塊供應更多的候選區域。
附圖簡要說明本文檔中自始至終使用同樣的號碼表示類似的組件和/或特性。
圖1展示了一種示范環境,其中能夠使用穩健的自動確認和追蹤。
圖2展示了另一種示范環境,其中能夠使用穩健的自動確認和追蹤。
圖3展示了使用穩健的自動確認和追蹤的一種示范系統。
圖4是一個流程圖,展示了一個示范過程,用于為新的面孔區域探測候選區域。
圖5是一個流程圖,展示了一個示范過程,使用基于運動的初始化,為新的面孔區域確認候選區域。
圖6展示了視頻內容的一幀的一個示范影像。
圖7是一個流程圖,展示了一個示范過程,用于執行分級驗證。
圖8展示了一個示范過程,用于基于色彩的快速驗證。
圖9是一個流程圖,展示了一個示范過程,用于執行多線索追蹤。
圖10更詳細地展示了一個示范的模擬和比較,用于多線索追蹤。
圖11是一個影像,展示了區域平滑的概念。
圖12展示了從圖11測出的亮度。
圖13展示了圖形匹配距離的一種示范計算。
圖14展示了對某個目標從一幀到下一幀的示范追蹤。
圖15是一個流程圖,展示了一個示范的無氣味微粒濾波器過程。
圖16展示了一種示范的多話筒環境。
圖17展示了一種示范的通用計算機環境。
具體實施例方式
本文介紹對多個人的自動探測和追蹤。分析視頻內容和/或音頻內容,以自動探測內容的各幀中的個人。一旦探測到,就在后續的幀中自動追蹤這些人。如果對某個人的追蹤中斷了,就再次自動探測這個人,并恢復對這個人的追蹤。
圖1和圖2展示了示范的環境,其中能夠使用穩健的自動確認和追蹤。在圖1中,多(n)個視頻會議系統102能夠相互對一個或多個進行音頻和/或視頻內容的通信。在視頻會議系統102中可以使用為數眾多的不同攝像頭系統,比如常規的搖攝/俯仰/變焦攝像頭、360度全景攝像頭(例如能夠數字地而不是機械地搖攝/俯仰/變焦的攝像頭)等等。一種這樣的360度全景攝像頭系統使用一個指向拋物線鏡面設備的攝像頭,然后使用多種標定技術消除影像的扭曲,獲得若干正常的影像,由這些影像能夠構造攝像頭周圍的360度全向影像。這種360度全景攝像頭系統的一個實例,可以參見發明者Yong Rui、Anoop Gupta、Johnathan J.Cadiz和Ross G.Cutler 2001年6月14日提交的、標題為“Automated Online Broadcasting System andMethod Using an Omni-Directional Camera System for ViewingMeetings Over a Computer Network”的待批準美國專利申請書09/681843號。另一種這樣的360度全景攝像頭系統使用多個攝像頭(每一個都具有小于360度的視野),其排列方式使它們能夠一起提供接近360度的視野。
會議系統102中的每一個都包括追蹤模塊104,它穩健地自動探測和追蹤在對應系統102的多個人。這種探測和追蹤能夠用于多種目的,比如使攝像頭俯仰/搖攝/變焦、突出某個人(例如采用一個箭頭指向這個人或者采用一個圓圈圍繞這個人)等等。
視頻會議系統102能夠以為數眾多的方式中的任何一種連接在一起。例如,可以使用一條或多條電話線路(包括數字線路,比如ISDN),將多個系統102連接在一起,或者直接連接,或者通過某個中心設備或位置,可以使用常規的數據網絡(例如因特網、內聯網等等)將多個系統102連接在一起,等等。
在圖2中,系統112包括追蹤模塊114,它接收內容116。典型情況下,內容116是音頻/視頻內容,但是也可能包括其它類型的內容(例如共享的白板等等)以及/或者可能不包括音頻內容或視頻內容。追蹤模塊114分析內容116,并根據內容116中多個人的影像和/或音頻,穩健地自動探測和追蹤這些人。能夠以為數眾多的方式中的任何一種,使內容116可為系統112可用,比如系統112的攝像頭和話筒、記錄著內容的記錄介質(例如磁帶、光盤等)、電話線路或網絡輸入等等。
圖3展示了使用穩健的自動確認和追蹤的一種示范系統130。系統130可能是——例如——圖1的視頻會議系統102或者圖2的系統112中的任何一種。系統130包括探測和追蹤模塊132、通信模塊134、音頻捕捉模塊136和視頻捕捉模塊138。還可以包括多種其它模塊(未顯示),比如白板捕捉模塊。通信模塊134管理系統130與其它系統的通信,比如其它的、圖1的視頻會議系統102,或者可以從其接收要分析之內容的其它設備。通信模塊134能夠支持為數眾多的常規的和/或專有的協議。
在系統130中,音頻捕捉模塊136管理音頻內容的捕捉,比如通過一個或多個話筒(未顯示)——系統130的一部分。還可以進行進一步的處理(例如使用聲束形成技術)以提高音頻的質量。音頻內容轉換為數字格式(如果需要)并使探測和追蹤模塊132可用它來追蹤。在系統130中,視頻捕捉模塊138管理視頻內容的捕捉,比如通過一個或多個視頻捕捉設備(例如模擬或數字視頻攝像頭(未顯示))——系統130的一部分(可能包括——例如——固定攝像頭、常規的搖攝/俯仰/變焦攝像頭、360度全景攝像頭等等)。然后,捕捉的視頻內容幀轉換為數字格式(如果需要)并使探測和追蹤模塊132可用它來探測和追蹤若干個人。音頻和視頻內容相互相關(例如在捕捉的時間),因此對于內容的任何特定部位(例如某幀),視頻和音頻內容都是已知的。在另一個實施例中,可能不包括模塊134、136和138中的一個或多個。例如,系統可能不包括或者視頻捕捉模塊138,或者音頻捕捉模塊136。
探測和追蹤模塊132包括自動初始化模塊140、分級驗證模塊142、多線索追蹤模塊144和面孔/候選區域追蹤列表146。探測和追蹤模塊132自動探測視頻內容中包括或者可能包括人面孔的若干區域,并使用多種線索來追蹤探測到的區域。探測和追蹤模塊132能夠探測包括面孔和面孔候選區域的多個區域,并且同時追蹤這些區域。
探測和追蹤模塊132分析內容的部位,比如幀。例如,典型情況下視頻內容捕捉為每秒若干幀(例如靜止影像)(典型情況下在每秒15-60幀的量級,盡管可以使用其它速率)。這些視頻幀,以及對應的音頻內容(例如每1/15至1/60秒的音頻數據)用作模塊132探測和追蹤所用的幀。記錄音頻時,典型情況下音頻的采樣率比視頻高得多(例如盡管對于視頻每秒可能捕捉15至60幅影像,卻可能要捕捉數千個音頻樣點)。這些音頻樣點可能以各種不同的方式對應于視頻中特定的一幀。例如,從捕捉某視頻幀到捕捉下一視頻幀之間的音頻樣點,可以是對應于該視頻幀的音頻幀。通過另一個實例,以視頻捕捉幀為中心時間的音頻樣點,可以是對應于該視頻幀的音頻幀(例如,以每秒30幀捕捉視頻,音頻幀的范圍可能是從捕捉視頻幀之前的1/60秒至捕捉視頻幀之后的1/60秒)。
此外,在某些情況下可能沒有視頻內容。在這些情況下,就能夠以為數眾多的方式,由采樣后的音頻產生音頻內容的幀。例如,每1/30秒或1/60秒的音頻樣點可以組成音頻內容的幀。
在某些情況下,音頻內容可能包括并不直接對應于視頻內容的數據。例如,音頻內容可能是音樂的音軌,而不是視頻內容中人們的語音。在這些情況下,本文中介紹的探測和追蹤依賴于視頻內容,而無需音頻內容。
雖然本文的主要討論是關于使用視頻和音頻內容,但是探測和追蹤模塊132也可以僅僅根據視頻內容或者僅僅根據音頻內容而操作。在沒有音頻內容的情況下,就不執行下面討論的處理音頻內容的過程。同樣,在沒有視頻內容的情況下,就不執行下面討論的處理視頻內容的過程。
面孔/候選區域追蹤列表146保持的信息用于每個探測的區域,其中包括或者可能包括某個人的面孔。這些可能包括某個面孔但是面孔的存在尚未驗證的區域,被稱為候選區域。在展示的實例中,由中心坐標148、邊界框150、追蹤持續時間152和上次驗證后的時間154來描述每個區域。由一個中心坐標和一個邊界框,來規定包括若干面孔或面孔候選者的視頻內容區域。中心坐標148表示該區域的近似中心,而邊界框150表示圍繞該中心坐標的矩形區域。這個矩形區域就是包括某個面孔或面孔候選者、并被探測和追蹤模塊132追蹤的區域。追蹤持續時間152表示該區域中的面孔或面孔候選者已經被追蹤了多長時間,而上次驗證后的時間154表示多長時間以前該區域中的面孔或面孔候選者被(驗證模塊142)驗證過(如下面更詳細的討論)。
如列表146中所展示的、描述每個區域的信息僅僅是示意性的,也可以使用多種其它信息。例如,可能不包括中心坐標148。通過另一個實例,可以使用不同于矩形的區域形狀,比如圓、橢圓、三角形、五邊形、六邊形或者不規則的形狀。
追蹤列表146既記錄著若干面孔,又記錄著若干面孔候選者,它們能夠以多種方式相互區分。例如,可以保持兩個字列表(一個確認面孔,另一個確認面孔候選者),或者可以增加另外的字段以便把每個字段標示為面孔或面孔候選者,或者可能是在上次驗證后的時間154中固有的(例如,若是這個值為空格,就表示該區域尚未被驗證為包括某個面孔,因此為面孔候選者)。另外,也可以包括多個列表,而不是單一的列表146(例如,一個列表用于面孔,另一個列表用于面孔候選者)。
在運行期間,探測和追蹤模塊132一幀一幀地分析內容。對于每一幀,模塊132激活自動初始化模塊140,它用于為新的面孔區域探測候選者。每個這樣的候選者都是視頻內容的某個區域,它可能包括某個新的面孔(換句話說,某個目前還沒有被追蹤的面孔)。一旦探測到,一個候選區域就傳遞到分級驗證模塊142,它接著驗證候選區域是否確實包括一個面孔。分級驗證模塊142為每個候選區域產生一個置信度水平,并且如果置信度水平超過某個閾值,就確定保持該候選區域作為一個面孔區域,在追蹤列表146中增加該區域的一個描述。如果置信度水平不超過該閾值,分級驗證模塊142就放棄該候選區域。
多線索追蹤模塊144對追蹤列表146中已確認之區域中的每一個進行追蹤。追蹤模塊144使用多種視覺線索,在內容中一幀一幀地追蹤若干區域。被追蹤區域中的面孔中的每一個,都是某個人的至少一個部位的影像。典型情況下,在產生該內容時人們能夠移動,比如站起、坐下、走動、坐在椅子上活動等等。模塊132不是在內容的每一幀中執行面孔探測,而是一幀一幀地追蹤包括面孔(一旦探測到后)的區域,典型情況下,它的計算成本低于面孔探測。
包括追蹤列表146中某個面孔的每個區域,除了被追蹤之外,還要由分級驗證模塊142重復地再驗證。多線索追蹤模塊144,或者也可能是分級驗證模塊142,可以確定何時一個區域要由模塊142進行再驗證。可以按規則的或不規則的間隔對區域進行再驗證。再驗證某個區域時,分級驗證模塊142為該區域產生一個新的置信度水平,并把該置信度水平與閾值進行比較。如果新的置信度水平超過閾值,那么使該區域的上次驗證后的時間154復位,并且該區域留在追蹤列表146中。然而,如果新的置信度水平不超過閾值,那么該區域便從追蹤列表146中刪除。
應當注意,可能會發生多線索追蹤模塊144丟失其追蹤的情況。分級驗證模塊142通過確認對包括某個面孔之區域的追蹤何時丟失(例如,該區域的置信度水平很低),來解決這些問題。這就允許自動初始化模塊140重新探測該區域,并繼續追蹤重新探測到的區域。
自動初始化自動初始化模塊140使用一種或多種技術為新的面孔區域探測候選區域。這些技術包括基于運動的初始化、基于音頻的聲源定位以及快速的面孔探測。基于運動的初始化模塊156使用幀間差異(視頻內容的兩幀或更多幀之間的差異)來探測運動,并確定其中探測到運動的區域是否包括一個面孔。基于音頻的初始化模塊158分析對應于視頻內容的音頻內容,探測收到聲音的方向,并且搜索該方向的視頻內容區域,以確定收到聲音的方向上的區域是否包括一個面孔。模塊156和158都能夠分析視頻內容的每一幀。另外,模塊156和158之一也可以僅僅對視頻內容的某一特定幀進行分析,如果另一個模塊156或158未能探測到任何面孔的話。
當視頻內容的幀中沒有運動和音頻時,就使用快速的面孔探測模塊160。另外,模塊160也可以用于雖然幀中有運動和/或音頻,但是無論是模塊156還是模塊158都未能探測到面孔(也可能是不論模塊156或158是否探測到面孔)時。快速的面孔探測模塊160使用一種快速面孔探測器來分析視頻內容的幀,并探測該幀中的面孔。當通知自動初始化模塊140,某個區域的再驗證結果為該區域包括某個面孔的置信度消失時,就使用丟失置信度區域探測模塊162。盡管丟失了該區域包括某個面孔的置信度,某個面孔在這個區域附近仍然很有可能。丟失置信度區域探測模塊162與模塊156、158和160中的每一個進行通信,使模塊156、158和160分析視頻內容中圍繞這個區域的部位,試圖從中探測一個面孔。圍繞該區域之部位的嚴格尺寸可以隨實施方案而變化(例如,在一個示范實施方案中,該部位可能在該區域上下延伸至區域高度的一半之處,在該區域左右延伸至區域寬度的一半之處。
圖4是一個流程圖,展示了一個示范過程200,用于為新的面孔區域探測候選區域。圖4中的過程由圖3中的自動初始化模塊140實施,而且可以在軟件中執行。
一開始,接收音頻/視頻內容的一幀(202)。內容的這一幀可以來自為數眾多的信號源中的任何一種。例如,內容的這一幀可能是圖3中系統130的一臺或多臺捕捉設備捕捉的,或者該內容可能是在別處捕捉并由通信傳到系統130(例如通過可拆卸的存儲設備、通過網絡或電話線連接等等)。一旦收到,就通過比較該幀的像素和音頻/視頻內容中前一幀的對應像素,試圖探測該幀中的運動(動作204)。如果探測到了運動,那么就執行基于運動的初始化,以便在幀中為新的面孔區域確認候選者(動作206)。在動作206中使用基于運動的初始化為新的面孔區域確認了任何的候選者之后,就試圖在幀中探測音頻(動作208)。如果探測到了音頻,那么就執行基于音頻的初始化,以便在幀中為新的面孔區域確認候選者(動作210)。根據基于運動的初始化和/或基于音頻的初始化,為新的面孔區域確認的任何候選者都傳遞到分級驗證模塊142,以便進行面孔驗證(動作212)。
返回動作204,如果在幀中沒有探測到運動,那么就試圖在幀中探測音頻(動作214)。如果探測到了音頻,那么就執行基于音頻的初始化,以便在幀中為新的面孔區域確認候選者(動作210),然后處理過程進入動作212。然而,如果沒有探測到音頻,那么就使用一種快速的面孔探測器來為新的面孔區域確認候選者(動作216)。根據快速的面孔探測,為新的面孔區域確認的任何候選者都傳遞到分級驗證模塊142,以便進行面孔驗證(動作212)。
試圖探測運動或音頻或者使用快速面孔探測器的幀中區域可以隨情況而變化。在追蹤列表146不包括面孔和面孔候選者的情況下,那么幀中區域就是整個幀。在追蹤列表146包括一個或多個面孔或面孔候選者的情況下,那么幀中區域包括所有當前沒有被追蹤的區域(換句話說,沒有列在追蹤列表146中的區域)。在丟失置信度區域探測模塊162申請分析某個特定區域的情況下,那么幀中區域就是模塊162確認的區域。
返回圖3,基于運動的初始化模塊156通過把幀中的像素與前面幀和/或后續幀中對應的像素相比較,分析視頻內容的一幀,并探測每個像素在這些幀之間是否有運動。據信一個移動的人是在視頻內容的前景中,所以模塊156試圖確認這種移動前景的形狀。如果該形狀類似于人上半身的輪廓(一個較小的頭在一個較大的肩膀之上),那么就確定該形狀是一個模塊候選者。
圖5是一個流程圖,展示了一個示范過程240,使用基于運動的初始化,為新的面孔區域確認候選區域。圖5中的過程由圖3中的基于運動的初始化模塊156實施,而且可以在軟件中執行。
一開始,確定在每個像素處是否有運動(動作242)。通過把像素與前面幀中對應的像素相比較,對一幀中的每個像素作出這種確定。比較可以通過例如像素亮度(例如灰度)或顏色值來進行。在比較之前,還可以對像素應用使用多種常規的濾波器。視頻內容能夠使用一種常規的二維(x,y)像素坐標系統來觀察。在一幀中某個特定坐標位置處的像素,對應于另一幀中同一坐標位置處的一個像素。在被分析幀的區域中每個像素具有一種幀差異,產生如下 式中Dt(x,y)為t幀中影像的(x,y)位置處的像素與t-1幀中影像的(x,y)位置處的像素之間幀差異,It(x,y)為t幀中影像的(x,y)位置處的像素,It-1(x,y)為t-1幀中影像的(x,y)位置處的像素,dth為決定像素是否為運動像素的閾值。dth的精確數值可以隨實施方案而變,比如根據幀是彩色的還是灰度的,進行過何種濾波(如果有的話)等等。作為一個特殊的實例,如果像素是256級灰度的,數值20可以用于dth。
另外,幀差異也可以不是僅僅根據兩幀,而是根據三幀或更多幀來產生。在一個實施方案中,使用三幀(例如It-1、It、It+1)來探測運動的像素。只有在It(x,y)-It-1(x,y)和It+1(x,y)-It(x,y)中都有較大幀差異(例如大于dth)的像素才是運動的像素。
給定了幀差異之后,就在被分析幀區域中影像的每條水平線上,對每個可能的區段產生幀差異之和(動作244)。被分析幀區域中的影像包括多條水平線。每一水平行的像素都可能是這樣一條線,或者每隔n(例如二、三、四、五等等)個水平行的像素也可以是這樣一條線。每條這樣的線中,存在著許多區段,在線上具有不同的起點和終點。沿著可能的區段對幀差異求和,用于在被分析的區域中試圖確認最可能的前景區段。在圖6中有更詳細的說明。
圖6展示了視頻內容的一幀的一個示范影像。展示的影像270包括已經被追蹤為包含面孔或面孔候選者的兩個區域272和274,以及為了尋求新面孔區域的候選者而分析的其余區域276。假設該影像包括一個人278,兩條水平線280和282將在起點i和終點j穿越影像278。在一條特定的線Ii上,i點和j點之間的所有像素都應當在前景上,兩條相鄰的水平線之間的邊界也應當具有一種光滑約束——它們趨于具有類似的中心和類似的寬度。幀差異之和用于確認具有起點i和終點j之水平線Ii的部分。
對于每條水平線,水平線上每個可能的區段的幀差異之和S產生如下S(i,j)=Σx=ijD(x,y)0<i<j<N,y∈
]]>式中i為區段的起點,j為區段的終點,D(x,y)為沿著該區段在x,y位置處的幀差異,N為水平線的長度,M為水平線的數目。
對于所有可能i和j,為了加快計算求和的速度,使用了以下過程。首先,對于0和N之間——包括端點——的每個i值,計算下式S(i,i)=D(i,y),i∈
然后,對于從k=1到k=N,計算S(i,i+k)=S(i,i+k-1)+S(i+k,i+k),i∈
返回圖5,一旦在水平線上對每個可能的區段都產生了幀差異之和,對于每一條水平線,具有最大和的區段就被選為該線上最可能的前景區段(動作246)。具有最大和的區段實際上是否為新面孔區域候選者的一部分,也取決于光滑約束,正如下面的討論。然后,就確定了最可能區段的最光滑的區域(動作248)。對所有的水平線考慮光滑約束,就產生了最光滑的區域。實現方式如下。該過程起始于y=0(頂端的水平線)及E0(i(0),j(0))=S(i(0),j(0)),并以下列遞歸函數前進到y=M(低端的水平線)E0(i(y),j(y))=S(i(y),j(y))+maxi(y-1),j(y-1)∈
(E0(i(y-1),j(y-1))+C(i(y-1)j(y-1),i(y)j(y)))]]>式中i(y)和j(y)為第y條水平線的邊界,N為影像的寬度。C(.,.)參數為光滑能量項。C(.,.)參數在相鄰線之間對不光滑的邊界給出了較大的懲罰,它規定如下C(i(y-1)j(y-1),i(y)j(y))=cc·|i(y)+j(y)2-i(y-1)+j(y-1)2|+cw·|(j(y)-i(y))-(j(y-1)-i(y-1))|]]>式中cc為對區段中心的不光滑罰系數,而cw為對區段寬度的不光滑罰系數。對罰系數cc和cw可以使用不同的數值,在一個示范實施方案中,cc和cw中每一個都是0.5。
然后,通過確定下式,可以獲得最光滑的區域maxi(M),j(M)∈
(E0(i(M),j(M)))]]>給定了這種最光滑的區域,就能夠執行向回追蹤,以尋找所有水平線的邊界。
給定了最光滑的區域,就檢驗該區域是否像人的上半身(動作250)。在展示的實例中,人的上半身包括一個較小的頭在一個較大的肩膀之上。所以,就檢驗這個最光滑的區域是否具有一個近似橢圓的部分(頭),位于一個較寬的部分(肩膀)之上。在一個實施方案中,這種檢驗通過尋找相鄰水平線之寬度的最大變化,首先探測頸部的位置。然后,檢驗頸部之上的部分(頭部區域)是否具有比下部區域(肩膀區域)更小的平均寬度。也要檢驗頭部區域的寬度和高度之比是否為近似1∶1.2。如果所有這些檢驗結果都是真實的,那么被探測的區域就確定為像人的上半身輪廓。
如果該區域確實像人的上半身,那么就提取該區域中包括頭部(但是不包括肩膀)的部分(動作252),并確認為新面孔區域的候選者(動作254)。這個提取的區域可能是人頭部的近似橢圓的區域,或者是頭部周圍的某個區域(例如頭部周圍的矩形區域)。不過,如果該區域不像人的上半身,那么從該幀就沒有探測到新面孔的候選者(動作256)。
在一個實施方案中,如果在動作254中確認了一個新面孔區域的候選者,并且在該幀中還有任何另外的區域(不算在動作254中確認的候選者和任何其它的面孔和面孔候選者),就重復圖5中的過程。這樣就能在該幀中確認另外的學面孔區域的候選者。
返回圖3和圖4,基于音頻的初始化模塊158通過使用聲源定位器探測收到聲音的方向,來分析一幀音頻/視頻內容(圖4中的動作210)。模塊158假設,這個聲音可能是人在發言,因此指示著視頻內容的一個區域,其中可能包括一個面孔區域的候選者。能夠以為數眾多的不同方式來確定收到聲音的方向。在一個實施方案中,一個或多個話筒陣列捕捉聲音,并使用一個或多個聲源定位算法來確定聲音來自哪個方向。可以使用多種不同的常規聲源定位算法,比如眾所周知的到達時間延遲(TDOA)技術(例如廣義互相關(GCC)方法)。
在沒有視頻內容的情況下,通過適當地布置多個話筒,也能夠完成面孔探測。使用三個或更多的話筒,其中至少兩個位于不同的水平面上,而且其中至少兩個位于不同的垂直面上,就能夠確定聲源的(x,y)坐標。例如,兩個話筒可能位于垂直面中,并且兩個話筒可能位于水平面中。那么可以使用多種常規的聲源定位算法來確定聲源的(x,y)位置——假定它是一個人的嘴巴。這個聲源位置本身能夠被視為探測到的面孔區域(假定發言者的嘴巴是發言者面孔的一部分),或者該位置也可以擴展(例如增大百分之二三),擴展后的位置用作探測到的面孔區域。
給定了影像中對應于收到聲音之方向的區域,初始化模塊158分析該區域,試圖對該區域中的影像擬合一個膚色模型。如果擬合成功,那么擬合膚色模型的區域就確認為新面孔區域的候選者。在一個實施方案中,膚色模型為HSV(色調飽和度值)顏色空間模型,帶有用于訓練模型的大量膚色訓練數據。應當注意,因為音頻已經指出在該區域中有一個面孔,可以使用粗略的探測過程(例如膚色模型)來使面孔定位。
在沒有視頻內容的情況下,模塊158依靠聲源定位而不使用膚色模型(由于沒有視頻內容可以應用膚色模型)。
快速模塊探測模塊160使用快速模塊探測器,在幀影像的若干區域中探測面孔。探測模塊160使用的快速面孔探測器,可能不同于分級驗證模塊142使用的面孔探測器——下面有更詳細的討論。為了在計算量和準確性之間取折衷,模塊160使用的探測器比分級驗證模塊142使用的面孔探測器更快,但是準確性要低一些;不過,模塊160和142可能基于同樣的面孔探測算法,但是使用不同的參數或閾值,以便模塊160提高探測速度(相對于模塊142的探測速度)。另外,模塊160和142也可以基于兩種不同的面孔探測算法。典型情況下,探測模塊160使用的探測器快于分級驗證模塊142使用的探測器。
為數眾多的面孔探測算法都能夠用作快速面孔探測模塊160的基礎,使用什么算法所依據的主要特征是其速度。快速面孔探測模塊160的目標是很快地探測面孔,如果需要的話,以準確性作為代價。面孔探測可能僅僅是正面,也可能是多視角(不限于正面探測)。這種算法的一個實例是P.Viola和M.J.Jones介紹的,見“Robust real-time0bject detection”,Technical Report Series,Compaq CambridgeResearch Laboratory,CXRL 2001/01,Feb.2001。這種算法的另一個實例類似于P.Viola和M.J.Jones討論的,只是使用探測器級在開始時利用一個探測器,它覆蓋寬闊的視角,發展到利用一組多個探測器,每個覆蓋較窄的視角。目標從探測器的一級到另一級,每個探測器把該目標劃分為或者是面孔,或者不是面孔。每個目標只要被任何一個探測器劃分為不是面孔,就將它從過程中排除——僅有通過了所有的探測器級并被劃分為面孔的目標才被確認為面孔。
因此,自動初始化模塊140使用一個或多個基于運動的初始化、基于音頻的聲源定位和快速探測技術探測新面孔區域的候選者。然后,這些候選者傳送到分級驗證模塊142,以便驗證這些候選者是否確實包括一個面孔。應當注意,并非所有幀都包括新面孔,因此,即使使用了所有上述的技術,自動初始化模塊140也可能在一幀中探測不到任何新面孔的候選者。
分級驗證圖3中的分級驗證模塊142驗證自動初始化模塊140確認的候選面孔區域。此外,探測和追蹤模塊132考慮了多線索追蹤模塊144在運行期間或許失去追蹤的可能性。這可能是由于多種原因,比如遮擋(例如另一個與會者走到視頻捕捉設備和被追蹤的個人之間時)或者突然的照明變化。分級驗證模塊142以規則的或不規則的間隔,再次驗證被追蹤的每個目標,并適當地使面孔降級為面孔候選者。根據追蹤需要的準確度(較短的間隔趨于改善準確性)、可用的計算能力規模(取決于驗證的類型,追蹤可能需要比再次驗證少的計算能力)以及驗證模塊的計算成本,間隔的長度可以變化。
在一個實施方案中,分級驗證模塊142驗證目標為面孔,確認一個目標或者是面孔,或者不是面孔。另外,驗證模塊142也可以根據不同的特性(例如音頻、顏色直方圖距離、邊界附近的邊緣探測結果、面孔探測結果等等),輸出概率統計的驗證結果。在這種過程中,輸出的概率統計的驗證結果可以與微粒濾波的加權方案相結合,下面將更詳細地討論該濾波。
因為考慮計算量,附近驗證模塊142使用一種多級的分級過程來驗證某個目標包括一個面孔。該驗證過程是一個從粗略到精細的過程,以較塊而不太準確的驗證開始,如果需要,就上升到較慢而更準確的驗證。在展示的實例中,該分級過程包括兩個級別。此外,分級過程中也可以包括三個或更多的級別。
圖3中的分級驗證模塊142包括基于顏色的快速驗證模塊164和多視角的面孔探測模塊166。驗證模塊142假設,典型情況下,在相鄰幀期間目標并不顯著改變顏色。基于顏色的驗證模塊164根據當前幀中目標的顏色直方圖和前面幀中目標的估計顏色直方圖之間的相似度,來驗證目標。相似度高時,就假設追蹤沒有發生損失,不必調用多視角的面孔探測模塊166。不過,相似度低、追蹤可能已經發生了損失時,因而目標從面孔降級為面孔候選者,并傳送到多視角的面孔探測模塊166。如果多視角的面孔探測模塊166驗證該目標為面孔,該目標就從面孔候選者升級為面孔。不過,如果探測模塊166不把該目標驗證為面孔,該目標就從追蹤列表146中刪除。
在一個實施方案中,基于顏色的驗證模塊164對每一幀執行其驗證功能,而多視角的面孔探測模塊166以較低的頻度執行其驗證功能。舉例來說,多視角的面孔探測模塊166可能每數秒執行一次其驗證功能,盡管根據上面討論的多種因素,也可以使用不同的間隔。
圖7是一個流程圖,展示了一個示范過程320,用于執行分級驗證。過程320是由圖3中的分級驗證模塊142執行,并且可以在軟件中執行。
一開始,獲得所關注區域的一個影像(動作322)。所關注區域可能是由自動初始化模塊140確認的一個候選區域,或者是為進行再次驗證的一個區域。可以將帶有要分析區域指示的整幀傳送到分級驗證模塊142,也可以僅僅將幀中包括要分析區域的一部分傳送到分級驗證模塊142。一旦收到之后,就使用基于顏色的快速驗證法來驗證該區域中是否有一個面孔(動作324)。
圖8中展示了動作324的、基于顏色的快速驗證法的更多細節。圖8中的過程324由圖3中的基于顏色的快速驗證模塊164執行,并且可以在軟件中執行。一開始,產生當前t幀中目標的顏色直方圖(qt(x))(動作362)。也產生前面幀中目標的估計顏色直方圖(pt-1(x))(動作364)。估計顏色直方圖pt-1(x)按下式產生pt-1(x)=α·qt-1(x)+(1-α)·pt-2(x)式中α表示加權值,qt-1(x)為前一幀t-1中目標的顏色直方圖,pt-2(x)為對于前一幀t-1中目標的估計顏色直方圖。在不同的實施方案中可以使用范圍很廣的α值,選定的確切值是相信歷史和相信當前幀之間的折衷(例如在一個示范實施方案中,α值的范圍是從0.25到0.75)。因此,根據每一幀中目標的顏色直方圖,更新目標的估計顏色直方圖pt-1(x)。
然后確定兩個直方圖的相似度(動作366)。為了確定兩個直方圖qt(x)和pt-1(x)的相似度測度,使用下列眾所周知的Bhattacharyya系數ρ(pt-1(x),qt(x))=∫pt-1(x)·qt(x)dx]]>式中ρ表示統計假設試驗中分類錯誤的概率——錯誤的概率越大,兩種分布就越相似。ρ值的范圍從0到1,1表示兩個直方圖相同,0表示兩個直方圖完全不同。這種相似度測度在本文中也稱為置信度。另外,也可以使用其它眾所周知的相似度測度,比如K-L散度、直方圖交會等等。
然后檢驗兩個直方圖之間的相似度是否超過某個閾值幅度(動作368)。如果差異大于閾值幅度,那么該面孔被證實(動作370);換句話說,該目標被證實為包括一個面孔。不過,如果差異不大于閾值幅度,那么面孔就不被證實(動作372);換句話說,該目標不被證實為包括一個面孔。在不同的實施方案中,可以使用不同的差異閾值。在一個示范實施方案中,閾值的范圍可以從0.90到0.95,在一個具體的實施方案中是0.94。
返回圖7,根據面孔是否被證實而繼續處理(動作326)。如果面孔被證實,那么它就從面孔候選者升級為面孔(如果還不是面孔的話)(動作328),分級驗證過程完成(動作330),這時對所關注的區域不再進行更多的驗證。然而,如果面孔不被證實,那么該面孔就從面孔降級為面孔候選者(如果當前是面孔的話)(動作332)。然后包括面孔的目標傳送到圖3的多視角面孔探測模塊166,它使用多視角面孔探測法驗證該區域中是否有一個面孔(動作334)。
多視角的面孔探測模塊166使用了一個或多個探測過程——它們試圖以不同的姿勢或者從多個視角來探測人的面孔(換句話說,即使頭部可能傾斜、轉離影像捕捉設備等等情況下,也要探測面孔)。為數眾多的面孔探測技術中的任何一種,都能夠被多視角的面孔探測模塊166所使用。
一種這樣的多視角面孔探測過程是基于核心機的過程,更加詳細的討論見S.Z.Li,Q.D.Fu,L.Gu,B.Scholkopf,Y.M.Cheng,H.J.Zhang,“Kernel Machine Based learning for Multi-View FaceDetection and Pose Estimation,”Proceedings of 8thIEEE InternationalConference on Computer Vision,Vancouver,Canada,July 9-12,2001。這種探測過程歸納如下。
令Ip∈RN為面孔的窗內灰度影像或外觀。假設所有左轉的面孔(視角在91°和180°之間)都經鏡面反射成右轉,所以每一個視角都在0°和90°之間。將姿勢量化成一組L個離散值(例如選擇L=10,用于10個等間隔的角,從0°到90°,0°對應于右側面視角,90°對應于正面視角)。
假設為學習提供了一組訓練用面孔影像。影像Ip不僅視角有變化,照明也有變化。訓練組經過視角標注——每個面孔影像都由人工標注了其盡可能接近真實值的視角值,然后按照最接近的視角值分配到L個組中的一個。這就產生了L個經過視角標注的面孔影像子集,用于學習面孔的視角子空間。另一個非面孔的訓練組也用于訓練面孔探測。
現在,有L+1個類,由l為索引,意義如下,l∈{0,1,...,L-1}對應于L個視角的面孔,l=L對應于非面孔類。把輸入Ip劃分為L+1個類之一,就共同執行了兩個任務——面孔探測和姿勢估計。如果輸入劃分為L個面孔類之一,就探測到了一個面孔,對應的視角就是估計的姿勢;否則,輸入模式被視為非面孔模式。
使用核心機學習面孔探測和姿勢估計分為兩個階段一個是為了核心主分量分析(KPCA)的視角子空間學習,一個是為了核心支持矢量分類器(KSVC)的分類器訓練。第一階段的訓練目標是從L個面孔視角子集學習L個KPCA視角子空間。一組核心主分量(KPC)是從每個視角子集學到的。最重要的分量(例如最高的50個)用作構造視角子空間的基本矢量。這個階段的學習產生了L個視角子空間,每一個都由一組支持矢量和對應的系數確定。每個視角信道中的KPCA有效地執行了從輸入影像空間到輸出KPCA特性空間(具有與最重要的分量中分量數目相同的維數)的非線性映射。
第二階段的目標是訓練L個KSVC,以便為了面孔探測而在面孔和非面孔模式之間進行區分。這個階段使用一個訓練組,包括一個非面孔子集以及L個視角的面孔子集。一旦訓練了KSVC,就用于每個視角根據對應KPCA子空間的特性進行L+1個類別的劃分。視角到對應的KPCA子空間的投影用作特性矢量。在KSVC中,使用眾所周知的一對其余方法來解決多類問題。第二階段給出L個KSVC。
在試驗階段中,對于每個視角l,向KPCA特性提取器提供一個試驗樣本,以獲得該視角的特性矢量。該視角對應的KSVC計算出一個輸出矢量yl=(ylc|c=0,...,L),]]>作為對輸入的L+1個類的響應。對所有L個視角信道都這樣做,所以就產生了L個這樣的輸出矢量{yl|l=0,...,L-1}。y1c值是判斷在第l個視角KPCA子空間中,輸入Ip的特性屬于c類的證據。通過融合所有L個視角信道的證據,作出最終的分類決定。融合的一種方法是將證據求和;換句話說,對于每個類c=0,...,L,計算下式yc(Ip)=Σl=0L-1ylc]]>這種計算給出了將Ip劃分為c類的全面證據。通過使該證據最大化而作出最終的決定如果c*=arg maxcyc(Ip),那么Ip屬于c*。
繼續看圖7,根據多視角面孔探測是否證實了面孔,繼續進行處理(動作336)。如果證實了面孔,那么該面孔就從面孔候選者升級為面孔(動作328),分級驗證過程完成(動作330)。然而,如果未證實面孔,那么該候選者就從圖3的追蹤列表146中清除(動作338),分級驗證過程完成(動作330)。
在分級驗證中沒有視頻內容可分析的情況下,適當時也可以僅僅使用音頻線索來驗證。例如,當被追蹤面孔者正在持續發言時,或者進行眾所周知的、基于音頻發言者的確認時(從而允許將聲源聯系到發言者個人的語音,通過確定來自某個特定聲源位置的語音是否符合以前從該聲源位置收到的、同一發言者的確認信息,進行驗證),都可以僅僅使用音頻線索。
多線索追蹤一旦在視頻內容的一幀中探測到某個面孔,圖3中的多線索追蹤模塊144就在視頻內容的后續幀中追蹤該面孔。其面孔被追蹤的與會者可能移動,因此在視頻內容的不同幀中,面孔的位置可能會不同。不僅如此,與會者還可能轉動其頭部(例如這樣其面孔就不再直接對著視頻捕捉設備),可能發生多種遮擋(例如與會者可能在其面前揮手),照明可能會變化等等。多線索追蹤模塊144試圖考慮這些每幀不同的變化。此外,因為這些變化,某些追蹤的線索可能變得不可靠。多線索追蹤模塊144也試圖考慮線索可靠性從一幀到另一幀中發生的這些變化。
追蹤模塊144在追蹤面孔中使用多種線索。在一個實施方案中,這些追蹤線索包括面孔的形狀(模擬為一個橢圓)、移動、邊緣、前景顏色和背景顏色。此外,也可以不使用這些線索中的一個或多個,或者也可以使用另外的線索,比如音頻線索。
有音頻內容可用時,多線索追蹤模塊144可以使用音頻線索協助追蹤(或者作為追蹤的唯一基礎)。根據聲源定位過程進行基于音頻的追蹤,并且其進行方式如同上面討論的、圖3中的基于音頻的初始化模塊158進行的基于音頻的探測。
圖9是一個流程圖,展示了一個示范過程400,用于執行多線索追蹤。過程400是由圖3中的多線索追蹤模塊144執行,并且可以在軟件中執行。
一開始,根據從前一幀t-1的追蹤結果和目標的動力學特征(由眾所周知的Langevin過程模擬,下面還要更詳細地討論),預測在當前t幀中目標將在何處(動作402)。沿著該目標預測輪廓的一組法線,收集觀測結果(動作404),并對于法線上的每一個像素,求取觀測似然函數值(動作406)。求取從t-1幀到t幀的狀態轉換概率(動作408),對于給定的觀測結果確定最佳輪廓(動作410)。根據探測到的輪廓,對t幀中的影像擬合最佳橢圓(動作412),并調整用于下一幀t+1的模型(動作414)。
多線索追蹤模塊144包括多個模塊,用于執行圖9中的動作。在展示的實例中,追蹤模塊144包括觀察似然模塊168、平滑約束模塊170、輪廓選擇模塊172和模型調整模塊174。
多線索追蹤模塊144努力追蹤人的頭部——它是橢圓形的(大約1∶1.2)。對于被追蹤的面孔,人的頭部由一個模型來表示,它是具有多種追蹤線索的一個橢圓。分析視頻內容幀中的影像時,該模型與影像的多個位置進行比較,并確定哪個位置最接近該模型。這個最接近該模型的位置就被選為新的一幀中的面孔。
圖10更詳細地展示了這個示范的模擬和比較。在圖10中,實線曲線422表示在特定的t幀中,根據從前一幀t-1追蹤的結果,預測的人頭部的輪廓。虛線曲線424表示t幀中人頭部的真實輪廓。沿著預測輪廓422的多(M)條法線426收集一組測量值。點428(c(φ))為第φ條法線上的真實輪廓點。點430(ρφ(N))為第φ條法線上的預測輪廓點。多線索追蹤模塊144通過使預測輪廓422上盡可能多的輪廓點與真實輪廓線424上的輪廓點相同,試圖確定真實輪廓424的位置。
圖3中的觀測似然模塊168產生ρφ(λ)值,它表明在線φ上像素λ處的影像亮度,如下式ρφ(λ)=I(xλφ,yλφ)式中φ的范圍從1到M(法線246的總數目),λ的范圍沿著法線從-N到N(每條法線有2N+1個像素),xλφ,yλφ為第φ條法線上像素λ處的對應影像坐標,I(xλφ,yλφ)為(xλφ,yλφ)點處的影像亮度。
為了探測輪廓點,通過使用隱藏馬爾可夫模型(HMM),可以結合不同的線索(例如邊緣強度、前景和背景的顏色模型)和先驗約束(例如輪廓平滑約束)。隱藏馬爾可夫模型對于本領域的技術人員是眾所周知的,因此除了它們適于本文所介紹的多個人的自動追蹤以外,不再進一步討論。HMM的隱藏狀態為每條法線上的真實輪廓點(表示為s={s1,...,sφ,...,sM})。HMM的觀測結果O={O1,...,Oφ,...,OM}是沿著每條法線φ收集的。一個HMM是由狀態的數目(在我們的情況下是2N+1)、觀測模型P(Oφ|sφ)和轉換概率p(sφ|sφ-1)指定的。
觀測似然模塊168繼續產生多線索觀測似然函數如下。在線φ上的觀測結果(表示為Oφ)可以包括多個線索,例如沿著法線的像素亮度(如ρφ(λ),λ∈[-N,N])和邊緣強度(如zφ)。通過使用多種常規邊緣探測過程中的任何一種,比如眾所周知的Sobel邊緣探測器或Canny邊緣探測器,都可以得到邊緣探測結果zφ的觀測似然模型。由于噪音和影像干擾,沿著每條法線φ可能有多個邊緣。使用J值來表示探測到的邊緣的數目(zφ=(z1,z2,...,zJ))。在J個探測到的邊緣中,最多只有一個在圖10中的真實輪廓線424上。所以我們可以規定J+1個假設H0={ej=F:j=1,...,J}H1={ej=T,ek=F:k=1,...,J,k≠j式中ej=T表明第j條邊緣與真實輪廓線相關聯,而ej=F表明第j條邊緣不與真實輪廓線相關聯。所以假設H0表明沒有邊緣與真實輪廓線相關聯。
假設沿著法線的影像干擾為眾所周知的、空間密度為γ的泊松過程,真實的目標測量結果是標準差為σz的正態分布,邊緣似然模型按下式獲得p(zφ|sφ=λφ)∝1+12πσzqγΣm=1Jexp(-(zm-λφ)22σz2)]]>式中q為假設H0的先驗概率。
除了邊緣似然模型以外,HMM框架中也結合了有關前景和背景的區域性質的其它線索,例如混合色彩模型。令p(ν|FG)和p(ν|BG)分別表示前景(FG)和背景(BG)的顏色分布。后驗概率p(BG|ν)和p(FG|ν)能夠按下式得到P(BG|v)=p(v|BG)p(v|BG)+p(v|FG).....(1)]]>P(FG|v)=p(v|FG)p(v|BG)+p(v|FG)]]>
如果sφ=λφ為法線φ上的輪廓點,那么區間[-N,sφ]就在前景上,區間[sφ+1,N]就在背景上。結合邊緣似然模型和顏色后驗概率,對于HMM就會得出下列多線索觀測似然函數P(Oφ|sφ)=p(z|sφ)·Πi=-NsφP(BG|v=ρφ(i))·Πi=sφ+1NP(FG|v=ρφ(i))...(2)]]>在類似方式下,也可以結合其它線索,比如音頻線索(如根據聲源位置和聲音來自特定位置的可能性)。在沒有視頻內容可供分析的情況下,就僅僅使用音頻線索。此外,為了補充或取代這種音頻隊列,音頻也可以用作無氣味微粒濾波的建議函數,下面還要更詳細地討論。
HMM中的另一個分量是轉換概率,它確定在時間t-1的狀態如何轉換為在時間t的另一種狀態。圖3中的平滑約束模塊170得出了轉換概率。
為了獲得平滑的輪廓,使用轉換概率對平滑約束進行編碼,并懲罰粗糙。參考圖10,可見法線426密集(例如在30條法線的數量級)時,在相鄰的法線426上真實輪廓線424的點,與預測輪廓線422趨于具有相同的位移(在每條法線上指數為0)。這種相關性有助于獲得平滑的輪廓。
在HMM中,給定了當前的狀態sφ,當前觀測結果Oφ就獨立于前一個狀態sφ-1和前一個觀測結果Oφ-1。此外,由于馬爾可夫模型的性質,我們有p(sφ|s1,s2,...,sφ-1)=p(sφ|sφ-1)。
那么,可以通過狀態轉換p(sφ|sφ-1)捕捉輪廓平滑約束如下P(sφ|sφ-1)=c·exp(-(sφ-sφ-1)2/σs2)....(3)]]>式中c為歸一化常數,σs為預先規定的調節輪廓平滑程度的常數。這種轉換概率懲罰相鄰法線之間輪廓點的突然變化,因此產生平滑的輪廓。然后,可以由輪廓選擇模塊172獲得最佳的輪廓。
平滑約束模塊170根據上面計算式(3)產生的轉換概率,考慮了輪廓點,而不管法線上的其它像素。此外,平滑約束模塊170也可以使用基于JPDAF(聯合概率數據關聯濾波器)的方法,不僅對輪廓平滑約束編碼,而且也對在法線上多個(例如所有)像素上觀測到的區域平滑約束編碼。在展示的實例中,使用基于動態規劃的JPDAF過程來改善實時性能。
在典型條件下,人體部分(例如面部或頭部)的像素亮度值在其區域中平緩地變化。所以,在人們的追蹤中,前景和背景具有平滑的區域是一個合理的假設,因而兩條相鄰法線上的觀測結果類似。令sφ和sφ+1分別為線φ和線φ+1上的輪廓點。這兩個輪廓點將這兩條線劃分為前景區段和背景區段。根據區域平滑假設,不僅sφ和sφ+1相互接近,而且這兩條法線上所有其它的像素也都匹配得很好。為了獲得區域平滑約束,使用一種聯合概率數據關聯濾波器來處理法線匹配。換句話說,它不是單點對單點的匹配問題,而是(2N+1)個點對(2N+1)個點的匹配問題。通過一起考慮沿著這些法線上的所有像素,可以獲得更穩健的匹配結果。所以,典型情況下,基于JPDAF過程的轉換概率更準確。令DF(i,j)和DB(i,j)分別為前景(在線φ上的[-N,i],在線φ+1上的[-N,j])和背景(在線φ上的[i+1,N],在線φ+1上的[j+1,N])的匹配距離。那么,可以規定轉換概率如下,以取代上面參考計算式(3)討論的轉換概率log(p(s2|s1)=DF(s1,s2)+DB(s1,s2)+(s2-s1)2/σs2...(4)]]>區域平滑概念可以由圖11中展示的合成影像來說明。圖中展示了兩個區域表示背景干擾的矩形區域460和表示目標的近似圓形區域462。也展示了兩條相鄰的法線464和466。點a和b為法線464上探測到的邊緣點,而點c和d為法線466上探測到的邊緣點。目的是在這兩條法線464和466上尋找輪廓線在何處。除了某些變形以外,測量結果482和484相互類似。僅僅根據輪廓平滑約束,從a到c的輪廓和從b到c的輪廓幾乎具有相同幅度的平滑能量,因為|a-c|≌|b-c|。不過,如果我們還考慮區域平滑約束,可能的輪廓可以是ad或bc,而不是ac或bd。HMM可以進一步根據所有的觀測線區分輪廓候選者ad和bc。
為了獲得新的轉換概率,要計算所有可能的((2N+1)2個)狀態對之間的匹配。圖13以圖形的方式說明了匹配距離的計算。給定了線464和466,匹配距離的計算可以由以下遞歸方程說明,并且可以參見圖13 式中d(.,.)為匹配兩個像素的成本。DF(i,j)為464線上[-N,i]區段和466線上[-N,j]區段之間的最佳匹配距離。起始于DF(0,j)=DF(i,0)=0,其中i,j∈[-N,N],從i=-N到N和j=-N到N,使用以上遞歸式獲得匹配距離DF(i,j)。計算DB(i,j)是通過類似的過程,不過起始于DB(N,N)=0,到DB(-N,-N)。獲得了所有的匹配距離之后,可以計算出狀態轉換概率,并可以通過圖3中的輪廓選擇模塊172完成輪廓追蹤,下面還要更詳細地討論。
給定了觀測結果序列O={Oφ,φ∈[1,M]}和轉換概率ai,j=p(sφ+1=j|sφ=i)之后,輪廓選擇模塊172通過使用以下眾所周知的Veterbi算法,尋找最可能的狀態序列s*,確定所發現的最佳輪廓s*=argmaxsP(s|O)=argmaxsP(s,O)]]>值V(φ,λ)定義如下V(φ,λ)=maxsφ-1P(Oφ-1,sφ-1,sφ=λ)使用馬爾可夫條件獨立假設,對于初始值V(1,λ)=maxs1P(O1|s1)P(s1),V(φ,λ)能夠遞歸計算如下V(φ,λ)=P(Oφ|sφ=λ)·maxjP(sφ=λ|sφ-1=j)V(j,φ-1)]]>j*(φ,λ)=P(Oφ|sφ=λ)·argmaxjP(sφ=λ|sφ-1=j)V(j,φ-1)]]>式中初始狀態概率P(s1)=1/(2N+1),s1∈[-N,N]。j*(φ,λ)項記錄了φ線上來自λ狀態的“最佳以前狀態”。所以,在序列的終點,就獲得了maxsP(O,s)=maxλV(M,λ)。從sM*=arg maxλV(M,λ)開始,以sφ-1*=j*(sφ*,φ)向后追蹤j*,可以獲得最優狀態序列s*。
給定了最佳狀態序列s*={s1*,...,sM*},φ線上最佳輪廓點sφ*對應的影像坐標記為[xφ,yφ]。因為使用橢圓作為參數輪廓模型,對于每個輪廓點[xφ,yφ],下式成立axφ2+byφ2+cxφyφ+dxφ+eyφ-1=0]]>這些方程的矩陣表達式為
A·f=b式中A=x12y12x1y1x1y1......xM2yM2xMyMxMyM]]>且b=[1,1,...,1]T。通過最小均方(LMS)解可以獲得最佳擬合橢圓的參數f*=[a,b,c,d,e]Tf*=(ATA)-1ATb (5)上面的橢圓表達式f=[a,b,c,d,e]T在數學上是方便的。但是這5個參數卻沒有清楚的物理解釋。在追蹤中,往往使用不同的5元橢圓表達式θ=[x,y,α,β,φ]式中(x,y)為橢圓的中心,α和β為橢圓長短軸的長度,φ為橢圓的方向。因為f和θ是同一橢圓的兩個表達式,它們在本文中交換地使用。
在動態環境中,被追蹤的目標和背景都可能逐漸改變外觀。因此,模型調整模塊174動態地調整觀測似然模型。調整觀測似然模型的一種方法是,完全相信Viterbi算法在t-1幀返回的輪廓,對該輪廓內外的所有像素求平均,以獲得在t幀新的前景/背景顏色模型。不過,如果在t-1幀發生了錯誤,這個過程就可能以錯誤的方式調整模型。因此,模型調整模塊174以概率統計的方式訓練觀測模型。
不是完全相信在t-1幀獲得的輪廓,而是使用一種向前-向后的算法,來決定如何更新觀測模型。“向前概率分布”定義如下αφ(s)=p((O1,O2,...,Oφ,sφ=s)它能夠使用如下遞歸來計算α1(s)=p(s1=s)p(O1|s1=s)αφ+1(s)=[Σuαφ(u)au,s]p(Oφ+1|sφ+1=s)]]>同樣,“向后概率分布”定義如下βφ(s)=p(Oφ+1,Oφ+2,...,OM,sφ=s)它能夠使用如下遞歸來計算
βM(s)=1βφ(s)=Σuas,up(Oφ+1|sφ+1=u)βφ+1(u)]]>計算了向前和向后概率之后,我們可以計算φ線上每種狀態的概率如下P(sφ=s|O)=αφ(s)βφ(s)Σuαφ(u)βφ(u),s∈[-N,N]]]>它表示測量線φ上s處具有輪廓點的概率。
根據這些概率,沿著法線結合P(sφ=s|O),可以計算像素λφ在前景(或背景)中的概率如下P(λφ∈BG)=1-P(λφ∈FG)=Πs=-Nλφp(sφ=s|O)]]>這個概率給我們提供了一種穩健的方法,在調整觀測模型期間對不同的像素加權。分類置信度越高的像素對顏色模型的貢獻越大,分類置信度越低的像素貢獻越小p(v|BG)=Σs=-NNP(s∈BG)·Oφ(s)Σs=-NNP(s∈BG).....(6)]]>p(v|FG)=Σs=-NNP(s∈FG)·Oφ(s)Σs=-NNP(s∈FG)]]>調整后的新模型反映了追蹤期間顏色分布的變化。然后,在下一幀的輪廓搜索期間,把調整后的新模型代回(1)式中。在展示的實例中沒有訓練轉換概率,因為在典型情況下,它們趨于在追蹤過程期間保持相對不變。此外,也能夠以類似于訓練顏色分布的方式訓練轉換概率。
返回圖9,多線索追蹤過程400可以進一步參考圖14。圖14展示了從時間t-1的一幀522到時間t的下一幀524追蹤一個目標的過程。根據前一幀t-1中的追蹤結果和該目標的動態,預測當前幀t中目標將在何處(動作402)。沿著預測輪廓的一組法線收集觀測結果(動作404)。使用眾所周知的Langevin過程來模擬人運動的動態θtθt=1τ0aθt-1θt-1+0bmt]]>式中θ=[x,y,α,β,φ]為參數橢圓,a=exp(-βθτ),b=v‾1-a2]]>。βθ為比率常數,m為從高斯分布N(0,Q)導出的熱激勵過程,τ為離散時間步長,v為穩態均方根速度。
對于法線φ上的每一個像素,使用上面的(2)式,根據法線上每個像素的邊緣探測結果和顏色值,求取觀測似然函數(動作406)p(Oφ|sφ=λφ),λφ∈[-N,N],φ∈[1,M]同時,也根據JPDAF求取狀態轉換概率(動作408),如上面(4)式所示。
利用前面計算出的觀測似然函數和轉換概率矩陣,由Viterbi算法尋找對于給定觀測結果的最佳輪廓(動作410),并且使用上面的(6)式,根據探測的輪廓擬合最佳橢圓(動作412)。
然后,使用向前-向后算法估計法線上每個像素(向前和向后)的軟分類,根據上面的(6)式,更新前景和背景的顏色模型(動作414)。
對于視頻內容中的每一幀,重復圖9中的過程400。
多線索追蹤模塊144試圖考慮線索的可靠性和線索可靠性的變化。例如,前景和背景的性質都進行模擬(參見上面的(1)式),在上面的(2)式中使用該模型來探測邊界(例如,假若前景的顏色與背景類似,它將不會對邊界探測作出很大貢獻,該過程將更多地依靠更容易判別的其它線索,比如運動)。在追蹤期間,也要調制由上面(6)式表達的背景和前景的模型。
對上面討論的多線索追蹤過程,還可以進行多種修改。根據一種修改方案,被追蹤面孔的一個或多個特性點組成一組,得到保持,分析新的每一幀以確定組內特性點的位置。一旦組內的特性點定位之后,根據已定位的組內各點,就能夠粗略估計面孔的位置,然后這種粗略的估計結果會用作上面討論的參數輪廓追蹤過程的初始猜測。換句話說,分析新的一幀以便為參數輪廓追蹤過程定位一個初始猜測,而不是依靠上面討論的預測位置。在相鄰幀之間目標移動距離大(大到上面討論的預測位置可能與后續幀中的實際輪廓位置不夠接近)的情況下,這種修改尤其有用。
可以追蹤多種不同的特性點,比如眼角、嘴角、鼻孔等等。還可以追蹤音頻中的聲源作為特性點,以補充或取代視覺特性。能夠使用多種特性的追蹤過程,比如眾所周知的Lucas-Kanade特性追蹤器。有關Lucas-Kanade特性追蹤器的其它信息,可以參見J.Shi andC.Tomasi,“Good Features to Track,”IEEE Conf.On ComputerVision and Pattern Recognition,pp.593-600,1994。
對上面討論的多線索追蹤過程可以進行的另一種修改是,執行概率統計的采樣時,從特性點(探測的輪廓點)采樣,而不是從狀態空間采樣。例如,從探測的所有輪廓點中可以采取幾個輪廓點,在采用的輪廓點上擬合參數形狀。
對多線索追蹤過程可以進行的另一種修改是,對面孔追蹤多個可能的位置——換句話說,追蹤多個假設而不是一個假設。可以使用微粒濾波技術來保持多個技術,所以勉強的假設不被立即排除。相反,保持勉強的假設,使它們有時間來證明是正確的選擇。下一步介紹一種這樣的微粒濾波器技術,稱為無氣味的微粒濾波器。
使用無氣味卡爾曼濾波器(UKF)的無氣味微粒濾波器(UPF),被多線索追蹤模塊144用于追蹤多個假設。無氣味的變換(UT)用于計算g()的泰勒級數展開式中高至第二階(第三階為高斯先驗項)的均值和協方差。令nx為x的維數,x為x的均值,Px為x的協方差,UT計算y=g(x)的均值和協方差如下首先,確定性地產生2nx+1個求和點Si={Xi,Wi}X0=xXi=x‾+((nx+λ)Px)ii=1,...,nx]]>Xi=x‾((nx+λ)Px)ii=nx+1,...,2nx]]>(7)W0(m)=λ/(nx+λ),W0(c)=W0(m)+(1-α2+β)]]>Wi(m)=Wi(m)=1/(2·(nx+λ))i=1,...,2nx]]>λ=α2(nx+κ)-nx式中κ為比例參數,它控制著求和點之間的距離和均值x,α為正比例參數,它控制著非線性函數g()產生的高階效應,β為一個參數,控制著第0個求和點的加權,((nx+λ)Px)i]]>為矩陣第i列的平方根。在一個實施方案中,對于標量情況,α=1,β=2,κ=2。注意,計算均值和協方差時,第0個求和點的加權不同。
然后,求和點通過非線性變換傳播Yi=g(xi)i=0,...,2nx(8)y的均值和協方差按下式計算y‾=Σi=02nxWi(m)Yi,Py=Σi=02nxWi(c)(Yi-y‾)(Yi-y‾)T...(9)]]>y的均值和協方差準確至泰勒級數展開的第二階。
使用UT,將狀態空間擴展到包括噪音分量xta=xtTmtTntTT]]>,可以實現無氣味的卡爾曼濾波器。令Na=Nx+Nm+Nn為擴展后狀態空間的維數,其中Nm和Nn為噪音mt和nt的維數,Q和R為噪音mt和nt的協方差,UKF可以歸納如下初始化x‾0a=x‾0T00T,P0a=P0000Q000R.....(10)]]>對于每個時間事件,迭代下列步驟a)使用上面的(7)式中的過程計算求和點Xt-1a=x‾t-1ax‾t-1a±(na+λ)Pt-1a....(11)]]>b)時間更新Xt|t-1x=f(Xt-1x,Xt-1x),x‾t|t-1=Σi=02naWi(m)Xi,t|t-1x...(12)]]>Yt|t-1=h(Xt|t-1x,Xt-1n),y‾t|t-1=Σi=02naWi(m)Yi,t|t-1x....(13)]]>Pt|t-1=Σi=02naWi(c)[Xi,t|t-1x-x‾t|t-1][Xi,t|t-1x-x‾t|t-1]T....(14)]]>c)測量更新Pytyt=Σi=02naWi(c)[Yi,t|t-1-y‾t|t-1][Yi,t|t-1-y‾t|t-1]T...(15)]]>Pxtyt=Σi=02naWi(c)[Xi,t|t-1x-x‾t|t-1][Yi,t|t-1x-y‾t|t-1]T...(16)]]>Kt=PxtytPytyt-1......(17)]]>x‾t=x‾t|t-1+Kt(yt-y‾t|t-1),Pt=Pt|t-1-KtPytytKtT...(18)]]>
利用UKF,最新的觀測結果能夠方便地加入狀態估計中(例如上面的測量更新c));不過,它對狀態分布進行了高斯假設。相反,微粒濾波器能夠模擬任意的分布,但是卻難以將新的觀測結果yt加入建議的分布。UKF用于為微粒濾波器產生建議的分布,得出混合的UPF。確切地說,對于每個微粒,建議的分布如下q(xt(i)|x0:t-1(i),y1:t)=N(x‾t(i),Pt(i)),i=1,...,N....(19)]]>式中xt和Pt為x的均值和協方差,是使用UKF((10)-(18)式)計算出的。應當注意,盡管高斯假設并非真實地近似后驗分布p(xt|xt-1,y0:t),對于明確的xt和Pt,產生各個微粒也不是一個大問題。不僅如此,因為UKF近似后驗的均值和協方差高至第二階,所以很好地保存了系統的非線性性質。通過將UKF步驟和(19)式插入一般的微粒濾波器算法,很容易獲得UPF過程。
圖15是一個流程圖,展示了一個示范的UPF過程550。圖15中的過程是由圖3中的多線索追蹤模塊144執行,并且可以在軟件中執行。
一開始,使用(11)-(18)式利用UKF更新微粒xt(i),i=1,...,N,獲得xt(i)和Pt(i)(動作552)。然后,從建議的分布q(xt(i)|x0:t-1(i),y1:t)=N(x‾t(i),Pt(i))]]>中,對微粒xt(i),i=1,...,N進行采樣(動作554)。然后使用如下的(20)式計算微粒加權(動作556)w~t(i)=p(y1:t|x0:t(i))p(x0:t(i))q(x0:t-1(i)|y1:t-1)q(xt(i)|x0:t-1(i),y1:t)]]>=w~t-1(i)p(y1:t|x0:t(i))p(x0:t(i))p(y1:t-1|x0:t-1(i))p(x0:t-1(i))q(xt(i)|x0:t-1(i),y1:t)....(20)]]>=w~t-1(i)p(yt|xt(i))p(xt(i)|xt-1(i))q(xt(i)|x0:t-1(i),y1:t)]]>然后,使用如下的(21)式對重要性加權進行歸一化(動作558)wt(x0:t(i))=w~t(x0:t(i))/Σi=1Nw~t(x0:t(i))...(21)]]>式中微粒{x0:t(i),wt(x0:t(i))}是取自已知分布q, 和wt(x0:t(i))是未歸一化的和歸一化的重要性加權。
然后,使用如下的(22)式確定有效微粒尺寸S(動作560)w~t(i)=w~t-1(i)p(yt|xt(i))p(xt(i)|xt-1(i))q(xt(i)|x0:t-1(i),y1:t)=w~t-1(i)p(yt|xt(i))...(22)]]>如果S<ST,那么乘(或者壓制)加權后的微粒,以產生N個等權的微粒(動作562)。然后,使用如下的(23)式計算g()的期望(動作564)Ep(g(x0:t))=limN→∞Σi=1Ng(x0:t(i))wt(x0:t(i))...(23)]]>利用gt(xt)=xt可以計算xt的條件均值,利用gt(xt)=xtxtT]]>可以計算xt的條件協方差。
現在討論根據音頻,使用圖15中的UPF過程550來追蹤與會者。典型情況下,兩個話筒就足以估計水平搖攝角。本文中討論根據水平搖攝角的追蹤,也可以進行類似的操作來根據發言者的垂直俯仰角進行追蹤。圖16展示了一種示范的多話筒環境。在圖16中,假設兩個話筒處在位置A和B,聲源處在位置C。當聲源的距離(即|OC|)遠大于話筒對基線|AB|時,搖攝角θ=∠COX可以估計如下θ=∠COX≈∠BAE=arcsin|BE||AB|=arcsinD×v|AB|....(24)]]>式中D為兩個話筒之間的時間延遲,v=342m/s為聲音在空氣中傳播的速度。
為了在追蹤應用中使用UPF框架,首先要建立4個實體在(12)式中使用的系統動態模型Xt=f(xt-1,mt-1),在(13)式中使用的系統觀測模型yt=h(xt,nt),在(22)式中使用的似然模型p(yt|xt),以及在(18)式中使用的新發明的模型yt-yt|t-1。一旦這4個實體建立之后,就直截了當地使用圖15中的UPF過程550進行追蹤。
系統動態模型Xt=f(xt-1,mt-1)確定如下。令x=[θ,θ·]T]]>為狀態空間,式中它們分別是搖攝角和搖攝角的速度。為了模擬一個發言者的運動動態,使用眾所周知的Langevin過程d2θ/dt2+βθ·dθ/dt=m,其離散形式為θtθ·t=1τ0aθt-1θ·t-1+0bmt...(25)]]>a=exp(-βθτ),b=v‾1-a2]]>式中βθ為比率常數,m為從N(0,Q)導出的熱激勵過程,τ為離散時間步長,v為穩態均方根速度。
系統觀測模型yt=h(xt,nt)確定如下。系統觀測結果yt為時間延遲Dt。根據上面的(24)式,觀測結果與狀態的關系為yt=Dt=h(θt,nt)=|AB|νsinθt+nt(26)式中nt為測量噪音,服從N(0,R)的高斯分布。
似然模型p(yt|xt)確定如下。令J為GCCF(廣義互相關函數)中峰值的數目。在J個峰值位置中,最多只有一個是來自真正的聲源。所以,可以定義J+1個假設H0={cj=c:j=1,...,J} (27)Hj={cj=T,ck=C:k=1,...,J,k≠j式中cj=T表明第j個峰值與真正的聲源相關聯,cj=C表明其它情況。所以,假設H0表明,沒有一個峰值與真正的聲源相關聯。所以,結合的似然模型為p(yt|xt)=π0p(yt|H0)+Σj=1Jπjp(yt|Hj)]]>=π0U+NmΣj=1JπjN(Dj,σD).....(28)]]>s.t.π0+Σj=1Jπj=1]]>式中π0為假設H0的先驗概率,從第j個峰值的相對高度可以獲得πj,j=1,...,J,Nm為歸一化因子,Dj為第j個峰值相應的時間延遲,U表示均勻分布,N()表示高斯分布。
新發明的模型yt-yt|t-1確定如下。與似然模型相同,新發明的模型也需要考慮多峰的事實yt-y‾t|t-1=Σj=1Jπj(Dj-y‾t|t-1).....(29)]]>式中yt|t-1為預測的側UKF獲得的測量結果(見上面的(18)式)。
根據視頻,使用圖15中的UPF過程550來追蹤與會者,類似于根據音頻來追蹤與會者。為了在追蹤應用中使用UPF框架,首先要建立4個實體系統動態模型xt=f(xt-1,mt-1),系統觀測模型yt=h(xt,nt),似然模型p(yt|xt),以及新發明的模型yt-yt|t-1。一旦這4個實體建立之后,就直截了當地使用圖15中的UPF過程550進行追蹤。
系統動態模型xt=f(xt-1,mt-1)確定如下。令(r,s)表示影像坐標。在基于輪廓的追蹤中,系統狀態為橢圓中心的位置及其水平和垂直速度,即xt=[rt,st,r·t,s·t]T]]>。類似于音頻數據的系統動態模型,使用眾所周知的Langevin過程來模擬人運動的動態r1str·ts·t=10τ0010τ00ar0000asrt-1st-1r·t-1s·t-1+00brbsmt...(30)]]>系統觀測模型yt=h(xt,nt)確定如下。橢圓的中心處在當前狀態位置(rt,st)。從橢圓的中心產生K條射線,與橢圓邊界相交。橢圓中心用作局部坐標系統的原點,所以要獲得交點(uk,vk),k=1,2,...,K,uk=tan2φk/(1.44tan2φk+1).....(31)]]>vk=1/(1.44tan2φk+1)]]>可以通過聯合求解橢圓方程和射線方程 將局部(u,v)坐標變換回影像坐標就獲得了以下觀測結果yt=h(xt,nt) (33)=[(uk+rt,vk+st)]+nt,k=1,2,…,K式中nt為測量噪音,服從N(0,R)的高斯分布。應當注意,觀測模型是高度非線性的。
似然模型p(yt|xt)確定如下。沿著K條射線中的每一條,使用眾所周知的Canny邊緣探測器來計算邊緣強度。結果函數是一個多峰函數,正如音頻數據似然模型中的GCCF。多個峰值表示沿著這條射線有多個邊緣候選者。令峰值的數目為J,我們可以使用與為了音頻數據開發的似然模型同樣的似然模型,來模擬沿著射線k的邊緣似然p(k)(yt|xt)=πk0p(k)(yt|H0)+Σj=1Jπkjp(k)(yt|Hj)]]>=πk0U+NmΣj=1JπkjN((uk,vk)j,σkj)]]>考慮到所有的K條射線,所以整體似然為p(yt|xt)=Πk=1Kp(k)(yt|xt)......(34)]]>新發明的模型yt-yt|t-1確定如下。與似然模型相同,新發明的模型也需要考慮多峰的事實y(k)t-y‾(k)t|t-1=Σj=1Jπkj((uk,vk)t,j-(uk,vk)t|t-1)]]>式中k=1,2,...,K,πkj為沿著射線k對第j個峰值的混合加權,可以從對應的邊緣強度獲得。
通用計算機環境圖17展示了一種通用計算機環境600,它可以用于實施本文中介紹的、多個人的自動探測和追蹤。計算機環境600僅僅是計算環境的一個實例,并非試圖建議對計算機和網絡體系結構之使用范疇或功能的任何限制。計算機環境600也不應當被解釋為對示范計算機環境600中展示的組件中任何一個或組合具有任何的依賴或需要。
計算機環境600包括計算機602形式的通用計算設備。例如,計算機602可以是圖1中的系統102、圖2中的系統112、圖3中的系統130等等。計算機602的組件可以包括但是不限于一個或多個處理器或者說處理單元604、一個系統存儲器606和一條系統總線608——它將多種系統組件,包括處理器604連接到系統存儲器606。
系統總線608表示幾種總線結構中任何的一個或多個,包括存儲器總線或者說存儲器控制器、外圍總線、加速圖形端口以及處理器或者使用多種總線體系結構中任何一種的局部總線。例如,這種體系結構可以包括工業標準結構(ISA)總線、微通道結構(MCA)總線、增強的ISA(EISA)總線、視頻電子標準協會(VESA)局部總線以及外圍部件互連(PCI)總線——也被稱為中樓總線。
典型情況下,計算機602包括多種計算機可讀的介質。這種介質可以是任何可用的介質——計算機602可存取,并包括易失性的和非易失性的、可拆卸的和不可拆卸的介質。
系統存儲器606包括易失性存儲器形式的計算機可讀的介質,比如隨機存取存儲器(RAM)610,和/或非易失性存儲器,比如只讀存儲器(ROM)612。在ROM 612中存放著基本輸入/輸出系統(BIOS)614,包含著基本的例程,有助于在計算機602之內的元件之間傳遞信息,比如在啟動期間。典型情況下,RAM 610包含著處理單元604可立即存取和/或正在操作的數據和/或程序模塊。
計算機602也可以包括其它可拆卸的/不可拆卸的、易失性的/非易失性的計算機存儲介質。例如,圖17展示了硬盤驅動器616——用于在不可拆卸的、非易失性的磁介質(未顯示)上讀取和寫入,磁盤驅動器618——用于在可拆卸的、非易失性的磁盤620(如“軟盤”)上讀取和寫入,以及光盤驅動器622——用于在可拆卸的、非易失性的光盤624比如CD-ROM、DVD-ROM或其它光存儲介質上讀取和/或寫入。硬盤驅動器616、磁盤驅動器618和光盤驅動器622都通過一個或多個數據介質接口626,連接到系統總線608。此外,硬盤驅動器616、磁盤驅動器618和光盤驅動器622也可以通過一個或多個接口(未顯示)連接到系統總線608。
這些盤片驅動器和它們相關聯的計算機可讀介質,為計算機602所用的計算機可讀的指令、數據結構、程序模塊和其它數據提供了非易失性的存儲。盡管該實例展示了硬盤616、可拆卸的磁盤620和可拆卸的光盤624,應當承認,也可以采用能夠存放計算機可存取之數據的其它類型的計算機可讀介質,來實現示范的計算系統和環境,比如磁帶或其它磁存儲設備、閃存卡、CD-ROM、數字萬能盤(DVD)或其它光存儲介質、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可電擦除的可編程只讀存儲器(EEPROM)等等。
在硬盤616、磁盤620、光盤624、ROM 612和/或RAM 610中,可用存放任何數目的程序模塊,包括例如操作系統626、一個或多個應用程序628、其它程序模塊630和程序數據632。這種操作系統626、一個或多個應用程序628、其它程序模塊630和程序數據632中的任何一種(或者它們的某些組合),都可以成為支持分布式文件系統的全部或部分駐留組件。
用戶可以通過輸入設備比如鍵盤634和定點設備636如“鼠標”),向計算機602輸入命令和信息。其它輸入設備638(未確切顯示)可能包括話筒、操縱桿、游戲墊板、衛星天線、串口、掃描儀等等。這些和其它輸入設備通過連接到系統總線608的輸入/輸出接口640,連接到處理單元604,但是也可以通過其它接口和總線結構連接,比如并口、游戲端口或者通用串行總線(USB)。
監視器642或其它類型的顯示設備也可以通過接口——比如視頻適配器644——連接到系統總線608。除了監視器642,其它的外圍輸出設備可以包括能夠通過輸入/輸出接口640連接到計算機602的部件,比如揚聲器(未顯示)和打印機646。
計算機602可以運行在網絡化環境中,它使用一臺或多臺遠程計算機的邏輯連接,比如遠程計算設備648。例如,遠程計算設備648可能是一臺個人計算機、便攜計算機、服務器、路由器、網絡計算機、對等設備或者其它普通網絡節點等等。遠程計算設備648展示為便攜計算機,相對于計算機602,它可以包括本文中介紹的許多或全部要素。
在計算機602和遠程計算機648之間的邏輯連接,描述為局域網(LAN)650和一般的廣域網(WAN)652。這種聯網環境在辦公室、企業計算機網絡、內聯網和因特網中是司空見慣的。
在LAN聯網環境中實現時,計算機602通過網絡接口或者說適配器654,連接到局域網650。在WAN聯網環境中實現時,典型情況下計算機602包括調制解調器656或其它裝置,以便建立通過廣域網的通信調制解調器656——它可以在計算機602的內部或外部——可以通過輸入/輸出接口640或其它適當的機制,連接到系統總線608。應當承認,展示的網絡連接是示范性的,在計算機602和648之間,也可以采用其它方式建立通信連接。
在網絡化的環境中,比如計算環境600展示的環境,相對于計算機602或者其中部分所描述的程序模塊,可能存放在遠程存儲器的存儲設備中。例如,遠程應用程序658駐留在遠程計算機648的存儲器設備中。為了便于展示,應用程序和其它可執行程序組件比如操縱系統,在本文中展示為離散的塊,盡管應當理解這些程序和組件在不同的時間駐留在計算設備602的不同的存儲部件中,并被該計算機的數據處理器執行。
分布式文件系統150的實施方案,可以在計算機可執行指令——比如程序模塊,由一臺或多臺計算機或其它設備執行——的一般環境中介紹。一般說來,程序模塊包括例程、程序、對象、組件、數據結構等等,它們執行特定的任務或者實現特定的抽象數據類型。典型情況下,程序模塊的功能可以結合或分配,如多個實施例中的介紹。
對于加密的文件,其文件格式的實施方案可以存放在或者傳送到某種形式的計算機可讀的介質上。計算機可讀的介質可以是計算機可以存取的、任何可用的介質。計算機可讀的介質可能包括例如但是不限于“計算機存儲介質”和通信媒介”。
“計算機存儲介質”包括以任何方法或技術實現的、用于信息——比如計算機可讀的指令、數據結構、程序模塊或其它數據——存儲的易失性的和非易失性的、可拆卸的和不可拆卸的介質。計算機存儲介質包括但是不限于RAM、ROM、EEPROM、閃存或其它存儲器技術、CD-ROM、數字萬能盤(DVD)或其它光存儲介質、盒式磁帶、磁帶、磁盤存儲或其它磁存儲設備,或者能夠用于存放所需信息并且可由計算機存取的任何其它介質。
“通信媒介”典型情況下使計算機可讀的指令、數據結構、程序模塊或其它數據具體化為調制后的數據信號,比如載波或其它傳輸機制。通信媒介也包括任何信息傳遞媒介。術語“調制后的數據信號”表明的信號使其特征的一個或多個,以在信號中編碼信息的方式設置或改變。通信媒介包括例如但是不限于有線媒介比如有線網絡或直接有線連接,以及無須媒介比如聲波、RF、紅外線和其它無須媒介。在計算機可讀媒介的范疇之內,也包括以上類型的任何組合。
盡管本文主要討論涉及人的面孔,但是類似于本文中討論的人的面孔,其它目標也可以自動探測和/或追蹤。
結論雖然上面的介紹使用的語言,對結構特性和/或方法動作才是具體的,應當理解,在附帶的權利要求書中規定的本發明不限于介紹的具體特性和動作。相反,具體的特性和動作是公開為本發明實施的示范形式。
權利要求
1.一種方法,包括接收內容的幀;在該幀中為新的面孔區域自動探測候選區域;使用一個或多個分級驗證級別,驗證人的面孔是否在該候選區域中;如果一個或多個分級驗證級別驗證了人的面孔在該候選區域中,就指明該候選區域包括一個面孔;以及使用多個線索在內容中一幀一幀地追蹤每個證實的面孔。
2.根據權利要求1的方法,其特征在于,內容的幀包括視頻內容的幀。
3.根據權利要求1的方法,其特征在于,內容的幀包括音頻內容的幀。
4.根據權利要求1的方法,其特征在于,內容的幀包括既有視頻內容又有音頻內容的幀。
5.根據權利要求1的方法,進一步包括在證實的面孔追蹤丟失的情況下,重復自動探測。
6.根據權利要求1的方法,其特征在于,接收內容的幀包括從實施本方法之系統本地的視頻捕捉設備接收視頻內容的幀。
7.根據權利要求1的方法,其特征在于,接收內容的幀包括從實施本方法之系統可存取的計算機可讀介質接收內容的幀。
8.根據權利要求1的方法,其特征在于,在該幀中為新的面孔區域探測候選區域包括探測在該幀中是否有運動,如果在該幀中有運動,那么執行基于運動的初始化,以確認一個或多個候選區域;探測在該幀中是否有音頻,如果在該幀中有音頻,那么執行基于音頻的初始化,以確認一個或多個候選區域;以及如果在該幀中既沒有運動也沒有音頻,就使用快速面孔探測器來確認一個或多個候選區域。
9.根據權利要求1的方法,其特征在于,在該幀中為新的面孔區域探測候選區域包括確定在跨越該幀的多條線上的多個像素處是否有運動;對多條線中每一條的每個可能的區段,產生幀差異之和;對多條線中的每一條,選擇具有最大和的區段;確認選定區段的最平滑的區域;檢驗該最平滑的區域是否像人的上半身;以及在最平滑區域中提取像人的頭部的區域作為候選區域。
10.根據權利要求9的方法,其特征在于,確定是否有運動包括對于多個像素中的每一個,確定該幀中像素的亮度值與其它的一幀或多幀中對應像素的亮度值之間的差異是否超過閾值。
11.根據權利要求1的方法,其特征在于,一個或多個分級驗證級別包括一個粗略級別和一個精細級別,其中粗略級別能夠更快地驗證人的面孔是否在候選區域中,但是比精細級別的準確度低。
12.根據權利要求1的方法,其特征在于,使用一個或多個分級驗證級別包括產生候選區域的顏色直方圖;根據前面若干幀,產生候選區域的估計顏色直方圖;確定該顏色直方圖和該估計顏色直方圖之間的相似度值;以及如果相似度值大于閾值,驗證該候選區域包括一個面孔;作為驗證級別之一。
13.根據權利要求1的方法,其特征在于,指明該候選區域包括一個面孔,包括在追蹤列表中記錄該候選區域。
14.根據權利要求13的方法,其特征在于,在追蹤列表中記錄該候選區域,包括存取與該候選區域對應的一個記錄,以及使該候選區域的上次驗證后的時間復位。
15.根據權利要求1的方法,其特征在于,一個或多個分級驗證級別包括一個第一級別和一個第二級別,其特征還在于,使用一個或多個分級驗證級別,驗證人的面孔是否在該候選區域中包括使用第一級別驗證,檢驗人的面孔是否驗證為在候選區域中;以及只有檢驗表明第一級別驗證中,人的面孔沒有驗證為在候選區域中,才使用第二級別驗證。
16.根據權利要求1的方法,其特征在于,使用一個或多個分級驗證級別包括使用第一驗證過程確定人的頭部是否在候選區域中;以及如果第一驗證過程驗證了人的頭部是在候選區域中,那么指明該區域包括一個面孔,否則使用第二驗證過程確定人的頭部是否在該區域中。
17.根據權利要求16的方法,其特征在于,第一驗證過程更快,但是比第二驗證過程的準確度低。
18.根據權利要求1的方法,其特征在于,多個線索包括前景顏色、背景顏色、邊緣強度、運動和音頻。
19.根據權利要求1的方法,其特征在于,使用多個線索追蹤每個證實的面孔包括對于每個面孔預測面孔的輪廓將在何處;對懲罰粗糙的平滑約束進行編碼;對多個可能的輪廓位置應用平滑約束;以及在該幀中選擇具有最平滑輪廓的輪廓位置作為面孔的位置。
20.根據權利要求19的方法,其特征在于,平滑約束包括輪廓平滑。
21.根據權利要求19的方法,其特征在于,平滑約束既包括輪廓平滑又包括區域平滑。
22.根據權利要求19的方法,其特征在于,對平滑約束進行編碼包括產生隱藏馬爾可夫模型(HMM)的狀態轉換概率。
23.根據權利要求19的方法,其特征在于,對平滑約束進行編碼包括產生聯合概率數據關聯濾波器(JPDAF)的狀態轉換概率。
24.根據權利要求19的方法,其特征在于,使用多個線索追蹤每個證實的面孔進一步包括對于每個面孔考慮變化的顏色分布,在后續幀中調整面孔的預測。
25.根據權利要求19的方法,其特征在于,使用多個線索追蹤每個證實的面孔進一步包括對于每個面孔根據該幀中觀測的一個或多個線索,在后續幀中調整面孔的預測。
26.根據權利要求1的方法,其特征在于,使用多個線索追蹤每個證實的面孔包括對于每個面孔存取面孔的一個或多個特性點組成的組;分析該幀以確認包括一個或多個特性點組成之組的區域;對懲罰粗糙的平滑約束進行編碼;對多個可能的輪廓位置應用平滑約束;以及在該幀中選擇具有最平滑輪廓的輪廓位置作為面孔的位置。
27.根據權利要求1的方法,其特征在于,使用多個線索追蹤每個證實的面孔包括一幀一幀地同時追蹤多個可能的面孔位置。
28.根據權利要求27的方法,進一步包括使用多假設追蹤技術同時追蹤多個可能的位置。
29.根據權利要求27的方法,進一步包括使用微粒濾波器同時追蹤多個可能的位置。
30.根據權利要求27的方法,進一步包括使用無氣味微粒濾波器同時追蹤多個可能的位置。
31.一種在視頻內容中追蹤多個人的系統,該系統包括一個自動初始化模塊,在該視頻內容的一幀中為新的面孔探測候選區域;一個分級驗證模塊,產生候選區域的置信度;以及一個多線索追蹤模塊,使用多個視覺線索追蹤前面帶有置信度的候選區域,該置信度是由分級驗證模塊產生并超過閾值。
32.根據權利要求31的系統,其特征在于,分級驗證模塊進一步配置為檢驗置信度是否超過閾值;如果置信度確實超過閾值,那么將該候選區域傳遞到多線索追蹤模塊;以及如果置信度沒有超過閾值,那么將該候選區域清除并且不將該候選區域傳遞到多線索追蹤模塊。
33.根據權利要求31的系統,其特征在于,分級驗證模塊進一步配置為從多線索追蹤模塊接收區域的一個指示;驗證該區域是否為一個面孔;以及只有該區域驗證為一個面孔時,才將該區域返回多線索追蹤模塊以便繼續追蹤。
34.根據權利要求31的系統,其特征在于,該系統包括一個視頻會議系統。
35.根據權利要求31的系統,其特征在于,自動初始化模塊進一步要探測在該幀中是否有運動;如果在該幀中有運動,那么執行基于運動的初始化,以確認候選區域;探測在該幀中是否有音頻;如果在該幀中有音頻,那么執行基于音頻的初始化,以確認候選區域;以及如果在該幀中既沒有運動,在該幀中也沒有音頻,就使用快速面孔探測器來確認候選區域。
36.根據權利要求31的系統,其特征在于,分級驗證模塊要使用的一個或多個分級驗證級別包括一個粗略級別和一個精細級別,其中粗略級別能夠更快地驗證新面孔是否在候選區域中,但是比精細級別的準確度低。
37.一種或多種計算機可讀的介質,其中已經存放著多條指令,當被一個或多個處理器執行時,這些指令使這一個或多個處理器接收視頻內容的一幀中的區域指示;使用第一驗證過程,確定人的頭部是否在該區域中;以及如果第一驗證過程驗證了人的頭部是在該區域中,那么指明該區域包括一個面孔,否則使用第二驗證過程確定人的頭部是否在該區域中。
38.根據權利要求37的一種或多種計算機可讀介質,其特征在于,第一驗證過程和第二驗證過程對應于多個分級驗證級別。
39.根據權利要求38的一種或多種計算機可讀介質,其特征在于,多個分級驗證級別包括多于兩個分級驗證級別。
40.根據權利要求37的一種或多種計算機可讀介質,其特征在于,第一驗證過程是一種粗略級別的過程,第二驗證過程第一驗證過程是一種精細級別的過程,其中粗略級別過程能夠更快地驗證人的頭部是否在候選區域中,但是比精細級別過程的準確度低。
41.根據權利要求37的一種或多種計算機可讀介質,其特征在于,使用第一驗證過程的多條指令包括的指令使這一個或多個處理器產生該區域的顏色直方圖;根據視頻內容的前面若干幀,產生該區域的估計顏色直方圖;確定該顏色直方圖和該估計顏色直方圖之間的相似度值;以及如果相似度值大于閾值,驗證該候選區域包括一個人的頭部。
42.根據權利要求37的一種或多種計算機可讀介質,其特征在于,接收視頻內容一幀中的區域指示的多條指令包括的指令使這一個或多個處理器在該幀中為新的面孔區域接收一個候選區域。
43.根據權利要求37的一種或多種計算機可讀介質,其特征在于,接收視頻內容一幀中的區域指示的多條指令包括的指令使這一個或多個處理器接收一個區域再次驗證為包括一個面孔的指示。
44.一種或多種計算機可讀的介質,其中已經存放著在內容的一幀為一個未追蹤的面孔探測候選區域的多條指令,當被一個或多個處理器執行時,這多條指令使這一個或多個處理器探測在該幀中是否有運動;如果在該幀中有運動,那么執行基于運動的初始化,以確認候選區域;探測在該幀中是否有音頻;如果在該幀中有音頻,那么執行基于音頻的初始化,以確認候選區域;以及如果在該幀中既沒有運動,在該幀中也沒有音頻,就使用快速面孔探測器來確認候選區域。
45.根據權利要求44的一種或多種計算機可讀介質,其特征在于,執行基于運動的初始化的多條指令包括的指令使這一個或多個處理器確定在跨越該幀的多條線上的多個像素處是否有運動;對多條線中若干條的多個區段,產生幀差異之和;對多條線中的每一條,選擇具有最大和的區段;確認選定區段的最平滑的區域;檢驗該最平滑的區域是否像人的上半身;以及在最平滑區域中提取像人的頭部的區域作為候選區域。
46.根據權利要求45的一種或多種計算機可讀介質,其特征在于,確定是否有運動的指令包括的指令使這一個或多個處理器對于多個像素中的每一個,確定該幀中像素的亮度值與其它的一幀或多幀中對應像素的亮度值之間的差異是否超過閾值。
47.一種或多種計算機可讀的介質,其中已經存放著在內容中一幀一幀地追蹤若干面孔的多條指令,當被一個或多個處理器執行時,這多條指令使這一個或多個處理器使用多個線索,在一幀中預測面孔的輪廓將在何處;對懲罰粗糙的平滑約束進行編碼;對多個可能的輪廓位置應用平滑約束;以及在該幀中選擇具有最平滑輪廓的輪廓位置作為面孔的位置。
48.根據權利要求47的一種或多種計算機可讀介質,其特征在于,多個線索包括前景顏色、背景顏色、邊緣強度和運動。
49.根據權利要求47的一種或多種計算機可讀介質,其特征在于,多個線索包括音頻。
50.根據權利要求47的一種或多種計算機可讀介質,其特征在于,平滑約束包括輪廓平滑。
51.根據權利要求47的一種或多種計算機可讀介質,其特征在于,平滑約束既包括輪廓平滑又包括區域平滑。
52.根據權利要求47的一種或多種計算機可讀介質,其特征在于,對平滑約束進行編碼的多條指令包括的指令使這一個或多個處理器產生隱藏馬爾可夫模型(HMM)的狀態轉換概率。
53.根據權利要求47的一種或多種計算機可讀介質,其特征在于,對平滑約束進行編碼的多條指令包括的指令使這一個或多個處理器產生聯合概率數據關聯濾波器(JPDAF)的狀態轉換概率。
54.根據權利要求47的一種或多種計算機可讀介質,其特征在于,多條指令進一步包括的指令使這一個或多個處理器考慮變化的顏色分布,在后續幀中調整面孔的預測。
55.根據權利要求47的一種或多種計算機可讀介質,其特征在于,多條指令進一步包括的指令使這一個或多個處理器根據該幀中觀測的一個或多個線索,在后續幀中調整面孔的預測。
56.根據權利要求47的一種或多種計算機可讀介質,多條指令進一步包括的指令使這一個或多個處理器一幀一幀地同時追蹤多個可能的面孔位置。
57.根據權利要求56的一種或多種計算機可讀介質,多條指令進一步包括的指令使這一個或多個處理器同時追蹤多個可能的位置。
58.一種沿著內容的若干幀追蹤目標的方法,該方法包括使用多個線索追蹤該目標。
59.根據權利要求58的方法,其特征在于,多個線索包括前景顏色、背景顏色、邊緣強度、運動和音頻。
60.根據權利要求58的方法,其特征在于,使用多個線索包括根據多個線索一幀一幀地預測目標將在何處。
61.一種沿著內容的若干幀追蹤目標的方法,該方法包括在一幀中預測目標將在何處;對懲罰粗糙的平滑約束進行編碼;對多個可能的目標位置應用平滑約束;以及在該幀中選擇具有最平滑輪廓的目標位置作為目標的位置。
62.根據權利要求61的方法,其特征在于,該預測使用多個線索,包括前景顏色、背景顏色、邊緣強度、運動和音頻。
63.根據權利要求61的方法,其特征在于,平滑約束既包括輪廓平滑又包括區域平滑。
64.根據權利要求61的方法,其特征在于,對平滑約束進行編碼包括產生隱藏馬爾可夫模型(HMM)的狀態轉換概率。
65.根據權利要求61的方法,其特征在于,對平滑約束進行編碼包括產生聯合概率數據關聯濾波器(JPDAF)的狀態轉換概率。
66.根據權利要求61的方法,其特征在于,使用多個線索追蹤每個證實的面孔進一步包括對于每個面孔根據該幀中觀測的一個或多個線索,在后續幀中調整面孔的預測。
67.根據權利要求61的方法,其特征在于,預測目標將在何處包括存取面孔的一個或多個特性點組成的組;以及分析該幀以確認包括一個或多個特性點組成之組的區域。
68.根據權利要求61的方法,其特征在于,使用多個線索追蹤每個證實的面孔包括一幀一幀地同時追蹤多個可能的面孔位置。
69.根據權利要求68的方法,進一步包括使用多假設追蹤技術同時追蹤多個可能的位置。
70.根據權利要求61的方法,其特征在于,該目標包括視頻內容中的一個面孔。
71.根據權利要求61的方法,其特征在于,該目標包括音頻內容中的一個聲源位置。
全文摘要
對多個人的自動探測和追蹤包括接收視頻和/或音頻內容的一幀,并在該幀中為新的面孔區域確認一個候選區域。一個或多個分級驗證級別用于驗證人的面孔是否在候選區域中,如果一個或多個分級驗證級別驗證了人的面孔是在候選區域中,就作出該候選區域包括一個面孔的指示。多個音頻和/或視頻線索用于在視頻內容中一幀一幀地追蹤每個證實的面孔。
文檔編號H04N7/26GK1423487SQ0215266
公開日2003年6月11日 申請日期2002年11月29日 優先權日2001年12月3日
發明者芮永, 陳云強 申請人:微軟公司