亚马逊AWS官方博客

Amazon Go 无人零售商店揭秘

几天前 CNBC 的一则新闻引起了我的兴趣。文章说的是美国康涅狄格州布鲁克菲尔德一家在建商店的有了应用“Just Walk Out”技术的迹象,包括门控系统和可能用于安装天花板摄像头的硬件等等。这一下子让我联想到了2017年出现的那个让人兴奋不已的“Amazon Go”无人值守的零售商店以及在其背后的科技。

在电子商务以及零售领域,亚马逊公司堪称业内翘楚。竞争者经常带着崇敬和恐惧的口吻谈论这个名字。亚马逊以不断创新的步伐取得了几乎神话般的地位,让尾随者难以跟上他的步伐。在过去的26年中遵循着“亚马逊增长飞轮”,不断提高易用性、增加选择,实现快速交付和完善整体用户体验。而Amazon Go 无疑是这许多亮眼的成就中最显著的一个。

2017年,因为员工的便利条件我第一次体验了位于西雅图亚马逊办公楼 DayOne一层的Amazon Go 商店。这个第一家Amazon Go商店的面积约为550平方米,看起来就像是一家街角的便利店。里面有很多新鲜的水果,面包,沙拉,饮料等商品,供上班族们取个早餐,拿个零食。没有用“买”这个词是因为在这里你看不到任何我们习以为常的“”的动作。

人类购买这个行为已经延续了几千年,一成不变的是物品以等值进行交换的商业规则。而变化的则是商品、购物环境、交互体验以及结算方式。随着云计算的兴起以及各种新技术应用不断地优化购物体验、简化购买流程,让我们得以更从容,更优雅的享受购物的乐趣。Amazon Go就是以这个“不用排队,拿了就走( no lines,no check out)的全新购物体验在零售行业和科技圈吸引了无数目光。今天我们就来一起看看这个拿了就走的新的零售体验是如何实现的。

 

使用体验

用户体验:手机 App

Amazon Go 的使用者首先需要下载并安装一个尺寸大约为11MB的一个名为Amazon Go的手机App。安装后,将使用Amazon帐户ID和密码进行登录。首次登录时,这个应用程序将引导完成9步动画教程的学习。该教程介绍了如何将自己扫描到商店以及如何购物。整个教程花费了大约一分钟的时间。接下来,应用程序将显示一个二维条形码以识别使用者的身份,凭借扫描这个二维码进入商店。

出于安全的考虑,这个二维码每30秒在手机App重新生成一次,这可以提供一定程度的保护,防止人们仅通过拍照我的二维码码就可以在我的帐户上购物。

 

用户体验:进入商店

进入亚马逊商店有点类似于进入地铁站,对我们来说这个体验并不陌生。不过在商店入口经常有一两个身穿橙色衬衫的亚马逊员工帮助人们解决任何问题,最常见的就是向顾客解释他们需要下载应用程序,并向他们解释它是如何工作的。随着越来越多的人习惯于这个进店的方式,人们将会减少对入口处工作人员的需求。

 

用户体验:购物与付款

购物者可以通过拿走开放式货架上的商品并走出商店来购买和付款。购物的体验就是这样的简单。因此,Amazon Go的出现并非是炫技,而是出于解决真实存在的购物中排队、等候结账这个真实的问题。

 

Amazon Go的技术复杂性

在一段广为流传的Amazon Go 宣传视频中,顾客进店扫码-取物-出门,一气呵成。简单到很多人第一次去都会有一种隐隐的“我是不是在偷东西”的质疑。但细细想来,被这个名为“Just walk out” 技术简化的只是商品价格的手动或自动的复核过程。而实现它看起来我们只需知道哪些亚马逊账户在商店内购物,哪些商品被拿走。这样我们就可以在顾客完成购物时向其收取费用了。够简单,但又是什么使这个过程变复杂的?

