欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

使用深度圖進(jìn)行移動(dòng)相機(jī)定位的制作方法

文檔序號:6363830閱讀:306來源:國知局
專利名稱:使用深度圖進(jìn)行移動(dòng)相機(jī)定位的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及使用深度圖進(jìn)行移動(dòng)相機(jī)定位。
背景技術(shù)
移動(dòng)相機(jī)定位涉及找到在其環(huán)境中移動(dòng)的相機(jī)的位置和定向,并且對于如機(jī)器人、沉浸式游戲、增強(qiáng)現(xiàn)實(shí)、架構(gòu)、規(guī)劃、機(jī)器人、工程原型制作、車輛導(dǎo)航、醫(yī)學(xué)應(yīng)用和其他問題領(lǐng)域等許多應(yīng)用是有用的。現(xiàn)有方案在精確度、穩(wěn)健性和速度上受到限制。對于許多應(yīng)用,需要實(shí)時(shí)地進(jìn)行精確的相機(jī)定位,例如以使得機(jī)器人可以成功地在其環(huán)境中四處移動(dòng)。先前的許多移動(dòng)相機(jī)定位方法已經(jīng)使用了彩色視頻相機(jī)而不是深度相機(jī)。通常彩色視頻相機(jī)給出高分辨率和精確度,而豐富的色彩信息允許在視頻圖像中檢測到視覺特征。能從深度相機(jī)中獲得的信息取決于環(huán)境的類型和所使用的深度相機(jī)的類型可能是有噪聲并且不精確的。深度相機(jī)捕捉在本文中被稱為深度圖(depth map)的圖像,其中每個(gè)像素和從該深度相機(jī)到該相機(jī)的環(huán)境中的一個(gè)點(diǎn)的絕對和相對距離有關(guān)。與彩像相比, 由于可用信息的差異,檢測深度圖中的特征可能更加困難。先前的一些移動(dòng)相機(jī)定位方法已經(jīng)涉及創(chuàng)建移動(dòng)相機(jī)的環(huán)境圖,同時(shí)跟蹤相機(jī)相對于該圖的位置和定向。這被稱為同時(shí)定位和地圖構(gòu)建(SLAM)。以下描述的各實(shí)施例不限于解決已知的移動(dòng)相機(jī)定位系統(tǒng)的缺點(diǎn)中的任一個(gè)或全部的實(shí)現(xiàn)。

發(fā)明內(nèi)容
下面呈現(xiàn)了本發(fā)明的簡要概述,以便向讀者提供基本理解。本發(fā)明內(nèi)容不是本發(fā)明的詳盡概述,并且不標(biāo)識(shí)本發(fā)明的關(guān)鍵/重要元素,也不描述本發(fā)明的范圍。其唯一的目的是以簡化形式呈現(xiàn)此處所公開的精選概念,作為稍后呈現(xiàn)的更詳細(xì)的描述的序言。針對機(jī)器人、沉浸式游戲、增強(qiáng)現(xiàn)實(shí)和其他應(yīng)用描述了使用深度圖進(jìn)行移動(dòng)相機(jī)定位。在一實(shí)施例中,在一環(huán)境中跟蹤移動(dòng)深度相機(jī),同時(shí)使用所感測的深度數(shù)據(jù)形成該環(huán)境的3D模型。在一實(shí)施例中,當(dāng)相機(jī)跟蹤失敗時(shí),通過使用先前收集的關(guān)鍵幀或以其他方式來檢測相機(jī)跟蹤的失敗并重新定位相機(jī)。在一實(shí)施例中,通過實(shí)時(shí)地將當(dāng)前深度圖與該 3D模型的特征進(jìn)行比較,檢測到移動(dòng)相機(jī)重新訪問一位置的環(huán)閉合(loop closure) 0在一些實(shí)施例中,使用所檢測到的環(huán)閉合來改善該環(huán)境的3D模型的一致性和精確度。通過結(jié)合附圖參考以下詳細(xì)描述,可更易于領(lǐng)會(huì)并更好地理解許多附帶特征。


