独家 | 深度技术剖析谷歌ARCore:比苹果ARKit还厉害?

2024-11-06上海AR开发专家

  • 昨日,谷歌突然重磅发布了属于安卓系统的AR SDK——
    ARCore
    ,并号称将要安装到一亿台安卓设备上,目前三星S8和谷歌自家的手机Pixel已经都获得了支持。这一步,被普遍解读为对
    苹果
    六月份发布的
    ARKit
    的正面回应。
    苹果在移动端AR上来势汹汹,ARKit一发布就刷了科技圈的屏,涌现出无数的开发者demo。相比之下,谷歌此前推出的需要TOF深度传感器使用的Tango平台,一下子似乎被拍死在了沙滩上,乏人问津。但如今,谷歌的ARCore不需要再仰仗TOF,而是和ARKit类似,直接使用手机的单目RGB摄像头,加上内部的IMU就能实现AR。这让不少人安卓开发者为之兴奋。
    可以想象,两大移动互联网领域的超巨头在不远的未来,基于手机端AR必有一战。那么,ARCore底层技术的实现原理为何?是否有谷歌说得那么神?相比ARKit又有何异同和优劣势?
    青亭网第一时间联系了专注于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平台
    吗?

关于AR

卓越的技术,一流的团队,为您打造专家级AR产品。
Test your infrastructure

什么是AR?

AR(Augmented Reality),即增强现实技术能将虚拟信息(图片,视频, 音频等)融入现实世界,让现实世界更加多元、丰富,为人们带来更加生动有 趣的感官体验。简单来说AR技术给人们带来的是一种信息的增强体验,它也 将成为一种“更新奇、更易传播”的新型信息传递方式。

AR的趋势

在信息技术化的时代趋势下,AR将以一种新型娱乐及信息交互方式融入人们 的生活,而对于企业来说,AR产品的广泛推广及运用也将是一项不可错失的 绝佳商机。

Test your infrastructure

AR运用的困惑

AR技术备受瞩目,然后实际运用上却让人望而止步。
成本上 往往单制作一个AR形式的内容就得花费上万元, 只有高预算的大企业或广告商才能出手
技术上 AR技术总给人一种触不可及的印象,导入AR技术 是否需要高度技术支持。
企划上 AR充满娱乐性,但是好玩之外,如何将AR良性结 合商务是难题。

选择迅速AR的八大优势

迅速AR始终以满足顾客为己任,成就AR领先品牌。

经典案例展示

我们是AR应用的领军者,专注AR技术研究与开发。

新闻动态 · 与日俱进

我们诚心邀您分享我们的成长历程。
更多动态 >

合作伙伴

整合全球产业链资源,服务超过7亿用户