欢迎光临
我们一直在努力

打造一家像Amazon Go的无人零售店,需解决哪些核心问题?

Amazon Go 从推出到现在已过去四个月,这期间,国内不少传统零售商和创业者受到影响,开始试水搭建无人零售商店。但由于对技术和工程细节不熟悉,往往无从下手。

无人零售除了应用到计算机视觉等 AI 技术外,还涉及到大规模的传感器和智能设备,是一个复杂且庞大的项目。雷锋网了解到,虽然已经有人分享了对无人零售商店的原理解读,但大多只讲述了粗略的实现方式,没有深入到细节。

为此,无人零售商店创业者陈维龙(微信:daoyuan3),通过讲述基于 Amazon Go 原理为主的无人零售商店项目来帮大家解答疑问。

一、无人零售的核心问题

陈维龙提到,要打造 Amazon Go 这样的无人零售商店最核心的是要解决“什么商品被谁怎么处理了”这个问题,需要处理的因素有5个:人、人的位置、商品、商品的位置、动作。

动作主要是通过商品与手或货架的状态来识别的,例如手进入或退出货架的手势、物品在手的状态识别拿取或放回商品。

商品识别主要是通过初始状态的选择,中间状态通过购物清单核对来缩小识别范围,降低难度,同时通过雇员保证初始状态不被破坏。

位置主要通过手机定位、传感器定位和图片定位,利用人体姿态识别可以很好的将动作定位到人。

Amazon Go 的便利性来自将商品核对和收银权利从收银员下发给每个顾客的每次购物行为中。收银员的工作对顾客而言是集中式串行处理——所有顾客都要到一个指定地方一次性确认购物行为,需要等待收银员的空闲。

而 Amazon Go 对顾客而言是分布式并行处理——顾客每次购物行为都会在发生地被系统处理、记录,且每个用户都不占用系统时间。

二、“怎么处理”如何定义和表示?

陈维龙举了个非形象动的例子:对于超市而言,商品存在两种状态——卖掉或没卖掉;对货架而言,商品的状态是在或不在;对顾客而言,商品的状态是买或不买;对人的手而言,商品的状态是在手或不在手,进一步简化成拿起或放回。

它们的关系链如下表:

如果顾客想买商品,必须经历商品拿起、在手的状态,相对应的,货架上的商品不在架。

同理,顾客不买商品,必须经历商品放回、不在手状态,相对应的,货架上的商品在架。

还有一种情况,顾客不买商品,不经历拿起放回等阶段,这种情况不用处理,因为什么都没有发生。

那么如何表示或测量这两种状态呢?用相机和传感器都可以表示该状态。

1.相机如何处理

“在手进入货架拿取商品前和拿取商品后,对手拍摄 1 组图片,记为第一图片和第二图片,对货架拍摄 1 组图片,记为第三图片和第四图片。比较第一图片和第二图片的差异,此时需要利用到 CV 算法识别出肤色找到手,从而知道第一和第二图片手势的差异,识别握姿和舒展姿态,根据两个姿态在第一第二图片出现的顺序可以判断拿取还是放回。例如,第一图片是握姿,第二图片是舒展,即放回;第一图片是舒展,第二图片是握姿,即拿取。”陈维龙对相机的处理流程做了个非常细致的阐述。

随后他继续解释到:利用肤色找到手后,再识别第一第二图片手边缘的色差识别商品是否在手,根据前后顺序可以判断拿取或放回。例如,第一图片手边缘色差较浅,表示没有商品,第二图片手边缘色差较深,表示有商品,即商品在手且是拿取过程。放回同理。

利用第三第四图片,对货架进行处理,同样可以判断拿取或放回。例如第四图片比第三图片多了一个或多个商品,那么就是放回;如果第四图片比第三图片少一个或多个商品就是拿取。

2.传感器如何处理

对重力传感器来说,商品被拿取,商品减少,重量减少;商品被放回,商品增加,重量增加。所以重量数值变化可以表示拿取或放回。

对于红外来说,在特定地方,商品被放回,红外会被遮挡,商品被拿取,红外不会被遮挡。可以通过红外遮挡状态表示拿取或放回。

三、如何有效识别商品?

商品的识别应该是难度最大的关键点之一。

一般来说超市商品品类 1000 种到 10 万种不等,在真实且可能被破坏的环境下要识别如此多类商品几乎不可能。

陈维龙指出,在初始状态,特定品类的商品被放在特定位置,由相机和传感器侦测。对相机和传感器而言,它们只需优先识别少数且特定的商品类及数量。这个相对而言是简单的。即使图片无法识别,也可以根据重量识别和筛查。在品类摆放的时候可以选择易区分的品类摆放一起,所有被拿取的商品记录在顾客的购物清单里。

困难在中间状态。由于顾客放回会破坏初始状态,导致识别难度急剧上升。因为顾客可能放回任意商品,所以商品的识别范围又扩大到无法解决的情况。

先讨论放回后的最终状态,一般分成 2 种:放回正确或错误。

对于放回正确,识别难度在初始状态的水平。

对于放回错误,存在 3 种情况:放回错误但可识别;放回错误无法识别;放回错误且识别错误。