根據(jù)附圖閱讀以下詳細(xì)描述,將更好地理解本發(fā)明,在附圖中圖I是房間中的持有移動(dòng)深度相機(jī)的人的示意圖,該移動(dòng)深度相機(jī)被用于實(shí)時(shí)相機(jī)跟蹤并且可任選地還產(chǎn)生該房間的3D模型或圖;圖2是正由持有移動(dòng)深度相機(jī)的人探測的建筑物某層的平面視圖3是連接到實(shí)時(shí)相機(jī)跟蹤系統(tǒng)、密集3D模型形成系統(tǒng)、以及游戲系統(tǒng)的移動(dòng)深度相機(jī)的示意圖4是實(shí)時(shí)跟蹤器處的方法的流程圖5是重新定位引擎的示意圖6是不使用關(guān)鍵幀的重新定位方法的流程圖7是使用關(guān)鍵幀的重新定位方法的流程圖8是環(huán)閉合的方法的流程圖9是示例幀對齊引擎的示意圖10是用于相機(jī)跟蹤的迭代過程的流程圖11是圖5的迭代過程中用于計(jì)算相應(yīng)點(diǎn)的對的部分的更多細(xì)節(jié)的流程圖12是用于使用來自密集3D模型的預(yù)測來計(jì)算相應(yīng)點(diǎn)的對的過程的流程圖13是用于計(jì)算和最小化在圖10的迭代過程中使用的點(diǎn)-到-平面誤差度量的過程的流程圖14示出可在其中實(shí)現(xiàn)相機(jī)定位系統(tǒng)的實(shí)施例的示例性的基于計(jì)算的設(shè)備。
在各個(gè)附圖中使用相同的附圖標(biāo)記來指代相同的部件。
具體實(shí)施例方式下面結(jié)合附圖提供的具體實(shí)施方式
旨在作為本發(fā)明示例的描述,并不旨在表示可以構(gòu)建或使用本發(fā)明示例的唯一形式。本描述闡述了本發(fā)明示例的功能,以及用于構(gòu)建和操作本發(fā)明示例的步驟的序列。然而,可以通過不同的示例來實(shí)現(xiàn)相同或等效功能和序列。盡管本示例在本文中是使用從發(fā)出和捕捉紅外光的移動(dòng)深度相機(jī)獲得的深度圖像在實(shí)時(shí)相機(jī)跟蹤系統(tǒng)中實(shí)現(xiàn)的,然而所描述的系統(tǒng)是作為示例而不是限制而提供的。本領(lǐng)域的技術(shù)人員將會(huì)理解,本示例適于在各種不同類型的實(shí)時(shí)相機(jī)跟蹤系統(tǒng)中應(yīng)用,包括但不限于使用從立體相機(jī)獲得的深度信息的系統(tǒng)和使用通過發(fā)出和捕捉其他類型的電磁輻射所獲得的深度信息的系統(tǒng)。術(shù)語“圖像元素”在本文中用于指示像素、像素組、體素、或圖像的其他更高級別的分量。術(shù)語“密集3D模型”在本文中用于指示包括物體和表面的三維場景的表示,其中該表示包括關(guān)于該場景的圖像元素的細(xì)節(jié)。相反,稀疏3D模型可包括物體的基于幀的表示??梢园凑諟p少存儲(chǔ)3D模型所需的冗余和存儲(chǔ)器的方式來將密集3D模型轉(zhuǎn)換成諸如多邊形網(wǎng)格表示或其他表示等的稀疏3D模型。示例密集3D模型可以是其中來自傳入深度圖的所有點(diǎn)或許多點(diǎn)被用于描述該環(huán)境中的表面的模型。稀疏模型將采用這些點(diǎn)的子集來使計(jì)算加速并減少存儲(chǔ)器占用量。圖I是站在一房間中并持有移動(dòng)深度相機(jī)102的人100的示意圖,在本示例中移動(dòng)深度相機(jī)102還包括有投影儀,該投影儀將貓108的圖像投影到該房間中。該房間包含各種物體106,如椅子、門、窗、植物、燈和另一個(gè)人104。這些物體106中的許多物體是靜態(tài)的,但這些物體中的一些物體(諸如人104)可以移動(dòng)。當(dāng)人在該房間內(nèi)四處移動(dòng)時(shí),該移動(dòng)深度相機(jī)捕捉圖像,實(shí)時(shí)相機(jī)跟蹤系統(tǒng)112使用所述圖像來監(jiān)視該相機(jī)在該房間中的位置和定向。實(shí)時(shí)相機(jī)跟蹤系統(tǒng)112可以與移動(dòng)深度相機(jī)102集成,或可以處于另一位置,只要它能夠(直接或間接)接收來自移動(dòng)深度相機(jī)102的通信。例如,實(shí)時(shí)相機(jī)跟蹤系統(tǒng)112 可以在房間中的個(gè)人計(jì)算機(jī)、專用計(jì)算機(jī)游戲裝置、或其他計(jì)算設(shè)備處提供,并與移動(dòng)深度相機(jī)102進(jìn)行無線通信。在其他實(shí)施例中,實(shí)時(shí)相機(jī)跟蹤系統(tǒng)112可以處于建筑物中的別處或處于使用任何合適類型的通信網(wǎng)絡(luò)與移動(dòng)深度相機(jī)102進(jìn)行通信的另一遠(yuǎn)程位置。移動(dòng)深度相機(jī)102還與該環(huán)境的密集3D模型110 (在此情況下是該房間的3D模型)或該環(huán)境的另一類型的圖進(jìn)行通信。例如,當(dāng)人在房間中四處移動(dòng)時(shí),移動(dòng)深度相機(jī)102捕捉到的圖像被用來形成和構(gòu)建環(huán)境的密集3D模型。實(shí)時(shí)相機(jī)跟蹤系統(tǒng)112可跟蹤相機(jī)相對于環(huán)境的3D模型或圖110的位置。實(shí)時(shí)相機(jī)跟蹤系統(tǒng)112的輸出和密集3D模型或圖110可由游戲系統(tǒng)或其他應(yīng)用來使用,但這不是必要的。例如,移動(dòng)深度相機(jī)102處的投影儀可被安排成取決于實(shí)時(shí)相機(jī)跟蹤系統(tǒng)112的輸出和3D模型110來投影圖像。圖2是建筑物的層200的平面圖。持有移動(dòng)深度相機(jī)204的人202正如虛線箭頭 208所示在該層四處移動(dòng)。此人沿走廊206走過各個(gè)房間和家具210。實(shí)時(shí)相機(jī)跟蹤系統(tǒng) 112能夠在移動(dòng)深度相機(jī)204移動(dòng)時(shí)跟蹤它的位置,并且該層的3D模型或圖被形成。不必由人202來攜帶移動(dòng)深度相機(jī)204。在其他示例中,移動(dòng)深度相機(jī)204被安裝在機(jī)器人或運(yùn)載工具上。這也適用于圖I的示例。圖3是與實(shí)時(shí)相機(jī)跟蹤器3 16、密集模型形成系統(tǒng)324和可任選的游戲系統(tǒng)332 一起使用的移動(dòng)環(huán)境傳感器300的不意圖。移動(dòng)環(huán)境傳感器300包括被安排成捕捉場景的深度圖像序列的深度相機(jī)302。每個(gè)深度圖像或深度圖幀314包括二維圖像,在該二維圖像中每一圖像元素包括諸如從相機(jī)到所捕捉的場景中的造成了該圖像元素的物體的長度或距離等的深度值。這一深度值可以是以指定測量單位(如米或厘米)來提供的絕對值,或可以是相對深度值。在每一捕捉到的深度圖像中,存在大約300000或更多個(gè)圖像元素,每一圖像元素具有深度值。幀速率足夠高而使得深度圖像能夠被用于工作機(jī)器人、計(jì)算機(jī)游戲、或其他應(yīng)用。例如,每秒至少20幀。深度信息可以使用任何合適的技術(shù)來獲得,包括但不限于飛行時(shí)間、結(jié)構(gòu)化光、立體圖像。在一些示例中,深度相機(jī)能夠?qū)⑸疃刃畔⒔M織為與沿該深度相機(jī)的視線延伸的Z 軸垂直的Z層。移動(dòng)環(huán)境傳感器300還可包括被安排成以可由深度相機(jī)302查明深度信息的方式來照亮該場景的發(fā)射器304。例如,在深度相機(jī)302是紅外(IR)飛行時(shí)間相機(jī)的情況下, 發(fā)射器304將IR光發(fā)射到該場景上,并且深度相機(jī)302被安排成檢測從該場景中的一個(gè)或多個(gè)物體的表面反向散射的光。在一些不例中,可以從發(fā)射器304發(fā)出脈沖紅外光,使得外出光脈沖與對應(yīng)的傳入光脈沖之間的時(shí)間可由深度相機(jī)來檢測和測量,并被用來確定從環(huán)境傳感器300到場景中的物體上的位置的物理距離。另外,在一些示例中,可將來自發(fā)射器 304的出射光波的相位與入射光波的相位在深度相機(jī)302處進(jìn)行比較來確定相移。隨后經(jīng)由包括例如快門式光脈沖成像的各種技術(shù)通過分析反射光束隨時(shí)間的強(qiáng)度來將相移用于確定從移動(dòng)環(huán)境傳感器300到各物體上的位置的物理距離。在另一示例中,移動(dòng)環(huán)境傳感器300可使用結(jié)構(gòu)化光來捕捉深度信息。在這種技術(shù)中,可使用發(fā)射器304將圖案化光(例如,顯示為諸如網(wǎng)格或條形圖案等已知圖案的光) 投影到場景上。在到達(dá)場景中的物體的表面之后,該圖案變形。深度相機(jī)302捕捉圖案的這種變形并對其進(jìn)行分析來確定從深度相機(jī)302到場景中的物體的絕對或相對距離。
在另一示例中,深度相機(jī)302包括一對立體相機(jī),以便獲得并解析視覺立體數(shù)據(jù)來生成相對深度信息。在這種情況下,發(fā)射器304可被用來照亮場景或可被省略。在一些示例中,除深度相機(jī)302之外,移動(dòng)環(huán)境傳感器300包括被稱為RGB相機(jī) 306的彩色視頻相機(jī)。RGB相機(jī)306被安排成在可見光頻率處捕捉場景的圖像序列。移動(dòng)環(huán)境傳感器300可包括定向傳感器308,諸如慣性測量單元(MU)、加速計(jì)、陀螺儀、指南針、或其他定向傳感器308。然而,使用定向傳感器不是必要的。移動(dòng)環(huán)境傳感器 300可包括諸如GPS等位置跟蹤設(shè)備,但這不是必要的。移動(dòng)通信傳感器可包括上面參考圖I提到的投影儀312,但這不是必要的。移動(dòng)環(huán)境傳感器還包括一個(gè)或多個(gè)處理器、存儲(chǔ)器、以及通信基礎(chǔ)結(jié)構(gòu),如下文更詳細(xì)地描述的。移動(dòng)環(huán)境傳感器可以在外殼中提供,該外殼的形狀和大小制定成由用戶手持或由用戶佩戴。在其他示例中,移動(dòng)環(huán)境傳感器的大小和形狀被制定成被包括或安裝在運(yùn)載工具、玩具、或其他可移動(dòng)裝置上。移動(dòng)環(huán)境傳感器300連接到實(shí)時(shí)跟蹤器316。這一連接可以是物理有線連接或可以使用無線通信。在一些示例中,移動(dòng)環(huán)境傳感器300通過諸如因特網(wǎng)等一個(gè)或多個(gè)通信網(wǎng)絡(luò)間接連接到實(shí)時(shí)跟蹤器。實(shí)時(shí)跟蹤器316是使用控制一個(gè)或多個(gè)并行計(jì)算單元(諸如圖形處理單元(GPU)、 矢量機(jī)、多核處理器或其他并行計(jì)算設(shè)備)的通用微處理器來計(jì)算機(jī)實(shí)現(xiàn)的。它包括幀對齊引擎318并且可任選地包括環(huán)閉合引擎320和重新定位引擎322。實(shí)時(shí)跟蹤器316從深度相機(jī)302獲得深度圖幀314,并還可任選地從移動(dòng)環(huán)境傳感器300獲得輸入,并獲得可任選圖數(shù)據(jù)334以及來自游戲系統(tǒng)332的可任選數(shù)據(jù)。實(shí)時(shí)跟蹤器可用于使深度圖幀對齊, 以產(chǎn)生深度相機(jī)302的六自由度姿勢估計(jì)的實(shí)時(shí)系列328。它還可以產(chǎn)生變換參數(shù)(也稱為對準(zhǔn)參數(shù))以用于深度圖幀的對之間的轉(zhuǎn)換。在一些示例中,實(shí)時(shí)跟蹤器對來自深度相機(jī)的各對深度圖幀314進(jìn)行操作。在其他示例中,實(shí)時(shí)跟蹤器216獲取單個(gè)深度圖幀314 并將它與該場景的密集3D模型326對齊而非與另一深度圖幀314對齊。例如,在一些實(shí)施例中,實(shí)時(shí)跟蹤器316向密集3D模型形成系統(tǒng)324提供輸出,密集3D模型形成系統(tǒng)324使用該信息以及深度圖幀314來形成并存儲(chǔ)移動(dòng)環(huán)境傳感器300 正在其中移動(dòng)的場景或環(huán)境的密集3D模型。例如,在圖I的情況下,3D模型將是房間中的表面和物體的3D模型。在圖2的情況下,3D模型將是建筑物的該層的3D模型。密集3D模型326可被存儲(chǔ)在GPU存儲(chǔ)器中,或以其他方式存儲(chǔ)。移動(dòng)環(huán)境傳感器300可結(jié)合游戲系統(tǒng)332來使用,游戲系統(tǒng)332連接到顯示器 330。例如,游戲可以是高爾夫游戲、拳擊游戲、賽車游戲、或其他類型的計(jì)算機(jī)游戲。來自游戲系統(tǒng)332的數(shù)據(jù)(如與游戲相關(guān)的游戲狀態(tài)或元數(shù)據(jù))也可被提供給實(shí)時(shí)跟蹤器316。 而且,來自實(shí)時(shí)跟蹤器的信息可以被游戲系統(tǒng)332用來影響游戲如何進(jìn)行。來自3D模型的信息也可以被游戲系統(tǒng)332用來影響游戲如何進(jìn)行。可任選地,圖數(shù)據(jù)334對實(shí)時(shí)跟蹤器316是可用的。例如,這可以是架構(gòu)師對該環(huán)境(例如,房間或建筑物的層)的繪圖、該環(huán)境中已知的地標(biāo)的位置、可從另一源獲得的該環(huán)境的地圖。實(shí)時(shí)跟蹤器的幀對齊引擎318被安排成將各對深度圖幀對齊,或?qū)⒁簧疃葓D幀與來自密集3D模型的一深度圖幀的估計(jì)對齊。它使用迭代過程,該迭代過程是用一個(gè)或多個(gè)圖形處理單元來實(shí)現(xiàn)的,以使幀對齊引擎實(shí)時(shí)操作。下面參考圖9給出關(guān)于幀對齊引擎的更多細(xì)節(jié)。在一個(gè)示例中,實(shí)時(shí)跟蹤器316和/或密集3D模型形成系統(tǒng)324所執(zhí)行的處理可以離開移動(dòng)環(huán)境捕捉設(shè)備300的位置而遠(yuǎn)程執(zhí)行。例如,移動(dòng)環(huán)境捕捉設(shè)備300可被連接到(或包括)具有相對低處理能力并且通過通信網(wǎng)絡(luò)將深度圖像流傳送到服務(wù)器的計(jì)算設(shè)備。該服務(wù)器具有相對高的處理能力,并且執(zhí)行實(shí)時(shí)跟蹤器316和/或密集3D模型形成系統(tǒng)324的在計(jì)算上復(fù)雜的任務(wù)。該服務(wù)器可以逐巾貞返回密集重構(gòu)(dense reconstruction) 的已渲染圖像以向用戶提供交互體驗(yàn),并且在模型完成時(shí)還返回最終密集3D重構(gòu)以供后續(xù)本地使用(例如,在游戲中使用)。這樣的安排避免了用戶對擁有高能力本地計(jì)算設(shè)備的需要。環(huán)閉合引擎被安排成檢測移動(dòng)環(huán)境傳感器何時(shí)按照環(huán)移動(dòng),使得當(dāng)前深度幀中描繪的場景至少部分與不是緊鄰的之前深度幀的先前深度幀的場景相重疊。當(dāng)環(huán)閉合時(shí),該移動(dòng)環(huán)境傳感器重新訪問它之前訪問過的某處。例如,這可在用戶在圖2中的建筑物的整層四處走動(dòng)并再次到達(dá)起始點(diǎn)時(shí)發(fā)生。這也可以在用戶在房間四處移動(dòng)至某家具背后并再次出來到原始起始位置或接近該原始起始位置時(shí)發(fā)生。因此,環(huán)的大小將取決于移動(dòng)環(huán)境傳感器所處的環(huán)境并取決于應(yīng)用域而改變。例如,在人在建筑物的層四處走動(dòng)的情況下 (如在圖2中),該環(huán)可能數(shù)十米長。在人在單個(gè)房間內(nèi)四處移動(dòng)的情況下(如在圖I中), 該環(huán)可以小于10米長。在玩具汽車上的機(jī)器人在兒童的玩具賽道上四處駕駛的情況下,該環(huán)可以小于I米長。檢測何時(shí)環(huán)閉合發(fā)生是有用的,因?yàn)檫@使得3D模型中累積的誤差能夠被標(biāo)識(shí)。例如,移動(dòng)環(huán)境傳感器可以使所捕捉的深度和/或彩色視頻圖像被標(biāo)識(shí)為在環(huán)的開始或結(jié)束處,但是為那些圖像中的每個(gè)圖像計(jì)算的相機(jī)位置和定向可能不是一致的。一旦這些誤差被標(biāo)識(shí),則可以減少這些誤差以改善該環(huán)境的3D模型或圖的精確度和一致性。 而且,可以從相機(jī)跟蹤的總誤差或誤定向(disorientation)中恢復(fù)。環(huán)閉合誤差可以被認(rèn)為是包括局部化誤差和全局誤差兩者。全局環(huán)閉合誤差(也被稱為漂移)包括隨著時(shí)間的相機(jī)的組合的6自由度姿勢估計(jì)中的誤差。局部化誤差可以在來自單個(gè)幀或很大程度上重疊的幀序列的相機(jī)的6自由度姿勢估計(jì)中出現(xiàn)。實(shí)時(shí)地精確檢測環(huán)閉合何時(shí)發(fā)生不是簡單直接的。一旦環(huán)閉合被檢測到,任何環(huán)閉合誤差將被標(biāo)識(shí)并減少,而這難以在實(shí)現(xiàn)高質(zhì)量結(jié)果的同時(shí)實(shí)時(shí)地實(shí)現(xiàn)。此外,可以以不同于局部環(huán)閉合誤差的方式來抵消或處置全局環(huán)閉合誤差。重新定位引擎322被安排成處理以下情況實(shí)時(shí)跟蹤器失去移動(dòng)環(huán)境傳感器300 的當(dāng)前位置并且重新定位或再次找出當(dāng)前位置。實(shí)時(shí)跟蹤器可能由于許多原因而失去移動(dòng)環(huán)境傳感器300的當(dāng)前位置。例如,快速相機(jī)運(yùn)動(dòng)、遮擋和運(yùn)動(dòng)模糊。在使用深度圖進(jìn)行實(shí)時(shí)跟蹤的情況下,在該環(huán)境具有很少的精細(xì)的細(xì)節(jié)并且包括主要是平面的表面的情況下, 跟蹤失敗也可能發(fā)生。在使用結(jié)構(gòu)化光發(fā)射器的深度相機(jī)的情況下,跟蹤失敗可能在該環(huán)境包括高度反射性表面(諸如計(jì)算機(jī)屏幕)和產(chǎn)生很差的深度信息的其他反射性表面時(shí)發(fā)生。如果沒有檢測到跟蹤失敗,則誤差的跟蹤信息有可能被用于遞增該環(huán)境的3D模型或圖。這可能導(dǎo)致該3D模型或圖的破壞。快速和精確的跟蹤失敗檢測是有益的,因?yàn)樗鼙挥糜诜乐?D模型的損壞以及觸發(fā)跟蹤恢復(fù)過程。
8
圖4是圖3的實(shí)時(shí)跟蹤器3 16處的過程的流程圖。如下面參考圖9到13所述, 使用幀對齊引擎318建立(400)實(shí)時(shí)相機(jī)跟蹤。使用(402)深度圖幀314和幀對齊引擎的輸出(對準(zhǔn)參數(shù)和相機(jī)定向和位置)來細(xì)化移動(dòng)環(huán)境傳感器300在其中移動(dòng)的環(huán)境的密集 3D模型326。如果檢測(404)到跟蹤失敗,則移動(dòng)環(huán)境傳感器300的重新定位406發(fā)生,并且該過程在步驟402,同時(shí)隨著更多的深度圖幀被捕捉而遞增該密集3D模型。以此方式,一旦檢測到跟蹤失敗,則暫停正在進(jìn)行的相機(jī)跟蹤和正在進(jìn)行的3D模型的細(xì)化,直到重新定位成功。如果檢測到(408)環(huán)閉合誤差,則修改該密集3D模型本身以將該誤差計(jì)入。在解決該環(huán)閉合誤差之后,該過程在步驟402繼續(xù),同時(shí)遞增該密集3D模型。以此方式,當(dāng)跟蹤失敗發(fā)生時(shí)保留該環(huán)境的密集3D模型,并且其精確度和一致性因?yàn)闄z測環(huán)閉合而被改善。圖5是給出圖3的重新定位引擎322的更多細(xì)節(jié)的示意圖。它包括實(shí)時(shí)地操作的跟蹤失敗檢測器500。跟蹤失敗檢測器500可以包括閾值502,該閾值502是取決于所涉及的應(yīng)用域而被預(yù)先配置的。例如,當(dāng)該幀對齊引擎輸出的對準(zhǔn)參數(shù)改變超過閾值量時(shí),跟蹤失敗可能發(fā)生。在另一示例中,當(dāng)該幀對齊引擎的SEJg陣輸出在連續(xù)輸出間的改變超過閾值量時(shí),跟蹤失敗可能發(fā)生。當(dāng)用于跟蹤移動(dòng)深度相機(jī)的位置和定向的迭代過程的收斂中發(fā)生失敗時(shí),可以檢測到跟蹤失敗。跟蹤失敗檢測器500可以包括作為一個(gè)或多個(gè)規(guī)則、準(zhǔn)則、閾值或其他條件存儲(chǔ)的運(yùn)動(dòng)試探(heuristic) 504。例如,該運(yùn)動(dòng)試探可以是如下規(guī)則 移動(dòng)環(huán)境傳感器300正在以具有白噪聲加速的恒定速度運(yùn)動(dòng)。來自幀對齊弓I擎的與此運(yùn)動(dòng)試探不一致的任何輸出可以觸發(fā)跟蹤失敗。在另一示例中,該運(yùn)動(dòng)試探可以是移動(dòng)環(huán)境傳感器300以隨機(jī)行走(random walk)移動(dòng),其具有被設(shè)定在普通人的行走速度的最大線性速度(在該移動(dòng)環(huán)境傳感器正在由用戶佩戴的情況下)且具有任意高的旋轉(zhuǎn)速度。來自幀對齊引擎的與此運(yùn)動(dòng)試探不一致的任何輸出可以觸發(fā)跟蹤失敗??梢允褂眠@些檢測跟蹤失敗方式中的一種或多種的任何組合。在一示例中,使用違反的三個(gè)方面的組合來根據(jù)以下檢測跟蹤失敗違反運(yùn)動(dòng)試探、違反旋轉(zhuǎn)閾值和/或當(dāng)用于跟蹤移動(dòng)深度相機(jī)的位置和定向的迭代過程的失敗由于無法收斂或以太大的殘留誤差收斂而發(fā)生。跟蹤失敗檢測器500可包括被安排成在該幀對齊引擎檢測到退化(degeneracy) (506)時(shí)檢測到跟蹤失敗的組件。例如,如同下面描述的,該幀對齊引擎通過使用一迭代過程來尋找各對深度圖之間的各對相應(yīng)點(diǎn),其中該迭代過程包括對誤差度量的優(yōu)化。在優(yōu)化誤差度量期間,當(dāng)該優(yōu)化過程無法給出任何解時(shí),檢測到退化。例如,無法給出解可能是由于因環(huán)境中的反射性表面而不具有深度值的圖像元素、因?yàn)樵摥h(huán)境高度平坦(如果存在球形或柱形表面的話)、或由于其他原因。該重新定向引擎還包括重新定向過程508,該重新定向過程可以使用關(guān)鍵幀或可以在沒有關(guān)鍵幀的情況下操作。關(guān)鍵幀是先前通過實(shí)時(shí)跟蹤器收集的或人工生成的深度圖或彩色視頻幀。通過找到是當(dāng)前相機(jī)視圖的良好匹配的關(guān)鍵幀來恢復(fù)跟蹤,并且這提供了初始姿勢估計(jì),跟蹤可以從該初始姿勢估計(jì)重新開始。在一些情況下,關(guān)鍵幀被邊緣化 (marginalize)到SE3矩陣中,并且這減少了存儲(chǔ)器要求。在需要時(shí),通過光線投射(ray casting),可以從該密集3D模型恢復(fù)關(guān)鍵巾貞點(diǎn)?,F(xiàn)在參考圖6給出重新定位過程508在沒有關(guān)鍵幀的情況下操作的一示例。例如, 使用移動(dòng)環(huán)境傳感器的運(yùn)動(dòng)模型,計(jì)算(600)相機(jī)姿勢的路徑分布。此運(yùn)動(dòng)模型可以預(yù)測該移動(dòng)環(huán)境傳感器在一穩(wěn)定延伸的球體內(nèi),所述球體的中心在其最后已知位置附近并且具有任何定向。隨機(jī)地,或以任何其他方式,從所述路徑分布中選擇(602)樣本相機(jī)姿勢。然后對所采樣的相機(jī)姿勢使用(604)該幀對齊引擎來將當(dāng)前深度圖和先前的深度圖對齊以獲得對準(zhǔn)參數(shù),如下面更詳細(xì)地描述的。如果達(dá)到收斂(606),即,如果這些對準(zhǔn)參數(shù)與最后已知位置一致,則該相機(jī)已被成功地重新定位(608)。否則,獲取另一樣本(602)并且該過
程重復(fù)?,F(xiàn)在給出重新定位過程508在沒有關(guān)鍵幀的情況下操作的另一示例。向當(dāng)前深度圖的各小塊(patch)和從該環(huán)境的3D模型獲得的多個(gè)先前的深度圖的各小塊應(yīng)用快速群集算法(諸如隨機(jī)決策樹林)。通過使用光線投射技術(shù)來呈現(xiàn)來自該 3D模型的深度圖,或以任何其他方式,可以從該環(huán)境的3D模型獲得這些先前的深度圖。該隨機(jī)決策樹林中的每個(gè)葉子節(jié)點(diǎn)均代表基元(texton)?;遣噬珗D像的紋理特征,但是在本示例中使用的是深度圖,因此基元是深度圖的紋理特征。隨機(jī)地,或以任何其他方式, 選擇當(dāng)前深度圖的多個(gè)小塊。每個(gè)小塊是多個(gè)毗鄰的圖像元素。還從多個(gè)先前深度圖中的每一個(gè)中選擇小塊。每個(gè)小塊被處理到隨機(jī)決策樹林的葉子以標(biāo)識(shí)該小塊的基元。然后構(gòu)筑圖像中找到的所有基元的直方圖。重新定位過程根據(jù)隨機(jī)決策樹林分類器輸出的基元的直方圖來選擇與當(dāng)前深度圖類似的一先前深度圖。然后用與所選的深度圖相關(guān)聯(lián)的相機(jī)姿勢作為當(dāng)前相機(jī)姿勢并且重新定位該相機(jī)。離線訓(xùn)練該隨機(jī)決策樹林群集算法,或者在使用該實(shí)時(shí)跟蹤器期間使用后臺(tái)過程來訓(xùn)練該隨機(jī)決策樹林群集算法。圖7是使用關(guān)鍵幀進(jìn)行重新定位的方法的流程圖。在實(shí)時(shí)跟蹤期間收集(702)關(guān)鍵幀并將其與該3D模型相關(guān)聯(lián)地存儲(chǔ)。例如,關(guān)鍵幀是由移動(dòng)環(huán)境傳感器300處的RGB相機(jī)306捕捉的彩色視頻幀。在另一示例中,關(guān)鍵幀是由深度相機(jī)302捕捉的深度圖幀314。 每個(gè)關(guān)鍵幀均具有相關(guān)聯(lián)的相機(jī)姿勢,該相機(jī)姿勢是在實(shí)時(shí)跟蹤期間由幀對齊引擎318計(jì)算出來的。根據(jù)該相機(jī)姿勢,將每個(gè)關(guān)鍵幀與3D模型326中的位置相關(guān)聯(lián)。例如,通過對于該關(guān)鍵幀在該3D模型中在由該相機(jī)姿勢所指定的位置處包括參考,將該關(guān)鍵幀與3D模型相關(guān)聯(lián)地存儲(chǔ)。在一些示例中,將該3D模型存儲(chǔ)在GPU存儲(chǔ)器的一小格(cube)中,并且根據(jù)由該相機(jī)姿勢對于所述關(guān)鍵幀所指定的位置來將所述關(guān)鍵幀掛起在存儲(chǔ)器的此小格中。在一些情況下,關(guān)鍵幀被存儲(chǔ)為其相關(guān)聯(lián)SE3矩陣,并且這減少了存儲(chǔ)器要求。在需要時(shí),通過光線投射,可以從該密集3D模型恢復(fù)關(guān)鍵幀深度點(diǎn)。所收集的關(guān)鍵幀的數(shù)量取決于可用的存儲(chǔ)器和處理能力,還取決于應(yīng)用域。然而, 可以存儲(chǔ)數(shù)萬個(gè)關(guān)鍵幀。通過使用隨機(jī)選擇、選擇每個(gè)第η幀、選擇包括先前未看到的視覺特征的幀、使用這些方法的組合、或以任何其他方式,來實(shí)現(xiàn)對作為關(guān)鍵幀保存的幀的選擇。在一示例中,該系統(tǒng)在各關(guān)鍵幀之間等待最小數(shù)量的幀,并且如果一幀與在平移和旋轉(zhuǎn)方面與任一現(xiàn)有關(guān)鍵幀距離至少指定的量的相機(jī)姿勢相對應(yīng),則記錄該新的關(guān)鍵幀。當(dāng)檢測到跟蹤失敗(702)時(shí),該重新定位引擎選擇(704)所述關(guān)鍵幀中與當(dāng)前相機(jī)視圖(深度圖或RGB圖像)類似的關(guān)鍵幀。該關(guān)鍵幀和當(dāng)前相機(jī)視圖之間的相似度的測量可以是任何適當(dāng)類型的。例如,可以比較諸如邊緣、角落、團(tuán)(blob)、線等特征。也可以使用相似度的其他測量,諸如把將物體分段過程(segmentation process)應(yīng)用到該關(guān)鍵巾貞和當(dāng)前相機(jī)視圖的結(jié)果進(jìn)行比較。在所述關(guān)鍵幀是深度圖的情況下,可以將人類身體姿勢檢測器應(yīng)用到該關(guān)鍵幀和當(dāng)前視圖并比較結(jié)果??梢韵虍?dāng)前幀和先前幀應(yīng)用幾何估計(jì)和/或語義圖像標(biāo)記過程(諸如機(jī)器學(xué)習(xí)分類器)。然后,有可能通過選擇與當(dāng)前幀相比具有類似幾何(豎直和水平表面的安排和位置)和/或語義標(biāo)記(物體的安排)的幀來重新定位。選擇關(guān)鍵幀是復(fù)雜且耗時(shí)的任務(wù),因?yàn)橐闅v搜索如此多的關(guān)鍵幀。在一些示例中,所述搜索是對位于最后已知相機(jī)位置附近的關(guān)鍵幀進(jìn)行的,然后可以逐漸加寬搜索空間,直到找到良好匹配。一旦已選擇了關(guān)鍵幀,則可使用(706)該關(guān)鍵幀來提供初始姿勢估計(jì),跟蹤可以從該初始姿勢估計(jì)重新開始?,F(xiàn)在參考圖8來描述圖3的環(huán)閉合引擎320處的方法。環(huán)閉合檢測過程804從該環(huán)境的當(dāng)前深度圖800和3D模型802取得輸入。在一些情況下,環(huán)閉合檢測過程804從RGB 相機(jī)306所捕捉的當(dāng)前彩色圖像獲取輸入,盡管這不是必要的。環(huán)閉合檢測過程804使用任何適當(dāng)?shù)沫h(huán)閉合檢測方法,諸如特征匹配過程806、詞袋過程808、或其他環(huán)閉合檢測過程。 如同上面提到的,環(huán)閉合在移動(dòng)環(huán)境傳感器重新訪問一位置時(shí)發(fā)生。詞袋過程能夠高效地識(shí)別兩個(gè)圖像何時(shí)示出相同的場景,從而檢測到環(huán)閉合。詞袋過程(動(dòng)態(tài)地或離線地)生成特征描述符(例如,線、邊緣、角落、團(tuán)、SIFT特征、SURF特征)的詞典并使用該詞典來標(biāo)記在圖像中找到的特征。然后可以非??焖俚貙⑦@些圖像進(jìn)行比較以查看它們是否具有許多共同的特征,并因此可能是相同物體或位置的。特征匹配過程是在不使用詞典的情況下標(biāo)識(shí)兩幅圖像中相同的特征的任何過程。一旦檢測到環(huán)閉合,則任何環(huán)閉合誤差可被發(fā)現(xiàn)并可被計(jì)入。例如,環(huán)閉合標(biāo)識(shí)該 3D模型和當(dāng)前深度圖的部分具有相同的相機(jī)位置。然而由于跟蹤誤差,情況并非如此。此外,可以標(biāo)識(shí)出環(huán)閉合誤差的類型。例如,該環(huán)閉合是全局的(諸如是對相機(jī)所估算的組合的6自由度姿勢中的漂移的結(jié)果),還是該誤差是局部的(其是來自單個(gè)幀或很大程度上重疊的幀的序列的很差的6自由度姿勢估計(jì)的結(jié)果)。環(huán)閉合誤差可以是全局和局部環(huán)閉合誤差的組合。遵循環(huán)閉合程序過程812來減少此誤差并改善該3D模型的一致性和精確度。 可以使用任何適當(dāng)?shù)沫h(huán)閉合程序,諸如優(yōu)化能量函數(shù)。圖9是圖3的幀對齊引擎318的更詳細(xì)的示意圖。幀對齊引擎908是在至少具有 CPU和一個(gè)或多個(gè)GPU的計(jì)算設(shè)備處實(shí)現(xiàn)的計(jì)算機(jī)。它包括迭代最近點(diǎn)過程912和可任選的平面提取組件910。迭代最近點(diǎn)過程使用投影數(shù)據(jù)關(guān)聯(lián)和點(diǎn)-到-平面誤差度量,如下面更詳細(xì)地描述的。該幀對齊引擎從深度相機(jī)接收當(dāng)前深度圖900。這也被稱為目的地深度圖。在一些示例中,它還從深度相機(jī)接收源深度圖902,源深度圖902是先前的深度圖幀。 在其他示例中,該幀對齊弓I擎獲取該源深度圖的密集表面模型估計(jì)906。幀對齊弓丨擎的輸出是變換的一組對準(zhǔn)參數(shù),用于將當(dāng)前幀和源幀(或幀估計(jì))對齊。在一些示例中,這些對準(zhǔn)參數(shù)是作為SE3矩陣形式的六自由度(6D0F)姿勢估計(jì)來提供的,該SE3矩陣描述了深度相機(jī)302相對于真實(shí)世界坐標(biāo)的旋轉(zhuǎn)和平移。此變換矩陣可以被更加正式地表示為

