在2018年构建增强现实应用程序:技术不成熟

我使用ARKit 2.0和Swift开发适用于iOS的AR应用程序。 第1部分中, 我探讨了在2018年开发增强现实应用程序的实际问题。这就是我对即将到来的移动AR未来的想法。

上周,我讨论了2018年开发,测试和使用基于iOS和ARKit构建的AR应用程序的一些日常基本问题。这些问题范围很广(您不能坐下来测试AR应用程序,也不能在黑暗中,也没有对几何体的某种记忆)(对于共享的AR体验进行测试是复杂而笨拙的)。

这些实际问题可能会在产品生命周期的不同阶段导致重大问题,但其中许多问题与支持该早期版本的ARKit和iOS上的移动增强现实的技术有着内在的联系。 当Apple在1-5年内向支持ARKit的下一代传感器和基础技术转移时,其中的一些故障(无法在弱光下工作以及必须扫描区域进行必要的移动)可能会消失。

但是我遇到了更多有趣的问题,这些问题说明了当前状态下增强现实开发的粗糙边缘。 这些缺点并不是底层硬件的故障,而是iOS AR工具和开发的新影响。 我预计这些缺陷和差距将在未来1-2年内由Apple通过软件和ARKit 3.0 / 4.0的发布或由第三方工具,库和产品解决:

低保真持久性

一般来说,ARKit 1.0的明显遗漏之一是,一旦关闭应用程序,放置,扫描或创建的所有AR对象都将消失。 AR应用程序只是一个会话事务。 ARKit 2.0引入了Persistent AR Experiences,这意味着您现在可以保存花费十分钟创建的客厅的新布局和设计,并在下个月重新打开该确切的设计。 持久性似乎应该是桌面赌注,并且一开始就存在,这样人们就不会失去进度或位置,但这是我们使用移动AR软件的早期程度的另一个指标。

但是,即使在持久性方面使用Apple的第一个刺探,也有许多不足之处。 ARKit的核心功能是扫描您周围的世界并找到飞机。 这些平面可以是地面,桌子,台面或墙壁。 一旦识别出这些平面,ARKit便可以将3D对象放置在这些平面上或3D空间中,或AR应用程序功能所需要的任何其他功能。

然后,理想情况下,持久性将确切地记住这些平面的位置,因此当您在餐桌中间放置一个虚拟花瓶时,关闭该应用程序,然后重新打开该应用程序,该花瓶正好位于您离开的位置。 花朵没有漂浮在桌子上方6英寸处,并且距离桌子中心的偏移量也不是3英寸:这正是您将其留在了那里。

实际上这还没有发生。 我已经发布了一些演示代码,这些代码可以可视化检测到的平面,然后允许您在同一会话中重新加载场景,以比较持久性的准确性,也可以在此处演示该演示的视频演示。 该应用程序只是一个技术演示,旨在突出显示一般的平面检测和内置持久性的准确性(或缺乏准确性)。 虽然持久性精度对于在建筑物内进行寻径来说可能不错(例如,“遵循杂货店地板上的AR箭头以查找Mountain Dew”或“遵循路径以在活动空间中找到特定的会议室”),测试它不够精确,无法持久保存我家的3D表示。 扫描并重新加载房间后,有时甚至只是绕圈走了几圈而没有重新加载,有时虚拟墙将被脚踩掉,或者虚拟架子会从实际架子的实际位置偏移6英寸。 这不是在应用程序中使用持久性的决定性因素,但在设计产品及其功能时需要考虑到这一重大限制。

我怀疑在接下来的一两年内,持久性准确性将大大提高。 我遇到了一些初创公司,它们使用在当前硬件上运行的自定义软件来扫描和持久保存AR对象,其保真度要比ARKit高得多,因此Apple和Google在改进软件本身或招募有能力的人方面都不会落后。 能够准确地将对象或位置准确地扫描并重新加载到最接近的英寸(然后是毫米)的能力,并不会给普通公众留下深刻的印象,但是基于这些进步而构建的应用程序,产品和公司却可以。

缺乏标准AR UI元素

构建只存在于您的手机上且无需与服务器对话的应用程序的准系统框架就很容易,它无需从社交网络或其他任何地方获取图片。 如果您想创建2019年全球最大的独立计时器应用程序或非云同步日记应用程序,则可以立即开始学习iOS开发并在下周准备原型。 制作简单应用程序如此容易的一个重要原因是,Apple提供了基本的UI构建块来拼凑您的产品。

Apple提供了基础,因此您可以在1秒钟内向应用程序添加按钮。 或将以有组织的方式显示一些数据的表。 它们还提供了一些模块,可轻松实现从相机胶卷中检索图片,在地图上发现自己或在社交网络中发布内容的功能。 并非所有这些构建块都在2008年App Store的第一天就出现了-随着移动平台的成熟,这些年来已经添加了这些构建块。