设想一下,如果我们来解决这个问题,或许你会从这个场景出发:一个人在商店,悠闲地闲逛,随意拿起一件商品. 看起来我们只需处理这样的场景即可。然而,现实情况更像这样:拥挤的人群,人们在购物,孩子们四处奔跑,婴儿车上的婴儿还在熟睡。现实且自然的购物行为就是人们并不总是拿上商品然后离开 — 他们往往挑选一个商品,看看它,然后把它放回货架上;或者有时他们把它放回另一个错误的货架之上。相信你已经在脑海里想象出来这件事的复杂性了。在亚马逊解决这个问题的方案被称作“Just Walk Out”。 这个方案体现了最新的工程技术的进步,特别是在复杂的计算机视觉、传感器融合和深度学习方面。

 

 

 

让我们先从方案的架构说起。我们将这个看似复杂的框架分成几个部分。

“Just Walk Out”技术框架

 

图中顶部代表了店铺中部署的设备 ,这些设备包括了定制的摄像头以及用于商品销售的重力传感器。这些摄像头实时捕获需要进行算法处理的视频,算法运行在亚马逊云中。在AmazonGo商店中捕获这些视频并将其发送到云中处理,统称为“流媒体服务”。

 

然后是核心的 “Just Walk Out” 技术。 这可以说是整个Amazon Go无人商店的的大脑。这是构建在深度学习算法方面最重要的技术部分,其目的是解决 “谁拿了什么” 的问题。 与传统商店不同,在这里没有收银柜台。但是,仍然需要确认顾客的支付工具(信用卡),在顾客离开商店后,就可以使用该支付工具向他们收取费用。为此建立了一种全新的体验,让顾客使用Amazon Go的移动应用进入商店,并将他们的Amazon帐户和存储的付款方式相关联。我们统称这些为“入口和出口”服务,他们负责管理客户会话和相关付款方式。

现在我们把所有这一切集成到一起。我们将由“Just walk out ”技术负责的的购物活动与”入口/出口“服务管理的客户管理相关联,最后生成客户购物车。 一旦顾客离开商店,就会向他们发送收据,并使用他们的付款方式进行扣款。

正如我前面提到的,流媒体服务负责将视频从商店中运行的摄像头传输到亚马逊云中。为了使算法发挥作用,就需要在客户挑选或放置商品时可靠地捕捉视频图像以实现真实场景。 当然,商店中部署有很多摄像头。因此需要一组云服务器以及一种在摄像机和服务器之间传输的方法。而在现实世界中,事情并不总是顺利运行,所以需要有容错能力。因此,需要有检测摄像头故障 、网络延迟、和服务器故障的系统 ,并且能够有效地处理这些故障。一旦将视频传入云端,就需要一种使用这些视频数据的方法,一种使它们可用于算法进行处理的方法。因此,一套服务负责存储和索引这些视频,它们提供了视频检索的接口,这些接口由视频处理应用所使用。就是这样。这些高可用、高吞吐量的服务集群们提供了基础架构,在此基础架构上构建了“Just walk out”技术。 可以说缺少了云计算“Just walk out”的可用性以及容错能力就无从谈起了。

 

挑战与细节

说到这里您大概已经有了一个整体印象。再让我们再回头看看入场体验。顾客打开 Amazon Go 移动应用,扫描主屏幕上的二维码,然后进入商店。

在这里面临的挑战之一是设计出一种体验,使顾客感觉自然和无缝。例如,需要考虑决定扫描二维码时手机是是正面朝上还是反面朝下感觉更自然。 与此同时,还希望客户能够顺利且畅通无阻地走进去。因此,设计了入口闸门的硬件和软件,使顾客可以向下扫描二维码进入,同时系统可以验证顾客身份,并打开闸门。而所有这一切的处理都需要在很短的时间内完成,通常不到一秒钟。 这样客户就不必在进入的过程中放慢步伐。同样的问题也适用在出口上 ,顾客也不必为了打开闸门而放慢速度或采取其它的动作。

另一个挑战是如何能够适应现实世界的情况,因为事情总是不可预测的。例如,在理想的世界中,每一位顾客在进入商店时只扫描一次。然而,有时人们扫描手机后会分心,并开始与朋友交谈,所以如果他们再次扫描之后进入商店,系统必须足够聪明以处理所有这些特殊的场景。最后,我们需要更顺畅的处理家庭或者团队购物的场景。或者说,一组打算共享一个账户共同付款的顾客。在这种情况下,扫码者将作为这一组的付款人,在组中的每个成员进入商店时只需扫描他的手机。但显然他们中的任何人都可以随时离开商店,所以会话管理逻辑必须在这些情况下正常的工作。