權(quán)利要求
1.一種實(shí)時(shí)相機(jī)重新定位的方法,包括從正在移動(dòng)的移動(dòng)深度相機(jī)(302)接收深度圖幀(314)的序列,每個(gè)深度圖幀包括多個(gè)圖像元素,每個(gè)圖像元素具有與從所述移動(dòng)深度相機(jī)到由所述移動(dòng)深度相機(jī)所捕捉的場景中的表面的距離有關(guān)的深度值;使用所述深度圖幀跟蹤所述移動(dòng)深度相機(jī)的位置和定向,并使用所述深度圖幀同時(shí)形成所述移動(dòng)深度相機(jī)正在其中移動(dòng)的環(huán)境的3D模型(326);檢測對所述移動(dòng)深度相機(jī)的位置和定向的跟蹤中的失??;以及通過使用由所述移動(dòng)深度相機(jī)所捕捉的當(dāng)前深度圖重新計(jì)算所述移動(dòng)深度相機(jī)的位置和定向來重新定位所述移動(dòng)深度相機(jī)。
2.如權(quán)利要求I所述的方法,其特征在于,檢測所述跟蹤中的失敗包括以下任何項(xiàng)將所述移動(dòng)深度相機(jī)的當(dāng)前和先前的跟蹤到的位置的改變與閾值(502)進(jìn)行比較;檢測用于跟蹤所述移動(dòng)深度相機(jī)的位置和定向的迭代過程的收斂的失??;以及將所述移動(dòng)深度相機(jī)的當(dāng)前的跟蹤到的位置和定向與使用所述移動(dòng)深度相機(jī)的運(yùn)動(dòng)的模型預(yù)測的位置和定向進(jìn)行比較。
3.如權(quán)利要求I或權(quán)利要求2所述的方法,其特征在于,重新定位所述移動(dòng)深度相機(jī)包括從多個(gè)關(guān)鍵幀中尋找(700)與所述當(dāng)前深度圖類似的關(guān)鍵幀,所述多個(gè)關(guān)鍵幀是由所述移動(dòng)深度相機(jī)在先前收集的、各自具有相關(guān)聯(lián)的相機(jī)位置和定向的深度圖幀;以及其中尋找關(guān)鍵幀包括以下任何項(xiàng)使用幾何估計(jì)過程來選擇與所述當(dāng)前幀具有類似的豎直和水平表面的安排和位置的關(guān)鍵幀;以及按照與所述移動(dòng)深度相機(jī)的最后已知位置有關(guān)的次序來搜索所述多個(gè)關(guān)鍵幀。
4.如權(quán)利要求I所述的方法,其特征在于,重新定位所述移動(dòng)深度相機(jī)包括在給出所述移動(dòng)深度相機(jī)的已知先前運(yùn)動(dòng)的情況下,計(jì)算作為姿勢的預(yù)測分布的所述移動(dòng)深度相機(jī)的姿勢的路徑分布;從所述路徑分布采樣姿勢并使用所采樣的姿勢來將所述當(dāng)前深度圖和先前深度圖對齊。
5.如權(quán)利要求I所述的方法,其特征在于,重新定位所述移動(dòng)深度相機(jī)包括將隨機(jī)決策樹林應(yīng)用到來自所述當(dāng)前深度圖和來自從所述環(huán)境的3D模型獲得的多個(gè)先前深度圖的小塊以獲得作為深度圖的紋理特征的基元的直方圖,并根據(jù)所述直方圖選擇與所述當(dāng)前深度圖類似的先前深度圖。
6.一種實(shí)時(shí)相機(jī)重新定位系統(tǒng),包括被安排為從正在移動(dòng)的移動(dòng)深度相機(jī)(302)接收深度圖幀(314)的序列的輸入 (1402),每個(gè)深度圖幀包括多個(gè)圖像元素,每個(gè)圖像元素具有與從所述移動(dòng)深度相機(jī)到由所述移動(dòng)深度相機(jī)所捕捉的場景中的表面的距離有關(guān)的深度值;被安排為使用所述深度圖幀跟蹤所述移動(dòng)深度相機(jī)的位置和定向的幀對齊引擎 (318);被安排為使用所述深度圖幀形成所述移動(dòng)深度相機(jī)正在其中移動(dòng)的環(huán)境的3D模型的 3D模型形成系統(tǒng)(324);被安排為檢測所述移動(dòng)深度相機(jī)的位置和定向的所述跟蹤中的失敗、并且通過使用由所述移動(dòng)深度相機(jī)所捕捉的當(dāng)前深度圖和從所述3D模型獲得的至少一個(gè)先前深度圖來重新計(jì)算所述移動(dòng)深度相機(jī)的位置和定向來重新定位所述移動(dòng)深度相機(jī)的重新定位引擎(322)。
7.如權(quán)利要求6所述的系統(tǒng),其特征在于,所述重新定位引擎被安排為將隨機(jī)決策樹林應(yīng)用到來自所述當(dāng)前深度圖和來自從所述環(huán)境的3D模型獲得的多個(gè)先前深度圖的小塊以獲得作為深度圖的紋理特征的基元的直方圖,并根據(jù)所述直方圖選擇與所述當(dāng)前深度圖類似的先前深度圖。
8.如權(quán)利要求6所述的系統(tǒng),其特征在于,所述重新定位引擎(322)被安排為從多個(gè)關(guān)鍵幀中尋找與所述當(dāng)前深度圖類似的關(guān)鍵幀,所述多個(gè)關(guān)鍵幀是由所述移動(dòng)深度相機(jī)在先前收集的、各自具有相關(guān)聯(lián)的相機(jī)位置和定向的深度圖幀。
9.如權(quán)利要求8所述的系統(tǒng),其特征在于,所述重新定位引擎(322)被安排為通過以下任何項(xiàng)來尋找關(guān)鍵幀使用幾何估計(jì)過程來選擇與當(dāng)前幀具有類似的豎直和水平表面的安排和位置的關(guān)鍵幀;以及按照與所述移動(dòng)深度相機(jī)的最后已知位置有關(guān)的次序來搜索所述多個(gè)關(guān)鍵幀。
10.一種游戲系統(tǒng),包括使用結(jié)構(gòu)化光的移動(dòng)紅外飛行時(shí)間深度相機(jī)(302)和如權(quán)利要求6所述的用于跟蹤所述移動(dòng)深度相機(jī)的系統(tǒng),所述深度相機(jī)和實(shí)時(shí)跟蹤器被安排為以每秒至少30幀操作,所述游戲系統(tǒng)被安排為與所述移動(dòng)深度相機(jī)的所述跟蹤有關(guān)地影響游戲的過程。
全文摘要
本發(fā)明涉及使用深度圖進(jìn)行移動(dòng)相機(jī)定位。針對機(jī)器人、沉浸式游戲、增強(qiáng)現(xiàn)實(shí)和其他應(yīng)用描述了使用深度圖進(jìn)行移動(dòng)相機(jī)定位。在一實(shí)施例中,在一環(huán)境中跟蹤移動(dòng)深度相機(jī),同時(shí)使用所感測的深度數(shù)據(jù)形成該環(huán)境的3D模型。在一實(shí)施例中,當(dāng)相機(jī)跟蹤失敗時(shí),通過使用先前收集的關(guān)鍵幀或以其他方式來檢測相機(jī)跟蹤的失敗并重新定位相機(jī)。在一實(shí)施例中,通過實(shí)時(shí)地將當(dāng)前深度圖與該3D模型的特征進(jìn)行比較,檢測到移動(dòng)相機(jī)重新訪問一位置的環(huán)閉合(loop closure)。在一些實(shí)施例中,使用所檢測到的環(huán)閉合來改善該環(huán)境的3D模型的一致性和精確度。
文檔編號G06T7/00GK102609942SQ20121002158
公開日2012年7月25日 申請日期2012年1月31日 優(yōu)先權(quán)日2011年1月31日
發(fā)明者A·費(fèi)茨吉本, D·A·巴特勒, D·莫利尼奧克斯, D·金, J·D·J·肖頓, O·希利格斯, P·科利, R·紐科姆, S·E·豪杰斯, S·伊扎迪 申請人:微軟公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1
从江县| 虎林市| 秭归县| 宁波市| 安溪县| 神农架林区| 铅山县| 娄烦县| 高台县| 内黄县| 从江县| 柘城县| 虞城县| 绩溪县| 万安县| 光山县| 弥渡县| 德阳市| 延寿县| 西吉县| 黑龙江省| 民县| 威远县| 阿拉尔市| 宁津县| 河北区| 建瓯市| 深圳市| 独山县| 综艺| 政和县| 宿迁市| 河东区| 甘肃省| 九江市| 兴安县| 喀喇| 察隅县| 岚皋县| 尼玛县| 嘉峪关市|