虽然ARKit提供了快速访问惊人技术的途径,但是开发人员现在只能使用的是该基本技术,而在此之上几乎没有构建块。 苹果公司的人机界面指南针对所有不同类型的UI / UX及其相应的“执行”和“不执行”提供了76页的指南。 增强现实是这些指南中的单个页面。 如果AR将成为一种新的交互模式和一个能够孕育整个公司,行业和我们的日常生活变化的新平台(我想以上就是所有这些),那么获取一些核心的AR UI元素将是一个很好的选择。加快步伐的第一步。 这样的元素将提供围绕在AR中呈现数据或文本的最佳方法,处理3D对象旋转的最佳方法,或将绘图从手机屏幕上的手指轨迹转换为3D平面的最佳方法的清晰度。被ARKit检测到。 我认为在未来的1-2年内将采取一些暂定步骤来提供这些UI / UX元素,并且随着更多开发人员在此核心基础上进行开发,这样做将释放出焕发青春的AR应用程序。

我认为Apple和Google不会在这里拖延脚步。 如果我不得不猜测,我认为他们是在内部构建事物,在内部进行测试,并且像任何技术巨头一样,他们正在观察其平台上数以百万计的开发人员在做什么,以便将一些随机的特定部分装上床。应用程序的AR UX,并声明它是未来所有应用程序中处理____的“最佳”批准方式。 没有一个研发团队像数百万开发人员的生态系统那样为您提供专有的使用数据。

严重受限的共享AR体验

这很简单。 当前,使用Apple推荐的工具包,这些超酷的共享AR体验最多只能与5个其他人共享。 除了很少的大型活动,节日和会议之外,与其他5个人共享基于手机的AR体验的能力是否足够? 当然。 但是,当我们不再通过智能手机的屏幕查看增强现实体验,而以某种更自然的方式浏览其他设备时,这是不够的。

但我认为这掩盖了一个问题。 虽然通常最多只能允许6个人进入同一共享的AR世界/体验(特别是因为该限制还要求所有6个人位于同一位置),但对于100个人来说,这真是太棒了实时一起进行AR游戏。 无论该游戏板是由同一空间中的一百个人共享还是遍布全球的一百个玩家,大规模多人共享AR体验的前景都是巨大的。

我不认为要让数百名玩家在同一块AR板上看到对方是一个容易解决的问题,但我认为可以使用现有的技术后端和基础结构来克服这一难题。 的确,构建这样的游戏并不是最有意义的事情,但这种体验会将增强现实功能暴露给成千上万的人。 另外…那真的很棒。

跟踪图像工具包

跟踪的图像允许AR应用程序识别2D艺术品,照片,包装,海报,图形,广告牌或任何类型的图像,并在检测到特定图像时启动AR体验。 这可能需要将汽车驶出的动画3D模型贴在建筑物的侧面上。 或者可能是Harry-Potter风格的运动图片,用视频替换了静态照片(演示代码在此处)。 或者它可能是真实的广告拦截器,它用您要查看的内容替换了广告牌。

如果您正在开展市场营销活动,则可以轻松访问启动AR体验的图像。 但是,如果您要根据您在现实世界中拍摄的照片来创建自定义的跟踪图像行为,或者您是学生在利用房屋周围的事物的图片时弄巧成拙,那么您的图像就无法在室内使用了。无需任何准备的AR应用。 最重要的是,需要消除透视失真以生成完美的矩形图像(这对于功能正常的应用程序是最好的)。 在创建跟踪的图像应用时,拍摄矩形对象的图片(例如,当您在其下方50英尺和右侧50英尺时拍摄100英尺宽的广告牌的图片)产生的梯形几何形状不是理想的选择。

我看了看,在一个旧的,未维护的Mac应用程序(评论不佳)之外,该应用程序消除了透视失真,没有其他选择。 在测试该技术时,我将图像转储到Gimp中并对其进行处理,直到它们“看起来正确”为止。我希望有人在图形处理方面有更多的兴趣和专业知识,创建一个GitHub库或简单的产品来轻松消除图像透视失真。 。


上面强调的四个缺点与第1部分中探讨的AR开发中的“ duh”差异不同,而与移动AR的早期发展有关。 这些事情会变得更好-很快。 有些将在ARKit或ARCore的下一版本中得到解决,而另一些将由第三方解决并被Apple / Google立即收购(或取消)。 关于这一点,在第3部分中,我将介绍一些我遇到的AR开发生态系统机会,其中包括一些可能是初创公司围绕其构建产品的主要市场。

在此处查看第3部分。