ARCore Google與Apple正面叫板

今年6月份Apple發(fā)布了iOS 11,隨之帶來了ARKit,ARKit一出技驚四座,就在昨天Google發(fā)布了他們的AR開發(fā)工具ARCore,看效果還是蠻不錯的,看來又是一場大戰(zhàn)了。
GoogleAR官方平臺:https://developers.google.com/ar
ARCore SDK:https://github.com/google-ar/arcore-android-sdk

ARCore是基于單目+IMU增強(qiáng)現(xiàn)實(shí)方案, 跟ARKit一樣,除了自家平臺,Unity3D和Unreal平臺也都有相應(yīng)的開發(fā)包,都是為了籠絡(luò)開發(fā)者啊。

解密三大核心功能

ARCore的核心功能有三個:相機(jī)姿態(tài)估計(jì), 環(huán)境感知以及光源感知(Light Estimation)。

ARCore_Lion.gif

相機(jī)姿態(tài)估計(jì)其實(shí)就是通過單目相機(jī)讀取圖像,通過特征的匹配估計(jì)相機(jī)的運(yùn)動軌跡。這點(diǎn)我相信研究過SFM、SLAM的同學(xué)并不陌生。但是ARCore極有可能用的不是常見的特征匹配法。這里先賣個關(guān)子,下文再詳細(xì)分析運(yùn)動軌跡的估計(jì)方法。
環(huán)境感知其實(shí)就是ARKit中的平面檢測,這樣可以保證虛擬物體擺放位置相對合理,處于水平姿態(tài)。

ARCore_Taco.gif

而第三個功能光源感知,按照谷歌官方的說法是,ARCore能感知現(xiàn)實(shí)世界的光源位置,使虛擬物體能夠形成相應(yīng)方位的影子,從而增加虛擬物體在現(xiàn)實(shí)世界里的真實(shí)度。可以看到上面的那個gif圖,在關(guān)燈之后,獅子身上的光照也發(fā)生了變化。
個人估計(jì):是因?yàn)槭褂玫钠ヅ渌惴ǖ脑?。我們就切入到ARCore第一個核心功能——姿態(tài)估計(jì)上,進(jìn)行具體分析:
傳統(tǒng)的特征匹配方法只計(jì)算關(guān)鍵點(diǎn)和描述,幾十萬像素的圖像只用了幾百個特征點(diǎn),屏蔽了大部分可能有用的信息,更別說對灰度的估計(jì)了。所以,ARCore很有可能是使用了直接法來做相機(jī)位姿估計(jì)(對直接法感興趣的同學(xué)可以去看看LSD, SVO, DSO等解決方案)。
簡單來說,直接法直接使用的是整張圖片的像素信息,通過像素亮度來進(jìn)行運(yùn)動軌跡的估計(jì)。這樣的好處是速度很快,直接跳過計(jì)算關(guān)鍵點(diǎn)與描述子的步驟。同時在有些缺失特征點(diǎn)的環(huán)境下,只要環(huán)境中有明暗變化,也能工作,如此大大的避免了跟丟的情況。
直接法的數(shù)學(xué)推導(dǎo)就不詳述了,但是該方案是基于灰度不變的強(qiáng)假設(shè)。換句話說, 就是同一空間的像素灰度值,在每張圖像上都是不變的。這樣就對光源的強(qiáng)弱及位置變化要求比較高,同時相機(jī)的自動曝光功能也需要關(guān)閉,使得圖像不會整體變亮或者變暗。
ARCore的所謂光源感知功能估計(jì)就是基于像素灰度變化的計(jì)算。這也就是為什么不同的光源強(qiáng)度下,形成的影子的方向效果有好有差。
由于直接法完全依靠像素梯度優(yōu)化來估計(jì)相機(jī)位姿,作為Ceres(谷歌推出的SLAM閉環(huán)檢測算法)的東家,這點(diǎn)對于谷歌來說并不是什么難處。另外一個ARCore使用直接法的例證就是點(diǎn)云。
ARCore的SDK里是有點(diǎn)云功能的——由于Unity3D的Demo存在Bug,無法看到具體形成的點(diǎn)云是半稠密還是稠密的。但無論是半稠密還是稠密點(diǎn)云的構(gòu)建,這都是特征法無法實(shí)現(xiàn)的。個人估計(jì)是半稠密的點(diǎn)云。如果ARCore在沒有GPU CUDA加速的情況下真構(gòu)建了稠密點(diǎn)云,只能膜拜Google大法了。



相比之下,ARCore能夠?qū)崿F(xiàn)的光源感知和點(diǎn)云功能,ARkit實(shí)現(xiàn)不了——如果ARKit是Metaio(蘋果之前收購的德國公司)做的話,采用特征法的可能性大,這樣就無法實(shí)現(xiàn)光源感知,點(diǎn)云理論上是能構(gòu)建,但只能是稀疏的,基本上就是一堆點(diǎn),看不出什么。
至于ARCore整體的工程是SLAM還是VIO,個人的偏向還是VIO更有可能。就如ARKit一樣,使用的場景更偏向于手機(jī)端,在場景不大的情況下,VIO作為定位方案已經(jīng)綽綽有余,而且更加節(jié)省計(jì)算資源。

小結(jié)

雖然Google正式與Apple在AR戰(zhàn)場上叫板了,不過個人覺得鑒于安卓混亂的市場,有些手機(jī)甚至沒有陀螺儀,我對它的推廣表示一些擔(dān)憂。不過話說回來,Apple跟Google都在AR上發(fā)力,AR增強(qiáng)現(xiàn)實(shí)的春來就是真的來了。

參考文章:http://www.sohu.com/a/168298525_114778

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容