放回错误但可识别的情况是因为商品本身易通过图像和重量识别,此种情况较少。大多数情况是放回错误且无法识别或识别错误。放回错误且无法识别的情况可以给用户发送消息,让用户确认。识别错误的情况只能提高算法精度,同时调整判断极限值,将部分识别错误的情况向无法识别装换,同时及时通知雇员来整理回到初始状态。

一般而言拿取商品后放回的情况较多,且不放回正确的位置情况也不少,其中放回错误且无法识别或识别错误又占大多数,放回错误但可识别是少数。总的来说无法识别和误判比例不容忽视,甚至导致整个系统无法工作。

刚才说到,由于顾客放回商品,导致识别范围扩大到所有商品,这是可以部分解决的。因为商品的每次放回都是基于顾客的前 N 次拿取,他放回的商品必须是之前拿取的商品,所以优先识别顾客的购物清单即可,在这种情况下,识别难度又回到初始状态相当的水平。

陈维龙总结到:

在初始状态(拿取),商品的识别范围是特定的少数种类,大概不超过 5 种,通过图片和重量筛查是比较容易识别的。通过前期品类选择和摆放,可以使初始状态更加容易识别。在中间状态(放回),通过索引顾客购物清单,可以将识别范围缩小到清单上特定的商品,识别难度较初始状态不会急剧增加,在可处理范围内。在最终状态,由于放回识别的不准确性,导致最终状态偏离初始状态,每次放回都会导致偏离初始状态,最终导致崩溃。但是因为放回识别难度不是很大,这种偏离出现较少,或者可以接受,不会导致长期偏离最后崩溃的情况。再加上及时通知雇员前来整理,可以纠正偏差。

四、如何知道动作发起者的身份?

将商品记录到动作的发起者身上是一件较为复杂的工程。

陈维龙介绍到,识别人大体通过 2 种方式:身体特征或附带物,例如人脸和手机。人脸识别的精度在室内还在可接受范围,几乎可以当做唯一标识。手机也是一个人的唯一标识,通过判断是谁的手机从而判断顾客是谁。

“被谁”里面隐含了一个因素:位置。要证实商品被谁拿走或小张被小陈打了,前提是商品和顾客的位置要匹配。

五、如何匹配顾客 ID 与商品 ID?

要匹配顾客和商品的 ID,首先要确定人和商品的定位。

关于人的定位,可以用到追踪系统。手机的 GPS、wifi、蓝牙也可以提供较准确丰富的位置信息。

关于商品的定位,红外、重量感应、相机、商品和货架初始的问题都是已知的,可以推测出来。例如,通过隔板,将同类商品分在不同的网格种,每个网格对应不同的红外或重量感应器,可以知道被拿取或放回商品的位置。

通过人和商品的位置匹配,连接了“什么商品”“被谁”两个因素。

因为成本和技术问题,位置精度是一个很大的问题,再加上这个定位人和商品位置的方案本身的缺陷,顾客和商品的匹配误差较大。例如,顾客 A 站在商品 A 前,顾客 B 站在商品 B 前,顾客 A 伸手去拿商品 B,这种情况系统是无法准确判断的。当然可以由顾客确认,但是这仅仅是无力的补救措施。

之前有人提到过 Amazon Go 可能利用多角度的完整的人体姿态识别来定位匹配人—动作—商品的关系。这种方法的关键是摄像头需要很好的视野和足够的摄像头。从宣传视频来看, Amazon Go 的货架设计使得最低层和中间层是无法获取足够好的视野,可能的解决方式是依靠对面货架和天花板的摄像头。Amazon Go 的货架构造非常重要,只要再提供一份货架结构图或者实物图就可以进一步推测实施方案。货架结构包括是否每层都有设想头,承载商品的承重面的形状及尺寸,特殊开口和螺丝位置等。

总结

通过上述方法,难度没有凭空想象的难,但是工程量不小。即使动作和商品识别能达到 100%,因为定位方案和精度问题,导致整体的识别存在一定的误差,而使整个方案无法使用,或者只能部分依靠顾客协助实现。所以 Amazon Go 以及未来的其他无人零售店还只能在小部分范围内对特定人群使用,例如信用度较高的会员。

陈维龙将无人收银分成三个阶段:商品和顾客行为数据统计阶段、识别正常购物的无人收银阶段、识别作弊的无人收银阶段。

第一阶段比较容易实现,因为仅仅是统计,顾客不会存在作弊情况,而且统计误差范围相对于无人收银较大。

第二阶段是顾客不作弊的情况下,100% 记录顾客和商品数据,达到无人收银的效果。目前 Amazon Go 处于这个阶段。这个阶段的明显特征是建立在高素质会员人群中。

第三阶段是识别任意作弊行为,并且准确统计。这个阶段超市或零售行业所以的作弊行为都能被识破、杜绝,不仅可以实现无人收银,还彻底解决了盗损问题。

由于成本和技术问题,陈维龙认为达到第二阶段,往第三阶段靠近就可以了。例如识别正常购物和行为,特殊情况直接标记人工收银即可。在此基础上,扩大正常购物和行为的范围,缩小特殊情况的范围,使之对顾客更友好,更智能。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。