專利名稱:深度相機(jī)兼容性的制作方法
深度相機(jī)兼容性
背景技術(shù):
相機(jī)可用于捕捉場景的靜止圖像??焖龠B續(xù)拍攝的若干靜止圖像可用于生成包括多個幀的電影,每一幀對應(yīng)于不同的靜止圖像。盡管這樣的圖像在各種不同的應(yīng)用中是非常有用的,但這樣的圖像并非很好地適于某些目的。具體而言,常規(guī)的靜止圖像和電影不提供足以準(zhǔn)確地評估在場景中所捕捉的各種表面的相對深度的信息。已經(jīng)開發(fā)了不同類型的深度相機(jī)以滿足這種需求。然而,各種不同類型的深度相機(jī)可能產(chǎn)生在一個或多個方面都彼此不同的深度圖像。這樣,使用深度圖像的應(yīng)用僅僅與產(chǎn)生具有期望特性的深度圖像的特定類型的深度相機(jī)相兼容。
發(fā)明內(nèi)容
提供本發(fā)明內(nèi)容以便以簡化形式介紹將在以下詳細(xì)描述中進(jìn)一步描述的一些概 念。本概述并不旨在標(biāo)識所要求保護(hù)主題的關(guān)鍵特征或必要特征,也不旨在用于限制所要求保護(hù)主題的范圍。此外,所要求保護(hù)的主題不限于解決在本公開的任一部分中所提及的任何或所有缺點(diǎn)的實(shí)現(xiàn)。根據(jù)本公開的一個方面,可以通過接收具有與深度圖像消費(fèi)者不兼容的不支持深度相機(jī)參數(shù)的本機(jī)深度圖像并將該本機(jī)深度圖像轉(zhuǎn)換成具有與該深度圖像消費(fèi)者相兼容的支持的虛擬深度相機(jī)參數(shù)的虛擬深度圖像來提供深度圖像消費(fèi)者和多個不同的深度圖像生產(chǎn)者之間的兼容性。隨后,可以將這種虛擬深度圖像輸出給所述深度圖像消費(fèi)者。
圖I示出示例的深度圖像使用環(huán)境。圖2示出根據(jù)本公開的一實(shí)施例的深度相機(jī)可交替系統(tǒng)。圖3A和3B圖解示出深度相機(jī)視錐體。圖4A-4C示出根據(jù)本公開的示例深度圖像生產(chǎn)者。圖5示出用于提供在一個深度相機(jī)消費(fèi)者和多個不同的深度相機(jī)生產(chǎn)者之間的兼容性的示例方法。圖6示出提供深度相機(jī)兼容性的另一示例方法。圖7圖解示出在離開光源一定距離處的傳感器上所創(chuàng)建的陰影效果的示例。圖8圖解示出說明通過陰影合成算法查找附有陰影的像素的示例圖示。圖9圖解示出在深度抽象層內(nèi)的示例圖像處理塊。圖10更加詳細(xì)地圖解示出了圖9的示例圖像處理塊。圖11示意性地示出根據(jù)本公開的一實(shí)施例的計算系統(tǒng)。
具體實(shí)施例方式本公開涉及深度相機(jī)兼容性。如在此所述,兼容性技術(shù)允許同一計算系統(tǒng)使用不同型號的深度相機(jī)。一個應(yīng)用開發(fā)者可以容易地創(chuàng)建與各種不同的深度相機(jī)相兼容的應(yīng)用,這些深度相機(jī)包括在應(yīng)用開發(fā)者創(chuàng)建應(yīng)用時還不存在的深度相機(jī)。根據(jù)本公開的一個方面,應(yīng)用開發(fā)者可以創(chuàng)建被配置為與通用虛擬深度相機(jī)一起工作的應(yīng)用,并且兼容性技術(shù)可以將來自各種不同的深度相機(jī)的本機(jī)輸入轉(zhuǎn)換成一種與通用虛擬深度相機(jī)相兼容的形式。這樣,應(yīng)用可以與各種不同的深度相機(jī)相兼容,包括使用完全不同的深度查找技術(shù)(例如結(jié)構(gòu)化光、飛行時間、立體視覺等)的深度相機(jī)。使用在此所述的技術(shù),應(yīng)用開發(fā)者不需要知曉用于支持各種不同的深度相機(jī)的乏味且艱難的工作,代之以可以為單個通用虛擬深度相機(jī)進(jìn)行開發(fā)。同時,兼容性技術(shù)促進(jìn)了可以提供改進(jìn)性能、更低制造和/或操作成本、改進(jìn)的能量效率和/或其他有用特性的新的深度相機(jī)的開發(fā)和實(shí)現(xiàn)。這樣,當(dāng)開發(fā)了新的相機(jī)技術(shù)時,這種技術(shù)就能在與先前開發(fā)的應(yīng)用向后兼容的新相機(jī)中實(shí)現(xiàn)。圖I示出計算系統(tǒng)10的非限制性示例,該計算系統(tǒng)可以設(shè)計具有提供如上所介紹的相機(jī)兼容性的深度相機(jī)可交替系統(tǒng)。具體而言,圖I示出了游戲控制臺12,該游戲控制臺12可以用于玩各種各樣不同的游戲、播放一種或多種不同的媒體類型、和/或控制或操 縱非游戲應(yīng)用。圖I還示出高清電視(即或HDTV 16)形式的顯示器14,該顯示器14可被用于向用戶(諸如,用戶18)呈現(xiàn)視覺信息。此外,圖I示出了深度相機(jī)20形式的捕捉設(shè)備,該捕捉設(shè)備可被用于視覺地監(jiān)視一個或多個用戶(例如,用戶18)。雖然是在游戲系統(tǒng)上下文中描述的,但應(yīng)該理解可以在配置用于使用來自深度相機(jī)的深度圖像的幾乎任意計算系統(tǒng)中實(shí)現(xiàn)深度相機(jī)可交替系統(tǒng)。諸如游戲控制臺12的計算系統(tǒng)可以用于識別、分析和/或跟蹤諸如用戶18之類的一個或多個目標(biāo)??蓪⒛繕?biāo)移動解釋為操作系統(tǒng)和/或應(yīng)用控制。事實(shí)上,操作系統(tǒng)和/或應(yīng)用的任何可控方面可以通過用戶18之類的目標(biāo)的移動來控制。另外或可替換地,通過深度相機(jī)20獲取的深度信息可以用于除跟蹤目標(biāo)之外的目的。作為示例,深度相機(jī)20可以被用于可視地調(diào)查一個房間和/或一個或多個物體。從深度相機(jī)20獲取的深度信息可以被用于創(chuàng)建正被調(diào)查的房間和/或物體的三維計算機(jī)可讀的模型。作為另一個示例,可以將深度相機(jī)用作在諸如車輛或機(jī)器人之類移動的計算系統(tǒng)上的近程傳感器。諸如深度相機(jī)20之類的深度相機(jī)可以被用于提供這些和各種其他有用的功能。具體而言,可以為提供任意數(shù)目的不同的利用來自深度相機(jī)的深度信息的功能而開發(fā)和部署應(yīng)用。然而,大多數(shù)應(yīng)用包括用于減少來自深度相機(jī)的視場的真實(shí)世界的特性的復(fù)雜的算法和處理策略。例如,骨骼跟蹤算法和處理策略可以被用于用跟蹤諸如用戶18的目標(biāo)的骨骼的機(jī)器表示來建模該目標(biāo)。作為另一個示例,地板查找算法可以被用于查找場景中的地板。沒有使用在此所述的相機(jī)兼容性技術(shù)的應(yīng)用可以被設(shè)計為接收特定格式和/或具有特定參數(shù)的深度信息。這種應(yīng)用不能使用與所期望的格式和/或參數(shù)不匹配的深度信息。在一些情況中,與所期望的格式和/或參數(shù)不匹配的深度信息可能破壞這樣的應(yīng)用。每種不同類型的深度相機(jī)可以產(chǎn)生具有一個或多個格式化差異和/或不同的參數(shù)的深度信息。這樣,直到現(xiàn)在,應(yīng)用是考慮針對特定深度相機(jī)來設(shè)計的。然而,當(dāng)應(yīng)用被設(shè)計成僅與一個特定深度相機(jī)一起使用,該應(yīng)用也就不能支持可以以未知格式和或用意料之外的參數(shù)來輸出深度信息的新相機(jī)。圖2圖解地示出了提供在一個深度圖像消費(fèi)者32和多個不同的深度圖像生產(chǎn)者34 (例如深度圖像生產(chǎn)者34a、深度圖像生產(chǎn)者34b以及深度圖像生產(chǎn)者34c)之間的兼容性的深度相機(jī)可交替系統(tǒng)30。如在此所用,深度圖像消費(fèi)者是指被配置為利用來自深度相機(jī)的深度信息的任意操作系統(tǒng)、應(yīng)用、服務(wù)、進(jìn)程、模塊、引擎或其他對象。深度相機(jī)可交替系統(tǒng)30相對于深度圖像消費(fèi)者可以使用的深度相機(jī)的型號提供了更多的靈活性。具有不同參數(shù)的相機(jī)、基于不同的深度查找技術(shù)的相機(jī)以及產(chǎn)生不同類型的深度圖像的相機(jī)可以可交替地與深度相機(jī)可交替系統(tǒng)30 —起使用。作為示例,深度圖像生產(chǎn)者34a可以包括使用結(jié)構(gòu)化光技術(shù)來估計深度圖像的深度相機(jī);并且深度圖像生產(chǎn)者34b可以包括使用飛行時間技術(shù)來估計深度圖像的深度相機(jī)。由于深度相機(jī)可交替系統(tǒng)30,這兩個相機(jī)都與深度圖像消費(fèi)者32相兼容。深度圖像 消費(fèi)者32不需要針對與這兩個相機(jī)中的任一個相機(jī)的兼容性而特別設(shè)計??梢栽谶@兩個相機(jī)中的任一個相機(jī)發(fā)布之前開發(fā)深度圖像消費(fèi)者32。換句話說,深度相機(jī)可交替系統(tǒng)30促進(jìn)了深度圖像消費(fèi)者和各種不同的深度相機(jī)(包括在深度圖像消費(fèi)者開發(fā)之后所開發(fā)的深度相機(jī))之間的兼容性。如圖2所示,深度相機(jī)可交替系統(tǒng)30包括初始化模塊36、捕捉模塊38、虛擬化模塊40以及輸出模塊42。在至少一些實(shí)施例中,深度相機(jī)可交替系統(tǒng)30的初始化模塊、捕捉模塊、虛擬化模塊、輸出模塊和/或其他組件可以被實(shí)現(xiàn)為應(yīng)用編程接口(API)的一部分。API可以由操作系統(tǒng)、應(yīng)用、庫和/或其他對象實(shí)現(xiàn)以建立在深度圖像生產(chǎn)者和深度圖像消費(fèi)者之間使用的通信約定。API可以包括用于在深度圖像生產(chǎn)者和深度圖像消費(fèi)者之間通信的例程、數(shù)據(jù)結(jié)構(gòu)、對象類和協(xié)議的規(guī)范。而且,API可以包括功能塊或與功能塊對接,所述功能塊被配置為處理深度圖像的各個方面,例如,如下參考虛擬化模塊40和仿真模塊44所描述的。初始化模塊36可以被配置為了解諸如深度圖像消費(fèi)者32之類的深度圖像消費(fèi)者所支持的虛擬深度相機(jī)參數(shù)。為了允許這樣的了解,可以開發(fā)諸如骨骼跟蹤游戲應(yīng)用之類的深度圖像消費(fèi)者以與除了特定深度相機(jī)(例如特定構(gòu)造和型號的結(jié)構(gòu)化光深度相機(jī))之外的或取代特定深度相機(jī)的虛擬深度相機(jī)相兼容。在這種實(shí)例中,深度圖像消費(fèi)者可以被配置為提供深度圖像消費(fèi)者所期望的虛擬深度相機(jī)參數(shù)的指示(例如x-y-z分辨率、視錐體、深度圖像類型等)。而且,初始化模塊可以被配置為從深度圖像消費(fèi)者接收所支持的虛擬深度相機(jī)參數(shù)的指示。如上所述,初始化模塊可被可選地實(shí)現(xiàn)為API的一部分,深度圖像消費(fèi)者和深度圖像生產(chǎn)者可以使用它來彼此通信。所支持的虛擬深度相機(jī)參數(shù)的指示可以指定虛擬深度相機(jī)的期望視錐體和/或虛擬深度相機(jī)的期望分辨率。這樣的期望的視錐體和/或期望分辨率可以不同于特定深度相機(jī)的本機(jī)視錐體和本機(jī)分辨率。所支持的虛擬深度相機(jī)參數(shù)的指示可以指定虛擬深度相機(jī)所基于的實(shí)際深度相機(jī)的型號。下面的描述概述了初始化模塊36可以了解的不同參數(shù)的非限制性采樣。深度相機(jī)通常在每個像素處測量從最近的表面到深度相機(jī)傳感器的徑向距離。通過從深度相機(jī)沿光線將該距離投射入建模真實(shí)世界的三維空間中,可以將這個距離轉(zhuǎn)換成世界坐標(biāo)。這種處理產(chǎn)生了不存在緊密的線性邊界的三維樣本區(qū)域。實(shí)際上,這些點(diǎn)由深度相機(jī)的視錐體(在兩個同心球體的兩個三維弧之間所捕獲的空間(假設(shè)沒有透鏡畸變))來劃界。圖3A示出示例深度相機(jī)48的示例視錐體46。由深度相機(jī)可測量的景深來確定同心球體的位置。較小的同心球體具有等同于該深度相機(jī)的最小可測量距離的半徑,而較大的同心球體具有等同于該深度相機(jī)的最大可測量距離的半徑。在空間中的三維弧的大小由該深度相機(jī)的視野(例如視角)來確定。深度相機(jī)的視錐體的位置和方向由深度相機(jī)的物理位置和物理朝向來確定。在視錐體中包括了多少不同的像素是由該深度相機(jī)的分辨率來確定的。深度的敏感度(分辨率)取決于作為來自該深度相機(jī)的輸出而被接收的每像素的位數(shù)。然而,實(shí)際的敏感度可能更低。參數(shù)(例如景深、視野、分辨率、位置、方向、透鏡畸變等)對于不同的相機(jī)來說可以是不同的。在相機(jī)之間的參數(shù)中的差異可以造成困難,因為深度圖像消費(fèi)者對于這種差異可以是高度敏感的。這樣,取代為接收來自具有某種深度相機(jī)參數(shù)的特定深度相機(jī)的深度圖像來進(jìn)行開發(fā),可以開發(fā)深度圖像消費(fèi)者以與具有虛擬深度相機(jī)參數(shù)的虛擬深度相機(jī)相 兼容。如下所述,深度相機(jī)可交替系統(tǒng)可以根據(jù)虛擬深度相機(jī)的虛擬參數(shù)有效地轉(zhuǎn)換從實(shí)際相機(jī)接收到的深度信息,這樣,深度圖像的消費(fèi)者可以使用來自實(shí)際相機(jī)的深度信息。在一些實(shí)施例中,可以配置初始化模塊36以生成瞄準(zhǔn)指令37來方便瞄準(zhǔn)與深度圖像消費(fèi)者的所支持的虛擬深度相機(jī)參數(shù)相兼容的深度相機(jī)。作為示例,深度圖像消費(fèi)者可能期望一個向下朝著地板瞄準(zhǔn)的深度相機(jī),以便掃描用戶的腳。這樣,可以生成瞄準(zhǔn)指令以傳達(dá)該期望。在深度相機(jī)包括定位電動機(jī)或其他自動重定位其自身的裝置(例如深度圖像生產(chǎn)者34c的深度相機(jī))的實(shí)施例中,初始化模塊可以被配置為向深度相機(jī)發(fā)送瞄準(zhǔn)指令,以便深度相機(jī)可以根據(jù)該瞄準(zhǔn)指令重定位自己。在一些實(shí)施例中,可以通過視覺和/或音頻指令將瞄準(zhǔn)指令傳遞給用戶,以便用戶手動重定位深度相機(jī)。在一些實(shí)施例中,可以將坐標(biāo)系統(tǒng)抽象化,以便深度圖像消費(fèi)者將接收具有期望坐標(biāo)系統(tǒng)的深度圖像。在一些實(shí)例中,這可能涉及通過使用測量視線的硬件或通過測量地板相對于相機(jī)的角度來旋轉(zhuǎn)坐標(biāo)系統(tǒng)以與地板(例如)對齊。捕捉模塊38可被配置為接收來自深度圖像生產(chǎn)者的本機(jī)深度圖像。作為一個非限制性示例,捕捉模塊可以接收來自包括飛行時間相機(jī)的深度圖像生產(chǎn)者的本機(jī)深度圖像。如上所述,捕捉模塊可被可選地實(shí)現(xiàn)為API的一部分,深度圖像消費(fèi)者和深度圖像生產(chǎn)者可以使用它來彼此通信。深度圖像生產(chǎn)者可以僅包括深度相機(jī),或者深度圖像生產(chǎn)者可以包括深度相機(jī)以及板外(off-board)處理引擎。如圖4A所示,深度圖像生產(chǎn)者34'可以包括相機(jī)上處理器52,它被配置為將原始深度數(shù)據(jù)(未示出)轉(zhuǎn)換成本機(jī)深度圖像54。在這樣的情況下,可以配置捕捉模塊38’來通過相機(jī)上處理器52接收本機(jī)深度圖像54。如圖4B所示,深度圖像生產(chǎn)者34”可以包括相機(jī)外處理器56,它將原始深度數(shù)據(jù)60轉(zhuǎn)換成本機(jī)深度圖像54”。相機(jī)外處理器56可以是其上運(yùn)行了深度圖像消費(fèi)者32”的計算系統(tǒng)10”的一部分。在這樣的情況下,可以配置捕捉模塊38”來通過相機(jī)外處理器56接收本機(jī)深度圖像。如圖4C所示,深度圖像生產(chǎn)者34”’可以包括相機(jī)上處理器52”’和相機(jī)外處理器56”’,它們合作以將原始深度數(shù)據(jù)(未示出)轉(zhuǎn)換成本機(jī)深度圖像54”’。在這樣的情況下,可以配置捕捉模塊38”’以通過相機(jī)上處理器52”’和相機(jī)外處理器56”’接收本機(jī)深度圖像54”’。具體而言,相機(jī)上處理器52”’可以向相機(jī)外處理器56”’傳遞已經(jīng)相對于原始深度相機(jī)數(shù)據(jù)被部分處理過的中間數(shù)據(jù)62。如在圖4B的示例中,相機(jī)外處理器56”’可以是其上運(yùn)行例如深度圖像消費(fèi)者32”’的計算系統(tǒng)10”’的一部分。轉(zhuǎn)回到圖2,可以配置虛擬化模塊40以將本機(jī)深度圖像轉(zhuǎn)換成具有與所述深度圖像消費(fèi)者相兼容的所支持的虛擬深度相機(jī)參數(shù)的虛擬深度圖像。具體而言,可以配置虛擬化模塊以根據(jù)通過初始化模塊從深度圖像消費(fèi)者接收的虛擬參數(shù)的指示將本機(jī)深度圖像轉(zhuǎn)換成虛擬深度圖像。虛擬化模塊可以可選擇地被實(shí)現(xiàn)為API的一部分或作為與深度圖像消費(fèi)者和深度圖像生產(chǎn)者用于通信的API相兼容的應(yīng)用或服務(wù)。作為一個示例轉(zhuǎn)換,可以配置虛擬化模塊40以通過剪輯本機(jī)深度圖像的視錐體來將本機(jī)深度圖像轉(zhuǎn)換成虛擬深度圖像。在圖3B中稍微圖解示出了這種轉(zhuǎn)換的一個示例。以實(shí)線示出了虛擬視錐體70??梢杂商摂M深度相機(jī)參數(shù)來指定虛擬視錐體70。在同一視圖中所疊加的是實(shí)際深度相機(jī)74的本機(jī)視錐體72。本機(jī)視錐體72以虛線示出。通過比較可以看出,本機(jī)視錐體72具有比虛擬視錐體70更寬的視野和更深的景深。這樣,本機(jī)視錐體72不能與期望虛擬視錐體70的深度圖像消費(fèi)者相兼容。 虛擬化模塊可以剪輯本機(jī)視錐體到虛擬視錐體。換句話說,可以從深度圖像中移除由深度相機(jī)74讀取的位于虛擬視錐體的視野和/或景深之外的深度信息。在一些實(shí)施例中,所移除的信息可以簡單地被忽略,而保持虛擬視錐體中的深度信息不變。在一些實(shí)施例中,所移除的深度信息可以被用于有選擇地修改虛擬視錐體中的深度信息。作為另一個示例轉(zhuǎn)換,可以配置虛擬化模塊40以通過改變本機(jī)深度圖像的分辨率(例如降低本機(jī)深度圖像的分辨率)來將本機(jī)深度圖像轉(zhuǎn)換成虛擬深度圖像。虛擬化任意重采樣算法可被用于改變分辨率。作為非限制性示例,可以使用最近-鄰居算法,其中具有希望分辨率的采樣網(wǎng)格與來自實(shí)際深度相機(jī)的深度圖像概念上對齊。采樣網(wǎng)格的每個采樣像素可以分配來自實(shí)際深度相機(jī)的與該采樣像素最近的像素的深度值。作為其他非限制性示例,重采樣算法可以取最近像素的平均或距離加權(quán)平均。上述提供的剪輯視錐體和改變分辨率的示例是非限制性的。應(yīng)該理解,可以將深度圖像消費(fèi)者設(shè)計為期望具有任意數(shù)目的不同虛擬參數(shù)的虛擬相機(jī),并且可以根據(jù)這樣的參數(shù)來轉(zhuǎn)換實(shí)際深度圖像以便實(shí)現(xiàn)與深度圖像消費(fèi)者的虛擬深度相機(jī)的兼容。轉(zhuǎn)回圖2,在一些實(shí)施例中,虛擬化模塊40可以包括仿真模塊44,該仿真模塊44被配置為通過將本機(jī)深度圖像處理為具有深度圖像消費(fèi)者所支持的支持類型的仿真深度圖像來將本機(jī)深度圖像轉(zhuǎn)換為虛擬深度圖像。換句話說,深度圖像消費(fèi)者可以被設(shè)計為期望使用特定型號的深度相機(jī)和/或特定深度獲取技術(shù)(例如結(jié)構(gòu)化光或飛行時間)來創(chuàng)建的深度圖像。當(dāng)來自不同類型的深度相機(jī)的深度圖像最終產(chǎn)生其中每個像素被分配了一個深度值的深度圖像時,所述不同類型的深度相機(jī)之間的差異可以導(dǎo)致被分配給每個像素的深度值之間的各種差異??梢栽O(shè)計深度圖像消費(fèi)者來處理來自特定深度相機(jī)的特定類型的深度圖像。這樣,可以配置仿真模塊44以將來自不支持的深度相機(jī)的深度圖像改變?yōu)榭瓷先ズ孟衿湓醋灾С值纳疃认鄼C(jī)。例如,仿真模塊44可以將來自飛行時間深度相機(jī)的本機(jī)深度圖像轉(zhuǎn)換成仿真由結(jié)構(gòu)化光深度相機(jī)所產(chǎn)生的深度圖像的仿真深度圖像。這個示例是非限制性的??梢耘渲梅抡婺K44以將來自幾乎任意相機(jī)技術(shù)的本機(jī)深度圖像轉(zhuǎn)換成仿真由幾乎任意其他類型的相機(jī)技術(shù)所產(chǎn)生的深度圖像的仿真深度圖像。
當(dāng)仿真模塊44可以是一些實(shí)施例中的虛擬化模塊40的一部分時,應(yīng)該理解在此所述的仿真技術(shù)可以獨(dú)立于諸如視錐體剪輯和/或分辨率改變的任意其他虛擬化技術(shù)來執(zhí)行。在任一情況下,仿真模塊44可以可選地被實(shí)現(xiàn)為API的一部分或作為與深度圖像消費(fèi)者和深度圖像生產(chǎn)者用于通信的API相兼容的應(yīng)用或服務(wù)。當(dāng)包括仿真模塊時,仿真模塊可以包括下述一項或多項噪聲抑制模塊80、邊緣增強(qiáng)模塊82、無效模塊84、深度量化模塊86、小物體校正模塊88以及陰影模擬模塊90。噪聲抑制模塊80可被配 置為保持本機(jī)深度圖像中具有不同深度值的鄰近像素區(qū)域之間的深度邊緣。下面參考圖6的118詳細(xì)描述噪聲抑制模塊80的功能性。邊緣增強(qiáng)模塊82可被配置為增強(qiáng)本機(jī)深度圖像中具有不同深度值的鄰近像素區(qū)域之間的深度邊緣。下面參考圖6的126詳細(xì)描述邊緣增強(qiáng)模塊82的功能性。無效模塊84可以被配置為無效在預(yù)定范圍之外的具有組合的照明度和傾斜度的像素。下面參考圖6的120-124詳細(xì)描述無效模塊84的功能性。深度量化模塊86可被配置為量化深度值。下面參考圖6的128詳細(xì)描述深度量化模塊86的功能性。小物體校正模塊88可被配置為將更深的深度值分配給屬于在閾值大小之下的物體的像素。下面參考圖6的130詳細(xì)描述小物體校正模塊88的功能性。陰影模擬模塊90可被配置為將陰影像素值分配給基本上由與飛行時間深度相機(jī)基本上隔開的虛擬照明器的虛擬有利位置所封閉的像素。下面參考圖6的132詳細(xì)描述陰影模擬模塊90的功能性。虛擬化模塊40將來自實(shí)際深度相機(jī)的本機(jī)深度圖像轉(zhuǎn)換為具有與深度圖像消費(fèi)者相兼容的所支持的虛擬深度相機(jī)參數(shù)的虛擬深度圖像。輸出模塊42被配置為將這個虛擬深度圖像輸出給深度圖像消費(fèi)者。隨后,深度圖像消費(fèi)者可以接收虛擬深度圖像以用于分析和/或進(jìn)一步處理。輸出模塊可被可選地實(shí)現(xiàn)為API的一部分,深度圖像消費(fèi)者和深度圖像生產(chǎn)者可以使用它來彼此通信。雖然初始化模塊36、捕捉模塊38、虛擬化模塊40以及輸出模塊42在以上是作為分離的模塊來描述的,但應(yīng)該理解,這些模塊中的兩個或更多模塊可以在操作上組合到一個公共API中。圖5示出用于提供在一個深度相機(jī)消費(fèi)者和多個不同的深度相機(jī)生產(chǎn)者之間的兼容性的方法100。方法100可使用例如圖2的深度相機(jī)可交替系統(tǒng)30來實(shí)現(xiàn)。在102,方法100包括接收所支持的虛擬深度相機(jī)參數(shù)的指示。如上所述,虛擬深度相機(jī)參數(shù)可以指定虛擬深度相機(jī)的視錐體、虛擬深度相機(jī)的分辨率、虛擬深度相機(jī)所基于的實(shí)際深度相機(jī)的型號和/或虛擬深度相機(jī)的其他特性。在104,方法100包括接收具有與深度圖像消費(fèi)者不兼容的不支持的深度相機(jī)參數(shù)的本機(jī)深度圖像。在106,方法100包括將本機(jī)深度圖像轉(zhuǎn)換為虛擬深度圖像,所述虛擬深度圖像具有與深度圖像消費(fèi)者相兼容的所支持的虛擬深度相機(jī)參數(shù)。如上所述,轉(zhuǎn)換本機(jī)深度圖像可以包括下述一項或多項剪輯本機(jī)深度圖像的視錐體、減少本機(jī)深度圖像的分辨率和/或?qū)⒈緳C(jī)深度圖像處理成具有由深度圖像消費(fèi)者所支持的支持類型的仿真深度圖像。在108,方法100包括將虛擬深度圖像輸出到深度圖像消費(fèi)者。由于虛擬深度圖像被特別針對所支持的虛擬深度相機(jī)參數(shù)進(jìn)行了定制,深度圖像消費(fèi)者可以使用所述虛擬深度圖像。然而,由于方法100可以應(yīng)用到來自不同的深度相機(jī)的各種不同的本機(jī)深度圖像,深度圖像消費(fèi)者并沒有被局限于接收來自單個特定類型的深度相機(jī)的深度圖像。圖6示出提供深度相機(jī)兼容性的另一方法110。在112,方法110包括從深度圖像消費(fèi)者接收該深度圖像消費(fèi)者所支持的虛擬深度相機(jī)參數(shù)。這包括,例如,接收與深度圖像消費(fèi)者相兼容的模型深度相機(jī)(例如結(jié)構(gòu)化光深度相機(jī))的指示。在114,方法110包括接收具有深度圖像消費(fèi)者所不支持的不支持類型的本機(jī)深度圖像。例如,本機(jī)深度圖像可以來自源,而不是模型深度相機(jī)。這樣,本機(jī)深度圖像可能與深度圖像消費(fèi)者不兼容并具有不支持的類型。繼續(xù)上面介紹的示例,深度圖像消費(fèi)者可以支持來自結(jié)構(gòu)化光深度相機(jī)的深度圖像。然而,可以從諸如飛行時間深度相機(jī)之類的另一個源處接收本機(jī)深度圖像,并且因此,該本機(jī)深度圖像具有深度圖像消費(fèi)者不支持的類型。在116,方法110包括將本機(jī)深度圖像處理成具有深度圖像消費(fèi)者所支持的支持類型的仿真深度圖像。換句話說,可以修改仿真深度圖像以仿真與深度圖像消費(fèi)者相兼容的深度圖像,例如由模型深度相機(jī)產(chǎn)生的深度圖像。繼續(xù)上面介紹的示例,例如,從飛行時 間相機(jī)接收的本機(jī)深度圖像可以被處理成仿真深度圖像,該仿真深度圖像仿真了由結(jié)構(gòu)化光深度相機(jī)所產(chǎn)生的深度圖像。如圖6所示,將本機(jī)深度圖像處理成仿真深度圖像可以利用各種技術(shù),如下將詳細(xì)描述的那樣。應(yīng)該理解的是這樣的技術(shù)并不是限制性的。而且,也可替換地或另外地應(yīng)用在圖6中未示出的其它技術(shù)。在118,方法110可以包括將邊緣保持濾波器應(yīng)用于本機(jī)深度圖像。在處理從飛行時間深度相機(jī)所接收的本機(jī)深度圖像的情況下,這樣的本機(jī)深度圖像可以具有隨機(jī)噪聲,所述隨機(jī)噪聲是飛行時間深度相機(jī)的標(biāo)準(zhǔn)副產(chǎn)品。然而,結(jié)構(gòu)化光深度相機(jī)本身具有更加平滑的信號,并且這樣的信號甚至可以在軟件中進(jìn)一步過濾。這樣,為了仿真這種類型的更平滑的信號,從飛行時間深度相機(jī)所接收的本機(jī)深度圖像可以被處理以抑制來自飛行時間深度圖的噪聲而無需損害顯著的深度特征。為了這樣做,可以使用邊緣保持濾波器來抑制來自本機(jī)深度圖像的噪聲。例如通過使用在Perona-Malik的著作(使用各向不均擴(kuò)散的縮放空間和邊緣檢測,關(guān)于圖案分析和機(jī)器智能的IEEE會報,V. 12n. 7,p. 629-639,1990)中所描述的那些內(nèi)容的非線性部分差分方程以及Weickert等人(J. ffeickert, B. M. ter HaarRomeny, M. A. Viergever,用于非線性擴(kuò)散濾波器的效率和可靠性方案,IEEE會報,圖像處理,V. 7n. 3,pp. 398-410,1998)來使用任意適合的方案。可以將邊緣閾值參數(shù)設(shè)定到相機(jī)的深度準(zhǔn)確度的上限(例如K=IO [cm])。通過將邊緣保持濾波器應(yīng)用到本機(jī)深度圖像上,本機(jī)深度圖像中的噪聲等級可以顯著下降,而本機(jī)深度圖像中物體之間的斷開性也能很好地被保留。繼續(xù)圖6,在120,方法110可以包括通過在照明圖像(例如當(dāng)從IR光檢測到用于照明飛行時間分析中的場景時)上實(shí)施中值濾波器來構(gòu)建置信圖。在處理從飛行時間深度相機(jī)所接收的本機(jī)深度圖像來仿真結(jié)構(gòu)化光深度相機(jī)的深度圖像的情況下,這樣的置信圖可以被用于仿真在結(jié)構(gòu)化光深度相機(jī)中發(fā)生的像素?zé)o效現(xiàn)象。在結(jié)構(gòu)化光技術(shù)中,通過查找圖案匹配來計算深度;如果找到匹配,則可以相對準(zhǔn)確地計算深度,然而如果找不到匹配,則不能計算深度且在該像素處的測量無效。在飛行時間技術(shù)中,通??梢栽诟魈帨y量深度,但以不同的準(zhǔn)確度(例如取決于照明等級)來測量。這樣,在飛行時間深度圖像中的照明等級可以容易地預(yù)測在哪里深度測量是不準(zhǔn)確的(例如所述信號在陰暗區(qū)域中有太多噪聲),從而仿真結(jié)構(gòu)化光深度圖像。為了這樣做,可以使用照明圖像作為輸入來構(gòu)建置信圖。通過首先在照明圖像上實(shí)施中值濾波器以移除輪廓并抑制噪聲來構(gòu)建所述置信圖。隨后,對于每個像素,可以使用軟閾值函數(shù),例如
I談)=.....^2
1 + (%.)其中,參數(shù)k可以在相機(jī)版本間變化。作為示例,在一些實(shí)施例中k可以被設(shè)為60。
除了構(gòu)建置信圖之外,還期望標(biāo)識圖像中的其他區(qū)域。這樣,在122,方法110可以包括從本機(jī)深度圖像中構(gòu)建斜面圖(oblique surface map)。在處理從飛行時間相機(jī)接收的本機(jī)深度圖像以仿真結(jié)構(gòu)化深度相機(jī)的深度圖像的情況下,通過標(biāo)識很可能對應(yīng)于圖案匹配困難的區(qū)域來進(jìn)一步仿真在結(jié)構(gòu)化深度相機(jī)中發(fā)生的像素?zé)o效現(xiàn)象。由結(jié)構(gòu)化光照明設(shè)備所投影的圖案可以涂抹在傾斜物體上(即相對于照明光線的銳角的表面),并且在那圖案匹配經(jīng)常失敗并產(chǎn)生無效測量。因此,從飛行時間深度相機(jī)接收的本機(jī)深度圖像可以通過構(gòu)建斜面圖來標(biāo)識傾斜表面來處理。這可包括計算每個像素的世界表面角,例如,使用諸如視野和分辨率之類的相機(jī)參數(shù)并隨后通過高斯濾波來對其平滑。而且,可以使用軟閾值函數(shù),例如如上定義的Fk,其中k = 45。在124,方法110可以包括將置信圖和斜面圖統(tǒng)一成無效測試圖。在置信圖和斜面圖都具有在0到I之間的值時,可例如通過將這兩個圖相乘并以0. 5的閾值來進(jìn)行限閾來統(tǒng)一這兩個圖??梢允褂弥兄禐V波器來規(guī)范結(jié)果。這種處理可以被用于使位于預(yù)定范圍之外的像素?zé)o效。繼續(xù)圖6,在126,方法110可以包括用本機(jī)深度圖像中不同的深度值來增強(qiáng)在鄰近像素區(qū)域之間的邊緣。在處理從飛行時間深度相機(jī)接收的本機(jī)深度圖像的情況下,這樣的飛行時間深度相機(jī)趨向于模糊邊緣,因為在這種技術(shù)中計算的深度值是在像素視野中的深度的平均。然而,在邊緣上的結(jié)構(gòu)化光深度相機(jī)的深度通常不被測量,并且數(shù)據(jù)被合成,從而創(chuàng)建物體之間的銳轉(zhuǎn)變。這樣,為了仿真來自結(jié)構(gòu)化光深度相機(jī)的深度圖像,可以處理來自飛行時間深度相機(jī)的本機(jī)深度圖像來用不同的深度值增強(qiáng)鄰近像素區(qū)域之間的邊緣以使得邊緣更加銳利。對于這樣的邊緣增強(qiáng),可以使用任意適合的方案,并且一個這樣的適合方案將在下面詳細(xì)描述??梢詾橐粋€像素計算在X方向中的前向差異D+和后向差異D-。隨后,可以如下確定掩碼Mask_x = Iif(min(D+, D-) > 4cm),0 otherwise,通過彎曲傾斜(ramp)以避免臺階邊緣。隨后可以在y方向上完成類似的計算以完成Mask_y。那么,對于每個像素,Mask_X或Mask_y中任一個==I,則取3x3鄰居中的最大值。繼續(xù)圖6,在128,方法110可以包括量化深度值。在處理從飛行時間深度相機(jī)接收的本機(jī)深度圖像的情況下,深度值被量化以仿真從結(jié)構(gòu)化光深度相機(jī)接收的深度圖像。結(jié)構(gòu)化光技術(shù)是基于三角測量來計算所述深度。所述深度是圖案位移的函數(shù),因為本機(jī)傳感器分辨率是有限的,因此它被量化。在飛行時間技術(shù)中,深度測量不涉及本機(jī)分辨率。這樣,可以期望將量化效果結(jié)合到經(jīng)轉(zhuǎn)換的深度圖中。這可以按任何合適的方案完成。一種這樣的合適方案包括取結(jié)構(gòu)化光深度相機(jī)的參數(shù)(例如視野、本機(jī)傳感器分辨率、焦距、傳感器和照明中心之間的距離)以及深度圖來構(gòu)造類似于在基于三角測量的相機(jī)中出現(xiàn)的公式相類似的非線性量化公式。作為示例,可以如下將像素中的轉(zhuǎn)換T定義為深度D的函數(shù),T(D) = INT(focal_length*(camera_illum/D+TAN(angle))/pixel_size+0. 5),(T(D) = INT (焦距* (相機(jī)_照明/D+TAN(角度))/像素大小+0.5))其中,focal_length是結(jié)構(gòu)化光深度相機(jī)的焦距,pixel_size是傳感器像素大小,camera_illum是相機(jī)傳感器和照明中心之間的距離,而angle是物體相對于垂直于相機(jī)傳感器中心的線的角度。那么,作為轉(zhuǎn)換T(D)的函數(shù)的量化Q可以如下描述,Q(T) = camera_illum/((T)*pixel_size/focal_length-TAN(angle))-camera_illum/((T+l)*pixel_size/focal_length_TAN(angle)).(Q(T)=相機(jī)_照明/(T)*像素大小/焦距-TAN(角度)))-相機(jī)_照明/(T+1) *像素大小/焦距-TAN (角度))這樣,深度圖具有與結(jié)構(gòu)化光技術(shù)中的三角測量計算所創(chuàng)建的深度相類似的方式經(jīng)量化的深度。繼續(xù)圖6,在130,方法110可以包括將更深的深度值分配給屬于在閾值大小之下 的物體的像素。在處理從飛行時間深度相機(jī)接收的本機(jī)深度圖像的情況下,更深的深度值可以被分配給小物體的像素以仿真從結(jié)構(gòu)化光深度相機(jī)接收的深度圖像。結(jié)構(gòu)化光深度相機(jī)是基于圖案,該圖案不能被很好地投射到那些太小的物體上。因此,這樣的小物體通常被分配給背景深度值??梢砸匀魏芜m合的方式將更深的深度值分配給小物體的像素。一種這樣的方案包括執(zhí)行形態(tài)閉合。這樣,結(jié)構(gòu)化元素取決于分辨率。作為示例,可以使用具有大約3x3大小的球狀元素。這樣,可以校正在深度圖像中可以觀察到的最小物體大小,并且效果類似于在結(jié)構(gòu)化光深度相機(jī)中實(shí)現(xiàn)的后期處理。繼續(xù)圖6,在132,方法110可以包括將陰影像素值分配給在空間上虛擬地離開飛行時間深度相機(jī)的虛擬照明器的虛擬有利位置所虛擬阻塞的像素。在處理從飛行時間深度相機(jī)接收的本機(jī)深度圖像的情況下,分配陰影像素值以仿真從結(jié)構(gòu)化光深度相機(jī)接收的深度圖像。如上所述,結(jié)構(gòu)化光深度相機(jī)在三角測量的原理上工作。由于這個事實(shí),光源與傳感器相間隔,并且在相機(jī)的傳感器上創(chuàng)建“陰影”效果。這樣,“陰影像素”是對于傳感器可見但從光源的位置來看不是直接可見的像素,如圖7所示。在此,第一物體140阻塞第二物體142接收來自光發(fā)射器144的直射光。這樣,除了接收第一物體140的圖像146和第二物體142的圖像148之外,傳感器150還接收第二物體142的陰影像素152。這樣,可以期望在從飛行時間深度相機(jī)所接收的本機(jī)深度圖像中模擬這種“陰影”人工產(chǎn)物。應(yīng)該理解,由于在傳感器和周圍的發(fā)射器之間的小距離,在飛行時間深度相機(jī)中已經(jīng)出現(xiàn)了陰影效果,然而,這可以在相機(jī)中歸一化,并且因此,所述陰影效果在所產(chǎn)生的深度視頻中不可見。 一種用于合成陰影的示例使用了輕量算法。該算法在光發(fā)射器將位于模型深度相機(jī)中的相同位置處創(chuàng)建虛擬相機(jī)。隨后,該算法將深度采樣從原始傳感器轉(zhuǎn)換成該虛擬傳感器。這種轉(zhuǎn)換可使用下述公式來完成
2 TAN(FOVx),八 2TAN(視野x)
權(quán)利要求
1.一種深度相機(jī)可交替系統(tǒng),包括 用于了解深度圖像消費(fèi)者所支持的虛擬深度相機(jī)參數(shù)的初始化模塊; 用于從深度圖像生產(chǎn)者處接收本機(jī)深度圖像的捕捉模塊; 用于將所述本機(jī)深度圖像轉(zhuǎn)換成虛擬深度圖像的虛擬化模塊,所述虛擬深度圖像具有與所述深度圖像消費(fèi)者相兼容的所支持的虛擬深度相機(jī)參數(shù);以及用于將所述虛擬深度圖像輸出給所述深度圖像消費(fèi)者的輸出模塊。
2.如權(quán)利要求I所述的深度相機(jī)可交替系統(tǒng),其特征在于,其中所述初始化模塊被配置為從所述深度圖像消費(fèi)者處接收所述所支持的虛擬深度相機(jī)參數(shù)的指示。
3.如權(quán)利要求2所述的深度相機(jī)可交替系統(tǒng),其特征在于,其中所述所支持的虛擬深度相機(jī)參數(shù)的指示指定了虛擬深度相機(jī)的視錐體。
4.如權(quán)利要求2所述的深度相機(jī)可交替系統(tǒng),其特征在于,其中所述所支持的虛擬深度相機(jī)參數(shù)的指示指定了虛擬深度相機(jī)的分辨率。
5.如權(quán)利要求2所述的深度相機(jī)可交替系統(tǒng),其特征在于,其中所述所支持的虛擬深度相機(jī)參數(shù)的指示指定了虛擬深度相機(jī)所基于的實(shí)際深度相機(jī)的型號。
6.如權(quán)利要求I所述的深度相機(jī)可交替系統(tǒng),其特征在于,其中所述初始化模塊被配置為生成瞄準(zhǔn)指令以方便瞄準(zhǔn)與所述深度圖像消費(fèi)者的所支持的虛擬深度相機(jī)參數(shù)相兼容的深度相機(jī)。
7.如權(quán)利要求6所述的深度相機(jī)可交替系統(tǒng),其特征在于,其中所述初始化模塊被進(jìn)一步配置為將瞄準(zhǔn)指令發(fā)送給所述深度相機(jī)。
8.如權(quán)利要求I所述的深度相機(jī)可交替系統(tǒng),其特征在于,其中所述虛擬化模塊被配置為通過剪輯所述本機(jī)深度圖像的視錐體來將所述本機(jī)深度圖像轉(zhuǎn)換成所述虛擬深度圖像。
9.如權(quán)利要求I所述的深度相機(jī)可交替系統(tǒng),其特征在于,其中所述虛擬化模塊被配置為通過降低所述本機(jī)深度圖像的分辨率來將所述本機(jī)深度圖像轉(zhuǎn)換成所述虛擬深度圖像。
10.如權(quán)利要求I所述的深度相機(jī)可交替系統(tǒng),其特征在于,其中所述深度圖像生產(chǎn)者包括將原始深度相機(jī)數(shù)據(jù)轉(zhuǎn)換成所述本機(jī)深度圖像的相機(jī)上處理器,并且所述捕捉模塊被配置為通過所述相機(jī)上處理器來接收所述本機(jī)深度圖像。
11.如權(quán)利要求I所述的深度相機(jī)可交替系統(tǒng),其特征在于,其中所述深度圖像生產(chǎn)者包括將原始深度相機(jī)數(shù)據(jù)轉(zhuǎn)換成所述本機(jī)深度圖像的相機(jī)外處理器,并且所述捕捉模塊被配置為通過所述相機(jī)外處理器來接收所述本機(jī)深度圖像。
12.如權(quán)利要求I所述的深度相機(jī)可交替系統(tǒng),其特征在于,其中所述深度圖像生產(chǎn)者包括協(xié)作將原始深度相機(jī)數(shù)據(jù)轉(zhuǎn)換成所述本機(jī)深度圖像的相機(jī)上處理器和相機(jī)外處理器,并且所述捕捉模塊被配置為通過所述相機(jī)上處理器和相機(jī)外處理器來接收所述本機(jī)深度圖像。
13.如權(quán)利要求I所述的深度相機(jī)可交替系統(tǒng),其特征在于,所述初始化模塊、捕捉模塊、虛擬化模塊以及輸出模塊被作為應(yīng)用編程接口的一部分來實(shí)現(xiàn)。
14.一種提供在深度圖像消費(fèi)者和多個不同的深度圖像生產(chǎn)者之間的兼容性的方法,所述方法包括接收具有與深度圖像消費(fèi)者不兼容的不支持的深度相機(jī)參數(shù)的本機(jī)深度圖像; 將所述本機(jī)深度圖像轉(zhuǎn)換成虛擬深度圖像,所述虛擬深度圖像具有與所述深度圖像消費(fèi)者相兼容的所支持的虛擬深度相機(jī)參數(shù);以及 將所述虛擬深度圖像輸出給所述深度圖像消費(fèi)者。
15.如權(quán)利要求14所述的方法,其特征在于,進(jìn)一步包括接收所支持的虛擬深度相機(jī)參數(shù)的指示,所述指示指定了 虛擬深度相機(jī)的視錐體、虛擬深度相機(jī)的分辨率以及虛擬深度相機(jī)所基于的實(shí)際深度相機(jī)的型號中的一項。
全文摘要
通過接收具有與深度圖像消費(fèi)者不兼容的不支持深度相機(jī)參數(shù)的本機(jī)深度圖像并將該本機(jī)深度圖像轉(zhuǎn)換成具有與該深度圖像消費(fèi)者相兼容的支持的虛擬深度相機(jī)參數(shù)的虛擬深度圖像來提供深度圖像消費(fèi)者和多個不同的深度圖像生產(chǎn)者之間的兼容性。隨后,可以將這種虛擬深度圖像輸出給所述深度圖像消費(fèi)者。
文檔編號H04N13/00GK102763420SQ201180007815
公開日2012年10月31日 申請日期2011年1月10日 優(yōu)先權(quán)日2010年2月2日
發(fā)明者A·阿德萊爾, G·吉勒博阿, S·卡茨 申請人:微軟公司