如何評價谷歌推出的ARCore?
ar技術平台
感謝邀請,回答已經首發在雷鋒網了,歡迎轉載~
在知乎回答主要是為了給我的團隊打廣告:
我們組在招人,真誠招聘對Web AR感興趣的前端開發同學,有意向或推薦可以直接私信我簡歷!!
同時也希望有數據採集服務或三維建模服務能力的公司聯繫我,我手頭有很多業務需要!!
—————————————————————
下面才是正文:
距離ARcore發布已經過了一周,作為行業參與者肯定第一時間關注,基本各大媒體關於技術相關的問題已經說的比較清楚了,這裡也不再深入談技術,還是從行業發展的角度來說說目前比較熱門的問題
Tango 是否會被放棄?
其實 Tango 面世已經有很長一段時間,目前市面上可以看到的已經有聯想和華碩兩款手機了,而如果 ARCore 不出現的話,理論上年底應該會有第三或者第四個品牌推出 Tango 手機,但是現在應該都不會有了。
究其原因,拋開 Google 內部鬥爭這些因素不談,如果關注 Tango 的同行應該都知道,Tango 的應用生態在最近一年多的時間裡幾乎沒有太大的變化,兩款手機的預裝 APP 也幾乎都是手機廠商或者 Google 自己開發的,當然大佬們並不是沒有努力過,各種開發者大賽或者行業應用主題大賽也都有舉辦,很可惜大部分停留的 DEMO 的狀態。
這其實並不是 Tango 本身不夠好,而是新款硬體推廣的成本實在太高。硬體等內容,內容看硬體的死循環一直無法打破,哪怕是非常專註於行業服務的 B 端應用,願意為此買單的大客戶依然不多。
另外,從 Google 整體宣傳的策略來看,至少在之前,移動端的 VR 還是核心業務, 儘管每一次大型的開發者大會都會有 Tango 的身影和新的消息,但是 Daydream 的關注度遠遠超過 Tango。何況 Google 自己的 Pixel 沒有搭載 Tango,或多或說也說明 Google 對 Tango 的態度。而這時,ARKit 出現,Google 也確實失去了很好的先機,如果還是力挺陷入死循環的 Tango,那麼很可能會越來越陷入被動,所以這個時候 Google 只能革命自己,推出面對全安卓平台的 ARCore。
但是從 AR 的能力來說,,硬體方面,Tango 確實具備比較完整的 AR 能力,稍微轉化一下形態,那麼同樣的硬體模組去支持一個 AR 眼鏡對 Google 來說也不是非常難的事情;軟體方面,同樣在Tracking 中只依賴於單目的演算法,目前的 ARCore 也確實繼承了一部分 Tango 的架構或者思路,甚至有部分人認為ARCore 只是注釋掉了 Tango 底層演算法中深度相機那部分(肯定不會這麼簡單),所以我個人不認為 Tango會被放棄,只是不會做為主力的產品而轉為底層的能力服務 Google 的其他業務。
和 ARKit 的對比到底如何?
這個是大部分人最關心的問題,但是我個人覺得其實比較起來意義不大,只要手機目前的系統還是 iOS 和安卓對立的局面,那麼安卓就一定需要一個 AR 底層的演算法支持,這件事情只有兩種公司可以解決,一個是控制著系統的 Google,一個是手機廠商自己。因為底層的空間定位演算法非常依賴於硬體的校準和標定,任何軟體公司想越過 Google 去支持整個安卓平台,尤其還需能夠得到大部分手機廠商的配合去標定 IMU 和攝像頭的參數,這需要和 OEM 廠商有長期合作的關係,而這幾乎是不可能的。
在 ARCore 發布之前,確實有一些手機廠商在自研演算法,也有一些手機廠商已經與 Google 對接中,但是從進度和可推廣的能力來說,Google 確實是首選,所以安卓的 AR 能力依靠 Google 這是目前最理想的方式。
很多人強調 ARCore 的功能幾乎完全複製了 ARKit,但是我個人覺得這並不能說明 Google 在技術或創新能力上弱於蘋果,從兩方面的原因看 Google 必須這樣做。
· 第一,從硬體的控制力來說,百花齊放的安卓硬體是Google 控制不了的,而 AR 的底層能力有很大一部分在於硬體,所以在無法確定的硬體設備上,Google 幾乎沒有可能給出多於 ARKit 的功能,這也是首發的安卓手機除了 Google 自己的 Pixel 就只有 S8 的原因;
· 第二,ARKit 在發布短短几個月的時間裡確實爆發了強大吸引力,各種類型的應用層出不窮,如果未來安卓系統想要無縫的對接 iOS 上的AR應用,那麼類似甚至相同的功能和介面可以極大的減少 AR應用的遷移成本,保證在AR應用發展初期安卓平台不會被落下。基於以上兩點原因,ARCore 和 ARKit 的相似幾乎是必然會發生的事情。
那麼回到區別這一點,因為硬體環境和演算法架構的不同,兩者肯定在體驗和細微的功能上會有所區別,比如圖像的解析度、刷新率,或者光源感知演算法的效果以及尺度收斂的速度和精度等,這些細微功能的不同可能源自硬體的區別,也可能源自演算法中特徵提取方式的區別或 IMU 融合方式的區別,但是我相信作為兩家引領行業發展的公司,既然會拿出來面對大眾,一定已經保證了基本的體驗不會太差。
具體到兩者演算法架構來說,基於 VIO 架構的 ARKit 更加側重於定位本身,比較輕量,在小範圍場景內使用不會有明顯的飄移感,目前測試來看儘管可以返回每一幀的 3D 點,但是並不是很穩定,也不算準確,只是用於平面擬合使用,其實目前已經可以在現有API 的基礎上開發出多平面識別的功能,但是這會非常依賴於畫面中的特徵點。整體看 ARKit 使用更加流暢,幀率也較高,對於用戶來說體驗是非常好的。
基於原 Tango 架構的 ARCore 在定位之外,會比較注重三維重建的部分,畢竟Tango本身已經依靠深度攝像頭實現了實時的三維重建,ARCore 輸出的 3D 點至少也是半稠密的。所以從功能來說,ARCore 在未來的想像力會更大一些,不過這也不是沒有代價的,ARCore 的計算量也會更大一些,所以流暢性會有所欠缺,幀率也低於 ARKit,不過定位的精度可能會優於 ARKit(還有待進一步的測試),並且具備重定位的功能。
當然一定要分高下的話,單從體驗來說,暫時我會更看好蘋果一些,因為蘋果可以完全控制自己後續的手機的硬體配置,這就導致為了覆蓋率的 Google 在體驗上很難不有所犧牲,更難保證每一款安卓手機的效果都那麼一致,比如聯想和華碩兩款 Tango 手機的體驗就不一致,這方面比較類似 iOS 和安卓的區別。
明年 AR 的發展會怎麼樣?
可以確定的一點是,隨著 ARCore 的發布,AR 功能已經有能力覆蓋整個移動端,所以 AR 已經開始正式面對 C 端用戶,甚至比 VR 更容易被大眾所接觸,後續可以預見到的是,兩類公司一定會開始積極擁抱 AR:
第一,目前國內的手機廠商幾乎全都是安卓系統,所以肯定會開始與 Google 接觸或開發自身的 AR 底層能力,這個過程可能會持續半年到一年,部分有實力的廠商會支持到今年甚至去年發布的旗艦手機以保證足夠的覆蓋率。至少明年各大廠的旗艦手機一定會包含 AR 能力,已知的至少已經有華為、華碩、LG等,Google 自稱的1億台設備肯定是有底氣的。
第二,國內各行業的應用生態大佬會開始著手開發和AR 功能相關的產品,包含泛娛樂、電商、社交等多個領域。其實目前除了微信比較有克制力以外,各大應用或多或少都已經包含了和 AR 相關的產品,AR 掃也好,人臉的互動也好,LBS 定位也好,大眾已經開始逐漸接受虛實結合的交互方式。
初步猜測明年這個時候會有 30% 的用戶手機具備 AR 能力,兩年後會達到 50% 甚至更高,同時這些都是使用高端手機的有消費能力的用戶,是各類公司重點關注的,而到時候 AR 應用生態一定會比現在有所好轉。具備想像力的玩法和應用一旦受到熱捧,那麼肯定會被作為某個功能產品融入目前的各類超級 APP中。
類似 BAT 這種級別的公司,目前雖然都對 AR 有所表示,但是 AR 並不是其核心業務或產品。我個人雖然看好 AR,但也承認手機端的 AR 和 PC
端上的互聯網,或智能移動端的 APP 相比還不在一個量級上。所以只要明年能夠看準 AR 應用的大趨勢,在功能和產品上不被競爭對手超越太多,那麼超級 APP 對應的大公司之間在 AR 方面就不會有大的差距,當然業務本身的差距不在比較範圍內。而對一些中小型的公司來說,AR 可能會更值得關注,因為 AR 有機會影響移動端的流量分配,一時成為熱門的話,對剛起步的 APP 來說是非常重要的,而明年的 AR 產品會非常有可能製造熱點話題或玩法。對於那些主打 AR 的應用來說,不論是遊戲,或者是社交,明年都會有更好的環境和發展。
空間定位的底層演算法被 ARKit 和 ARCore 佔據後,AR行業後續還有什麼可研究的?
這個問題在知乎上有很多人私信問我,類似的問題還有目前想從事 AR 相關的工作應該如何入手?這裡仔細回答一下。
首先是演算法方面,可以比較明確的說,任何對硬體沒有控制力的公司,想從底層去統一 AR 都是幾乎不可能的,這不僅僅是一個技術的問題。儘管 ARkit 和ARCore 目前在功能上還有不足,比如很多人提到的識別、2D/3D跟蹤、語義分析等等,這些後續都有可延拓的空間,但是兩家 SDK 為了開發者儘可能簡單的入手,開放的 AP I也相對非常直接,而以上這幾個功能除了識別比較獨立之外,其餘都需要和底層演算法有相對深入的耦合,這就導致想在這兩家 SDK 上增加功能變的非常困難。
當然不排除 Google 未來會開源 ARCore,這樣至少安卓端的 AR 演算法還有很多可以做的事情。而相對獨立的識別演算法一直是人工智慧領域最重點研究的問題,不論是圖像、物體還是人臉,都是熱門的大方向,從事相關研究的人也比較多,當下競爭激烈。
如果拋開手機端來說,高通和部分晶元廠商同樣看到了 AR 的發展潛力,基於 GPU、DSP
或 FPGA 等特定計算單元的空間定位演算法晶元或硬體模組已經有一些比較不錯的成果,更不用說最近大熱的人工智慧晶元,所以未來的 AR 眼鏡公司也不一定會投入人力去做很多底層演算法的事情,因為不和晶元做對接的純演算法也是幾乎不可能得到好的體驗。能耗、幀率、性能優化等等事情都必須在晶元層面的基礎上去做,這個從 HoloLens 和 其餘眼鏡的區別來看已經比較明顯了。總的來說,AR 演算法本身就是一個軟硬結合的研發工作,我不能說小公司完全沒有機會,但是難度會非常高,而大公司有資源和人力去投入這沒有什麼問題,在 AR 未來相對較長的發展歷程來說,確實不能一直等硬體公司來滿足業務需求,偏重業務型的公司可以憑藉自身的研發能力作出好的產品,硬體公司肯定會反向跟進,這對 AR 行業來說這是一個良性循環。
其次是引擎方面,這個看似不是一個很值得分析的方面,目前支持AR 的第一引擎毫無疑問是 Unity,幾乎市面上 80% 的 DEMO 都是用 Unity 開發的,並且所有演算法 SDK 在推出的第一時間都會包含 Unity 的版本。但是這是從完全的 AR 應用角度來說,所謂完全的 AR 應用即是以 AR 為核心交互的應用,這裡大部分是遊戲,少部分是一些行業的初級應用。這並不是全部的需求,還有很多大型的 AP P都需要 AR 的功能,但這些大型 APP 不可能使用 Unity這麼龐大的引擎,至少在 5G 和更大容量的手機存儲標準沒有普及前是不可能的。
對此有兩種解決辦法,第一個是使用輕量化的Native 3D 渲染引擎,並且這個引擎需要和市面上的主流 AR SDK 對接良好,這是目前幾乎大部分的大型 APP 的解決方案,市面上所有可以看到的具備 AR 功能的大型 APP 幾乎底層都有一個自研的 3D 引擎。這是一個比較浪費人力的工作,每一家的引擎都或多或少有一些區別,都是獨立研發的(目前市面上 3D 引擎開發非常搶手),所以一個輕量化的,可嵌入大型APP,並且可以對接所有 AR SDK 的 Native 3D 引擎是目前比較稀缺的。
第二個解決方案就是 Web AR,相比 Native 引擎來說,Web AR 具備良好的開放性,不需要更新任何的客戶端代碼,也就沒有大家頭疼的發版問題(尤其在 iOS 封禁了熱更新之後),所有工作都可以在 Web 端解決,這非常適合一些更新迭代很快並且交互定製型很強的 AR 產品,比如 AR 掃一掃的營銷需求。
ARKit 和 ARCore 都已經在 github 上有了 Web AR 的版本,同時國內外一些知名的 Web 內核也開始增加 AR 的相關功能,蘋果和 Google 未來也會支持 WebRTC (即 Web端可以訪問調用攝像頭和語音設備的技術),這些都表明業界非常看好 Web AR 的便利性和發展。
不過 Web AR 目前也存在一些問題,Web 3D 渲染的性能和覆蓋率目前和 Native 引擎還有一定差距,Web 端和底層演算法的對接及同步目前還需要一定的優化,體驗距離完全 Native 的方式還有差距(WebRTC 可以優化這類問題,但是目前還沒有普及),Web AR 方面人才稀缺,並且未來前景很好,很可能成為AR 發展的核心技術之一,不論是公司還是個人都值得大力投入。(再打一次廣告,真誠需要優秀的前端開發,簡歷請私信~)
然後是產品和交互方面,這個看似不是一個技術問題,但卻是目前最難解決的問題。在當下 AR 底層技術剛剛發展起來還不成熟的時候,交互和產品的設計都依賴於了解 AR 技術背後的原理,比如想引導用戶對世界坐標系初始化,那麼交互設計自身就需要理解為什麼單目演算法需要一個初始化的過程以及到底需要如何初始化,如果沒有這個過程可能會帶來怎樣的後果。再比如如何引導用戶在空間移動,這個是之前圖形界面完全不存在的方式,交互設計師要明白用戶手持手機在空間中移動這本身就是 AR 世界裡最重要的一種交互方式。
而在產品層面,產品設計需要思考 AR 到底帶來的區別有哪些,如何連接人和物,如何連接人和空間,連接之後要給予用戶哪些刺激讓用戶持續的互動,目前的演算法對空間的理解到了哪種程度,如何最大化的展現給用戶虛實結合的效果,手持手機的時間最好控制在多久的範圍內等等這些問題。
相比於演算法或技術來說,以上這些問題目前還沒有一個好的答案,蘋果在這方面已經做出了相關的一些工作,給交互設計和產品設計的建議已經發布出來,這是非常好的開端,當然要很好解決這些問題,不僅僅是技術人員的投入,產品經理和交互設計師,甚至視覺設計師可能都需要參與一起探索。
最後也是最關鍵的,一直在限制 AR 應用生態發展的核心問題,即真實世界的數據化和 3D 化程度不足。眾所周知目前深度學習大熱, 但是絕大部分的識別演算法除了網路結構或參數本身的調優之外,最依靠的就是訓練數據本身,不論是物體識別演算法,還是基於語義的空間感知演算法,如果沒有海量的數據進行訓練,那麼後續的功能改進都是空談。
知名 AR 工具 Blippar 之前一直在嘗試達到萬物可掃的效果,而且似乎確實某種程度上實現了,但是它選擇了犧牲認知事物的粒度,當用戶掃描一雙鞋子的時候其實並不是想知道這是鞋子,可能更想了解的是這是哪一款鞋子,而如果演算法需要識別到這麼細緻的程度,則必須依賴幾乎每一雙鞋子的訓練數據,這方面當下還沒有好的數據獲得方式,或者說從數據採集到標註數據的整個流程目前還不是很清晰。國內在數據採集標準方面比較理想的解決方案是眾包平台,之前很火的人工智慧音箱大部分是通過眾包平台來獲得語音的訓練數據,但是眾包平台水平參差不齊,也很難保證數據的標準和一致性,這個問題還需要很長時間的優化發展才可能幫助 AR 演算法更好的理解世界。
內容問題,更直接的說即 3D 模型問題,因為 AR 帶來的是全 3D 的世界,而之前圖形界面對應的核心內容是文字、圖片、視頻等,這些內容目前沒有一個好的方式放置在 3D 世界中,或者換句話說,如果僅僅是把 2D 世界的內容移植到 3D 世界,對用戶來說並不是一件很有意義的事情。
那麼想呈現一個好的 AR 體驗,3D 模型的供給就是基礎中的基礎,目前除了遊戲或電影領域有大量的人工 3D 建模師以外,在其他領域幾乎很少,之前國內知名的幾個電商平台都發布過商品 3D 化的計劃,但是目前線上可以看到的 3D 產品依然很少,也側面說明 3D 化工作的難度。
AR 畢竟不單單是一個遊戲工具,除了遊戲外,想真正作為一個基礎工具解決實際需求,那麼必須有更快捷的方式來生產 3D 模型。說到這裡這自然會讓人想到三維重建,當下三維重建的硬體和軟體都有很多,但是都還沒有達到足夠成熟的狀態,或者說足夠便利的程度,除了成本相對較高外,三維重建的流程還沒有標準化,不同演算法和硬體對於三維重建的對象和操作人員的技術也有一些要求,這就導致三維重建目前還是一個學習成本較高的工作,還需要一段時間的發展和普及。
基本熱門的問題就是以上這些,從 AR 行業來看,我認為 ARCore 的發布代表 AR 技術全面進入 C 端,後續會是內容和技術互相促進,更新迭代的時期。在 AR 眼鏡到來之前,手機端是一個不得不做,並且值得做好的平台,希望 Google 和蘋果可以保持良性競爭的關係,為大眾帶來體驗更好的技術,同時也希望開發者們可以喜歡 AR,帶來更多有價值的 AR 應用。
穩如 POI
為了方便大家試用,我打包了一下官方Demo:
Release build for all device · ipcjs/arcore-android-sdk
這個頁面里的兩個apk都要安裝。
Android N+64位的手機可以試下,可能可以跑
-----------------------------------分隔線----------------------------------
官方說只支持Pixel和S8,有人反射修改Build.FINGERPRINT成功在Nexus 6P上運行了。
我試了下Nexus5 + LineageOS7.1,不行,黑屏(-_-#)有6P的可以玩下:
Getting Started with Android Studio | ARCore | Google Developers
反射修改的代碼:ReflectUtil.java
大概找到我手機不能跑的原因了:
官方給的arcore-preview.apk裡面沒有32位系統要用的so文件,所以報了個這樣的錯誤:
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.google.tango-1/base.apk"],nativeLibraryDirectories=[/data/app/com.google.tango-1/lib/arm, /system/fake-libs, /data/app/com.google.tango-1/base.apk!/lib/armeabi-v7a, /system/lib, /vendor/lib]]] couldn"t find "libtango_service_library.so"
超虛幻境,作為最為專業的虛擬現實與增強現實專欄第一時間測試了ARCore,很遺憾我們公司的所有手機都不能支持ARCore,本來打算公司買一台的,反正也沒幾個錢。結果工程師說,買個啥,暫時都沒人用,有啥好買的,買來還要我開發,煩不煩。然後就這樣我們就放棄了眼前在app裡面增加AR的功能。
我們的評價是這玩意是個很不錯的框架,但是現在就殺進來開發ARcore真的有點太早了,因為我們是國內最早開發tango的,全球第一台Tango手機我們找的人採購的啊,找的關係拿了手機開發的啊。結果開發出來了,銷量是多麼悲劇。
那麼為什麼我們在第一時間就支持了ARKIT啊,因為保有量在那啊,鑒於ARcore的市場保有量我們暫時不支持該功能。等Android8普及了再說吧,Android手機配置那麼低,卡死我了。
還是先玩ARkit吧,在iPhone6S上跑了80萬面,卡都不卡。
ARCore 我們決定再等等,再等等,不著急,不著急!
AR鋼管舞走一個
`TangoClientLibLoader`內定義了一個靜態變數`PURE_JAVA_PATH`,反編譯出來的SDK代碼里,經常看到用這個變數來判斷調用哪種實現。
既然是變數,那就有賦值的地方。賦值的地方在`TangoClientLibLoader`的靜態代碼塊里:
```
PURE_JAVA_PATH = VERSION.SDK_INT &>= 24;
```
可以看到,區分兩種實現的標準很簡單,API等級。目前官方稱只支持Android N以上的版本,即目前只會運行`true`的實現。這個實現區別於`false`的點在於,`true`不需要載入native so,而`false`需要載入`/data/data/com.projecttango.tango/libfiles/`目錄下的`libtango_client_api.so`。
也就是說,對於API 24以下的平台,ARCore也是有野心要去做支持的。
估計本來Google是想搞個黑科技,弄個能兼容絕大多數手機,而非特定系統版本的SDK,類似於support包一樣的東西。結果蘋果突然發力`ARKit`,把Google逼急了,只能先弄出一套支持Android N 以上的SDK安撫下Android 開發者。
青亭網第一時間聯繫了專註於AR領域的源視感科技CEO周凡,他連夜閱讀了ARCore的代碼,並對谷歌放出的demo進行了逐幀分析。下面請看他帶來的第一手報告:
1
Apple的ARKit發布之後, 市場一片歡騰。經過一段時間的低潮後,對於AR的熱情再一次被點燃。就在蘋果沾沾自喜(我猜的)、安卓開發者表示強烈不滿時(也是我猜的),谷歌昨天發布了Tango之後的單目+IMU增強現實方案——ARCore。
目的很明確,連名字都很霸氣的相似——就是要懟ARKit去的。作為AR技術的先驅, 谷歌果然出手不凡,一次性在Github上放出三個SDK,涵蓋安卓原生、Unity3D和Unreal平台。雖然沒有像上次的SLAM方案Cartographer那樣直接開源,但是對應用開發者,無論是手機端,還是嵌入式設備都算非常的友好了,貌似要一統開發者天下。
2、解密三大核心功能
連夜讀了有限的代碼,可以看出ARCore的核心功能有三個:相機姿態估計, 環境感知及光源感知(Light Estimation)。由於資料有限,只能做一個大概的估計與分析。
前兩個功能,研究SFM、SLAM的同學應該不陌生了—— 前者通過單目相機讀取圖像,通過特徵的匹配估計相機的運動軌跡。但是ARCore極有可能用的不是常見的特徵匹配法。這裡先賣個關子,下文再詳細分析運動軌跡的估計方法。
至於環境感知功能,名字起的很高大上,但具體實現的功能其實就是檢測平面。這樣做的好處就是在現實環境中放置虛擬物體的時候位置相對合理,不會出現類似物體懸空,或者在斜面上仍然處於水平的姿態。
第三個光源感知功能,按照谷歌官方的說法是,ARCore能感知現實世界的光源位置,使虛擬物體能夠形成相應方位的影子,從而增加虛擬物體在現實世界裡的真實度。這個功能堪稱驚艷!從谷歌發布的Demo視頻里看, 虛擬物體的影子確實是根據光源形成了相對應方向的影子。
但是分幀仔細分析視頻後, 發現該功能在強光源的狀態下效果才不錯,在散漫光源的情況下就一般般了。
個人估計:是因為使用的匹配演算法的原因。這樣,我們就要回到剛才賣關子的ARCore第一個核心功能——姿態估計上,進行具體分析:
傳統的特徵匹配方法只計算關鍵點和描述,幾十萬像素的圖像只用了幾百個特徵點,屏蔽了大部分可能有用的信息,更別說對灰度的估計了。所以,ARCore很有可能是使用了直接法來做相機位姿估計(對直接法感興趣的同學可以去看看LSD, SVO, DSO等解決方案)。
簡單來說,直接法直接使用的是整張圖片的像素信息,通過像素亮度來進行運動軌跡的估計。這樣的好處是速度很快,直接跳過計算關鍵點與描述子的步驟。同時在有些缺失特徵點的環境下,只要環境中有明暗變化,也能工作,如此大大的避免了跟丟的情況。
直接法的數學推導就不詳述了,但是該方案是基於灰度不變的強假設。換句話說, 就是同一空間的像素灰度值,在每張圖像上都是不變的。這樣就對光源的強弱及位置變化要求比較高,同時相機的自動曝光功能也需要關閉,使得圖像不會整體變亮或者變暗。(這一點在外媒TheVerge的上手測試中有體現)
ARCore的所謂光源感知功能估計就是基於像素灰度變化的計算。這也就是為什麼不同的光源強度下,形成的影子的方向效果有好有差。谷歌果然聰明,在位姿估計的同時順水推舟地發布一個光源感知功能,一石二鳥!形象一下子就蓋過了ARKit。
由於直接法完全依靠像素梯度優化來估計相機位姿,作為Ceres(谷歌推出的SLAM閉環檢測演算法)的東家,這點對於谷歌來說並不是什麼難處。另外一個ARCore使用直接法的例證就是點雲。
3、和ARKit相比如何?
ARCore的SDK里是有點雲功能的——由於Unity3D的Demo存在Bug,無法看到具體形成的點雲是半稠密還是稠密的。但無論是半稠密還是稠密點雲的構建,這都是特徵法無法實現的。個人估計是半稠密的點雲。如果ARCore在沒有GPU CUDA加速的情況下真構建了稠密點雲,只能膜拜Google大法了。
相比之下,ARCore能夠實現的光源感知和點雲功能,ARkit實現不了——如果ARKit是Metaio(蘋果之前收購的德國公司)做的話,採用特徵法的可能性大,這樣就無法實現光源感知,點雲理論上是能構建,但只能是稀疏的,基本上就是一堆點,看不出什麼。
至於ARCore整體的工程是SLAM還是VIO,個人的偏向還是VIO更有可能。就如ARKit一樣,使用的場景更偏向於手機端,在場景不大的情況下,VIO作為定位方案已經綽綽有餘,而且更加節省計算資源。
無論如何,ARCore推出,補全了安卓市場在AR上的空白。基於安卓系統的市場佔有率,蘋果還敢說自己是最大的AR平台嗎?
哈哈哈 谷歌 起個大早 趕個晚集。。。
谷歌其實早在12個月前,就可以將Tango的VIO系統交付到更多的安卓手機上,然而並沒有,並沒有哦!如果去年此時谷歌發布了,那將會是一個爆炸創舉,今年6月蘋果再發布ARKit就將會是一種對谷歌的追趕
可惜,現在蘋果早在幾個月前發布了同樣搭載VIO系統的ARKit;這時候你再看看谷歌在增強現實一路的表現,本來可以成為創舉的ARCore反而成為了ARKit的後生。
根據谷歌今天公布的ARCore Overview來看,使用普通的手機攝像頭只要有以下三個核心技術就可以實現虛擬內容和真實世界的融合,實現我們說的AR效果:
首先,運動追蹤。使用手機的攝像頭觀察房間里的特徵點和IMU感測器數據,ARCore便可在手機移動時判斷其位置和方向。虛擬物體仍然可以精準放置。
第二,環境理解。ARCore可以利用動作追蹤中使用的數據點判斷水平表面,手機攝像頭掃一掃就可以檢測出物體的平面、位置以及大小。
第三,光線估計。ARCore可以觀察環境光,讓開發者照亮虛擬物體的方式與周圍環境匹配,使之更加真實。
然後你會發現,這TM跟ARkit一毛一樣,蘋果都有.....
核心技術太相似了,要運行Tango,Android手機廠商必須對硬體進行相當大幅度的升級和校驗,因此迄今為止可能僅有聯想和華碩推出了支持Tango的手機。
要麼大家去買三星?
最後,ARCore從第一天開始就支持Java/OpenGL、Unity和Unreal,同時還有配合ARCore性能的桌面網頁瀏覽器可以讓開發者將AR元素增加到自己的網站中。其實我們早就已經可以使用一些支持ARCore的工具,其中包括兩款3D創作工具:Blocks和Tilt Brush。谷歌說這些工具可以讓創作AR應用非常的簡單。
但還是那個問題,ARkit已經非常容易上手了,我不覺得他能比ARkit簡單到哪去.....
————————————————
有人說ARkit只在蘋果,ARCore不就壟斷安卓? 只有一個問題,你們那些安卓機器能直接跟馬上出來的IP8比嘛。。。 想要大規模的上ARCore,你得先問問這一把子手機製造商。
要麼還是那句話,你去買三星好了。
Google這一次行動迅速,趕在蘋果發布會前夕的節點精準的對ARKit實現了打擊效果;不過不得不說這個ARCore和ARKit的感覺實在太像了,並沒有看源碼,所以也不知道具體的技術區別有哪些,只是簡單過了下運行邏輯,和ARKit的Sample相比的話,我還是比較喜歡ARCore的,至少不用在場景里為攝像頭放置天空球了。基於官方的demo做了一些簡單的測試,首先追蹤識別平面的感覺很好,可以看到平面動態生成的過程,可以識別多個平面,而且多個平面還可以融合到一起,這一點感覺還不錯。識別生成出的平面面積可以非常大,而且還會一直被記錄下來,比如沿著走廊走了一圈之後還能發現最開始放置的物體仍然在原來的位置,這一點體驗和Hololens可以說是非常相似了。正好還是初音10周年的日子,就搞了個Miku模型扔了進去測試,感覺還是很不錯的。最大的缺點恐怕就是,運行了一段時間後,手機燙的厲害,還好不是三星,不然就(逃
今天剛寫的一篇。
谷歌推出ARCore,對於開發者來說是一件喜聞樂見的事情。看谷歌的AR戰略,此時難免讓人想起Tango。
分析:
Motion Tracking 在Tango時代就有了,名稱幾乎照搬過來,只是彼時需要Tango設備;Environment understanding 在Tango時代就有了,SDK里就有FindPlane()函數,只是彼時需要Tango設備;Light estimation 在Tango時代就有了,官方博客還給出了製作教程,只是彼時需要Tango設備;由此可見,ARCore是不依賴特殊硬體支持的Tango技術……早期關注Tango,剛體驗到這項技術的時候,還叫Project Tango,深深的被震撼到了——能識別牆面和地面、無標記AR,這應該就是下一代AR技術了吧,於是提刀而立,為之四顧,躊躇滿志地想大幹一場。然後分別入手了Project Tango Dev Kit和Phab 2 Pro,關注SDK的每一次更新,加入官方社區天天看,學習什麼是SLAM。兩年下來,支持Tango的設備更新緩慢,Project Tango Dev Kit不再獲得官方支持,京東的Phab 2 Pro比剛上架時降價1000,華碩的Zenfone AR只是看到個影子。社區里展示的多是研究性質的demo,鮮有成品出來,少數成功的案例,也都在一年一度的I/O大會上展示過了,而且,這些成功案例也多是跟B端的合作,比如博物館(看恐龍)、傢具廠(Wayfair)、服裝廠(GAP)等。在生態上,谷歌在讓開發者等硬體普及,賭硬體一定像安卓一樣遍地開花,Tango像GPS一樣成為未來手機的標配。
反觀ARKit,發布會上就撩撥到了開發者的G點——我家技術不用新設備就能玩,今天晚上就是全球最大的AR平台了。之後幾天各種demo出來,媒體跟進報道,蘋果的AR「爆發」了。那麼谷歌的AR為什麼沒有「爆發」呢?(通過在VR行業的經驗,所謂的爆發,只是媒體的爆發)我猜兩家AR剛出來的時候,開發者的表現是這樣的:ARKit剛出來的時候,開發者先是震驚了,卧槽,吊,正好有台iPhone,做個Demo試試,然後社交網路各種曬,然後更多人見識到ARKit;Tango剛出來的時候,開發者也是震驚了,卧槽,吊,上哪搞台設備做個Demo試試……卧槽!
蘋果先有軟體,然後新iPhone加入硬體支持,硬體服務於軟體,成為加分項,誰會拒絕換一部新iPhone呢?谷歌則是先有Tango硬體,後有軟體,硬體成了早期推廣的門檻。
總結:總體感覺,谷歌起點起高了,有技術就是這麼過於自信,好在,好在,被動的也好,主動的也罷,這次回到了正路,對開發者觸手可及,琴瑟和鳴的日子指日可待。蘋果的精明在於,你們先上,你們摸著石頭過河,我踩著你們過河,誰先過河誰贏。
僅以此吐槽一下過往一段並不順暢的經歷,祝兩家都好,工具越來越好使,內容越來越豐富,開發者越來越幸福。原文:http://www.jianshu.com/p/7fdf3d220f39不請自來,自從去年pokemon go火了之後,科技圈子裡關於AR的討論就越來越多,大伙兒一起把AR捧到浪尖風口。
先是今年6月蘋果發布AR開發平台給整個AR行業下一波猛料。
與此同時,「AR先行者」谷歌其實也一直在悄悄準備,就在前幾天,谷歌推出了一款開發工具包
ARcore直懟蘋果ARkit(來呀,who 怕 who)。
而且重要的是,這記回馬槍可是一紮一個準呀。
根據Google的描述,ARCore有三個基本功能:
首先是運動跟蹤
基於內部感測器和視頻素材
來估算手機的相對位置使用時可以將虛擬對象固定在一個位置並圍繞它移動
講人話就是↓↓
通過手機攝像頭就能感知物體的位置和姿態
並改變顯示的虛擬物的位置和大小
(如下圖)
其次是環境理解,名字起的很高大上,但具體實現的功能其實就是檢測平面。
能夠保證虛擬物體在呈現時位置相對合理,不會出現類似物體懸空,或者在斜面上仍然處於水平的姿態。
最後是光線預測,也是最驚艷的特點!
它能讓虛擬物品或角色投射產生陰影,適應周圍的環境,從而增加虛擬物體在現實世界裡的真實度
而從谷歌發布的Demo視頻里看,虛擬物體的影子,確實是根據光源形成了相對應方向的陰影。
而通過上面這些組成部分可以產生什麼互動?
——答案是簡直太好玩了!
比如,可以在桌面上擺放一群小小的"Android 吉祥物",當相機對準它們的臉部時,它們會朝你揮手。
又或者,如果你突然把燈熄滅,吉祥物會做出害怕的動作。
就在ARCore發布沒多久,谷歌旗下的開發者們就玩!瘋!了!
一堆程序員在Twitter發布創意短片,演示利用ARCore開發的內容。
比如:在Google Home智能音箱上畫一個小人,音樂響起,小人會站起來跳舞,而且音樂種類不同舞姿也不一樣。
目前程序員們發布的創意短片已經有幾十個,這些短片都整合在一個網站上,貼心的嘿嘿已經備好網址,如果你還想繼續過把癮,趕快戳鏈接上車吧:https://experiments.withgoogle.com/ar
也許小夥伴們想問——所以這對蘋果的衝擊是什麼?
其實早在 2014 年,谷歌就推出了自己的AR平台:ProjectTango,同時還發布了一款安卓機,不僅能夠實現基礎的AR功能,比如物體識別、目標跟隨等等,還囊括了人工智慧和機器學習。
後來怎樣了?——掛了
原因在於ProjectTango和原生的系統差異很大,一定要達到特定的硬體標準才能夠實現,比如下圖是一台手機需要的部分組件↓↓
而安卓與蘋果最大的一個特點是,蘋果是自己管控的生產鏈條。安卓卻是開放、碎片化的。
結果怎樣呢?估計大家都猜得到——眾多的OEM都因為設備太複雜、成本太高,放棄了!
而蘋果發布ARkit厲害的點在於並不需要任何硬體上的升級,2015年之後的手機型號都能支持。這不……就吊打穀歌ProjectTango了么
好,咱們說回谷歌送蘋果的「回馬槍」
根據官方的介紹:
ARCore目前能夠支持Google和三星
高端機型,如:Pixel、Pixel XL和S8、S8+同時也正在和華為、LG、華碩等主流廠商合作
目標是到今年冬天推出ARCore 1.0,讓 1 億人抓起安卓手機就能玩AR,這次是來硬碰硬的!
另外谷歌還在探索AR與視覺搜索的結合,比如打開攝像頭對準物體或者文本內容,就可以識別出是什麼物體、文字等這樣的視覺搜索工具結合。
比如可以通過搜索來識別物體,而增強現實可以提供動態的操作指示,而不是像以前一樣,鏈接到YouTube視頻或操作手冊。
GoogleLens
言歸正傳!不管谷歌和蘋果掐架如何,反正ARCore的出現可謂是意義非凡,這樣Android和iOS兩個平台,都可以有高質量、低成本的軟體方案了。
而隨著開發的成本下降,AR這項技術被普及的機會就越來越高,越來越多有趣的玩法也會隨之誕生我們一起期待吧~~~
另外如果你是如果你是對ARCore感興趣的開發者,可以戳:谷歌怒殺回馬槍,發布ARCore正面懟蘋果! 文章尾部有開發的攻略哦~
ARcore的功能和蘋果ARkit類似,通過單攝像頭實現了場景識別,對國內AR應用開發肯定是大大的好事,未來一段時間預計會有一大批AR案例上線。
不過ARcore還只是個開始,目前還只是支持幾款高端手機,明年開始,估計各晶元廠商將會從晶元層面為手機嵌入SLAM功能(有可能是通過雙目或TOF方案),到時候AR應用將會遍地開花
關於體驗ARCore Demo,據說Android 7.0系統的都可以嘗試下。但是除了官方正式支持的Google Pixel,Pixel XL,三星 Galaxy S8三款機型外,目前已知的似乎也只有Nexus 6p和一加5可以通過修改代碼來正常運行Demo。
不過,網上有人通過Magisk的一個module修改手機build.prop偽裝成Pixel XL也成功使用別的機型跑起ARCore Demo了,我用一加3T(OnePlus3T)試了下是可以的。相關步驟我總結了下,寫在博客里了,感興趣的同學可以試一下:
讓你的Android手機運行ARCore Demo
Supported Devices
ARCore is designed to work on a wide variety of qualified Android phones running N and later. During the SDK preview, ARCore supports the following devices:
- Google Pixel and Pixel XL
- Samsung Galaxy S8 (SM-G950U, SM-G950N, SM-G950FD, SM-G950FD, SM-G950W, SM-G950U1)
現在的ARcore只支持谷歌的Pixel和三星的S8,感到悲傷。
從android用戶的角度,繼蘋果發布arkit之後,arcore的發布終於讓android用戶也能用上AR了..
從蘋果的角度,蘋果也急需AR來增加新的賣點,在這裡我們可以看到評估獨霸高端市場在推廣AR的技術優勢,相對來說,Android還是處於碎片化的狀態,目前ARCORE只支持Google Pixel XL
or Samsung Galaxy S8....Galaxy S8又有了國內廠商沒有的賣點了。從高通的角度,也是好事。現在處理器性能過剩,急需AR等應用來消化,吃掉過剩的性能,高端處理器才有繼續研發的動力。
可以預見,蘋果,高通,intel,微軟,英偉達,Google,Facebook等,都會極力推動AR生態的擴
關於ARCore裡面的具體技術,陸續更新中.....
【問了不少行業人,可以看看他們是怎麼說的。】
我們先來回顧下谷歌是怎麼說的。
谷歌安卓工程副總裁 Dave Burke 在官方博客中寫道,安卓是目前世界上最大的移動端平台,超過 20 多億的設備搭載該平台。他們今天所發布的 SDk ARCore,將讓現有的和未來的安卓手機實現增強現實功能。
雷鋒網在《Google 正面迎戰蘋果,用 ARCore 阻擊 ARKit 》中詳細介紹了 ARCore 能實現的功能,主要有三個方面:運動跟蹤、環境理解和光線預測。谷歌專門展示了一段視頻,展示了這三個功能。用戶拿起手機可在桌面上事先劃定好一定的區域,然後將各種虛擬的卡通人像放置在該區域中。同時,將一頭虛擬大熊放在真實環境中,可以來回走動,甚至近距離觀察它。另外,當外部環境發生變化,如燈光變暗,這些虛擬人物也會出現相應的變化。
從視頻中,我們看到 AR 效果與蘋果 ARKit 的幾乎一樣。
那麼,ARCore 和 ARKit 的區別在哪?
Epic Games 的謝添敏告訴雷鋒網,技術上「目前看介紹感覺很像,具體可能要有所謂的橫向測評才能看到區別。」
一位業內人士表示,
谷歌文檔里為了保證追蹤效果,對 IMU 精度提了很高的要求,所以並不是所有 Android 7.0 以上系統的手機都能良好支持。在過往面市的設備上 iPhone 的 IMU (及相關演算法)比 Android 陣營要好很多。
從目前已經發出來的開發者測試視頻來看,ARCore 在已經支持的設備上追蹤性能不明顯比 ARKit 差,根據環境變化的實時光照調整也很好,但是猜測谷歌為了增強使用體驗,在初始化確定一個平面之後為了保證虛擬圖像穩定,會在一定範圍內鎖定這個平板的位置不變,只有在感測器數據發生較大變化時才改動,這樣會導致當追蹤不是特別精確的時候虛擬圖像可能突然大幅度抖動的情況。
雷鋒網此前看到 ARKit 開發的 Demo 開啟前,也需要設置固定的區域,但這位業內人士解釋說,「ARkit 會實時調整認定平面,所以在現有設備上漂移比較明顯。」
謝添敏也提到了目前設備效果不穩定的問題。他透露,
「蘋果雖然說 ARKit 能夠支持較早的一些 iPad、iPhone,但實際開發時,較早的硬體由於攝像頭精度還不是很高,ARKit 的應用效果也打折扣。當然這些還在目前的開發版本上。iOS 11 出來後實際優化了多少,都要等具體的消費者版本才能有定論。
ARCore 也是一樣的。雖然說老的設備能夠支持 ARCore 的特性,但能支持到什麼程度,用戶體驗是否可接受,都要再等一段時間才更清晰。」
另一個問題是,安卓能超越 iOS 成為最大的 AR 平台嗎?
儘管安卓平台的設備超過 20 多億,蘋果 iOS 設備數量也超過了 10 億台,但要實現 AR 功能,手機還要滿足一定的條件。
ARKit 現在僅支持搭載的蘋果 A9 和 A10 處理器的設備,這其中包括 iPhone 6 6s Plus、iPhone7 7 Plus、iPhone SE、iPad Pro (9.7、10.5和12.9)、iPad (9.7英寸)。
ARCore 目前支持 Pixel、三星 S8,系統要升級到Android 7.0 Nougat或最新的Android 8.0 Oreo。
從 2015 年 10 月 1 日(發布 iPhone 6s 6s Plus)至 2017 年 6 月 30 日,蘋果賣出了 3.81億部 iPhone,這還不包括其他 iOS 設備,以及即將推出的 iPhone 8 和其他新品。
然而,根據 6 月份 Google Play Stor 應用商店的統計數據顯示,Pixel Launcher 只有 100 萬的下載量,而這款 APP 只提供給 Pixel 和 Pixel XL 用戶使用的默認啟動器(default launcher),它預裝在Pixel手機上,可見 Piexl 的銷量並不是很高。
截止 8 月初,三星 S8 全球銷量達到 2000 萬台。目前,這兩款手機加起來的數量遠達不到谷歌所說的 1 億台目標。但是,谷歌也說了,正在與華為、華碩、LG 等手機廠商合作,希望等今年冬天 ARCore 的設備支持數能達到 1 億。
所以,蘋果最大的 AR 平台地位不是那麼容易超越的。
國內手機廠商會給 ARCore 多少支持呢?
在文章《蘋果 ARKit 憑什麼碾壓對手?》中,作者 Matt Miesnieks 提到 ARKit 能讓 AR 在手機上普及就在於:蘋果公司可以負擔得起將 VIO 演算法緊密耦合到感測器上,並花費很多時間來校準 VIO 系統,以減少計算空間位置時產生的誤差。這不單單是 SDK的問題,還有硬體的校準,通甲優博的創始人徐一丹在之前的採訪中也提到同樣的問題,他稱谷歌推出 ARCore 在他們的預料之內,但這僅僅是軟體層面,他們做的事是幫硬體廠商把 ARCore 的效果「調到最好」。
如前文所說,為了保證追蹤效果,谷歌對 IMU 精度提了很高的要求,但有業內人士表示,現在還沒有聽說國內手機廠商會不會因為 AR 買高端的 IMU,而且本身高性能元器件產能也不穩定。
謝添敏認為,
「跟手機廠商關係不大。ARCore 面向的是已經在市場上使用的手機硬體了,主要還是看內容的生產是否能產生足夠有意思的東西。當然如果手機硬體進一步發展也會推動這個技術變得更好用。」
不過,有業內人士稱,華為、小米已經開始相關的研發。小米 VR 產品總監馬傑思認為,「ARCore 最大的意義是安卓,不只是手機,而是包括了很多其他職能設備。」
還有一些 AR 眼鏡廠商表示 ARCore 是可以用到 AR 眼鏡中的。影創科技的創始人胡金鑫稱,「可能對晶元有些要求,目前公布的支持 ARCore 的兩款手機都是 835 平台。」他認為,ARCore 是個非常好的平台,推向市場對他們來說無形中增加了很多開發者和用戶資源,而且他們很快要推出的新品也將搭載驍龍 835。
聯想研究院的研發人員說,「這些 SDK 目前集成在手機、iPad 上相對流暢,要使用在眼鏡上還需要時間。」
總的來說,因為還沒有實際進行內容開發,開發者們對 ARCore 到底能達到什麼樣的效果還不確定,具體要等到硬體設備出來,才好與 ARKit 進行比較。同時 ARCore 之後除了支持符合條件的手機外,能否很好地支持其他安卓設備,甚至是 AR 眼鏡,也是值得關注的點。無論如何,雷鋒網(公眾號:雷鋒網)覺得 AR 離我們日常又近了一步,蘋果發布會也即將在 9 月 12 日舉辦,不知道 iPhone 8 還會帶來哪些驚喜。
推薦閱讀:
※未來的遊戲是傾向於完全虛擬現實比如 Oculus Rift 一類的,還是增強現實,比如 Google Glass 這種呢?
※增強現實(AR)和虛擬現實(VR)這兩個技術在未來哪個前景更好,為什麼?
※如何評價Intel的實感(realsense)技術?
※数码暴龙(宝贝)是否会像宠物小精灵一样推出口袋妖怪go这样的ar虚拟游戏?
※pokemon go在中國發布之後會有哪些有趣的事?