用户体验:购物与付款购物者可以通过拿走开放式货架上的商品并走出商店来购买和付款。购物的体验就是这样的简单。因此,Amazon Go 的出现并非是炫技,而是出于解决真实存在的购物中排队、等候结账这个真实的问题。
Amazon Go 的技术复杂性
在一段广为流传的 Amazon Go 宣传视频中,顾客进店扫码-取物-出门,一气呵成。简单到很多人第一次去都会有一种隐隐的“我是不是在偷东西”的质疑。但细细想来,被这个名为 “Just Walk Out” 技术简化的只是商品价格的手动或自动的复核过程。而实现它看起来我们只需知道哪些亚马逊账户在商店内购物,哪些商品被拿走。这样我们就可以在顾客完成购物时向其收取费用了。够简单,但又是什么使这个过程变复杂的?
设想一下,如果我们来解决这个问题,或许你会从这个场景出发:一个人在商店,悠闲地闲逛,随意拿起一件商品,看起来我们只需处理这样的场景即可。然而,现实情况更像这样:拥挤的人群,人们在购物,孩子们四处奔跑,婴儿车上的婴儿还在熟睡。现实且自然的购物行为就是人们并不总是拿上商品然后离开 — 他们往往挑选一个商品,看看它,然后把它放回货架上;或者有时他们把它放回另一个错误的货架之上。相信你已经在脑海里想象出来这件事的复杂性了。在亚马逊解决这个问题的方案被称作 “Just Walk Out” 。这个方案体现了最新的工程技术的进步,特别是在复杂的计算机视觉、传感器融合和深度学习方面。
让我们先从方案的架构说起。我们将这个看似复杂的框架分成几个部分。
“Just Walk Out” 技术框架
图中顶部代表了店铺中部署的设备 ,这些设备包括了定制的摄像头以及用于商品销售的重力传感器。这些摄像头实时捕获需要进行算法处理的视频,算法运行在 Amazon Web Services 中。在 Amazon Go 商店中捕获这些视频并将其发送到云中处理,统称为 “流媒体服务” 。
然后是核心的 “Just Walk Out” 技术。这可以说是整个 Amazon Go 无人商店的大脑。这是构建在深度学习算法方面最重要的技术部分,其目的是解决 “谁拿了什么” 的问题。与传统商店不同,在这里没有收银柜台。但是,仍然需要确认顾客的支付工具(信用卡),在顾客离开商店后,就可以使用该支付工具向他们收取费用。为此建立了一种全新的体验,让顾客使用 Amazon Go 的移动应用进入商店,并将他们的 Amazon 帐户和存储的付款方式相关联。我们统称这些为 “入口和出口” 服务,他们负责管理客户会话和相关付款方式。 现在我们把所有这一切集成到一起。我们将由 “Just Walk Out ” 技术负责的购物活动与 “入口/出口” 服务管理的客户管理相关联,最后生成客户购物车。一旦顾客离开商店,就会向他们发送收据,并使用他们选择的付款方式进行扣款。 正如我前面提到的,流媒体服务负责将视频从商店中运行的摄像头传输到 Amazon Web Services 中。为了使算法发挥作用,就需要在客户挑选或放置商品时可靠地捕捉视频图像以实现真实场景。当然,商店中部署有很多摄像头。因此需要一组云服务器以及一种在摄像机和服务器之间传输的方法。而在现实世界中,事情并不总是顺利运行,所以需要有容错能力。因此,需要有检测摄像头故障 、网络延迟、和服务器故障的系统 ,并且能够有效地处理这些故障。一旦将视频传入云端,就需要一种使用这些视频数据的方法,一种使它们可用于算法进行处理的方法。因此,一套服务负责存储和索引这些视频,它们提供了视频检索的接口,这些接口由视频处理应用所使用。就是这样。这些高可用、高吞吐量的服务集群们提供了基础架构,在此基础架构上构建了 “Just Walk Out” 技术。可以说缺少了云计算 “Just Walk Out” 的可用性以及容错能力就无从谈起了。
挑战与细节
说到这里您大概已经有了一个整体印象。再让我们再回头看看入场体验。顾客打开 Amazon Go 移动应用,扫描主屏幕上的二维码,然后进入商店。
对于 “Just Walk Out” 技术来说简直可以用来编写一本计算机视觉的教科书,因为它包含了对象识别、人员检测、姿势预估、活动分析,传感器融合以及校准等一系列的应用算法。最重要的是,这些算法不仅必须像大多数最先的算法所显示的那样有较高的准确率,还必须产生准确的购物的收据。下面让我们深入了解 “Just Walk Out” 技术的一些组件,就是这些组件解决了 “谁拿了什么” 的难题。让我们从 “谁” 这个部分开始,其中包含三个主要模块、定位器、链接器和复杂状态解析器。
大多数人想当然会认为只需要在货架上购物时找到顾客就可以满足需要。但是,这种片段的识别处理并不能提供所需的准确性。事实上,这个场景中需要的是顾客从店铺入口到出口的全程定位。当只有几个人在商店里时解决问题很简单。但是,当有许多人彼此接近时这个问题就变得极具挑战性。人群会导致顾客彼此遮挡,有时候他们甚至看起来很相似。Amazon Go 店铺里布置的每个摄像头都会产生一个 3D 点云。基于每个摄像头的校准参数,将这些参数聚合为一个全局的表示,并提取出移动的对象。并非所有的移动物体对应的都是顾客,还可能是购物篮、推车以及婴儿车等。系统中的人员定位器查看分段的图像数据,并决定它是某人还是另一种对象。然后,将人员在一帧中的位置链接到下一帧。为每个顾客的数据分配一个标签。 链接器的作用是将标签从第一帧保留到最后一帧。这样我们就可以看到顾客在店铺中的轨迹,例如 1H8,他正走向准备店铺的食品区域。
“Just Walk Out” 在技术方面的一个显著的特点是结合使用计算机视觉、传感器融合和深度学习来完成跟踪个人以及他们拾取或放下的物体的任务。具体来说,系统推断出在拥挤场景中进行关节运动分析的姿势。换句话说,通过不间断地分析视频流,以建立每个顾客在商店中的位置和姿势的模型;每个人的四肢和手处于什么位置,以及它们如何在空间中移动。这涉及将人体及其各个关节建模到可行位置。当图片中只有一个人时,这已经足够困难了。当有很多人时,这变得异常困难,从而很容易隐藏或暴露不同部分并弄清楚是什么。这就是为什么在店铺中部署有 200 多个摄像头的原因,用以确保没有人可以欺骗系统。
现在我们知道“谁”的部分,让我们来看看 “拿了什么” 的部分。在 Amazon Go 中有许多商品,包括早午餐、零食、饮料等。特别具有挑战性的是,一些商品在视觉上看起来非常相似。结合产品分类(通过索引方案)和基于残差网络的细粒度计算机视觉算法来解决这个问题。这种方法可识别成千上万的产品,并且能够适应店铺里照明变化、阴影和反射带来的种种影响。
至此,我们讨论了将视频从 Amazon Go 的店铺中的摄像头传输到云端的流媒体服务、提供会话数据的入口/出口服务以及相关支付方式。“Just Walk Out” 技术的关键就在于解决了 “谁拿了什么” 的这个最重要的问题。
对零售行业的影响
目前 Amazon Go 在全美已有 22 家店铺。此外,亚马逊还打算将这项技术应用到了商品类别更丰富,能容纳更多顾客的杂货铺 Amazon Go Grocery 中。也许就像 20 多年前电子商务兴起的时候那样,一种新的体验以及其背后的工程技术将会深度的改变这个行业。 Amazon Go 商店应比传统的商店具有更高的销售速度。因为收银台没有等待时间,人们可以更快地进出商店。这意味着一定规模的商店可以支持更多的流量和单位时间内更多的销售额。另一种看待它的方式是收银台和排队区域所需要的空间可以改为专门用于更多的货架和商品。因此,如果有更多产品处于相同的占地面积,则商店单位面积应产生更高的销售额。当然,与便利店相比,Amazon Go 商店的商品中很大一部分是现场准备的新鲜食材和餐盒,这些利润较高的产品应进一步提高商店的单位面积的收益。节省劳动力的程度存在一定的疑问。的却,没有了收银员。但是较高的销售速度意味着需要更频繁地补货,从而需要更多的劳动力。商店的酒精饮料专区有专门的员工检查顾客的 ID。入口大门前始终有一两个人在外面,可以帮助人们下载该应用程序并回答问题。而且,有很多人正在准备新鲜食品。因此,与同等大小的便利店相比,这种形式的店铺实际上可能需要更多的人工。 总之,建立这样的商店需要大量额外的前期资本投入以及需要克服工程技术上的难题。但随着时间的推移,单位面积的收入和利润会增加。劳动力成本可能不会降低。相反,更高的利润可能是由较低的收缩率、较高的销售速度和较高利润率的商品共同实现的。此外,在这个阶段这项技术似乎只应用在小规模的商店中实现。最终,它将扩展到大型的零售店中。但这可能需一些时间以及技术上的不断优化、改进。 此外,Amazon Go 商店将生成大量的数据。亚马逊已经彻底改变了在线购物数据的使用方式,根据消费者在网上的一举一动提出建议并尝试让顾客购买更多商品。对亚马逊来说,将其运行 Amazon Go 商店所观察到的每个购物者的购物行为加入其中,以更全面地了解购物者的综合在线和线下购物角色、品味和购物模式,这才是更有价值的所在。当其他零售商一直在努力提供统一的全渠道体验时,亚马逊有机会在其实体店和网上购物之间实现真正的无缝连接。 Amazon Go 背后的技术是革命性的,我相信这些变化对整个零售业的影响将是深远的。也许这种变革还需要时间,但这种变革一旦形成趋势将彻底改变我所熟悉的一切。就如同亚马逊的创始人Jeff Bezos 说过的那样 “If you only do things where you know the answer in advance, your company goes away.” (如果你只做那些你事先知道答案的事情,你的公司就会消失)。我们探索一种新的可能的时候,就注定了有可能去颠覆一个行业。对此,你准备好了吗?