來源:映維網 作者 顏昳華
英特爾於2019年正式推出了實感追蹤攝像頭T265。這款最新的內向外追蹤設備採用了專有的V-SLAM視覺技術(視覺慣性測距即時定位與地圖構建;visual inertial odometry simultaneous localization and mapping),可在邊緣執行計算任務,並為需要高精度低延遲追蹤解決方案的用例提供強大的基礎,如增強現實和虛擬實境,以及機器人和無人機。
英特爾實感追蹤攝像頭T265採用了Movidius Myriad 2視覺處理單元(VPU),可直接在設備上處理追蹤所需的數據。這使得T265成為一種尺寸小、功耗低的解決方案,可幫助開發者輕鬆利用現有的設計或自行構建需要豐富視覺智能的產品。
英特爾實感追蹤攝像頭T265適用於需要精確位置追蹤的用例,尤其是缺乏GPS服務的地方,如倉庫或遠程室外區域。T265的設計同時考慮了靈活的實施應用,可輕鬆添加至機器人和無人機等小型設備,以及支持行動裝置或AR頭顯。
下面這篇博文將向大家介紹關於Visual SLAM技術和T265追蹤攝像頭。
1.介紹
位置感知可以說是在3D世界中生存和導航所需的最基本和最重要的感覺之一。移動,覓食以及回巢的能力深深植根於所有動物的基因之中,所以機器人技術面臨的挑戰是:「我們如何以電子方式模仿,甚至增強這種先天能力?」在計算機科學領域,這項研究通常稱為「即時定位與地圖構建」或SLAM。它涵蓋了對儀器和算法的研究,嘗試解析代理(機器人或自動駕駛汽車)在3D空間中的位置和方向,同時創建和更新未知周遭環境的「心理」映射。有人會將其稱為對環境的「內向外」追蹤,將其與「內向外」的動捕(mo-cap)或通過周圍固定攝像頭陣列實現的對象追蹤區別開來要。對於大多數應用而言,SLAM最重要的方面之一是能夠完全追蹤所有六個自由度,這意味著一個人自己的空間位置(X,Y,Z),以及角度方向(縱搖/Pitch、橫搖/Roll和垂搖/Yaw)。
今天市場確實存在針對受限映射問題的成熟解決方案。例如,全球定位系統(GPS)和輔助導航現已十分普及,幾乎每臺行動裝置都嵌入了接收器,從根本上消除了學習如何閱讀和導航地圖的需求。但GPS的精度目前限制在大約10米。另外,更新速率相當慢,大約是10Hz,並且只能支持戶外,因為它們需要接收來自GPS衛星的電子三角測量信號,同時山脈和建築物的反射會造成多徑幹擾。近年來,另一個真正取得了驚人發展的傳感器是慣性測量單元,即IMU。它由陀螺儀和加速度計組成,通常包含微小的集成MEMS(微機電系統)組件,能夠快速測量其自身方向和加速度的變化。這種組件現在已經融入至每臺行動裝置之中,而你可以單獨購買,價格約為1美元。在價格,功率和尺寸頻譜的其他範圍內,雷射雷達(LiDAR)在開發全自動駕駛汽車的競賽中變得非常受歡迎。LiDAR通常由旋轉/掃描雷射束組成,它們採用短光脈衝或頻率調製,以毫米級精度測量到周圍對象的距離。
我們今天重點關注的技術稱為視覺慣性裡程計(VIO),它實際是最接近大多數動物感知世界方式的電子等效方案:將CMOS傳感器充當感知周圍環境的眼睛;IMU作為內耳來感知平衡和方向;以及一個充當大腦,將信息融合到瞬時位置和映射中的計算組件。VIO已成為近年來最有前景的SLAM技術之一,並且算法和變體正在不斷發展和改進。例如,當今大多數增強現實/虛擬實境頭顯(包括微軟HoloLens,Oculus Quest或Magic Leap One)和智能(蘋果AR Kit和谷歌AR Core)都通過自家的VIO版本來精確且低延遲地追蹤設備的完整六自由度。另外,VIO現在開始在機器人技術中獲得越來越廣泛的採用。與現有的雷射雷達解決方案相比,VIO系統體積更小,成本和功耗更低,並且它們可以通過根據視覺特徵來識別並重新定位其在大範圍映射中的位置,從而提供了卓越的重新定位潛力。
在接下來的章節中,我們將進一步探討VIO的工作原理,並將介紹旨在作為AR/VR頭顯,機器人和無人機等用例的完整交鑰匙嵌入式SLAM傳感器解決方案的英特爾實感攝像頭T265和追蹤模塊T261。我們將解釋關鍵的SLAM系統性能指標,並且將展示如何輕鬆通過Intel RealSense Viewer入門T265攝像頭,並使用開源的Intel RealSense SDK實現程序接口。這份本白皮書旨在作為簡要的介紹和綜述,而深入的細節則交由其他技術文檔。
圖1:經驗豐富的水手曾經根據星星進行航行(A)。視覺慣性測距法嘗試實現低延遲,高速,穩定和準確的完整六自由度追蹤,並將其用於機器人(B)和AR/VR頭顯(C)。
2.關於視覺慣性裡程計的初學者指南
學習視覺慣性測距法的最佳方法是首先理解「視覺」方面。這個核心概念可以追溯到指南針和GPS之前的時代,亦即人類按照星星進行導航的日子,如圖1A所示。通過識別特殊的星星,人們通常可以使用查找表來確定北面(即方向)並計算自己的緯度和經度(即位置)。
在計算機視覺中,我們努力以最快,最可靠的方式完成相同的任務。我們首先拍攝周圍環境的電子照片。它通常包含數百萬個像素,所以我們使用「特徵檢測算法」將信息內容立即壓縮到基本只剩下幾百個命名點的程度。換句話說,現在圖像替換為包含數個白點的黑色圖片,而每個白點都有相同的標識,就如同在晚上看向天空一樣。什麼是「特徵」呢?例如,特徵可以是「圖像的所有邊角」。實際上,這是一個非常活躍的研究領域,特徵檢測算法比比皆是:SIFT,LIFT,Harris Corner,Shi-Tomasi corner,ORB,BLOB,SURF,KAZE,FAST等。一旦檢測到特徵,算法將為每個特徵賦予「描述符」或「特徵向量」,從而實現「命名」。我們對接收到的每個新圖像幀重複這一過程,並使用特徵追蹤算法比較並追蹤連續幀(或特定關鍵幀)中的特徵。我們強調每個特徵都映射到3D空間,不僅僅只是二維。圖2是包含檢測特徵的圖像示例。
圖2:Harris Corner Features的示例。
其效果十分出色,但行業正在不斷帶來先進的解決方案。例如,單個攝像頭(Mono-SLAM)的問題之一是它無法合理地解決縮放問題。如果將攝像頭向前移動1米,則無法將觀察到的運動與1米相關聯,因為它可能恰好為1釐米。兩種最常見解決方案是使用校準的立體攝像頭或IMU。另一個重大挑戰是如何實現高幀速率和低延遲追蹤。儘管可以以更高幀速率運行攝像頭傳感器,但相關算法的計算成本非常高昂,而且運行速度越快,所能獲得的光線就越少。事實證明,一種更好的工程設計方法是採用一種能夠在短時間內(10毫秒內)追蹤速度和方向的高速IMU,但如果長時間運行,嚴重的漂移就會出現,達數秒鐘之多。IMU的納入實際上是VIO中出現「I」/「慣性」的原因。表1總結了視覺裡程計和IMU裡程計的互補。另外,如果傳感器是接入到提供裡程計讀數(如速度)機器,則裡程計讀數可以用來提高追蹤精度。最後,由於追蹤的主要前提是能夠看到特徵,所以大多數系統都會使用具有非常寬視場的光學傳感器,以便可以看到儘可能多的特徵。當傳感器靠近本身沒有任何特徵的白牆時,這特別有用。利用魚眼鏡頭,即便是非常靠近無特徵物體,系統都應該可以追蹤視覺外圍的特徵。
表1:視覺裡程計和IMU裡程計技術相互補充。特別是,IMU數據的可用頻率高於視覺裡程計。另一方面,單純的IMU數據會隨著時間推移而產生大量的匯總漂移,而這可以通過視覺裡程計的不頻繁更新進行校正。再者,視覺裡程計依賴於場景中的特徵存在,IMU則相對獨立於環境。
總而言之,當前最好的解決方案傾向於將來自多個魚眼成像器的信息,以及來自IMU和/或設備裡程計的傳感器讀數(若存在)結合起來。然後實時融合所有信息,並以極低的延遲追蹤傳感器的六自由度。圖1B和1C是分別採用這類嵌入式傳感器來對機器人和AR/VR頭顯進行六自由度自我追蹤的示例。
圖3:英特爾實感追蹤攝像頭T265是一個完整的嵌入式SLAM解決方案,它使用視覺慣性裡程計來計算其在3D空間中的方向和位置,亦即六自由度。
如圖3所示,英特爾實感追蹤攝像頭T265是一個完整的獨立解決方案,它根據VIO並利用最新的算法來輸出六自由度追蹤。硬體設計包括一組寬視場的立體魚眼鏡頭,其中165度左右的圓形視場可通過大約800像素直徑的單色全局快門攝像頭捕獲。它同時集成了硬體同步的Bosch BMI055 200Hz陀螺儀和62.5Hz加速度計,以及功能強大的英特爾Movidius Myriad 2視覺處理單元(VPU)。嵌入式處理器可運行整個SLAM算法,分析立體圖像,以及將所有傳感器信息融合到六自由度追蹤中,並且僅消耗不到1.5W的功率。攝像頭姿態信息通過USB以200Hz的速率提供,並且可以利用開源Intel RealSense SDK輕鬆地接入幾乎任何的主機平臺(我們將在第4節進行敘述)。
這款設備適用於尋求省心的獨立SLAM系統的客戶。對於希望自行開發或部署追蹤算法的客戶,你可以從T265獲取原始數據(攝像頭和IMU),或者以英特爾實感深度攝像頭D400系列作為基礎,後者可提供類似的傳感器功能(但視場較小),並輸出深度映射。但需要注意的是,任何SLAM算法都需要在主機平臺運行,不屬於嵌入式,而這會增加目標平臺的重量,功耗預算和成本。
3.性能指標
要對六自由度追蹤器的性能進行基準測試,最廣泛使用的關鍵性能指標(KPI)是「Drift(漂移)」和「Floor Position Error(地面位置誤差)」。漂移是未激活重新定位時在「未知」環境中的累積誤差。我們將其計算為每行進路徑長度的錯誤百分比。地面位置誤差是在激活重新定位時地面報告位置與已知環境中的實際位置相比的均方根誤差。我們以釐米為單位。
圖4.:SLAM運動軌跡誤差示例,你可以看到Ground Truth和估計位置(2D)。我們可以從這種類型的數據記錄中測量諸如地面位置誤差和漂移之類的KPI。
對於優秀的SLAM系統而言,一個極其重要的特點是它能夠重新定位到已知或預先生成的映射。有時這會稱為解決「綁架機器人問題(Kidnapped Robot Problem)」。當機器人初次通電時,或者如果斷電,又或者在運動過程中長時間遮擋其視線,傳感器可能會失去對位置的追蹤。如果它裡面存在映射,則重新定位錯誤描述系統識別先前環境並將自身重新放置在所述映射的能力。這對於大規模運動追蹤或跨多個房間的運動追蹤尤為重要。一個優秀的系統能夠以釐米的絕對精度進行重新定位,並選擇以預定的節奏頻繁地重新定位。特徵映射生成的另一個重要方面是,映射是否可以在多個代理之間共享。例如,理想情況是允許任何機器人或自動駕駛汽車都可以受益於另一個機器人為所述區域生成的映射。所以,每個機器人不僅必須能夠捕獲映射,而且需要能夠導出和共享映射。更重要的是,每個機器人所檢測到的特徵應該看起來相同。T265允許這種協作映射。
另外兩個性能標準是主機CPU使用率和內存使用率。由於T265 SLAM算法是由設備本身運行(即嵌入式視覺處理器),所以即便是運行在性能較弱的平臺,它都很少使用這兩種算法,從而為其他應用程式保留空間和計算能力。
有關目標KPI,請參考T265數據表。
4. T265入門
4.1 校準與初始化
T265追蹤攝像頭已在製造工廠進行過校準,你可以從Intel RealSense SDK中獲取所述參數。或許會有參數在啟動時發生變化,所以T265中的算法會在啟動時對其進行估算。它假定設備在啟動時沒有移動,並且僅在設備已充分移動時返回「高」置信度,從而幫助估算內部參數。非常慢和非常快的移動都會阻礙初始化,所以應該予以避免。
4.1a 安裝注意事項
設備應牢固地安裝在目標平臺。為了方便操作,外殼背面提供兩個M3螺孔。在傳感器可能會經受高振動(如無人機)或臨時性衝擊(例如機器人)的用例中,最好將T265固定在減振支架之上。
為了牢固地接到Micro USV 3數據線,T265同時提供了M2螺孔,所以你應該儘可能使用所述螺孔以防止USB斷開連接。
4.1b 坐標系
T265提供的姿態是相對於兩個攝像頭的中心進行提供,如圖4b所示。然後,所述姿態從這一參考系轉換到以起始位置為中心的重力對齊參考系,Y指向上方,-Z相對於初始攝像頭軸指向前方,X指向右方(參見圖4c)。
對於一項應用,你通常需要知曉T265以外的其他對象的姿勢。例如在VR頭顯中,你或許希望知道渲染中心的位置。T265和目標坐標系之間的轉換應仔細測量並應用。
應用或許同時希望在未來的某個時間點知曉位置信息,如計劃渲染VR場景的下一幀時。Intel RealSense SDK提供了一個稱為「pose-predict(姿態預測)」的示例,它說明了如何使用T265的速度和加速度估算來預測將來的設備位置。
圖4b:T265的坐標系。Intel RealSense SDK可以提供傳感器之間的精確轉換。
圖4c:T265的原點坐標系
4.1c 時間戳
T265以RS2_TIMESTAMP_DOMAIN_GLOBAL_TIME報告所有傳感器的時間。這採用了主機和T265之間的時間同步機制,以毫秒為單位的精確主機時鐘時間提供所有傳感器數據時間戳。
4.2 Intel RealSense Viewer
熟悉T265追蹤攝像頭的最佳方法是運行包含在Intel RealSense SDK 2.0中包含的Intel RealSense Viewer應用。它通過圖形用戶界面可視化姿態輸出。有關更多信息和代碼示例,請參閱Tracking Camera頁面和T265的GitHub頁面。
圖5A:Intel RealSense Viewer是熟悉英特爾實感追蹤攝像頭T265的一個優秀起點。在「2D」視圖中,你可以看到不同的原始傳感器輸入。
圖5B:在Intel RealSense Viewer中,你可以通過用戶界面切換到3D視圖。所述點雲視圖可以3D旋轉。
圖5C:在Intel RealSense Viewer中,你可以調整參數以查看其效果。另外,你可以啟用重新定位和映射。
4.3 Intel RealSense SDK API
T265的主要軟體接口是Intel RealSense SDK 2.0,你可以從開發者官網獲取。
Intel RealSense SDK 2.0支持跨平臺且開源,同時可以用於驅動其他英特爾實感產品,如D400系列深度攝像頭。最好選擇Windows和Linux平臺,因為Mac的支持功能有所減少。
SDK 2.0同時包含各種其他示例應用(包含原始碼和文檔),其說明了應如何使用包括T265在內的英特爾實感設備。ROS(機器人作業系統)同樣可以用於與英特爾實感設備進行交互。Intel RealSense ROS的Github頁面包含基於Intel RealSense SDK 2.0構建的ROS集成,工具和示例應用。所有代碼示例都可以直接用於測試,並根據測試目的進行修改,或者可以作為用戶構建新應用的靈感。
對於T265,你可以在「pose」和「pose-predict」文件夾中發現最基本的示例應用。這兩個示例展示了如何分別通過輪詢和回調接口獲取姿態數據。對於Intel RealSense ROS repository,T265RealsenseNode類是一個優秀的起點,你同時可以在這裡發現如何通過ROS驅動T265的示例。
4.4挑戰
英特爾團隊正在不斷提高T265的穩定性,魯棒性和追蹤性能。你始終可以通過更新Intel RealSense SDK來獲取固件的最新迭代。下面是所有SLAM系統都需要面臨的挑戰,包括T265:
場景外觀和幾何形狀:SLAM算法通常會創建一個依賴於「標記」或其傳感器檢測特徵的相對配置的世界模型。例如,T265部分依賴於其攝像頭看到的「有趣」視覺特徵。如果場景的特徵太少,比方說當攝像頭面對白牆或空蕩蕩的房間且表面沒有紋理時,傳感器可能難以創建映射。另一方面,視覺紋理過多或視覺模式重複的場景有時會導致映射和導航混亂。動態場景:如果存在大量對象(如人)在場景中四處移動,SLAM系統可能難以創建保持靜止的標記映射。照明:若沒有足夠的光線,T265可能根本無法檢測到任何視覺特徵。在中等弱光情況中,傳感器噪點會影響圖像質量,較長的曝光時間會導致圖像模糊。非常強的全局照明,或將攝像頭對準光源都會導致部分或全部圖像飽和。飽和圖像區域內無法檢測到視覺特徵,並且可能會沿著所述區域的邊緣創建虛假特徵。反射:場景中的鏡面可能會導致看似位於錯誤3D位置的「鬼影」標記。設備運動:在以高速移動時,運動模糊會造成大量無用的數據。位置或方向的突然加速可能會超出IMU的測量極限,或者破壞視覺慣性傳感器融合算法的基礎假設。時序和計算資源:實時視覺慣性融合算法對其輸入信號的相對時序非常敏感,所以,如果涉及多個設備時鐘,任何未正確處理的異步都會對結果產生極大的負面影響。同樣,計算資源中的臨時不足或中斷同樣可能導致數據丟失或跳過關鍵算法步驟。與大多數其他SLAM系統相比,T265的架構解決了大多數這種問題,但客戶在將其與主機應用集成時依然需要小心。
4.5 SLAM之外
開發自動導航系統時,你至少應考慮兩個其他重要方面。在3D世界中移動時,除了映射之外,下一個最重要的任務是避免碰撞。這通常需要連續測量到路徑中所有障礙物的精確3D距離。儘管VIO系統是確實通過追蹤特徵點來創建「稀疏」深度映射,但通常不足以實現可靠的碰撞避免。所以,通常建議將T265與Intel RealSense深度攝像頭(例如D435或D415型)配合使用,這將能提供非常密集且精確的深度映射,並可用於3D重建以構建完整的環境3D模型。Intel RealSense Viewer是查看相關傳感器配合工作的優秀工具。更多信息請參閱這個頁面 。
要考慮的另一個方面是如何導航大空間。T265原生得支持的一種方法是「April Tag」追蹤。這是一種開源2D條形碼(或基準標記),可在3D空間中提供位置標籤或代理相對於標籤的位置和方向。April Tag非常具有吸引力,因為它們屬於旋轉,剪切,光照,比例和平移不變。由於存在大量獨特的代碼,所以這為系統提供了一個基於不同於Visual SLAM的模式進行重新定位的選項。另外,用戶可以輕鬆列印出April Tag並標記不同的區域或對象。相關代碼示例請點擊這個頁面。
圖六:追蹤April Tag的示例。T265包含April Tag追蹤。
5.總結
通過對六自由度位置和方向進行精確,高速,低延遲的「內向外」追蹤,這可以開啟一系列新穎而激動人心的應用。憑藉低功耗,小巧外形,以及優秀的開環追蹤功能,T265可以附接到頭顯並用於AR/VR,或者用於機器人的位置追蹤。對於重新定位到映射的功能,大範圍覆蓋,甚至可以在多個代理之間共享映射,T265追蹤攝像頭是一款出色的即裝即用解決方案,你可以使用Intel RealSense Viewer應用和SDK進行快速原型設計,並熟悉性能和編程。T261攝像頭模塊可用於更多定製集成。
原文連結:https://yivian.com/news/72896.html