本文来自

《计算机应用文摘》

2017年20期

24期

23期

22期

21期

20期

19期

18期

17期

16期

15期

14期

13期

12期

11期

10期

09期

08期

07期

06期

05期

04期

03期

02期

01期

写了 186 篇文章,被 2 人关注,获得了 2 个喜欢

对比ARKit

Google的ARCore有何不同?

文/ ccc 图/ ccc

苹果的ARKit发布之后,市场对AR的热情再次被点燃。就在苹果沾沾自喜、Android开发者表示强烈不满时,Google也在前不久发布了增强现实方案——ARCore。

 

Google的目的很明确,连名字都很相似——就是冲着ARKit去的。作为AR技术的先驱,Google出手不凡,一次性在Github上放出三个SDK,涵盖Android原生、Unity3D和Unreal平台。虽然没有像上次的SLAM方案中的Cartographer那样直接开源,但是对应用开发者,无论是手机端,还是嵌入式设备都已经算非常友好的了。

 

在Google公布的代码中,我们可以看出ARCore的核心功能有三个:相机姿态估计、环境感知以及光源感知(Light Estimation)。前两个功能,研究过SFM和SLAM的同学应该不陌生了——前者通过单目相机读取图像,通过特征的匹配估计相机的运动轨迹。但是ARCore极有可能用的不是常见的特征匹配法。

 

至于环境感知功能,名字听起来很高大上,但具体实现的功能其实就是检测平面。这样做的好处就是在现实环境中放置虚拟物体的时候位置相对合理,不会出现类似物体悬空,或者在斜面上仍然处于水平的姿态。

 

第三个光源感知功能,按照Google官方的说法是,ARCore能感知现实世界的光源位置,使虚拟物体能够形成相应方位的影子,从而增加虚拟物体在现实世界里的真实度。这个功能堪称惊艳!从Google发布的Demo视频里看,虚拟物体的影子确实是根据光源形成了相对应方向的影子。

 

ARCore的所谓光源感知功能估计就是基于像素灰度变化的计算。这也就是为什么不同的光源强度下,形成的影子的方向效果有好有差。ARCore的开发者在设计时使了一个小聪明,在位姿估计的同时顺水推舟地发布一个光源感知功能,一石二鸟,使得ARCore的形象一下子就盖过了ARKit。

 

此外,ARCore的SDK里还有点云(在逆向工程中通过测量仪器得到的产品外观表面的点数据集合)功能,但由于Unity3D的Demo存在Bug,无法看到具体形成的点云是半稠密还是稠密的。不过,无论是半稠密还是稠密点云的构建,这都是ARKit的特征法无法实现的。

 

至于ARCore整体的工程是SLAM(即时定位与地图构建)还是VIO(视觉惯性里程计),笔者个人的偏向还是VIO。就如ARKit一样,ARCore的使用场景更偏向于手机端,在场景不大的情况下,VIO作为定位方案已经绰绰有余,而且更加节省计算资源。无论如何,ARCore推出,补全了Android市场在AR上的空白。基于Android系统的市场占有率,苹果还敢说自己是最大的AR平台吗?

登录注册 后评论。
n
Copyright © 2016 vantk.com 远望资讯 版权声明. 经营许可证:渝B2-20030004-10

渝公网安备 50019002500898号