當前位置:
首頁 > 知識 > Bridge to the digital world——AR演算法技術分享

Bridge to the digital world——AR演算法技術分享

什麼是AR? 為什麼AR?

Augmented reality譯作增強現實。顧名思義,現實就是我們所在的物理世界,而增強則指由計算機所編輯進而與真實世界相融合重新呈現給我們的增強世界。

Bridge to the digital world——AR演算法技術分享

圖1:AR即將改變我們的生活模式,如:出行、閱讀、生活、工作、購物和娛樂

AR可以發揮計算機的優勢進而強化人自身感測處理能力的不足,可以通過增強世界提供進入虛擬世界的入口,也可以產生人與人、人與世界的全新連通與互動方式。就像圖1所示的那樣,它即將深刻改變我們的出行、閱讀、生活、工作、購物和娛樂等模式。

從集團角度講,AR可能成為一種為新零售新生活打造的高效連接線上線下的紐帶,也可通過其對物理世界與虛擬世界的雙重連接更好地形成社區,亦可通過其提供的虛擬世界編輯能力更有效地「生產快樂」以打造生活化平台而不僅僅是電商平台。更重要的是,誰搶佔了未來AR的app入口,誰就更有能力獲得更多真實物理世界的數字化信息,而這些數據本身將帶來更大價值。

AR的核心問題有哪些?

既然AR如此有潛力,那麼AR所面對的核心問題都有哪些呢?

AR的核心要素:

AR系統有相互聯繫、密不可分的三個核心要素:

  • 對世界的感知:逆向工程物理世界,將其數字化;

  • 對世界的編輯:正向創造一個虛擬世界,並與真實世界融合為增強世界;

  • 互動:用戶與世界、用戶與用戶的互動。

AR的核心需求:

在上述核心要素的基礎上,AR的核心需求是實時性,因此需要足夠高效的演算法以及充足的硬體計算處理能力。

AR的研究邊際:

真實物理世界的信息維度過高,因此AR只關注那些能被人體感測器系統所截獲並呈現在人腦中的方式,例如:可見光(390-700nm)視覺,(20Hz-20KHz)聽覺等,因為如果創造的增強世界不能被人所接收和呈現也是意義有限的。

AR核心問題描述:

1. 流程概述:

Bridge to the digital world——AR演算法技術分享

圖2:AR流程圖與核心問題描述

首先,我們先跟大家解釋下這幾個名詞的含義以便後續理解:物理世界是真實世界,虛擬世界是在電腦中產生的世界(比如:遊戲魔獸世界),增強世界是真實和虛擬融合在一起並呈現給用戶的世界。

現在,我們將用圖2來闡述對AR的理解並描述其核心問題。

AR設備用起來很簡單,但這個「黑盒子」里究竟發生了什麼呢?下面是AR的大致工作流程:①利用AR設備中的感測器系統,去完成對物理世界的感知並將其數字化;②這些數字化信息進入「世界編輯」流程,用以創造一個和物理世界相關的虛擬世界;③最後,物理世界和虛擬世界相融合,形成增強世界。

用戶可以通過與增強世界的在線互動,進而改變虛擬世界,如:在虛擬世界中給家裡的沙發換色以搭配家裝。用戶也可通過與增強世界的交互改變物理世界,如:利用AR設備的無線通信功能打開電器。用戶又可通過世界編輯提供的虛擬世界創造功能離線添加虛擬世界的內容。當然也可正常與物理世界進行交互。

通過世界感知這個橋樑,AR連通了物理世界和虛擬世界。通過這兩個世界,繼而可以跨時空建立起更多用戶與用戶的聯繫。世界編輯則提供了建立虛擬世界的基礎能力,決定了日後AR社區能否更容易讓用戶創造內容。用戶和世界、用戶和用戶的可交互維度和便利性,將決定AR最終的成敗。

下面,我們將就圖2中的世界感知和世界編輯問題進行展開。由於不同的感官呈現方式對世界感知的需求存在很強的共性,下面我們將僅僅以視覺為例。

2. 世界感知:

世界感知,按所感知類別可分為對人、物、場的感知。按照問題描述,又可分為重建、定位、識別和分割問題。其中,重建和定位問題絕大部分屬於基於物理模型的傳統計算機視覺範疇,而識別和分割問題則隨著AI大潮一起被更多地採用數據驅動的方式去解決。下面針對圖2中所列的問題,從視覺的角度,簡要說明其含義:

2.1 對場景的感知

1) 場景能量源重建:主要指用圖像去推斷光源的信息。例如:光源的方向,位置,強度以及顏色等。這些信息可幫助還原場景中光度不變性信息(photometric invariant)以獲得場景本體反射圖(intrinsic image),繼而在編輯世界(渲染)的過程中輔助數字化重打光(digital relighting)以達到更加真實的渲染效果。

Bridge to the digital world——AR演算法技術分享

圖3:技術實例:場景本體反射圖分解。左:原圖;中:分解的本體反射圖(若已知場景法向量場,可數字化重打光);右:分解的影調圖(若已知場景法向量場,可推斷光源)

2) 場景幾何形態重建:主要指構建三維世界的空間幾何形態,解決空間中有沒有物體的問題。構建起的幾何形態,可被用來當作空間地圖使用以完成精確定位,可渲染生成可視化三維模型進行展示,也可利用幾何形態信息完成對三維場景的空間分割。

Bridge to the digital world——AR演算法技術分享

圖4:技術實例:左:空間定位;中:可視化三維模型; 右:三維場景分割

3) 場景物理特性重建:主要用來還原場景中區域的反射性質(如BRDF)。可利用材質庫反射信息推斷物體材質,渲染替換真實物體中特定材質的區域。對物體材質的推測,也可幫助更好地完成物體識別等視覺任務。

Bridge to the digital world——AR演算法技術分享

圖5:技術實例:對材質信息進行感知,根據材質的不同對場景區域進行分割,並將真實物體中的特定材質渲染成為新材質並呈現

4) 場景識別:主要可用在分辨當前場景最有可能出現的地點,篩選後可完成基於視覺的粗定位。

2.2 對人的感知

1)觀察者幾何定位:主要感知人與場景的相對位置關係,通常和場景幾何形態重建共同完成(如SLAM,VO)。

2)觀察者識別:包括人臉識別相關的應用場景,主要解決人是誰的問題,也可識別人的心情等。同時,也包括手勢、動作識別等以更有效地進行人機交互。

2.3 對目標物的感知

1) 目標物識別:主要識別圖像中的目標物體並定位其在二維圖像中的位置。如果有場景額外三維信息,可推測目標物在三維空間中的位置。目標物的位置又可輔助完成基於high-level語義信息的定位。

Bridge to the digital world——AR演算法技術分享

圖6:技術實例:左:2D目標物識別和定位;右:3D目標物識別和定位

2)目標物提取:主要識別並提取圖像中的目標物,可將目標物傳送到任意其他場景,或將其他物體渲染到目標物位置。這個提取過程可能在二維圖像中完成,若有三維幾何信息,也可在三維世界中完成。

Bridge to the digital world——AR演算法技術分享

圖7:技術實例:上:2D目標物提取;右:3D目標物提取

3) 目標物跟蹤:通常識別到目標物後,需要跟蹤目標在圖像中的位置。跟蹤的意義主要在於其快速性和穩定性。

4) 目標物重建:與場景幾何形態和物理特性重建類似,但目標物重建額外需要目標物從場景中的分割提取。重建目標物,可生成三維渲染模型,將其以最簡化的表達任意傳送至其他渲染目的地。建立起的三維模型庫也將對三維物體識別等問題產生深遠影響。

3. 世界編輯:

在世界感知過程中,我們得到了場景、目標物和人的數字化信息。在世界編輯過程中,我們可以利用這些信息,按照真實世界的物理規則和人眼作為受眾去創造(渲染)虛擬世界並呈現給人們。我們也可以改變觀察者特性,呈現給人一個完全不同的對真實世界的感知體驗,例如提供小動物眼睛的模擬器去看世界。

更有意思的是,這個計算機所生成世界的運行法則可以由我們來制定,我們就是這個世界的上帝。就像黑客帝國中所描繪的那樣,可以扭曲虛擬世界中的物理定律。隨著AR技術的進步,我們將來很可能傻傻分不清什麼才是真實,要不要從違反物理定律角度開個後門呢?~