因此,作为入口/出口服务的一部分,构建了用于验证客户帐户、组关联和会话管理的系统。 总体而言,这个部分的服务的目的是管理当前在商店中处于活动状态的一组客户的会话(session)以及每个服务相关的支付方式。

 

“谁”拿了“什么”

对于“Just walk out技术 ”来说简直可以用来编写一本计算机视觉的教科书,因为它包含了对象识别、人员检测、姿势预估、活动分析,传感器融合以及校准等一系列的应用算法。最重要的是,这些算法不仅必须像大多数最先的算法所显示的那样有较高的准确率,还必须产生准确的购物的收据。下面让我们深入了解 “Just Walk Out” 技术的一些组件,就是这些组件解决了 “谁拿了什么” 的难题。让我们从 “谁” 这个部分开始,其中包含三个主要模块、定位器、链接器和复杂状态解析器。

大多数人想当然会认为只需要在货架上购物时找到顾客就可以满足需要。但是,这种片段的识别处理并不能提供所需的准确性。事实上,这个场景中需要的是顾客从店铺入口到出口的全程定位。当只有几个人在商店里时解决问题很简单。但是,当有许多人彼此接近时这个问题就变得极具挑战性。人群会导致顾客彼此遮挡,有时候他们甚至看起来很相似。 Amazon Go店铺里布置的每个摄像头都会产生一个 3D 点云。 基于每个摄像头的校准参数,将这些参数聚合为一个全局的表示,并提取出移动的对象。 并非所有的移动物体对应的都是顾客,还可能是购物篮、推车以及婴儿车等。系统中的人员定位器查看分段的图像数据,并决定它是某人还是另一种对象。 然后,将人员在一帧中的位置链接到下一帧。 为每个顾客的数据分配一个标签。

链接器的作用是将标签从第一帧保留到最后一帧。这样我们就可以看到顾客在店铺中的轨迹,例如 1H8,他正走向准备店铺的食品区域。

比较棘手的情况是当人们彼此接近时识别将变得困难。 这被称之为复杂状态。因此,要对人员位置的不确定性进行建模,并通过运动特征和图像特征来解决人员位置的不确定性的问题。

现在,请注意标签为“117”的顾客。他与另一个顾客非常接近,但系统知道他在那里,但不确切地知道他在哪里。实际上他已经已进入 “复杂状态”,这个状态由黄色标签表示。在进行分离处理后,系统将重新将其定位,并重新使标签为“117”的顾客获得绿色标签。

这是另一个真实的记录,所有客户在店铺中的位置如下图。

系统将所有店铺内的俯瞰视图拼接在一起,以便定位在店内移动的顾客和人员,例如有顾客进入商店,或者员工将商品添加到货架上。在这个示例中,我们的老朋友标签为 “117” 的顾客在屏幕的中间结束纠结状态后重新获得了新的ID。而标签为“B6”的人员则是一个从房间后面进来的店内工作人员。他在推车,负责将商品添加到零食区域。右下角的 W4 从精选即热食品区域来到饮料区域。这时候他获得了复杂状态标签,然后重新获得 绿色的 W4的标签。

 

计算机视觉,传感器融合和深度学习

“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.” (如果你只做那些你事先知道答案的事情,你的公司就会消失)。我们探索一种新的可能的时候,就注定了有可能去颠覆一个行业。对此,你准备好了吗?

 

如果大家对于文章中话题以及涉及到的技术有兴趣,欢迎通过我的邮箱进行讨论 lianghon@amazon.com.

 

本篇作者

费良宏

费良宏,AWS 首席开发者布道师。在过去的20多年一直从事软件架构、程序开发以及技术推广等领域的工作。他经常在各类技术会议上发表演讲进行分享,他还是多个技术社区的热心参与者。他擅长Web领域应用、移动应用以及机器学习等的开发,也从事过多个大型软件项目的设计、开发与项目管理。目前他专注与云计算以及互联网等技术领域,致力于帮助中国的 开发者构建基于云计算的新一代的互联网应用。

明伟森

亚马逊业务拓展部,多年服务在互联网企业云端解决方案,主要专注于现代化架构与数据分析方案领域。