新四季網

使用深度圖進行移動相機定位的製作方法

2023-12-08 19:33:56

專利名稱:使用深度圖進行移動相機定位的製作方法
技術領域:
本發明涉及使用深度圖進行移動相機定位。
背景技術:
移動相機定位涉及找到在其環境中移動的相機的位置和定向,並且對於如機器人、沉浸式遊戲、增強現實、架構、規劃、機器人、工程原型製作、車輛導航、醫學應用和其他問題領域等許多應用是有用的。現有方案在精確度、穩健性和速度上受到限制。對於許多應用,需要實時地進行精確的相機定位,例如以使得機器人可以成功地在其環境中四處移動。先前的許多移動相機定位方法已經使用了彩色視頻相機而不是深度相機。通常彩色視頻相機給出高解析度和精確度,而豐富的色彩信息允許在視頻圖像中檢測到視覺特徵。能從深度相機中獲得的信息取決於環境的類型和所使用的深度相機的類型可能是有噪聲並且不精確的。深度相機捕捉在本文中被稱為深度圖(depth map)的圖像,其中每個像素和從該深度相機到該相機的環境中的一個點的絕對和相對距離有關。與彩像相比, 由於可用信息的差異,檢測深度圖中的特徵可能更加困難。先前的一些移動相機定位方法已經涉及創建移動相機的環境圖,同時跟蹤相機相對於該圖的位置和定向。這被稱為同時定位和地圖構建(SLAM)。以下描述的各實施例不限於解決已知的移動相機定位系統的缺點中的任一個或全部的實現。

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


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

權利要求
1.一種實時相機重新定位的方法,包括從正在移動的移動深度相機(302)接收深度圖幀(314)的序列,每個深度圖幀包括多個圖像元素,每個圖像元素具有與從所述移動深度相機到由所述移動深度相機所捕捉的場景中的表面的距離有關的深度值;使用所述深度圖幀跟蹤所述移動深度相機的位置和定向,並使用所述深度圖幀同時形成所述移動深度相機正在其中移動的環境的3D模型(326);檢測對所述移動深度相機的位置和定向的跟蹤中的失敗;以及通過使用由所述移動深度相機所捕捉的當前深度圖重新計算所述移動深度相機的位置和定向來重新定位所述移動深度相機。
2.如權利要求I所述的方法,其特徵在於,檢測所述跟蹤中的失敗包括以下任何項將所述移動深度相機的當前和先前的跟蹤到的位置的改變與閾值(502)進行比較;檢測用於跟蹤所述移動深度相機的位置和定向的迭代過程的收斂的失敗;以及將所述移動深度相機的當前的跟蹤到的位置和定向與使用所述移動深度相機的運動的模型預測的位置和定向進行比較。
3.如權利要求I或權利要求2所述的方法,其特徵在於,重新定位所述移動深度相機包括從多個關鍵幀中尋找(700)與所述當前深度圖類似的關鍵幀,所述多個關鍵幀是由所述移動深度相機在先前收集的、各自具有相關聯的相機位置和定向的深度圖幀;以及其中尋找關鍵幀包括以下任何項使用幾何估計過程來選擇與所述當前幀具有類似的豎直和水平表面的安排和位置的關鍵幀;以及按照與所述移動深度相機的最後已知位置有關的次序來搜索所述多個關鍵幀。
4.如權利要求I所述的方法,其特徵在於,重新定位所述移動深度相機包括在給出所述移動深度相機的已知先前運動的情況下,計算作為姿勢的預測分布的所述移動深度相機的姿勢的路徑分布;從所述路徑分布採樣姿勢並使用所採樣的姿勢來將所述當前深度圖和先前深度圖對齊。
5.如權利要求I所述的方法,其特徵在於,重新定位所述移動深度相機包括將隨機決策樹林應用到來自所述當前深度圖和來自從所述環境的3D模型獲得的多個先前深度圖的小塊以獲得作為深度圖的紋理特徵的基元的直方圖,並根據所述直方圖選擇與所述當前深度圖類似的先前深度圖。
6.一種實時相機重新定位系統,包括被安排為從正在移動的移動深度相機(302)接收深度圖幀(314)的序列的輸入 (1402),每個深度圖幀包括多個圖像元素,每個圖像元素具有與從所述移動深度相機到由所述移動深度相機所捕捉的場景中的表面的距離有關的深度值;被安排為使用所述深度圖幀跟蹤所述移動深度相機的位置和定向的幀對齊引擎 (318);被安排為使用所述深度圖幀形成所述移動深度相機正在其中移動的環境的3D模型的 3D模型形成系統(324);被安排為檢測所述移動深度相機的位置和定向的所述跟蹤中的失敗、並且通過使用由所述移動深度相機所捕捉的當前深度圖和從所述3D模型獲得的至少一個先前深度圖來重新計算所述移動深度相機的位置和定向來重新定位所述移動深度相機的重新定位引擎(322)。
7.如權利要求6所述的系統,其特徵在於,所述重新定位引擎被安排為將隨機決策樹林應用到來自所述當前深度圖和來自從所述環境的3D模型獲得的多個先前深度圖的小塊以獲得作為深度圖的紋理特徵的基元的直方圖,並根據所述直方圖選擇與所述當前深度圖類似的先前深度圖。
8.如權利要求6所述的系統,其特徵在於,所述重新定位引擎(322)被安排為從多個關鍵幀中尋找與所述當前深度圖類似的關鍵幀,所述多個關鍵幀是由所述移動深度相機在先前收集的、各自具有相關聯的相機位置和定向的深度圖幀。
9.如權利要求8所述的系統,其特徵在於,所述重新定位引擎(322)被安排為通過以下任何項來尋找關鍵幀使用幾何估計過程來選擇與當前幀具有類似的豎直和水平表面的安排和位置的關鍵幀;以及按照與所述移動深度相機的最後已知位置有關的次序來搜索所述多個關鍵幀。
10.一種遊戲系統,包括使用結構化光的移動紅外飛行時間深度相機(302)和如權利要求6所述的用於跟蹤所述移動深度相機的系統,所述深度相機和實時跟蹤器被安排為以每秒至少30幀操作,所述遊戲系統被安排為與所述移動深度相機的所述跟蹤有關地影響遊戲的過程。
全文摘要
本發明涉及使用深度圖進行移動相機定位。針對機器人、沉浸式遊戲、增強現實和其他應用描述了使用深度圖進行移動相機定位。在一實施例中,在一環境中跟蹤移動深度相機,同時使用所感測的深度數據形成該環境的3D模型。在一實施例中,當相機跟蹤失敗時,通過使用先前收集的關鍵幀或以其他方式來檢測相機跟蹤的失敗並重新定位相機。在一實施例中,通過實時地將當前深度圖與該3D模型的特徵進行比較,檢測到移動相機重新訪問一位置的環閉合(loop closure)。在一些實施例中,使用所檢測到的環閉合來改善該環境的3D模型的一致性和精確度。
文檔編號G06T7/00GK102609942SQ20121002158
公開日2012年7月25日 申請日期2012年1月31日 優先權日2011年1月31日
發明者A·費茨吉本, D·A·巴特勒, D·莫利尼奧克斯, D·金, J·D·J·肖頓, O·希利格斯, P·科利, R·紐科姆, S·E·豪傑斯, S·伊扎迪 申請人:微軟公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