對於世界編輯來說,上帝級開發者編輯虛擬世界中事物的運行法則,而開放給普通用戶一些基礎世界編輯能力也很必要,靠大眾去創造更多的內容。小編想起了很早以前流行的一款叫《孢子》的遊戲,其中所有事物都可以由玩家所創造,玩家間也可以共享創造,這樣就形成了社區。據遊戲發行公司EA統計,創造器發布18天,玩家群體一共上傳了1,589,000種生物。設計師萊特曾幽默地說,玩家已經高效地完成了上帝38%的工作。可見用戶參與編輯設計的力量。若加之一些合理的主幹引導和支線劇情,遊戲本身可以說就有千變萬化的玩法。回想Pokemon go,是不是離成功就差了更多用戶參與的內容迭代機制呢?我們可不可以借鑒類似的思路用在我們AR內容的創造上呢?

Bridge to the digital world——AR演算法技術分享

圖8:《孢子》生物創造器

AR已有哪些技術落地?業務場景有哪些?

前面講了這麼多對AR的理解,想必大家要問:AR目前真正落地的技術有哪些,業務場景又有哪些呢?由於小編來自演算法團隊,主要做利用視覺進行世界感知部分,因此只適合從這方面介紹。雖然技術是為業務需求服務的,但是如果按照業務線梳理過於龐雜,很難有系統性,因此我們按照技術線去梳理,從視覺AR基礎技術的角度出發,進而講述哪些業務應用到了這些技術。由於篇幅有限,主要介紹兩類關鍵技術:1)自然特徵檢測和跟蹤;2)SLAM。其他技術,比如LBS AR,三維物體識別與跟蹤等技術均已落地一些業務場景(如:雙十一尋找狂歡貓),但在此不做展開。

自然特徵檢測和跟蹤

自然特徵(nature feature)通常是指一個平面圖案(marker),比如是公司的logo等。藉助這個marker,可以幫助我們建立起相機和三維世界的(6自由度)相對姿態關係,如圖9所示。

Bridge to the digital world——AR演算法技術分享

圖9:通過Marker建立相機與世界相對姿態原理圖

要將自然特徵有效運用,就需要完成兩項基本任務:檢測和跟蹤。檢測解決的是判斷目標marker是否出現在畫面中並且初始化世界坐標系(marker坐標系)的問題。而跟蹤則解決在初始化完成後,如何穩定跟蹤marker的位置並實時算出相機相對世界坐標系的姿態(camera pose)。

Marker的檢測主要通過存儲的marker特徵點描述和場景中的特徵點描述進行匹配來完成。若匹配成功,則代表已檢測到marker。隨即,通過在二維圖像中特徵點的對應關係,在已知相機內參(camera intrinsics)的情況下,可以利用解決perspective-n-point (PnP) 問題的各種演算法解算camera pose以完成初始化。

關於marker檢測環節,還有一些額外的技術考量。首先,marker檢測可能要求同時檢測多種不同的marker,如果對於每一種marker都進行一次匹配顯然是不可行的,因為這種方式不scalable。這就要求我們建立起marker的索引樹,例如應用Bag-of-Words(BoW)方法。這樣可以讓我們像查字典一樣快速檢索,讓同時在線檢測多個marker成為可能。其次,之所以選用特徵匹配方式(feature-based matching)而不是圖像塊匹配(patch-based matching,又通常叫direct method),因為相比patch而言,feature擁有更好的尺度不變性和方向不變性,而且對光照變化更加不敏感,因此可以提供更加魯棒的特徵點。然而feature相比patch的缺點也十分明顯,即其計算代價相對較高。對於實時性要求很高的AR應用來說,有些特徵描述的計算代價甚至是不可接受的(如SIFT)。平衡計算代價和準確程度,我們最終傾向採用Freak或ORB。在實際操作中,我們採用了Freak特徵。

第二個基本任務是marker的跟蹤。有人可能要問,為什麼不對每一幀marker都做檢測,那樣不就不用跟蹤了嗎?之所以用跟蹤,主要有三點考慮:其一,跟蹤較之識別,計算代價更小;其二,應用跟蹤可以防止相機姿態的跳變;其三,利用跟蹤,可以建立起相機的運動模型,若突然哪一幀圖像質量不好,還可以通過相機運動模型進行預測(prediction),例如應用卡爾曼或粒子濾波等,以減少跟丟概率。

