專利名稱:深度圖像的去混疊的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及圖像處理,尤其涉及深度圖像的去混疊。
背景技術(shù):
深度相機(jī)系統(tǒng)獲得關(guān)于物理空間內(nèi)人或其他對(duì)象的位置的數(shù)據(jù)。該信息可被稱為 “深度信息”。深度信息可被輸入到計(jì)算系統(tǒng)內(nèi)的應(yīng)用來(lái)用于各種各樣的應(yīng)用??赡苡性S多應(yīng)用,如出于軍事、娛樂(lè)、體育和醫(yī)療目的。例如,關(guān)于人的深度信息可被映射到三維(3-D) 人類骨架模型并用于創(chuàng)建動(dòng)畫人物或化身。為了確定深度信息,深度相機(jī)可以將光投影到相機(jī)的視野中的對(duì)象上。光反射離開對(duì)象并返回到相機(jī),在相機(jī)處光被處理以確定深度信息。一種用于確定到對(duì)象的距離的技術(shù)基于光的往返飛行時(shí)間。某些技術(shù)調(diào)制該光并基于所發(fā)射和所接收的光之間的相位差來(lái)確定距離。然而,由于所調(diào)制的光的周期性,對(duì)于某些飛行時(shí)間技術(shù)會(huì)發(fā)生混疊。發(fā)生混疊是因?yàn)閺膬蓚€(gè)不同距離處的對(duì)象返回的光可能相對(duì)于所發(fā)射的光具有相同的相移。換言之, 從某些對(duì)象反射的光的相移可能大于360度,該大于360度的相移無(wú)法與小于360度的相移區(qū)分。術(shù)語(yǔ)“深度窗”可用于指代可在沒(méi)有遇到混疊效應(yīng)的情況下檢測(cè)到的深度。例如, 對(duì)于給定相機(jī),深度窗可以是2. 5米。一種去混疊技術(shù)是以若干不同頻率來(lái)調(diào)制光。對(duì)于每一調(diào)制的頻率,該測(cè)量指示對(duì)象可能在若干可能的距離之一處。距離之一是正確的,其他的則是混疊引起的。然而,通過(guò)對(duì)所有調(diào)制的頻率分析可能距離集,可確定正確的距離。然而,該技術(shù)需要以若干不同的頻率調(diào)制光。因此,需要額外的時(shí)間來(lái)收集數(shù)據(jù)。并且,電路需要更為復(fù)雜以便能夠以不同頻率來(lái)調(diào)制光。此外,即使是只有幾個(gè)不同的已調(diào)制頻率,也不能保證可去除混疊效應(yīng)。因此,需要進(jìn)一步的改進(jìn)以允許對(duì)深度相機(jī)的視野內(nèi)對(duì)象的深度進(jìn)行更準(zhǔn)確的確定。需要用于在執(zhí)行深度檢測(cè)時(shí)去混疊的改進(jìn)的技術(shù)。該技術(shù)應(yīng)與現(xiàn)有的深度檢測(cè)相機(jī)兼容。
發(fā)明內(nèi)容
提供了用于對(duì)深度圖像去混疊的技術(shù)。此處描述的技術(shù)提供了對(duì)深度相機(jī)的視野內(nèi)的對(duì)象的深度的準(zhǔn)確確定。此處描述的技術(shù)與現(xiàn)有的深度檢測(cè)相機(jī)兼容。一個(gè)實(shí)施例包括對(duì)深度圖像去混疊的機(jī)器實(shí)現(xiàn)的方法。該方法包括訪問(wèn)深度圖像,該深度圖像中具有關(guān)于其中的多個(gè)位置的深度值。每一位置具有一個(gè)或多個(gè)鄰居位置。 基于深度圖像中關(guān)于位置的深度值和深度圖像中的潛在混疊為多個(gè)位置中的每一個(gè)確定潛在深度值。基于每一位置與其鄰居位置的潛在深度值之間的差異來(lái)確定成本函數(shù)。確定成本函數(shù)包括為鄰居位置之間的潛在深度值的較大差異分配較高成本。該成本函數(shù)被充分最小化來(lái)為每一位置選擇一個(gè)潛在深度值。一個(gè)實(shí)施例包括一種包括處理器和耦合到該處理器的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的裝置。該計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)具有指令,該指令當(dāng)在處理器上執(zhí)行時(shí)使得該處理器訪問(wèn)包括多個(gè)位置的深度值的深度圖像。每一位置具有一個(gè)或多個(gè)鄰居位置。該指令還使得處理器基于深度圖像中的深度值和深度圖像中的潛在混疊為多個(gè)位置中的每一個(gè)確定潛在深度值。該指令還使得處理器基于每一位置與其一個(gè)或多個(gè)鄰居位置的潛在深度值之間的差異來(lái)確定成本函數(shù)。為了確定成本函數(shù),該處理器為一對(duì)鄰居位置之間的潛在深度值的較大差異分配較高成本。該指令還使得處理器充分最小化該成本函數(shù)以便為每一位置選擇一個(gè)潛在深度值。一個(gè)實(shí)施例包括一種機(jī)器實(shí)現(xiàn)的方法,該方法包括以下步驟。生成包括多個(gè)像素的深度圖像。每一像素具有一個(gè)或多個(gè)相鄰像素且具有深度值。該深度圖像具有深度窗。 基于該深度窗以及深度圖像中關(guān)于多個(gè)像素中的每一個(gè)像素的深度值為該像素確定潛在深度值。生成包括多層節(jié)點(diǎn)的圖。每一像素由每一層中的一個(gè)節(jié)點(diǎn)來(lái)表示。給定像素的潛在深度值由不同層中的節(jié)點(diǎn)來(lái)表示。對(duì)應(yīng)于相鄰像素的節(jié)點(diǎn)由邊連接。向每一條邊分配成本。給定邊的成本基于由該邊連接的兩個(gè)節(jié)點(diǎn)的潛在深度值之間的深度差。將該圖縮減到充分最小化剩余邊的成本的單一層。每一像素在該縮減的圖中有一個(gè)節(jié)點(diǎn)。提供本概要以便用簡(jiǎn)化形式介紹在下面的說(shuō)明書中進(jìn)一步描述的一些概念。本概述并不旨在標(biāo)識(shí)出所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不旨在用于限定所要求保護(hù)的主題的范圍。
圖1描繪了運(yùn)動(dòng)捕捉系統(tǒng)的示例實(shí)施例。圖2描繪了圖1的運(yùn)動(dòng)捕捉系統(tǒng)的示例框圖。圖3是對(duì)深度圖像去混疊的過(guò)程的一個(gè)實(shí)施例的流程圖。圖4是形成成本函數(shù)的過(guò)程的一個(gè)實(shí)施例的流程圖。圖5A描繪深度圖像中的像素的鄰居關(guān)系的一個(gè)示例。圖5B描繪了可以在圖4的過(guò)程中形成的示例圖。圖5C描繪了分配給像素之間的邊的成本的示例。圖5D示出了分配給每一對(duì)節(jié)點(diǎn)之間的邊的成本。圖6是確定成本函數(shù)的過(guò)程的一個(gè)實(shí)施例的流程圖。圖7是基于亮度來(lái)確定每像素成本的過(guò)程的一個(gè)實(shí)施例的流程圖。圖8是基于邊緣信息來(lái)修改兩個(gè)相鄰像素之間的成本的過(guò)程的一個(gè)實(shí)施例的流程圖。圖9是描述基于飛行時(shí)間差來(lái)形成深度圖像的過(guò)程的一個(gè)實(shí)施例的流程圖。圖10是將原始深度圖像劃分成各段的過(guò)程的一個(gè)實(shí)施例的流程圖。圖11描繪了可以在圖1的運(yùn)動(dòng)捕捉系統(tǒng)中使用的計(jì)算環(huán)境的示例框圖。圖12描繪了可以在圖1的運(yùn)動(dòng)捕捉系統(tǒng)中使用的計(jì)算環(huán)境的另一示例框圖。
具體實(shí)施例方式提供了用于對(duì)深度圖像去混疊的技術(shù)。深度圖像可以基于所發(fā)射的和所接收的已調(diào)制光束之間的相位差來(lái)生成。作為示例,所發(fā)射的光束可從深度相機(jī)射出,從一個(gè)或多個(gè)對(duì)象反射,并接收回到深度相機(jī)?;殳B可以由所發(fā)射的光的調(diào)制頻率來(lái)決定。在某些實(shí)施例中,在運(yùn)動(dòng)捕捉系統(tǒng)中使用深度圖像的去混疊。該運(yùn)動(dòng)捕捉系統(tǒng)可生成原始深度圖像,其具體化了去混疊。去混疊的深度圖像可由運(yùn)動(dòng)捕捉系統(tǒng)10用于各種目的。將理解,對(duì)深度圖像去混疊不限于在運(yùn)動(dòng)捕捉系統(tǒng)中使用。圖1描繪了其中個(gè)人與應(yīng)用交互的運(yùn)動(dòng)捕捉系統(tǒng)10的示例。運(yùn)動(dòng)捕捉系統(tǒng)10包括顯示器196、深度相機(jī)系統(tǒng)20、 以及計(jì)算環(huán)境或裝置12。深度相機(jī)系統(tǒng)20可包括圖像相機(jī)組件22,其具有深度檢測(cè)光發(fā)射器對(duì)、深度檢測(cè)光接收器25和紅-綠-藍(lán)(RGB)相機(jī)觀。在一實(shí)施例中,深度檢測(cè)光發(fā)射器M發(fā)射準(zhǔn)直光束。準(zhǔn)直光束的示例可包括但不限于,紅外(IR)和激光。在一實(shí)施例中,深度檢測(cè)光組件是LED。從視野內(nèi)的對(duì)象8反射離開的光由深度檢測(cè)光接收器25檢測(cè)。也稱為個(gè)人或玩家的用戶站在深度相機(jī)系統(tǒng)20的視野6中。線2和4表示視野 6的邊界。在該示例中,深度相機(jī)系統(tǒng)20和計(jì)算環(huán)境12提供了其中顯示器196上的化身 197追隨對(duì)象8(例如,用戶)的移動(dòng)的應(yīng)用。例如,當(dāng)用戶舉起手臂時(shí),化身197可舉起手臂?;?97在3-D虛擬世界中站在路198上??啥x笛卡爾世界坐標(biāo)系,其包括沿著深度相機(jī)系統(tǒng)20的焦距(例如水平)延伸的ζ軸、垂直延伸的y軸、以及橫向且水平延伸的 χ軸。注意,附圖的透視被修改成簡(jiǎn)化表示,顯示器196在y軸方向上垂直延伸,ζ軸垂直于 y軸和χ軸且與用戶所站立的地平面平行地從深度相機(jī)系統(tǒng)20延伸出來(lái)。一般而言,運(yùn)動(dòng)捕捉系統(tǒng)10用于識(shí)別、分析和/或跟蹤對(duì)象。計(jì)算環(huán)境12可包括計(jì)算機(jī)、游戲系統(tǒng)或控制臺(tái)等,以及執(zhí)行應(yīng)用的硬件組件和/或軟件組件。深度相機(jī)系統(tǒng)20可以包括相機(jī),相機(jī)用于在視覺(jué)上監(jiān)視諸如用戶等的一個(gè)或多個(gè)對(duì)象8,從而可以捕捉、分析并跟蹤用戶所執(zhí)行的姿勢(shì)和/或移動(dòng),來(lái)執(zhí)行應(yīng)用中的一個(gè)或多個(gè)控制或動(dòng)作,如使化身或屏幕上人物活動(dòng)起來(lái)或選擇用戶界面(UI)中的一菜單項(xiàng)。運(yùn)動(dòng)捕捉系統(tǒng)10可以連接到諸如顯示器196等可向用戶提供視覺(jué)和音頻輸出的視聽設(shè)備,如電視機(jī)、監(jiān)視器、高清電視機(jī)(HDTV)等,或甚至是墻或其他表面上的投影。音頻輸出也可經(jīng)由單獨(dú)的設(shè)備來(lái)提供。為驅(qū)動(dòng)顯示器,計(jì)算環(huán)境12可包括提供與應(yīng)用相關(guān)聯(lián)的視聽信號(hào)的諸如圖形卡等視頻適配器,和/或諸如聲卡等音頻適配器。顯示器196可經(jīng)由例如,S-視頻電纜、同軸電纜、HDMI電纜、DVI電纜、VGA電纜等連接到計(jì)算環(huán)境12??墒褂蒙疃认鄼C(jī)系統(tǒng)20來(lái)跟蹤對(duì)象8,使得用戶的姿勢(shì)和/或移動(dòng)被捕捉并用于使化身或屏幕上人物活動(dòng)起來(lái),和/或被解釋為對(duì)計(jì)算機(jī)環(huán)境12所執(zhí)行的應(yīng)用的輸入控制。對(duì)象8的某些移動(dòng)可被解釋為可以和除控制化身之外的動(dòng)作相對(duì)應(yīng)的控制。例如,在一實(shí)施例中,玩家可使用移動(dòng)來(lái)結(jié)束、暫?;虮4嬗螒?、選擇級(jí)別、查看高分、與朋友交流等。玩家可使用移動(dòng)來(lái)從主用戶界面選擇游戲或其他應(yīng)用,或以其他方式導(dǎo)航選項(xiàng)菜單。由此,對(duì)象8的全范圍運(yùn)動(dòng)可以用任何合適的方式來(lái)獲得、使用并分析以與應(yīng)用進(jìn)行交互。個(gè)人可在與應(yīng)用交互時(shí)抓握諸如道具等物體。在此類實(shí)施例中,個(gè)人和物體的移動(dòng)可用于控制應(yīng)用。例如,可以跟蹤并利用玩家手持球拍的運(yùn)動(dòng)來(lái)控制模擬網(wǎng)球游戲的應(yīng)用中的屏幕上球拍。在另一示例實(shí)施例中,可以跟蹤并利用玩家手持諸如塑料劍等玩具武器的運(yùn)動(dòng)來(lái)控制提供海盜船的應(yīng)用的虛擬世界中對(duì)應(yīng)的武器。運(yùn)動(dòng)捕捉系統(tǒng)10還可用于將目標(biāo)移動(dòng)解釋為游戲和出于娛樂(lè)和休閑目的的其他應(yīng)用范圍之外的操作系統(tǒng)和/或應(yīng)用控制命令。例如,操作系統(tǒng)和/或應(yīng)用的實(shí)際上任何可控方面可由對(duì)象8的移動(dòng)來(lái)控制。圖2描繪了圖Ia的運(yùn)動(dòng)捕捉系統(tǒng)10的示例框圖。深度相機(jī)系統(tǒng)20可被配置以捕捉具有深度信息的視頻,深度信息包括可包括深度值的深度圖像。此處描述了用于對(duì)深度圖像去混疊的技術(shù)。深度相機(jī)系統(tǒng)20可將深度信息組織為“Z層”,或可與從深度相機(jī)系統(tǒng)20沿其視線延伸的Z軸垂直的層。深度相機(jī)系統(tǒng)20可包括圖像相機(jī)組件22,如捕捉物理空間中的場(chǎng)景的深度圖像的深度相機(jī)。深度圖像可包括所捕捉的場(chǎng)景的二維O-D)像素區(qū)域,其中該2-D像素區(qū)域中的每一像素具有代表距離圖像相機(jī)組件22的線性距離(徑向距離)的或由像素觀察的 3D位置的Z分量(垂直距離)的相關(guān)聯(lián)的深度值。圖像相機(jī)組件22可包括深度檢測(cè)光發(fā)射器M和深度檢測(cè)光接收器25來(lái)捕捉深度信息。例如,深度相機(jī)系統(tǒng)20可使用深度檢測(cè)光發(fā)射器M將光發(fā)射到物理空間上并使用深度檢測(cè)光接收器25來(lái)檢測(cè)從物理空間內(nèi)一個(gè)或多個(gè)對(duì)象的表面所反射的光。在某些實(shí)施例中,深度檢測(cè)光發(fā)射器M發(fā)送脈沖式紅外光,從而可以測(cè)量出射光脈沖與相應(yīng)的入射光脈沖之間的時(shí)間并將其用于確定從深度相機(jī)系統(tǒng)20到物理空間中的對(duì)象上的特定位置的物理距離。光可以按所需頻率來(lái)調(diào)制??蓪鞒龅囊颜{(diào)制光波的相位與傳入光波的相位進(jìn)行比較來(lái)確定相位差。然后可以使用該相位差來(lái)確定從深度相機(jī)系統(tǒng) 20到目標(biāo)或?qū)ο笊系奶囟ㄎ恢玫奈锢砭嚯x。深度相機(jī)系統(tǒng)20可具有深度窗,該深度窗是由用于確定深度的光的調(diào)制頻率來(lái)決定的。例如,對(duì)于給定相機(jī),深度窗可以是2. 5米。在某些實(shí)施例中,混疊是由深度窗決定的。例如,具有實(shí)際深度“x+nX深度窗”的不同對(duì)象可能都被確定為在距離χ處。在該示例中,“ η ”可以是任何正整數(shù)。圖像相機(jī)組件22還可生成亮度信息(例如,亮度圖像),該亮度信息可用于幫助對(duì)深度圖像進(jìn)行去混疊。在一個(gè)實(shí)施例中,基于飛行時(shí)間信息來(lái)生成深度圖像的同一過(guò)程也生成亮度信息。紅-綠-藍(lán)(RGB)相機(jī)28可用于捕捉可見光圖像。深度相機(jī)系統(tǒng)20還可包括話筒30,話筒30包括例如接收聲波并將其轉(zhuǎn)換成電信號(hào)的換能器或傳感器。另外,話筒30可用于接收由個(gè)人提供的諸如聲音等音頻信號(hào),來(lái)控制由計(jì)算環(huán)境12運(yùn)行的應(yīng)用。音頻信號(hào)可包括諸如說(shuō)出的單詞、口哨、叫聲和其他話語(yǔ)等個(gè)人的口聲,以及諸如拍手或跺腳等非口聲。深度相機(jī)系統(tǒng)20可包括與圖像相機(jī)組件22進(jìn)行通信的處理器32。處理器32可包括可執(zhí)行包括例如用于接收深度圖像和對(duì)深度圖像去混疊的指令等指令的標(biāo)準(zhǔn)化處理器、專用處理器、微處理器等等。深度相機(jī)系統(tǒng)20還可包括存儲(chǔ)器組件34,存儲(chǔ)器組件34可存儲(chǔ)可由處理器32執(zhí)行的指令、以及存儲(chǔ)RGB相機(jī)所捕捉的圖像或圖像幀、或任何其他合適的信息、圖像等等。 根據(jù)一示例實(shí)施例,存儲(chǔ)器組件34可包括隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、高速緩存、閃存、硬盤、或任何其他合適的有形計(jì)算機(jī)可讀存儲(chǔ)組件。存儲(chǔ)器組件34可以是經(jīng)由總線21與圖像捕捉組件22和處理器32進(jìn)行通信的單獨(dú)組件。根據(jù)另一實(shí)施方式,存儲(chǔ)器組件34可被集成到處理器32和/或圖像捕捉組件22中。
深度相機(jī)系統(tǒng)20可以經(jīng)由通信鏈路36與計(jì)算環(huán)境12進(jìn)行通信。通信鏈路36可以是有線和/或無(wú)線連接。根據(jù)一實(shí)施例,計(jì)算環(huán)境12可經(jīng)由通信鏈路36向深度相機(jī)系統(tǒng)20提供時(shí)鐘信號(hào),該信號(hào)指示何時(shí)從位于深度相機(jī)系統(tǒng)20的視野中的物理空間捕捉圖像數(shù)據(jù)。此外,深度相機(jī)系統(tǒng)20可通過(guò)通信鏈路36向計(jì)算環(huán)境12提供深度信息和由RGB 相機(jī)觀捕捉的圖像。計(jì)算環(huán)境12然后可使用深度信息和所捕捉的圖像來(lái)控制應(yīng)用。例如,如圖2所示,計(jì)算環(huán)境12可包括諸如姿勢(shì)過(guò)濾器集合等姿勢(shì)庫(kù)190,每一姿勢(shì)過(guò)濾器具有關(guān)于可(在用戶移動(dòng)時(shí))執(zhí)行的姿勢(shì)的信息。例如,可為各種手姿勢(shì)提供姿勢(shì)過(guò)濾器,如手的揮擊或投擲。通過(guò)將檢測(cè)到的運(yùn)動(dòng)與每一過(guò)濾器進(jìn)行比較,可標(biāo)識(shí)個(gè)人執(zhí)行的指定姿勢(shì)或移動(dòng)。也可確定執(zhí)行移動(dòng)的范圍。計(jì)算環(huán)境還可包括用于執(zhí)行存儲(chǔ)在存儲(chǔ)器194中的指令以向顯示設(shè)備196提供音頻-視頻輸出信號(hào)并實(shí)現(xiàn)其他功能的處理器192。圖3是對(duì)深度圖像去混疊的過(guò)程300的一個(gè)實(shí)施例的流程圖。過(guò)程300可在諸如圖1的示例系統(tǒng)10等運(yùn)動(dòng)捕捉系統(tǒng)10中使用。例如,過(guò)程300可由深度相機(jī)系統(tǒng)20或計(jì)算環(huán)境12來(lái)執(zhí)行。在步驟302,訪問(wèn)深度圖像。該深度圖像包括不同位置的深度值。每一位置具有一個(gè)或多個(gè)鄰居位置。在一個(gè)實(shí)施例中,該深度圖像包括多個(gè)像素,每一像素與一個(gè)或多個(gè)相鄰像素是鄰居。由此,深度圖像中的位置可對(duì)應(yīng)于像素。每一像素具有由例如深度相機(jī)20確定的深度值。圖5A描繪了深度圖像中的像素的鄰居關(guān)系的一個(gè)示例。在該示例中,有9個(gè)像素,每一像素具有最多4個(gè)鄰居,如連接像素的線所指示的。在該示例中,深度圖像值被組織為像素矩陣。為便于說(shuō)明,僅示出了矩陣的3x3部分。注意,并不要求深度圖像被組織為矩陣。在該示例中,像素可具有在上方、下方、左邊和右邊的鄰居。在其他實(shí)施例中,像素可具有對(duì)角鄰居。例如,像素5可以是像素1、像素3、像素7和像素9的鄰居。每一像素具有如由標(biāo)簽指示的深度值,諸如對(duì)像素1的深度值DV Pl0注意,并不要求深度圖像中的每一位置都對(duì)應(yīng)于一像素。例如,深度圖像中的位置可對(duì)應(yīng)于一組像素。在一個(gè)實(shí)施例中,位置是具有相似深度值的一組鄰接的像素。深度圖像可由深度相機(jī)20來(lái)生成。由于生成深度圖像的方式,深度圖像可具有混疊。在一個(gè)實(shí)施例中,深度圖像是基于飛行時(shí)間信息來(lái)生成的。混疊可以是由于深度相機(jī) 20的有限“深度窗”引起的。換言之,由于深度是基于所發(fā)射的和所接收的光之間的相位差來(lái)確定的,用于確定深度的光的調(diào)制頻率可導(dǎo)致特定的深度窗。在一個(gè)實(shí)施例中,調(diào)制頻率或深度窗是對(duì)過(guò)程300的輸入。在步驟304,基于深度圖像中的可能混疊為原始深度圖像中的每一位置確定潛在深度值。例如,如果位置具有深度值2. 0米,且深度窗是2. 5米,則潛在深度值可包括集合 {2.0,4.5,7.0,9. 5}米。注意,原始深度圖像中的深度值是潛在深度值之一。在步驟306,基于每一位置與其一個(gè)或多個(gè)鄰居位置的潛在深度值之間的差異來(lái)形成成本函數(shù)。確定成本函數(shù)可包括為一對(duì)鄰居位置之間的潛在深度值的較大差異分配較高成本。以下描述進(jìn)一步的詳細(xì)內(nèi)容。在步驟308,充分最小化該成本函數(shù)來(lái)為每一位置選擇一個(gè)潛在深度值。為每一位置的該所選深度值用于形成去混疊的圖像。例如,值4. 5m可從集合{2. 0,4. 5,7. 0,9. 5}中選出作為給定像素的最終深度值。在某些實(shí)施例中,該成本函數(shù)可被稱為“能量函數(shù)”。充分最小化成本函數(shù)可包括最小化該能量函數(shù)。在一個(gè)實(shí)施例中,最小化成本函數(shù)平滑了鄰居位置之間的差異。圖4是形成成本函數(shù)的過(guò)程400的一個(gè)實(shí)施例的流程圖。過(guò)程400是過(guò)程300的步驟306的一實(shí)施例。出于討論的目的,將使用其中深度圖像中的位置對(duì)應(yīng)于深度圖像中的像素的示例。注意,不要求位置對(duì)應(yīng)于單個(gè)像素。在步驟402,構(gòu)造包括多層節(jié)點(diǎn)的圖。 在該示例中,每一像素由每一層中的一個(gè)節(jié)點(diǎn)來(lái)表示。給定像素的潛在深度值由不同層中的節(jié)點(diǎn)來(lái)表示。圖5B描繪了可在步驟402中形成的示例圖。注意,圖5B的圖使用了圖5A的結(jié)構(gòu)作為起始點(diǎn)。由此,該圖用于來(lái)自圖5A的相同的9個(gè)像素。每一像素由該圖的每一層中的一個(gè)節(jié)點(diǎn)來(lái)表示。該示例圖具有三層。每一層對(duì)應(yīng)于不同的潛在深度值。該圖的底層中的每一節(jié)點(diǎn)對(duì)應(yīng)于來(lái)自原始深度圖像的一個(gè)像素的深度值。例如,一個(gè)節(jié)點(diǎn)具有來(lái)自原始圖像的像素1的深度值,另一節(jié)點(diǎn)具有來(lái)自原始圖像的像素2的深度值,又一節(jié)點(diǎn)具有來(lái)自原始圖像的像素3的深度值,以此類推。該圖的底層等價(jià)于圖5A的深度圖像。注意,底層的原始深度值被稱為“潛在”深度值,因?yàn)橛捎诨殳B,某些原始深度值將被改變來(lái)對(duì)深度圖像去混疊。圖中的兩個(gè)較高層基于每一像素的其他潛在深度值來(lái)形成。例如,第二層可通過(guò)向較低層處的每一深度值增加2. 5m (假定深度窗是2. 5m)來(lái)形成。第三(較高)層可通過(guò)向較低層處的每一深度值增加5. Om來(lái)形成。由此,像素1可具有從最低到最高層的深度值 2.0m、4.5m和7.0m。注意,不要求給定像素存在于每一層。在某些實(shí)施例中,該圖是馬爾可夫隨機(jī)場(chǎng)(MRF)圖。并且,某些層可具有低于原始值的深度值。在步驟404,基于由邊連接的兩個(gè)節(jié)點(diǎn)的潛在深度值之間的深度差來(lái)向該圖的各邊分配成本。圖5C描繪了分配給像素1和像素2之間的邊的成本的示例。實(shí)線指示圖中的邊。虛線示出表示同一像素的不同節(jié)點(diǎn)。由此,在該示例中,對(duì)應(yīng)于給定像素的每一節(jié)點(diǎn)具有到其鄰居像素的每一節(jié)點(diǎn)的邊。圖5C示出了在最低層處,像素1具有值2. Om,且像素2具有值0. :3m。這些值可以來(lái)自原始深度圖像。像素1在第二和第三層分別被分配到4. 5m和7. Om的值。這些值基于深度窗的大小。像素2在第二和第三層分別被分配到2. 8m和5.; 的值。這些值也基于深度窗的大小。邊被分配到一成本,該成本基于每一節(jié)點(diǎn)的潛在深度值的差異。例如,連接最低層處的節(jié)點(diǎn)的邊被標(biāo)記為1. 7,這對(duì)應(yīng)于在該層的像素1和像素2的潛在深度值之間的差異。 在某些實(shí)施例中,該成本隨著鄰居節(jié)點(diǎn)之間的潛在深度值的差異增大而增加。然而,該成本不需要如本示例中那樣等于潛在深度值的差異。再次返回到圖5B的圖,像素1也是像素4的鄰居。同樣,像素2是像素3和5的鄰居。因此,為到這些鄰居節(jié)點(diǎn)的邊確定額外的成本??商幚韺?duì)應(yīng)于所有像素的節(jié)點(diǎn),使得所有邊被分配到成本。注意,圖5B中并未描繪所有連接節(jié)點(diǎn)的邊,以便不使該圖模糊不清。在步驟406,基于最小化剩余邊的成本來(lái)將該圖縮減到單層。每一像素在該縮減的圖中有一個(gè)節(jié)點(diǎn)。圖5D描繪了其中圖5B的圖被縮減到對(duì)應(yīng)于每一像素的單個(gè)節(jié)點(diǎn)的結(jié)果。每一節(jié)點(diǎn)的深度值來(lái)自不同層之一。例如,像素2由在圖5B的圖的第二層的潛在深度值來(lái)表示。圖5D的結(jié)構(gòu)示出每一對(duì)節(jié)點(diǎn)之間的邊被分配到一成本。這是基于最終深度值的成本。例如,像素1和像素2之間的邊的成本基于像素1和像素2的最終深度值之間的差異。在一個(gè)實(shí)施例中,圖5D的結(jié)構(gòu)基于最小化所有邊成本的和來(lái)生成。例如,圖5D中的所有成本的和可以是可從將圖5B的圖縮減到單層獲得的最小值。然而,注意,可使用其他因素來(lái)縮減該圖。如將在下文討論的,該圖也可基于分配給各個(gè)節(jié)點(diǎn)的成本來(lái)縮減。在某些實(shí)施例中,步驟406可通過(guò)MRF能量最小化方法來(lái)實(shí)現(xiàn)。圖6是確定成本函數(shù)的過(guò)程600的一個(gè)實(shí)施例的流程圖。過(guò)程600是過(guò)程300的步驟306的一實(shí)施例。在過(guò)程600中,所處理的位置是像素。如所提到的,一種變型是從鄰接像素的組來(lái)形成位置。在步驟602,為每一像素確定每像素成本。該每像素成本是分配給像素的成本。在一個(gè)實(shí)施例中,每像素成本是基于像素本身的特性(如其亮度)的成本。在一個(gè)實(shí)施例中, 像素基于其亮度而被分配每像素成本?;谙袼氐牧炼葋?lái)分配每像素成本的進(jìn)一步細(xì)節(jié)在下文中描述。每像素成本可由等式1來(lái)表達(dá)。等式l:dp(lp)在等式1中,像素?cái)?shù)為“P”。每一像素可取決于例如它在圖中的哪一層中而被實(shí)際上分配不同的值。參考圖5B,每像素成本可被認(rèn)為是向圖中的節(jié)點(diǎn)分配成本。因此,每像素成本也可被稱為每節(jié)點(diǎn)成本。例如,像素1可具有在最高層的成本“0”,在中間層的成本 “-1”,以及在最低層的成本“-1”。由此,可對(duì)深度圖像中的每一位置(例如,像素)的每一潛在深度值確定個(gè)別成本。在等式1中,項(xiàng)“1/指示每像素成本是由圖中的層來(lái)決定的。在步驟604,為每一對(duì)鄰居確定相鄰像素之間的成本。在一個(gè)實(shí)施例中,該成本基于第一位置(例如,像素)的潛在深度值與鄰居位置的潛在深度值之間的深度差。這已經(jīng)相對(duì)于圖5C的示例描述了。兩個(gè)鄰居像素之間的成本可由等式2來(lái)表達(dá)。等式2:vp, q (H) = Ip-Iq在等式2中,“ρ”和“q”指一對(duì)鄰居節(jié)點(diǎn)。例如,圖5C描繪了 9對(duì)鄰居節(jié)點(diǎn)。像素1的三個(gè)節(jié)點(diǎn)可對(duì)應(yīng)于“l(fā)p”,而像素2的三個(gè)節(jié)點(diǎn)可對(duì)應(yīng)于“1/,。函數(shù)V1^dp, Iq,)可被稱為平滑度函數(shù),其是兩個(gè)鄰居像素之間的成本。例如,圖5C中的圖的邊上的成本是一對(duì)鄰居像素之間的成本。如等式2中所描繪的,該平滑度函數(shù)可以是兩個(gè)鄰居像素的潛在深度值之間的差異的絕對(duì)值。該平滑度函數(shù)可具有許多其他形式。在一個(gè)實(shí)施例中,該成本基于懲罰一對(duì)鄰居像素之間的大的潛在深度值差異。例如,其真實(shí)深度可能大約相同的一對(duì)鄰居像素可對(duì)它們之間的某些成本作出懲罰。參考圖 5C,作為一個(gè)示例,可懲罰像素1和像素2之間的某些邊的成本。懲罰鄰居像素之間的某些成本的進(jìn)一步細(xì)節(jié)在下文中描述。在步驟606,從每像素成本和鄰居像素之間的成本的和形成函數(shù)。等式3示出了該成本函數(shù)的一個(gè)實(shí)施例。等式3 =E = Ed+ λ Es在等式1中,&是數(shù)據(jù)項(xiàng),艮是平滑度項(xiàng),λ是縮放因子。等式4示出了數(shù)據(jù)項(xiàng)的一個(gè)示例。等式5描繪了平滑度項(xiàng)的一個(gè)示例。
等式4屯=[其(11))等式5: = Σ {p,q}eNvp,q(lp, Iq,)注意,等式4是通過(guò)對(duì)所有像素的每像素成本求和來(lái)形成的。等式5是通過(guò)對(duì)“N” 的鄰居像素之間的成本求和來(lái)形成的,N是所有鄰居對(duì)的集合。以上等式中的成本函數(shù)可被認(rèn)為是能量函數(shù)。在某些實(shí)施例中,最小化該成本函數(shù)(步驟308,過(guò)程300)的步驟可被認(rèn)為是能量最小化問(wèn)題。在某些實(shí)施例中,使用額外的提示來(lái)確定成本函數(shù)。其一個(gè)示例是使用亮度信息。 在一個(gè)實(shí)施例中,使用像素的亮度來(lái)調(diào)整每像素值。注意,像素的亮度可對(duì)應(yīng)于其真實(shí)深度。例如,可以預(yù)期較亮的像素是較接近的,而較暗的像素則是較遠(yuǎn)的。因此,在成本函數(shù)中可使用亮度。作為具體示例,如果一像素被確定為是暗的,則可向圖中其像素具有較大潛在深度的節(jié)點(diǎn)分配較低成本。圖7是基于亮度來(lái)確定每像素成本的過(guò)程700的一個(gè)實(shí)施例的流程圖。過(guò)程700 是過(guò)程600的步驟602的一實(shí)施例。過(guò)程700描述了處理一個(gè)像素,且可以對(duì)其他像素重復(fù)。在步驟702,訪問(wèn)像素的亮度值。在一個(gè)實(shí)施例中,亮度值由生成深度圖像的同一過(guò)程生成。例如,亮度圖像從也可在基于飛行時(shí)間生成深度圖像的過(guò)程中使用的光檢測(cè)器收集的數(shù)據(jù)中生成。因此,來(lái)自亮度圖像的亮度值可以與深度圖像相關(guān)來(lái)確定該深度圖像中的像素的亮度值。在步驟704,將像素的亮度值與閾值進(jìn)行比較。如果亮度值小于閾值,則在步驟 706減小對(duì)應(yīng)于遠(yuǎn)的深度的每像素成本。對(duì)應(yīng)于其他深度的每像素成本可保留為默認(rèn)值。 例如,可設(shè)置閾值,使得期望像素相對(duì)遠(yuǎn)離深度相機(jī)。因此,相對(duì)于相對(duì)小的深度值,應(yīng)偏向相對(duì)遠(yuǎn)的深度值。作為一個(gè)示例,如果潛在深度值大于4. 5m,則每像素成本可被設(shè)為-1。如果潛在深度值小于4. 5m,則每像素成本可被設(shè)為0。在一個(gè)實(shí)施例中,步驟704包括向給定像素的每一節(jié)點(diǎn)分配成本。例如,圖5B的圖中像素1的所有節(jié)點(diǎn)可被分配一成本。在一個(gè)實(shí)施例中,步驟704包括對(duì)給定像素確定等式1的值。如果亮度值大于閾值,則在步驟708減小附近像素的每像素成本。對(duì)應(yīng)于其他深度的每像素成本可保留為默認(rèn)值。例如,如果潛在深度值小于4. 5m,則每像素成本可被設(shè)為-1。如果潛在深度值大于4. 5m,則每像素成本可被設(shè)為0。過(guò)程700可具有許多變型。 例如,可以不執(zhí)行減小附近像素的成本的步驟708。或者,可以不執(zhí)行減小遠(yuǎn)像素的成本的步驟706。每像素成本可基于諸如亮、中和暗像素等其他類別來(lái)分配。注意,可使用除了亮度值以外的其他因素來(lái)調(diào)整每像素成本。回頭參考等式1和2,可以看到,減小每像素成本的像素效應(yīng)是在最終的解中偏向具有較低成本的節(jié)點(diǎn)。在成本函數(shù)中使用附加提示的另一示例是使用邊緣信息。在一個(gè)實(shí)施例中,邊緣信息來(lái)自亮度圖像中的邊緣。如果兩個(gè)鄰居像素不靠近邊緣,則這意味著它們應(yīng)具有相似的深度值。在一個(gè)實(shí)施例中,使用邊緣信息來(lái)修改兩個(gè)鄰居像素之間的成本。圖8是基于邊緣信息來(lái)修改兩個(gè)鄰居像素之間的成本的過(guò)程800的一個(gè)實(shí)施例的流程圖。過(guò)程800是過(guò)程600的步驟604的一實(shí)施例。過(guò)程800描述了處理一個(gè)像素,且可以對(duì)其他像素重復(fù)。在步驟802,訪問(wèn)像素的邊緣信息。在一個(gè)實(shí)施例中,亮度值由生成深度圖像的同一過(guò)程生成。例如,亮度圖像從也可在基于飛行時(shí)間生成深度圖像的過(guò)程中使用的光檢測(cè)器收集的數(shù)據(jù)中生成。因此,來(lái)自亮度圖像的亮度值可以與深度圖像相關(guān)來(lái)確定該深度圖像中的像素的亮度值。在步驟804,檢查該邊緣信息來(lái)確定在像素附近是否存在強(qiáng)邊緣。如果在像素附近存在強(qiáng)邊緣,則可忽略深度值的大差異(步驟806)。例如,如果像素與其鄰居之間的成本很高,則可減小該成本。如果沒(méi)有強(qiáng)邊緣,則在步驟808對(duì)像素與其鄰居像素之間的成本進(jìn)行懲罰。以下等式6示出了對(duì)以上等式2的一種可能的修改,以便在像素不接近強(qiáng)邊緣時(shí)對(duì)兩個(gè)像素之間的成本應(yīng)用懲罰。
權(quán)利要求
1.一種機(jī)器實(shí)現(xiàn)的方法,包括訪問(wèn)深度圖像,所述深度圖像包括所述深度圖像中的多個(gè)位置的每一個(gè)位置的深度值,每一位置具有一個(gè)或多個(gè)鄰居位置(302);基于所述深度圖像中的位置的深度值和所述深度圖像中的潛在混疊為所述多個(gè)位置中的每一個(gè)位置確定潛在深度值(304);基于每一位置與其一個(gè)或多個(gè)鄰居位置的潛在深度之間的差異來(lái)確定成本函數(shù),確定成本函數(shù)包括為一對(duì)鄰居位置之間的潛在深度值的較大差異分配較高成本(306);以及充分最小化所述成本函數(shù)來(lái)為每一位置選擇一個(gè)潛在深度值(308)。
2.如權(quán)利要求1所述的機(jī)器實(shí)現(xiàn)的方法,其特征在于,所述確定成本函數(shù)包括對(duì)所述深度圖像中的第一位置的每一潛在深度值,為每一鄰居位置的每一潛在深度值確定成本,所述成本基于所述第一位置的潛在深度值與所述鄰居位置的潛在深度值之間的深度差;以及為所述深度圖像中的每一位置重復(fù)為每一鄰居位置的每一潛在深度值確定成本。
3.如權(quán)利要求2所述的機(jī)器實(shí)現(xiàn)的方法,其特征在于,所述確定成本函數(shù)還包括為所述深度圖像中的每一位置的每一潛在深度值確定個(gè)別成本。
4.如權(quán)利要求3所述的機(jī)器實(shí)現(xiàn)的方法,其特征在于,所述為所述深度圖像中的每一位置的每一潛在深度值確定個(gè)別成本包括基于所述深度圖像中的第一位置處的亮度值向所述第一位置的每一潛在深度值分配個(gè)別成本。
5.如權(quán)利要求1至4中的任一項(xiàng)所述的機(jī)器實(shí)現(xiàn)的方法,其特征在于,所述確定成本函數(shù)包括確定一對(duì)鄰居位置是否可能在對(duì)應(yīng)于所述深度圖像的場(chǎng)景中具有大致相同的深度;以及對(duì)被確定為可能具有大致相同的深度的鄰居位置對(duì)之間的潛在深度值的大差異進(jìn)行懲罰。
6.如權(quán)利要求5所述的機(jī)器實(shí)現(xiàn)的方法,其特征在于,確定一對(duì)鄰居位置是否可能在對(duì)應(yīng)于所述深度圖像的場(chǎng)景中具有大致相同的深度包括訪問(wèn)對(duì)應(yīng)于所述深度圖像的場(chǎng)景的亮度圖像;檢測(cè)所述亮度圖像中的邊緣;以及基于所檢測(cè)的邊緣來(lái)確定所述一對(duì)鄰居位置是否可能在大致相同的深度處,所述對(duì)被確定為可能具有大致相同的深度的鄰居位置對(duì)之間的潛在深度值的大差異進(jìn)行懲罰包括增加不接近強(qiáng)邊緣的鄰居位置對(duì)的成本,還包括忽略接近強(qiáng)邊緣的像素的大深度差。
7.如權(quán)利要求1至6中的任一項(xiàng)所述的機(jī)器實(shí)現(xiàn)的方法,其特征在于,訪問(wèn)包括多個(gè)位置的深度值的深度圖像包括訪問(wèn)所述深度圖像中的多個(gè)像素的深度值;以及將所述深度圖像劃分成多個(gè)段,每一段包括具有帶有大致相同的深度值的鄰居的多個(gè)像素,每一段是所述多個(gè)位置中的一個(gè)位置。
8.如權(quán)利要求1至7中的任一項(xiàng)所述的機(jī)器實(shí)現(xiàn)的方法,其特征在于,所述多個(gè)位置中的每一個(gè)對(duì)應(yīng)于所述深度圖像中的一像素。
9.一種裝置,包括處理器;以及耦合到所述處理器的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上存儲(chǔ)有指令, 所述指令當(dāng)在所述處理器上執(zhí)行時(shí)使得所述處理器訪問(wèn)包括多個(gè)位置的深度值的深度圖像(302),每一位置具有一個(gè)或多個(gè)鄰居位置,所述指令還使得所述處理器基于所述深度圖像中的深度值和所述深度圖像中的潛在混疊來(lái)確定所述多個(gè)位置中的每一個(gè)位置的潛在深度值(304),所述指令還使得所述處理器基于每一位置與其一個(gè)或多個(gè)鄰居位置的潛在深度值之間的差異來(lái)確定成本函數(shù),為確定所述成本函數(shù),所述處理器為一對(duì)鄰居位置之間的潛在深度值的較大差異分配較高成本(306),所述指令還使得所述處理器充分最小化所述成本函數(shù)來(lái)為每一位置選擇一個(gè)潛在深度值(308)。
10.如權(quán)利要求9所述的裝置,其特征在于,使得所述處理器確定成本函數(shù)的指令使得所述處理器對(duì)所述深度圖像中的第一位置的每一潛在深度值為每一鄰居位置的每一潛在深度值確定成本,所述成本基于所述第一位置的潛在深度值與所述鄰居位置的潛在深度值之間的深度差,所述指令使得所述處理器對(duì)所述深度圖像中的每一位置為每一鄰居位置的每一潛在深度值確定成本。
11.如權(quán)利要求10所述的裝置,其特征在于,使得所述指令確定成本函數(shù)的指令還使得所述處理器對(duì)所述深度圖像中的每一位置的每一潛在深度值確定個(gè)別成本。
12.如權(quán)利要求11所述的裝置,其特征在于,所述使得處理器為所述深度圖像中的每一位置的每一潛在深度值確定個(gè)別成本的指令還使得所述處理器基于所述深度圖像中的第一位置處的亮度值向所述第一位置的每一潛在深度值分配個(gè)別成本。
13.如權(quán)利要求10至12中的任一項(xiàng)所述的裝置,其特征在于,使得所述處理器確定成本函數(shù)的指令還使得所述處理器確定一對(duì)鄰居位置是否在對(duì)應(yīng)于所述深度圖像的場(chǎng)景中可能具有大致相同的深度,并且對(duì)被確定為可能具有大致相同的深度的鄰居位置對(duì)之間的潛在深度值的大差異進(jìn)行懲罰。
14.如權(quán)利要求13所述的裝置,其特征在于,所述指令還使得所述處理器訪問(wèn)對(duì)應(yīng)于所述深度圖像的場(chǎng)景的亮度圖像,檢測(cè)所述亮度圖像中的邊緣,并基于所檢測(cè)的邊緣來(lái)確定所述鄰居位置對(duì)是否可能在大致相同的深度,所述指令還使得所述處理器增大不接近強(qiáng)邊緣的鄰居位置對(duì)的成本,并忽略接近強(qiáng)邊緣的像素的深度值的大差異。
15.如權(quán)利要求10至15中的任一項(xiàng)所述的裝置,其特征在于,使得所述處理器訪問(wèn)深度圖像的指令使得所述處理器訪問(wèn)所述深度圖像中的多個(gè)像素的深度值,并將所述深度圖像劃分成多個(gè)段,每一段包括具有帶有大致相同深度值的鄰居像素的多個(gè)像素,每一段是所述多個(gè)位置中的一個(gè)位置。
全文摘要
提供了用于對(duì)深度圖像去混疊的技術(shù)。深度圖像可以基于所發(fā)射的和所接收的已調(diào)制光束之間的相位差來(lái)生成。該方法包括訪問(wèn)深度圖像,該深度圖像中具有關(guān)于其中的多個(gè)位置的深度值。每一位置具有一個(gè)或多個(gè)鄰居位置?;谏疃葓D像中關(guān)于位置的深度值和深度圖像中的潛在混疊為多個(gè)位置中的每一個(gè)確定潛在深度值。基于每一位置與其相鄰位置的潛在深度值之間的差異來(lái)確定成本函數(shù)。確定成本函數(shù)包括為相鄰位置之間的潛在深度值的較大差異分配較高成本。該成本函數(shù)被充分最小化來(lái)為每一位置選擇一個(gè)潛在深度值。
文檔編號(hào)G06T3/40GK102163324SQ20111008137
公開日2011年8月24日 申請(qǐng)日期2011年3月24日 優(yōu)先權(quán)日2010年3月26日
發(fā)明者A·阿德萊爾, G·吉勒博阿, J·塔迪夫, S·凱茨 申請(qǐng)人:微軟公司