本篇文章6030字,读完约15分钟
雷锋。这篇文章的作者是马特·米斯尼克,他目前是6d.ai的首席执行官,也是super ventures的合伙人。此前,他发表了几篇讨论arkit相关问题的文章。谷歌推出arcore后,在业界引起了激烈的讨论。马特的最新博文对arcore进行了详细分析。本文转自凉风站,由雷Feng.com(公开号:雷锋网)校对补充。
arcore只是探戈的低端版本吗?
一位开发人员开玩笑说:“我认为arcore sdk就像他们随随便便地更改了tango sdk的名称,注释掉了深度相机的代码,并更改了一个编译标识。”应该不止这些,但不要太多。例如,支持arcore的新网络浏览器对开发人员很友好,但它们属于独立的核心SdK。
很多人可能想知道为什么谷歌在12个月前一切就绪的时候没有发布tango vio(没有深度相机),但是现在它发布了。
无论如何,这都是好消息,这意味着arcore已经非常成熟,并且已经经历了足够的软件测试(尽管苹果收购了拥有技术储备的metaio和flyby,但arcore至少比arkit多两年的实际测试);此外,谷歌已经为tango安排了一个全面的功能蓝图,其中并非所有功能都依赖于3d深度相机,现在arcore充分发挥了这些功能。
不管名字是什么,如果你在一部可以运行arcore的普通智能手机上增加一个深度相机,你就会有一部探戈手机。现在谷歌有了一个更简单的方法,通过oem旗舰机器来推广sdk,arcore将与手机一起推广。
没有人会因为手机有ar功能而放弃使用高质量的安卓手机,就像没有人会因为windows手机有ar功能而放弃使用任何安卓手机一样。因此,微软直接进入了耳机领域。现在人们肯定会购买手机,而arcore终于实现了免费。
起初,探戈专注于追踪手机在3d 空.之间的移动起初,探戈主要用于室内测绘。后来,vr/ar成为最流行的使用场景。
说到命名,这很有趣。探戈总是被描述为“一部知道自己位置的手机”。人们永远不会被探戈的这种描述所打动。对我来说,当一些东西与谷歌地图密切相关时,手机就会被定位(但我不知道谷歌是否这么认为)。有了新名字arcore,一切都与ar有关。
你说的校准怎么样?这是有趣的事情...我之前说过,苹果arkit在三种校准方法中非常稳定:
摄像机的光学几何校正(简单)
摄像机的光度校准(困难)
Imu误差消除(非常困难)
此外,传感器的时钟同步更为重要。
校准不是黑白问题。为了使用例更加稳定,需要统计数据和更多的迭代来减少错误。系统校准越好,位置估计误差出现的可能性就越小。
就像苹果的arkit一样,谷歌做了以下事情:
首先,谷歌对支持设备的选择非常谨慎。起初,只有三星s8和pixel。谷歌工程师已经优化了这些平台上的传感器校准,以适应白日梦的由内向外跟踪(从三个自由度到六个自由度)。
不久前,谷歌工程师在韩国校准和调整了三星传感器,希望下一代手机能够支持白日梦。这就是为什么我们有两个设备,相机和imu,它们经过校准并符合时钟同步。
谷歌在今年早些时候的i/o会议上宣布,由内向外的6自由度跟踪支持白日梦
今年,谷歌为探戈和白日梦sdk的整合做了大量工作。据说这项工作将在11月份完成,所以许多基础工作应该在8月底完成,这意味着tango/arcore vio系统可以利用白日梦传感器集成的工作成果。
最后,校准的真正好处可以从系统性能中看出。Arkit和arcore可以在用户发现错误之前很好地跟踪错误。在ar应用中,内容目前主要是可见的,不像室内导航,它有长期和长距离的端到端测试。
因此,从ar应用的角度来看,很难检测到校准引起的差异。然而,开发人员正在扩大sdk应用的范围,谷歌预计将在工厂进行更密切的校准,并推出一批新一代设备。
振动器在工厂里被用来校准加速度计,所以ar软件栈不必担心太多的误差。
我曾经和一家最大的imu原始设备制造商谈过。为了节省成本,他们的智能惯性测量单元在工厂里被校准到一个单一的温度。这意味着在特定温度下,imu硬件的误差被调整到最小。但是当手机热的时候,imu就不那么精确了。虽然这是一个非常常见的现象,但对于vio来说,一旦设备变热,校准结果就不可信,算法结果就会漂移。当然,oem也可以根据客户要求在不同温度下校准传感器。
谷歌在这方面无法与苹果相比。虽然这只是一个小错误,但它意味着谷歌arcore vio代码会随着不同的设备而改变。苹果软件和硬件的垂直整合帮助它更快地应对这些挑战,而安卓需要过滤整个生态系统。
照明问题
Arcore和arkit提供了场景中的实时照明估计,因此开发人员可以快速调整模拟照明以匹配真实世界(并可能同时触发动画角色)。
Arkit和arcore可以简单地估计场景光线,不管是真实世界的环境光还是强光。Arkit为开发人员提供亮度和色温选项,而arcore提供单像素亮度值(android studio api)或着色器(unity api)。这两种方法在早期的演示中有相似的结果,但是谷歌的演示看起来更好,可能是因为开发者更熟悉探戈。
然而,谷歌在今年的i/o会议上表示,在现实世界光照下调整虚拟阴影的功能将很快与开发者见面。这是一个很大的进步,将使ar更加现实。
地图构建的映射,即slam中的“m”,也称为地图构建,是arcore相对于arkit的明显优势之一。
这意味着3d现实世界的环境信息可以存储在存储器中,以便跟踪器(vio系统的重要组成部分)定位设备。设备可以知道它在环境中的位置。为了帮助人们理解,例如,把你的眼睛蒙在一个陌生城市的中心,只给你一张地图,你就可以通过地图知道你的位置。
slam映射的最简单形式是一些离散的3d点云数据,它们表示光学特征点(如桌角)的位置。这些数据中还隐藏了一些元数据,这些元数据通过特征点在多个帧中出现在相同位置的次数来显示特征点的可信度(例如,狗四处走动,可信度非常低,因为每张照片中捕获的结果不同)。
有些图形包括“关键帧”,即每隔几秒钟存储一帧视频或照片,这有助于跟踪器更好地将现实世界与图形匹配起来。此外,一些图形使用密集的点云,这是更可靠的,但需要图形处理器和更多的内存。arcore和arkit都使用离散点的云图像(可能没有关键帧)。
离散点的云图如右上角所示。左上图显示了点云与真实世界的匹配情况(颜色代表点的可信度)。左下方的图片是原始图像,右下方的图片是强度图,可以用于各种slam系统(但不能用于arkit或arcore)。
那么这是如何工作的呢?当您加载arcore/arkit应用程序时,追踪器将检测之前是否有加载的地图,如果没有,将通过立体计算定制新的地图,也就是说,从相机角度看,我们有一个小比例的3d地图。当你开始四处移动时,相机会捕捉到一张新的图片,更多的3d点云被添加到地图上,地图变得越来越大。
如果地图变得太大而无法控制,跟踪将变得非常糟糕,跟踪将会漂移。然而,这不再是一个大问题。控制地图是slam研究的一部分(包括深度学习和cnn人工智能)。
Arkit在创建地图时使用“滑动窗口”,这意味着它只在地图中保存最新的时间和距离数据,旧数据将被自动忽略,而arcore将管理更大的地图,这意味着系统将更加稳定。
因此,使用arcore,即使你迷失了方向,你也能很好地恢复。
arcore和arkit都采用了一个叫做“锚”的概念,这让我们觉得地图似乎覆盖了更大的物理区域。我第一次在全息透镜上看到这个概念。在正常情况下,系统将完全控制地图,用户或应用程序开发人员不知道这一点。定位点让开发者告诉系统“记住周围的地图,不要扔掉它。”
我认为锚点的物理范围大约是1平方米,这是我自己的猜测,根据系统看到的光学特性,它可能会有很大的变化。但是当用户重新定位物理位置时,该范围足以让系统重新定位。
每当内容被放置在一个物理位置时,开发人员通常会放置一个锚点。如果没有锚点,当用户来回走动时,围绕物理位置(呈现内容的位置)构建的地图将会丢失,内容也会丢失。添加锚点后,内容将永远固定在那里,不能排除当系统由于累积漂移而需要纠正和重新定位时,不良的用户体验会影响内容。
构建地图的目的是通过两种方式帮助跟踪:
首先,当我来回移动手机时,地图从头开始构建,当我的手机向后移动时,可以实时检测到新的特征点。
在位置计算中,采集当前和先前场景的特征点,使得跟踪更加稳定。
其次,建立一个地图可以帮助定位和跟踪或恢复跟踪。有时你会挡住相机,手机会掉下来,或者移动太快,或者会出现不稳定因素,相机看到的场景与最新更新的地图不匹配。
这就是我们所说的“跟踪损失”。在过去的几年里,带头试图呕吐这个问题的开发商一天1000次。在这种情况下,系统可以做两件事:
重置所有校准系统并重启!这完全是由测距系统完成的(没有地图)。你会看到所有的内容“跳转”到新的位置,然后修复它。用户体验不好。
另一件事是,系统可以使用它检测到的3d特征,然后搜索整个地图,尝试匹配,并更新正确的虚拟位置。如果您一直在无所事事的情况下使用该应用程序,您会发现,当显示虚拟内容时,跟踪会不断丢失,但在恢复后,跟踪又会恢复正常。
这里还有两个问题。
首先,随着地图构建得越来越大,搜索过程将会越来越耗时,过程将会越来越密集,这意味着搜索将会一遍又一遍地开始;
其次,移动电话的当前位置永远不会与移动电话过去的位置精确匹配,因此这也增加了地图搜索的难度,并且重新定位需要时间和计算。基本上,即使你建立了一个地图,如果你移动得离地图太远,应用程序就不能被定位,系统需要被重置和重启。
图片中的每一条线都是slam地图中的一条街道。在世界任何地方,使用移动设备实现ar功能都会遇到slam地图构建问题。请记住,虽然有机器可读的地图和数据结构,但它们不是人们可以使用的那种3d街景地图(这也是必要的)。
请注意,对于移动ar,我提到的“大”地图大致是指可以覆盖大房间或小公寓的物理区域的地图。
同时,这也意味着对于户外ar,我们必须考虑一种新的方法来制作地图。
强烈地重新定位地图是一个非常非常困难的问题,它还没有在消费者体验的层面上得到解决。如果有人声称他们可以提供多人ar游戏或具有强大固定性的ar内容,他们的用户体验将受到其他手机(如第二个玩家的手机)重新定位性能的限制,无论是第一个玩家创建的地图还是从云中下载的地图。
你会发现2号选手必须站得离2号选手很近,而且双方握手机的姿势几乎一样。然而,玩家2或其他玩家只想坐在你对面的沙发上,打开你的手机,马上看到你看到的。或者,站在几米之外的空,你可以看到ar含量是“固定的”。
(这是探戈实验的视频效果:youtube/watch?v=yulyq5p3heo)
目前,有一些应用程序可以灵活地实现多人游戏,例如使用标记点,或者从应用程序的开始位置为2号玩家编写代码。从技术上讲,这些是可以运行的,但是你必须一直向用户解释如何操作,用户体验可能会一团糟。因此,没有“简单操作”的魔力。
当然,如果有人有不同的解决方案,我想问一下。然而,据我所知,目前还不能实现稳定性强的多人重新定位,也没有发表研究成果。就像维欧的问题一样,只有少数人可以解决它。我只知道一个未发布的系统可以支持它,它将在2018年初推出。
没有人能想到阿科尔的优势。arcore在arkit发布后有如此快的反应时间。与arkit相比,arcore实际上有许多优势:
功能方面:有一些arkit没有提到的功能优势
开发者经验:arcore已经积累了丰富的探戈和白日梦的开发者经验,比arkit在短短几个月内成熟多了。
原始设备制造商:有足够的原始设备制造商提供强有力的支持
宣传:一部相对温暖人心的宣传短片
Oem制造商仍持谨慎态度。我觉得arcore推出的很匆忙,比如,没有arcore的标志。在前一篇文章中,我谈到了oem对tango手机的谨慎。Arcore消除了相机堆栈硬件的商业化和tango面临的材料成本问题。谷歌似乎已经考虑了一些战略控制,但老实说,我觉得一切都太快了,这些东西还没有真正实施。
谷歌坚称arcore是谷歌移动服务的一部分。如果ar真的成为“下一个平台”,这是一个重新划分生态系统力量的机会。Arcore不仅仅是一个图形用户界面。所有初创企业都应该考虑slam。很难说ar是否会脱离gms。
或许原始设备制造商寻找arcore替代品的最大原因是他们巨大的市场(如中国)不欢迎转基因产品。
通用汽车最大的阻力在于它无法进入中国市场,而中国市场是原始设备制造商最大的市场。制造商更喜欢可以在世界各地运行的ar软件解决方案。
开发者现在可以用arcore开发了吗?如果你喜欢安卓,并且你有三星s8或像素,不要犹豫直接开发它。如果你喜欢iphone,不要担心是否需要切换到arcore。
开发人员应该注意的是,创建一个人们关心的ar应用程序面临着巨大的挑战。与学习如何在arkit或arcore上创建内容相比,创建什么样的内容需要更多的努力。
Arkit/arcore sdk仍然是1.0版,它的功能非常基本(vio、平面检测、基本照明),它将获得更多功能(3d场景理解、遮挡、多人联网、内容固定等)。)在未来几年。对于开发者和消费者来说,这将是一个持续的学习过程。所以现在我们只需要坚持正确的道路。
不要过多考虑使用哪个平台,多想想可以创建什么样的增强现实内容
arcore比arkit好吗?作为技术解决方案,他们的能力非常接近。Arkit在集成和跟踪方面具有一定的技术优势;Arcore在制图和重新定位方面有一些优势。然而,这两个优势只有专业的计算机视觉工程师才能看到。
我想用这张图片来解释设计师的价值
苹果拥有明显的市场优势和庞大的设备基础,可以立即升级到最新的ios系统,包括arkit。苹果用户通常更愿意花钱,所以从中期来看,ar应用应该能够在arkit上获得更好的利润。
安卓的优势在于其规模,但安卓生态系统至少需要12个月的时间来整合所有部分,并让arcore在大多数新设备中得到硬件支持。(时间可能会更长。通常,原始设备制造商将在2018年10月决定产品。(
arcore研发的基础来自tango,其中大部分已经过用户/市场测试。现在基础已经到位,看看这些系统在接下来的12-24个月里将如何快速发展将会很有趣。
我相信开发者创作的内容会制约ar应用市场的普及速度。技术足以创造消费品。
阿奇特和阿科尔,哪个更好?主要取决于开发者的个人喜好和目标。这两种系统都有各自的优缺点,但重要的是它们都可以为消费者提供足够的消费体验。开发者应该敞开心扉,享受这个过程。
viamedium
雷锋原创文章。严禁擅自转载。详情请参考转载说明。
标题:大神解读:谷歌 ARCore 就是低配版 Tango,它比苹果 ARKit 好在哪?
地址:http://www.hcsbodzyz.com/hcxw/10265.html