在marker跟蹤過程中,由於特徵提取很耗費計算資源,因此對於當前幀,只提取上一幀Freak位置一個特定大小neighborhood內的特徵點並進行特徵匹配以找到兩個相鄰幀Freak特徵的對應點關係。在前一幀圖像中,每一個Freak特徵都對應了一個世界坐標系下的三維點坐標,這些點映射回當前幀畫面的點的坐標是我們之前找到的對應點,我們的優化目標是計算當前幀相機相對世界坐標系的姿態。我們可以利用reprojection error最小作為目標建立起最優化目標函數,初始化前一幀相機姿態作為當前相機姿態,利用梯度下降等數值方法求解最優解。這個求解過程轉化為了求解典型的bundle adjustment問題。這樣做的優點相較於已知二維特徵對應點關係直接應用PnP來講,可以減少相機姿態跳變的概率,這也是很多主流Visual Odometry (VO) 演算法所採取的方式。

Marker的檢測和跟蹤作為AR的一種基礎能力,對手淘的多種業務產生了影響,例如:AR互動營銷,雙十一跨屏搶星衣和AR Shoes等。手淘的AR MagicEye互動平台就是以此技術為原點建立起來的。

AR互動營銷落地的業務有中秋搶月餅。掃一下一個淘公仔的形象,一個動態的淘公仔就展現在你手機里。上傳一張照片,它就可以拿著這照片到處抖起來了~

類似的業務還有掃五環,哈根達斯logo等出各種AR效果並和用戶產生互動。

Bridge to the digital world——AR演算法技術分享

圖10:AR互動營銷案例

雙十一搶星衣活動也是主要依賴marker快速檢測技術完成的。如圖11所示,在林志玲準備拋衣服前一刻,電視屏幕上會顯示出marker,當然這個marker只佔電視屏幕的一小部分。這就要求當marker在手機屏幕佔比足夠小時,演算法仍需要快速準確檢測出來。用戶打開手機瞄準電視,檢測到了這個marker也就完成了搶星衣過程。

Bridge to the digital world——AR演算法技術分享

圖11:雙十一跨屏搶星衣

AR Shoes主要目的是提供一種視覺測量手段使用戶能夠方便測量自己腳的尺寸以買合適大小的鞋。如圖12所示,用戶將身份證作為Marker去定基準面。身份證大小已知,假設腳在基準面上,這樣就有了絕對尺寸信息。用戶在圖像中框出自己的腳,已知相機內參,也就可以計算出在基準面上所框區域的長寬,而這就是腳的尺寸。這裡之所以選擇身份證,是因為人人都有,能讓更多人用起這個功能。

Bridge to the digital world——AR演算法技術分享

圖12:AR Shoes 視覺測量

Simultaneous Localization and Mapping (SLAM)

SLAM(同時定位並建圖)技術是除marker外另一項AR的基礎能力。顧名思義,它的目的是同時計算相機姿態和環境三維幾何信息。

我們關注的是基於視覺的SLAM(VSLAM),因此不關注利用其它感測器(如激光雷達)的SLAM問題。在VSLAM中,我們只關注基於單目攝像頭的SLAM,因為我們的感測器主要依賴用戶手機的攝像頭。對於手機AR應用來說,SLAM的側重點在其定位而不是建圖功能,因此我們暫時不關注那些semi-dense或者dense的SLAM演算法,只用稀疏點雲(sparse point cloud)來描述三維地圖。

VSLAM(又作structure from motion)的原理類似於雙目視覺,採用的是三角定位(triangulation)原理。VSLAM需要兩張有足夠視差的圖像幀去還原圖像中對應特徵點在三維空間中的坐標,同時算出這兩幀圖像所對應的相對相機姿態。嚴格上說,VSLAM只能還原3個轉動自由度和2個平移自由度信息(一個normalized的3維平移向量),無法獲得絕對距離信息,因此需要額外融合手機IMU提供的信息,以獲得真正的三維空間。對類似雙目視覺基礎原理感興趣的同學可以參考這個領域的經典書籍《Multiple View Geometry in Computer Vision》。隨著相機的移動,SLAM觀測到了更多環境中的特徵點並加入三維地圖,同時可以計算出此時相對前一幀的相機姿態。此外,VSLAM還涉及關鍵幀篩選(key-frame selection),閉環檢測(loop-detection),光束優化(bundle-adjustment)等技術點。

