天天看點

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有哪些思考,想到了哪些新玩法,或是想和我們讨論一些技術層面的問題,非常歡迎您緻信[email protected]。發揮您的想象力,一不小心,未來生活的方式将因您這封郵件而改變,why not?

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

本文部分圖檔取自網際網路,在此鳴謝所有原圖分享者。

繼續閱讀