12 月 5 日,亚马逊发布 Amazon Go 震惊业界。雷锋网第一时间研究了专利文件,并采访资深计算机视觉算法工程师,最终出文从2份专利文件,一窥Amazon Go到底藏了什么黑科技?
今天雷锋网特地采访了无人零售商店创业者陈维龙(微信:daoyuan3)为大家更加详细地解读 Amazon Go 以及无人零售商店项目。陈维龙毕业于中山大学,曾亲自参与并实施过多套类似的无人零售解决方案系统,对整个项目的流程化体系有着较深的认知和实践经验。
陈维龙把 Amazon Go 系统“拆分”为三部分:人/货架/进出口。其中硬件软件构成如下表:
人 | 货架 | 进出口 | |
硬件 | 手机 | 摄像头/压力/红外/体积位传感器/光幕 | 二维码识别器/自动门 |
软件 | 专门应用 | 库存管理系统 | 定制系统 |
布局如下图所示:
货架墙壁上安装多个摄像头,多种传感器埋在每层货架的底部或顶部。摄像头负责拍照,光幕/红外传感器负责制造一个水平面,如果用户的手穿过此面表示用户开始实施某种动作,提高图像分析效率。压力/红外传感器用来表示商品的位置和状态,为用户的行为提供数据。
利用这些数据进行深度学习,建立商品—动作—人的判别模型,提高系统反作弊/识别能力。
陈维龙向雷锋网透露,其实 Amazon Go 的核心技术是反作弊/识别系统,不管它能提供多强大的商业功能,作为无人超市系统,反作弊/识别是它存在的第一要素。
在现有超市,通过便衣巡逻和监控摄像头识别顾客行为是否合法,例如是放在购物袋/车还是放在衣服里,将用户的行为规范到指定的范围,最后通过收银员识别商品和顾客的对应关系,成功解决了谁对什么商品干了什么,从而达成交易。
其中人防和机防是反作弊系统,负责解释顾客行为,从而保证商品与顾客的关系,而收银员负责确认商品和顾客关系。在 Amazon Go 中,系统也要解决谁对什么商品干了什么的问题。
接下来的内容分为大三块,详解 Amazon Go 是如何做的。
陈维龙指出,顾客购物行为非常丰富,从货架的角度来看,核心动作只有拿走或放回两种。
不论如何,商品被从货架拿走了,最大的可能就是被买走了,而被放回来就是你不需要了。如果能识别拿走或放回,那么就解决了核心问题。根据 Amazon Go 专利显示,它是这样做的:
采集用户的手进入货架平面前的图像。
采集用户的手离开货架平面后的图像。
两者对比,可以知道是拿出货物还是放入货物。
如果是拿起,进入前的手和进入后的手及手中的物品等特征是可区分的,这个特征与放入是相反的。简单说,如果是拿起,进入之前手是空的,没有商品的,离开后是手里有物品的。放入则相反。那么如何识别手呢?从形状和图片颜色(肤色)可以辨别。在货架前利用光幕或者红外形成一个平面,就可以知道用户的手到了那里。
除了图片分析,传感器也可以提供这样的数据。多种数据结合,可判断用户行为是拿走还是放回。
我们知道,有了顾客动作,还要识别动作承受的商品,不然会出现张冠李戴的现象。陈维龙继续解释到,这部分分成两个步骤来处理:识别被拿走的物品和识别放回的物品。
因为物品是被雇员人工放置的,所以该物品可以直接标记到系统中,因此不用图像识别是何种物品(它已经被人工识别了)。用传感器表示它被拿走即可。
在某些情况下,商品可能没有被提起设置或者设置后被混乱了,那么此时需要图像识别该位置现有的商品与应该有的商品是否一致。例如,物品 A 被放在 B 物品处,如果只有上面提到的那种方式处理,就会被当成物品 B,不过这种情况较少。
如果是高置信度事件,可直接确认,更新(增加)物品清单,否则还有顾客协作确认的环节。
在放回物品前,可以通过物品清单确定用户与物品的关系,这些物品的图片被储存在系统内。
检索图片,与被放回物品进行比较,识别物品。
高置信度即可判断物品正确,更新(删除)物品清单,否则还有顾客协作确认的环节。
被放回的物品会存在错放位置的情况,识别后通知雇员整理。
不管是拿走还是放回,如果是低置信度事件,会被系统记录分析。
对于正常的购物,在固定区域的商品种类单一,容易识别。对于被错放的物品,因为概率较少识别难度和计算量不会显著增加。但是对于故意作弊的行为,需要极大的计算资源识别。这个问题后面讨论。
根据资料显示,Amazon Go 在进出口设置了“转移区”,类似现有超市的防盗门,此门可扫描用户二维码识别进出口的顾客。陈维龙解释到,这里问题的关键是 Amazon Go 需要实时识别“对某商品进行了某动作的人是谁”。
从问题可以发现,解决这个问题的关键还是要在货架上入手,因为任何人对商品实施动作的时候必须在货架前。关于这部分细节,Amazon Go 专利给出的解释是利用用户位置信息定位进行识别。
例如,张三站在货架 A 前,此时 A 货架商品被取走,那么就认定张三购买了商品。这里存在很大的隐患是张冠李戴问题,因为仅通过位置定位顾客,只要在此区域的用户都可能被当成购买者,从而形成商品和顾客一对多的关系。如果这个位置定位区域限制在足够小的区域,就能实现一一对应关系。
Amazon Go 使用的图像分析和音频分析。通过摄像头可检测用户及其方位,天花板或货架里的多个音频可根据时差分析用户位置。此外,天花板上的天线可用三角测量确定位置,用户手机 GPS 也能提供定位。
关于室内定位或拥挤区域定位问题,一般的定位技术是无法解决的。目前国外有 GPS 定位到毫米级别,但是费用极高,应用很少。iBeacon 技术也可以用于室内定位,可达到厘米级别,但是仅限于 IOS 设备。
总的来说,Amazon Go 反作弊/识别系统是通过“商品—识别动作—识别承受动作的商品—商品与用户清单/用户关联”进行运作的。
对 Amazon Go 反作弊/识别系统而言,它只需要知道哪些商品被拿走或放回了,并且知道是谁实施的,那么就知道是谁购买/放回了什么商品。最后在出口(转移区),顾客刷卡确认顾客与商品的关系即可。
此时有个疑问:故意作弊的行为,能识别动作,但是识别商品难度较大,因为大型超市商品种类有 10 万种,依据现有的水平是无法解决的。
陈维龙就这一问题给出以下解决方案:
限制特定种类商品。从亚马逊官方视频中看到超市商品种类与日常生活超市相比要少很多,而且形状规格等都比较统一。
限制开店区域和人群。在中高端市场,用户的可信度较高,超市防盗压力减少。视频中显示的商品也趋向中高端市场。
特殊人群跟踪。上面提高用户行为被系统判定为低置信度事件会被记录跟踪分析,这部分人群需要单独的技术限制和人工干预。
容忍作弊行为,加强非技术反作弊手段。虽然讨论的是高科技含量的东西,但是就目前阶段结合必要的人工手段能提到较好作用。