結合已有的大量VSLAM領域文獻和我們的工程實踐,針對移動端AR的具體需求,我們總結了一套針對移動端AR的VSLAM演算法流程(AliSLAM),如圖13所示。由於各中細節考量眾多,篇幅有限,在此就不一一贅述。

Bridge to the digital world——AR演算法技術分享

圖13:AliSLAM演算法流程圖

AliSLAM針對移動端AR需求已完成的優化,包括但不限於:縮小BoW詞庫大小以降低分發成本,並行框架加速和GPU加速,IMU感測器融合以防抖防丟,基於patch取代基於feature的跟蹤以提速等。優化後性能參數如下表所示。與PC端SLAM的優化目標不同,AliSLAM的主要優化目標是在精度可接受範圍內儘可能提高其快速性以提升用戶流暢性體驗和降低用戶應用門檻。

Bridge to the digital world——AR演算法技術分享

AliSLAM已集成到手淘並應用在多個業務場景,如極有家AR Detail,AR電器說明書。

極有家AR Detail是利用用戶操作,通過SLAM在三維世界中的定位功能,放置一個虛擬物體在實際三維世界的某個位置。當放置成功後,用戶可從各個角度觀察這個虛擬物體的細節,並彷彿它就擺在你面前一樣。這個功能將為以後的各種虛擬或增強購物打底。想像一下,以SLAM技術為基礎,我們可以提供操縱圖14中這台虛擬手機的能力,是不是很有意思~

Bridge to the digital world——AR演算法技術分享

圖14:AR Detail案例展示

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

Bridge to the digital world——AR演算法技術分享

圖15:AR說明書示例圖

其他技術

AR已落地的其他技術還有很多,如:三維物體識別和跟蹤,LBS AR。雙十一尋找狂歡貓作為不得不提的典型案例成為了應用LBS AR技術的經典。作為2016雙十一最火爆的線上線下造勢和預熱活動,總PV為16億,日均PV 3億多,UV 3100萬,同時支持星巴克、KFC等60多款品牌貓。

Bridge to the digital world——AR演算法技術分享

如果您已經耐心看到這裡,說明您是我們的知音。無論您對AR有哪些思考,想到了哪些新玩法,或是想和我們討論一些技術層面的問題,非常歡迎您致信hexa_ar@list.alibaba-inc.com。發揮您的想像力,一不小心,未來生活的方式將因您這封郵件而改變,why not?

本文主要由阿里AI LAB源方執筆。文中涉及的技術是全組人共同的結晶@方如@爍凡@水源@紫炎@煦深,我們是阿里AI LAB AR演算法團隊。

本文部分圖片取自互聯網,在此鳴謝所有原圖分享者。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 雲棲社區 的精彩文章:

深度學習有很長的一段路要走!Keras作者談機器學習的局限性
沉澱|阿里高級專家應答:各種數據在一個統一計算平台上的融合,才能產生更大的價值
深度學習中的奇怪循環 你知道幾個?
螞蟻金服李小龍:「人工智慧+金融」機遇與挑戰並存,螞蟻金服都做了什麼?
MaxCompute與OSS非結構化數據讀寫互通(及圖像處理實例)

TAG:雲棲社區 |

您可能感興趣

Bayesian Personalized Ranking 演算法解析及Python實現
InfiniteBoosting:集成bagging與boosting的混合演算法
Tile-based Optical Flow 演算法流程與基本思想
演算法:Sums In A Triangle
一文讀懂進化演算法Evolutionary Algorithm簡介
Machine Learning:十大機器學習演算法
Google前AI主管John Giannandrea進入蘋果 改進Siri演算法
一文讀懂物體分類AI演算法:LeNet-5 AlexNet VGG Inception ResNet MobileNet
圖靈獎得主Sivio Micali的Algorand全新的區塊鏈演算法
Adaboost演算法及python實戰
書評:《演算法之美( Algorithms to Live By )》
人工智慧–Autoencoder演算法
dijkstra演算法O(n2) 堆優化O(nlogn)
CatBoost、LightGBM、XGBoost,這些演算法你都了解嗎?
Facebook開源「Detectron」,用於AR研究的計算機視覺演算法!
google新舉措不是捨棄Pagerank演算法
【本期沙龍】圖演算法 Graph-Alogorithm
用Python 實現的機器人演算法示例集合——PythonRobotics
Deep Forest 演算法解讀
加速AR對象分類,Facebook開源計算機視覺演算法Detectron