SLAM AR 技術與應用

SLAM+AR 技術與應用

一、概述

圖像處理領域涉及
AR的技術可以抽象爲這麼一類技術:

通過圖像和其他傳感器信息計算攝像機的位置和圖像內環境三維結構信息,並結合3D渲染提供更自然的人機交互能力。


如圖1所示,位置和結構信息一般包括相機機位(Camera Pose)和點雲/3D模型(Point Cloud/Mesh),不同的技術問題,側重點不同。
Position_Structure
圖1 AR相關技術關係圖
Marker/Markerless Tracking只關注相機機位的跟蹤,這也是AR最開始的一類技術,它的技術指標主要要求運算速度快,保障實時性,還有就是跟蹤穩定且不易跟丟。Marker一般是一張2D的圖片,因此處理相對簡單,世界座標系往往就以Marker所在平面爲XY軸平面,以垂直於該面的法向量爲Z軸。通過將攝像機圖像上的特徵點和Marker中的特徵點進行匹配,就可以計算出攝像機相對於Marker的位置,如圖2所示。
Marker_AR_
圖2 Marker AR原理圖
IMU(慣性傳感單元)是現代智能手機幾乎都配備的元件,通過IMU可以準確獲取手機(相機)的旋轉維度的變換,但是對於空間位移很難準確衡量,所以IMU經常作爲其他技術的輔助,比如SLAM。
SLAM(同時定位並建圖),顧名思義,它的目的同時包括了計算Camera Pose和掃描環境三維結構信息,和它非常類似的是SFM(Structure From Motion),二者最大的區別在於SFM常用於3D重建,一般對重建的結構細節以及精細度要求甚高,重建的後結果多是面向用戶,對美觀度也有一定要求,因此一般只能離線處理;而SLAM應用場景包括AR、機器人控制等等,一般要求實時性,所以掃描的環境結構信息一般相對粗糙,而環境的信息也主要爲了輔助自身的定位。SLAM/SFM相比於Marker Tracking的最大區別在於事先並不知道任何三維空間的信息,需要首先從兩張二維的圖像(有一定的視差)中恢復三維結構(如圖3所示),繼而不斷的跟蹤並擴張地圖。SLAM建立的3D地圖的座標系是隨機的,而後面提到我們做了一個有趣的改進是可以通過一張Marker作爲SLAM的初始地圖,從而使得SLAM的座標系可以確定。

SFM
圖3 從二維圖片恢復三維結構
3D Object Tracking,即三維物體跟蹤,這個問題既類似於Marker的跟蹤也類似於SLAM,Maker Tracking是計算2D的圖片相對於的相機的位置,SLAM解決的其中一個問題是在構建好的三維點雲中,準確定位到自身的位置並持續跟蹤;3D Object Tracking要解決的問題是準確定位到3D物體相對於相機的位置。和Marker Tracking相比,是把跟蹤2D的圖片升級爲跟蹤3D的物體,區別在於2D的圖片始終位於三維空間中的一個平面上,方便構建點雲和世界座標系。和SLAM相比,SLAM構建好的環境和自己的要定位的環境必須是相對穩定的,而3D物體識別時,背景信息往往是變化的。3D Object Tracking需要的先驗知識一般是一個3D模型,這個模型有時候可以通過SLAM或者SFM得到。
Object Segmentation,即物體分割,是在攝像機圖片中將指定的物體分割出來或是將前景後景分離開來。這類問題實現方法很多,其中有一類是利用物體3D模型的信息將圖片中的物體找到並分離出來,同時還可以準確計算3D物體相對於Camera的位置。這類技術又和3D Object Tracking有相輔相成的作用,比如如果能夠對物體先進行分離,那麼跟蹤就會變得簡單些,反之,如果先能夠追蹤到物體的位置,那麼對物體進行分離也相對容易。
在基於單目的攝像頭的AR技術中,特徵點(Feature)是最通用的一項技術手段,通過匹配不同幀圖像之間特徵點的對應關係,我們才能夠準確計算相機的運動,從而恢復環境三維結構。特徵點相關算法很多,在移動端,爲了提高計算效率,傾向使用ORB和Freak,比如SLAM中我們就使用了ORB特徵,Marker Tracking中我們使用了Freak特徵;而類似SIFT這種,匹配精度高,但是運算效率低,一般用於SFM這類技術中。使用特徵點的好處在於,特徵具有良好的尺度不變形、方向不變形和光照不變形等特性,匹配結果較爲魯棒。光流法(Optical Flow)是相對於特徵點的另一類跟蹤相機運動的方法,它的基本原理是不去計算特徵點以及特徵描述子,而是直接使用像素塊進行匹配,提高了運算效率,而其缺點是光流法只適合匹配相鄰的兩幀圖像來計算運動變化,它要求光強度守恆(Brightness Consistency),所以無法用於重定位等技術實現。
每項AR技術背後都孕育着一些新型的業務形態,AR業務主要圍繞營銷互動和實用工具兩類展開,如圖5所示。最早的Marker Tracking催生了AR互動營銷,AR教育等業務的發展,手淘的ARMagic互動平臺就是依賴此技術建立起來;SLAM技術支撐了AR實景寶貝,讓3D的商品能夠更加自然地進入用戶的視野;AR捉貓貓也是依靠IMU在AR中的應用才得以鋪展開來。更重要的是這些技術潛力還未完全釋放,在現有技術體系中我們已經規劃了未來一些業務的藍圖:

AR說明書,通過AR的方式展示實際生活、生產環節中一些器械的使用方式或是工作原理。比如家電(洗衣機、電飯煲等)的3D形式的說明書(如圖4所示),工廠內一些機器的虛擬操作指南等。這項業務主要依託於3D Object Tracking和SLAM技術。
AR_
圖4 AR說明書示例圖

AR場景互動,在一些線下場景(商場、休閒場所、博物館等),通過AR的方式完成的更加自然、豐富的互動。比如目前規劃的上海星巴克新概念旗艦店,就計劃利用AR的方式展示店內的傳統機器和傳統工藝的歷史,讓用戶能夠用AR的方式探索星巴克的歷史文化。同時,結合支付、物流等環節,完成一體化的有趣購物體驗。

AR直播/AR視頻,在直播的場景通過佈置一些特殊的“標記”,在直播和視頻中疊加更爲豐富的互動特效。
AR業務的形式優勢不僅僅在於新穎,而是它通過攝像頭打通了虛擬和現實世界,也就有了天然的貫通線上和線下的優勢,是進行“新零售”的探索一個利器。
AR_
圖5 AR技術體系和業務關係圖

二、SLAM技術

提到SLAM開源項目,自然先想到大名鼎鼎的ORB-SLAM。首先簡單介紹下ORB-SLAM2的算法結構。如圖6所示,ORB-SLAM2主要分爲三個線程,Tracking用於跟蹤Camera Pose,LocalMapping用於構建點雲地圖,Loop Closing用於閉環檢測,優化點雲位置。Place Recognition,即重定位,是利用BoW(Bag of Words)模型在已經構建好的地圖內定位Camera。雖然ORB-SLAM2整體效果在衆多開源項目中脫穎而出,但他仍然只是一個實驗室產品,距離真正的實用還需要很多工作要做。將該項目移植到移動端後,其性能表現如下:

  1. iPhone7 Plus, 15FPS; Android 三星Note7 1-2FPS
  2. BoW詞庫大小140M,加載時間8秒,佔用內存400+M
  3. 位置跟蹤不穩定,存在抖動
  4. 代碼存在很多Bug,尤其內存泄露非常嚴重

ORBSLAM2
圖6 ORB-SLAM2

因此,SLAM技術在移動端的應用必須能夠突破“硬件資源有限”這個障礙。

2.1 平面檢測

SLAM構建出了3D點雲地圖,並估計出了Camera Pose,然而對於AR應用,還無法確定3D模型的擺放位置。比如我們需要在桌面上擺放一個花瓶,我們還需要知道在3D點雲地圖中,桌面對應的位置,這就需要上面流程圖裏提到的平面檢測。
轉換爲一個數學問題描述:在空間中我們有一系列的點P,並給出一個方向向量 D ,求一個法向量平行於D 的平面並使得所有的點距離該平面的距離之和最小。
這是一個非常典型的最小二乘估計問題,因此可以利用已有的數學工具求解,如高斯牛頓,LM算法,SVD分解等等。如果是檢測水平面,其中D 是根據重力傳感器得到的豎直方向,即平面的法向量方向得以確定;

2.2 Marker+SLAM

SLAM初始化建立的點雲世界座標系是隨機的,對於單目SLAM,scale信息是無法確定的,即無法確定點雲世界座標和真實尺寸的比例。在某些情況下,AR應用希望能夠和真實的尺寸一一對應,在這種情況下我們提出了利用Marker作爲SLAM的初始地圖的方法。通過一個事先確定的Marker,建立一個已知scale信息的世界座標系,在此座標系的基礎上通過SLAM跟蹤並擴張地圖,那麼在疊加3D模型時就可以安裝其真實尺寸展示。算法上的區別就在於SLAM首先要去識別Marker,而不是自己去初始化地圖,識別Marker的方法也可以借鑑Marker Tracking的相關技術。

三、擴展與思考

SLAM技術是AR算法領域最核心的技術的技術之一,ARKit和ARCore的推出也驗證了各大公司對其重視的程度。在SLAM基礎上,去完成Marker Tracking或者Object Tracking等工作,也能夠大大提高整體跟蹤效果。理解AR的技術本質,更有助於理解AR應該如何應用。而在業務層面,AR缺少的不是技術,而是創意!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章