基于深度学习的智能无人果蔬售卖系统
2023-08-03吴晓凤刘子翔徐浩然
吴晓凤,秦 菁,刘子翔,徐浩然
(1.西安铁路职业技术学院,西安 710026;2.长安大学 信息工程学院,西安 710064)
0 引言
如今随着物联网技术的飞速发展,我们的生活向着更智能,更便捷,更人性化的方向发展。智能硬件产品如雨后春笋,拉开了新的信息化革命[1]。无人超市[2]、无人驾驶和无人配送等技术的迅速发展,进一步彰显了科技进步带来的便利性。随着技术的不断成熟,规模更大、覆盖范围更广、成本更低廉的无人零售时代已经到来,在全球新冠疫情大环境下,人们越来越倾向于避免接触和零接触的购买方式,这也加速了无人售货技术的发展。我们相信,未来的无人售卖系统将会更加精准、高效、安全,并能够更好地满足人们对商品质量、服务品质和购物体验的要求。我们将持续不断地投入研发,将科技进步和人类的需求相结合,为人们创造更加智能、更加便捷的生活方式。
国家统计局数据的结果展示,从2012年到2018年,全国线上的零售额的比重连年增加,而线下的零售额的比重则是连年下降。但是,自2018年开始,线上的零售额的增长处于乏力状态[3],一方面由于竞争压力大,另一方面也是由于线上获客成本逐渐增加。因此,最近几年来,如何在线下进行更好的数字智能化的零售成为了各大品牌和资本的亟待解决的问题。而相比较于传统的方式,转向人工智能也无疑是更简单更便捷的方式。据统计,零售商对人工智能技术的支持逐渐加码,人工智能在线下零售领域内也将获得更好更完善的发展,据预测,2023年无人零售对人工智能技术的投入将增长到70亿[3]。因此,在良好的发展环境和巨大的投资双重激励之下,无人售货行业及其技术必将获得更好更快的发展,也必将对后疫情时代和老龄化社会产生积极的贡献,向消费者提供更多便利。
在无人超市中,人们不仅可以享受到丰富的商品种类,还能够体验到极大的购物便利。相比于传统的商场或者超市,无人超市省去了排队等候的时间,果蔬类商品称重的时间和结账时把所有商品拿出购物车的不便,使得顾客可以更加高效地完成购物。和自动售货机一样,无人超市也允许顾客自助结账,利用微信支付,支付宝,Apple Pay云闪付和信用卡等多种移动支付方式实现无现金交易,这不仅方便快捷,也增强了顾客购物的自主性和个性化体验。但是一般的无人售货超市面临着成本较高,并且水果蔬菜生鲜等产品,售卖方式单一不足的缺陷,例如Amazon Go Grocery 超市通过安装大量的传感器和摄像头,进行协同跟踪配合,以达到无人售卖的方式,Amazon Go的实现方法是利用动作传感器,红外传感器,重量传感器,摄像头与毫米波雷达识别动作、商品和人的位置关系,将信息上传至云端,通过位置和算法进行处理。
首先是视觉识别技术,如顾客将手伸向货架,通过颜色识别除了肤色周围还有没有其他颜色判断顾客手上是否有商品。如果顾客的手在伸入货架上时没有物品,在离开时有物品,那么就认为顾客拿起商品,相反就是放回。同时配合对商品区域进行识别,Amazon Go Grocery 超市的商品货架被使用隔板分成若干单个区域,每个区域只存在一个件商品,同时每个区域都配备了独立的多种传感器,如利用红外传感器和雷达通过识别商品附近的光线是否被遮挡,识别商品是被拿走或放回,利用货架和购物车上的重量传感器,例如货架上某一压力传感器受到的压力减小,在一定时间内,其附近某一购物车内压力传感器的压力增大同样地的值。结合顾客的位置信息判断其被顾客选择。亚马逊无人便利店所使用的标签并不是常用的条形码或者RFID,而是一种独创的点状标签,这种类似盲文的标签更利于摄像头识别。
识别顾客身份和Amazon账号信息,可以在顾客刷手机进店之后对其手机GPS或者WI-FI进行跟踪定位,搭配图像识别的轨迹跟踪定位,比如某一区域的商品被检测到拿起或放回,同时只有一个在此区域里,那系统认为该客户拿起该商品,而如果同时区域内有多人且多人而且同时都在拿附近的商品,目前Amazon Go Grocery 超市只通过位置无法准确判断谁拿走商品,所以需要多维度姿态检测。和多种方法综合使用。做出综合判断。
Amazon Go Grocery 超市的无人购物系统另一优势在于数据的收集,传统的购物模式很难收集和调查顾客的购物喜好,而无人收银或自助收银,利用位置信息和眼动追踪技术可以知道顾客在货架前的流量、停留时间和次数,顾客的视线停留时间和,以及顾客每次拿起/放回的商品及其个数,实时反馈的货架库存。将收集到的数据可以用于广告宣传和包装设计。
同时,当系统监测到客户拿起或放下商品时,会不断与服务器,数据库进行数据交换和刷新,同时将商品清单同步到顾客的手持终端如手机上,顾客可以实时查看自己购买的商品,当顾客离开Amazon Go Grocery 超市的区域,GPS和WiFi定位检测到客户离开,且一段时间在超市区域检测不到顾客的存在,系统认为顾客已经离开,发出指令自动在顾客绑定的信号卡,Paypal或Apple Pay账户上进行扣款。
但这样的成本就大大的提高了,涉及到大量的传感器,摄像摄影设备,大量带宽,并且需要极高的算力,前期投入非常高昂,不适合在中国的中小城市的市场进行普及,而简单的自助收银台,又达不到自动识别果蔬生鲜的功能,无法真正做到无人售货。至于Amazon Go Grocery 超市对于像水果、蔬菜、肉类等生鲜商品,都无需称重,按照数量计费的方法也有着极大的不合理性,不符合中国消费者的购物习惯,并且Amazon Go Grocery 超市的传感器虽然可以较为准确的识别正常购物行为,但对非正常购物行很难处理,如顾客故意遮挡摄像头,不携带手机进入超市,利用强磁铁破坏设备。而UNUQLO服装销售在商品标签中安装RFID芯片,提前在芯片中录入商品型号,尺寸等信息,当其被放入检测设备时,其中的金属线圈产生感应电流,发出无线射频信号,利用有限的设备就能够快速准确得匹配储存在云端的价格和商品,计算总价和优惠,并且提供会员服务,并且起到防伪作用,不需要大量的摄像头和传感器,但果蔬产品有着数量大,价格时效性强,单价低等特点,RFID芯片的缺点也十分明显,安全性不足,简单的锡箔纸或金属盒既可以干扰其正常工作。也不能用于液态商品。同时,RFID芯片只适用于数量少且高单价的商品,且工作量大,这种方法并不适用于我国的庞大的果蔬销售市场。因此除了可以结算一般商品外,还具有自主称重且识别出水果生鲜、智能判断误检和显示顾客购买清单等功能的智能售卖系统被市场迫切需要[4]。
为实现智能售卖果蔬,本文拟提出一种新的智能无人果蔬售卖系统,首先安装在售卖机内的摄像头可以采集称重台上果蔬图像,系统通过目标检测算法可以快速且精准地识别出果蔬类别和位置[5-7]。其次,本系统使用的称重模块在液晶显示器上显示出重量,同时将重量数据传入系统,最终根据对应的果蔬单价计算出果蔬总价,在系统界面显示,并且通过通信主控将购物清单发送到购物者终端和云端。实验结果证明,本系统可以自动检测顾客误操作的情况,准确识别称重台上的水果是否为同一类别,并引导顾客进行操作,减少误检情况发生,方法具有可行性。
1 系统结构及原理
通过对无人果蔬生鲜售卖系统需求分析的解读与分析,认为本系统应该具备4个特征:一是感知与执行功能,即利用重力传感器等随时获取称重台重量信息;二是智能目标检测,即将所有与计算机视觉相关的功能集中到终端,由它进行总体调控;三是可传递,AM3358与终端,购物车要不断的进行信号的交换,系统通过4G通信模块完成此功能;四是顾客应用,顾客的基本设置、与系统交互等功能都是通过中控屏来完成。
故基于以上4个特征提出了系统的体系结构,称重模块以51单片机为控制单元,采用HX711A/D转换芯片将压力传感器得到的模拟信号转为数字信号[8-10],再通过串口通信发送给AM3358嵌入式平台[11-12];处理端将摄像头采集到的图像通过本系统改进的目标检测算法识别出水果/果蔬种类,将其对应单价通过串口通信发送给嵌入式控制端,嵌入式控制端最终计算出进行称重的水果总价,将其通过串口通信发回处理端并在处理端结果显示屏显示,同时通过无线通信将总价信息发送给购物车移动端和闸机控制模块。系统结构图和系统示意图分别如图1和图2所示。
图1 系统结构图
图2 系统示意图
2 系统硬件设计
2.1 称重模块设计
本模块实现实时监测所放商品的重量。具体步骤如图3所示。前端信号处理时,选用放大、信号转换等措施来增加信号采集强度,通过AD芯片HX711将模拟信号转为数字信号,输入单片机处理端,重量数据将在LCD1602显示器显示,通过一组按键控制去皮、传感器调节参数等功能。这种方案不仅加强了人机交换的能力,而且满足设计要求,后通过通信模块把数据传送到终端。
图3 系统设计硬件框图
2.1.1 系统电源电路设计
由于该系统中的51单片机、AD转换芯片以及液晶显示器所需要的电源电压均为5 V,为保证本系统的稳定和可靠运行,需要设计一个可以稳定提供5 V电压的供电系统。由于USB接口供电方便程序调试,本系统电源电路采用的是USB供电方式,并且在电源输入口装上LED电源指示灯,用于判定电源是否正常工作。该系统电源电路设计如图4所示。
图4 电源电路设计
2.1.2 单片机控制电路设计
该系统的主控电路的组成是STC89C52单片机,晶振电路和复位电路,单片机控制电路是实现整个系统功能的核心,电路连接方式如图5所示。
2.1.3 系统显示电路设计
系统使用LCD1602型液晶屏幕实现数据显示功能,其通过连接电路与51单片机相连接,如图6所示。
图6 系统状态显示电路图
引脚1 (GND)是LCD1602型液晶屏的接地引脚,引脚2 (VCC)是LCD1602型液晶屏的电源引脚,引脚3 (VL)是液晶显示器对比度引脚,通过10K欧姆电位器接地,通过改变电位器来调节LCD屏幕亮度,引脚4(RS),引脚5(R/W),引脚6(E)是LCD1602型液晶屏的片选控制引脚,分别连接到51单片机的P2.5、P2.6、P2,7端口,引脚7-14(D0~D7 )为数据接口,与51单片机的P0口相连,用于实现8位数据的传输;15脚为液晶的背光控制脚正极,接电源,16脚为液晶的背光控制脚负极,接地。
2.1.4 称重模块软件设计
1)系统程序软件流程图:
系统程序软件部分包括界面显示、按键功能显示以及总价信息显示3个方面。程序开启时首先显示初始化界面,当检测不到按键时将重新显示初始化界面,直到检测到按键为止;接着显示各按键的功能,当称重台上检测到重物时便会在显示屏上显示总价信息。设计流程图如图7所示。
图7 系统主程序流程图
2)系统显示部分流程图:
显示部分子程序用于判断LCD从单片机接收的数据是否在液晶屏上显示,并使用按键控制显示数据的刷新和保持。显示器开启时先检测按键,无误后启动A/D转换器,将硬件传输的模拟信号转换为数字信号,再将数字信号交由显示器显示。设计流程图如图8所示。
图8 系统显示部分流程图
3)系统按键检测部分流程图:
键盘共有3个按键,键盘按下按键后发射出电信号,使用电信号传递功能选择以及数据处理等需求信息。系统启动时首先初始化LCD,在界面显示字符,当按下某个按键时系统便根据按键所发射出的电信号读取信息,调用LCD显示按键所对应的功能。设计流程图如图9所示。
图9 按键检测部分流程图
2.2 ZigBee通信控制模块设计
ZigBee技术是一种短距离无线通信技术[13],该技术能够为顾客提供机动、灵活的组网方式。可以提供1000个以上的传感器之间的相互协调并实现实时通讯。具有低功耗,短时延,低成本,低速率,高容量,高安全,免执照频段等特点[14-15]。被认为是实现工业互联网的重要技术。
图10 ZigBee网络体系结构和实物图
本系统的网络结构采用星型网络拓扑结构。在整个网络系统中,主要结构由协调器、路由器和终端设备组成。平台中的协调器主要是一个主节点FFD,即主站设备。该节点是整个网络系统的核心,主要用于接收PC设备转发的水果检测结果和列表信息,并且实时更新、存储和传输客人的购物信息,如会员账号,积分,优惠券等。同时,协调器设备还可以与机器连接,将传输到各终端购物车的购物信息依次存储在OneNET云端,从而建立一套完整的智能购物和客户数据管理系统。
PC设备为每个客户建立客户档案,将消费明细,积分等信息存储起来,供商家提供会员卡服务、消费习惯分析等用途。此外,针对老年人操作智能设备不习惯、不方便,客人有特殊需求的情况,终端购物车设备还建立了一键式服务功能,按下后发出位置信息给最近的服务人员终端,使顾客的购物体验更加便捷和舒适。
3 系统软件设计
3.1 目标检测网络YOLOF
图11 目标检测网络YOLOF
目标检测网络YOLOF(you only look once fruits)以YOLOX网络为基础[16-18],结合YOLOV5[19]在目标检测领域的优势,在其颈部网络,从主干网络中提取到的多个特征进行融合加强,使用C3,C4,C5作为特征融合的输入[20],这3个层次分别用来预测小物体,中等物体和大物体。当输入为(640,640,3)的时候,选取3个层次跨度分别为8,16,32的特征,他们的整体尺寸为(80,80,256)、(40,40,512)、(20,20,1 024),并且随着特征图层大小的衰减,其中的语义信息逐渐丰富,而特征的细粒度则逐渐衰减。之后,将这3个特征输入PANet,通过一个自上而下的融合和一个自下而上的融合,首先将(20,20,1 024)的特征层进行卷积操作对通道进行调整为P5,P5进行上采样后与(40,40,512)特征层堆叠,然后使用CSPlayer对融合后的特征进行细化增强,得到P5_upsample,此时获得的特征层为(40,40,512)。P5_upsample=(40,40,512)的特征层进行1次1X1卷积调整通道后获得P4,P4进行上采样后与(80,80,256)特征层进行结合,然后使用CSPLayer进行特征提取P3_out,此时获得的特征层为(80,80,256)。P3_out=(80,80,256)的特征层进行一次3x3卷积进行下采样,下采样后与P4堆叠,然后使用CSPLayer进行特征提取P4_out,此时获得的特征层为(40,40,512)。P4_out=(40,40,512)的特征层进行一次3x3卷积进行下采样,下采样后与P5堆叠,然后使用CSPLayer进行特征提取P5_out,此时获得的特征层为(20,20,1 024)。颈部网络通过上采样和下采样后与相邻的特征层互相融合,使得不同层次的信息相互融合,使得语义信息和细节信息达到较好的平衡,最终的颈部也就是在加强特征的提取,最终的输出则是P3_out,P4_out,P5_out。
对于检测网络头部,使用3个类似的检测头,分别对上一个模块的输出进行预测回归。在这一块,与之前的YOLO系列不同,YOLOX使用一个解耦的头,将分类和回归两个任务解耦,通过卷积将不同的分支任务卷积成不同的通道数,分类的通道数为(种类数+1),回归的通道数则为4。YOLOF网络结构图如图11所示。
3.2 目标检测网YOLOF改进
3.2.1 对spp网络的改进
由于spp网络是使得一个特征层通过不同大小的池化核所获得的分支通过堆叠而形成一个新的且具有更多丰富信息的特征结构,但是由于可能不同池化对不同位置信息的损失和提取有着较大的差异,为了使得spp模块可以对某些位置和通道的信息更加注意,在spp加上一个CABM分支,这一部分既有着通道注意力也有着空间注意力,所以改进的SPP模块对有效信息有着更强的提取能力。
图12 SPP改进
3.2.2 对损失函数的改进
将损失中的回归损失改为CIOU函数,先前的IOU损失虽然具有尺度不变性,较之前的欧几里得距离有着很大的进步,但当物体完全不相交时,IOU损失的作用便会微乎其微,并且IOU由于只是比值的概念,它并不能很有效的反应重合度大小,它对目标物体的尺寸,以及中心点位置均是不敏感的,CIOU损失不仅考虑了真实框和目标框的的重合率,而且将物体间的中心距离,尺度都考虑进去,使得惩罚项更加平衡,回归更为稳定,大大减少了收敛所花费的时间,减少了时延。不仅如此,由于在预测中,一些位置会产生低质量的预测结果,而且更希望我们的预测大多数更贴合于真实框的中心,所以需要对损失函数的计算进行加权处理。为了对边缘的预测结果有着更大的乘法,因此将损失函数前的系数定义:
(1)
其中:l*,r*,t*,b*分别为真实框中心到预测框左侧,右侧,上侧,下侧的距离。
3.2.3 对FPN网络的改进:SHA-FPN
由于原本的网络在颈部时利用之前提取的特征不够充分,所以在第一次的Csplayer的输出(160,160,128)进行focus下采样,然后通过CAM模块提取其通道特征信息,然后对(80,80,256)的输入进行加权处理,而在(20,20,1 024)后面也同样的操作,对上层的信息进行加权处理,这样无论是大目标还是小目标都有着更高的MAP。并且可以在其中进行跨层次融合。
3.3 数据集构建
因为目标检测网络需要大量的数据集来进行训练以及验证,因此选取了一千多张由十几种水果组成的混合图片。在选取图片时首先要保证不同类别图片的数量均衡,其次还需要考虑其对不同场景的鲁棒性需求,所选取的数据集中既要包含有单个类别的,又要包含有多个复杂类别的图片,既要有包含单个目标,也要包含多个目标的。使用labelimg软件对图片进行标注,在图片中标注物体的位置以及目标的种类,并将其自动保存为.xml文件,最后将图片与标注的label信息一同送入网络中训练。
3.4 界面设计
无人果蔬售卖系统显示界面包含实时检测显示窗口、计价栏(含重量显示、商品种类显示、商品单价显示和总价显示)和购物清单栏。界面可直观地展示以下几个功能:
1)给顾客展示称重每个果蔬种类、重量、单价和所有商品的总价等信息;
2)果蔬放置错误检测功能,当顾客出现误放,错放,操作,及在当前结算果蔬中混入其他类别果蔬,将在计价栏中出现错误放置的提示;
3)在购物清单栏设计了添加、清空和确认支付等功能按钮,只有当顾客确定当前商品检测计价正确时,点击添加按钮,当前商品及其总价加入购物清单,当顾客出现错误添加时,可以点击清空按钮清除当前清单内容,顾客点击确认支付按钮后,屏幕上将出现引导界面帮助顾客完成支付,同时将清单信息发送到购物车端,服务器,数据库和云端,并储存到顾客信息数据库中。系统使用交互式操作,顾客只需点击3个按钮即可完成各种操作,操作界面如图13所示。
图13 人机互动界面
4 实验结果与分析
4.1 实验配置和网络训练
表1 本系统实验配置
网络训练300个epoch,batch_size = 16,采用学习率余弦下降训练策略,初始学习率为0.01,最终为0.000 1。训练过程平均损失值如图14所示。
图14 训练过程平均损失值
从图14可以看出,训练过程平均损失值总体上随着训练次数的增加,总体上持续下降。
4.2 预测结果
对水果的类别预测和位置预测如下所示,能成功检测出水果的类别和位置,并且同时识别多种水果,在部分遮挡的情况下仍能准确识别,且预测的准确度较高,速度较快,具有很好的稳定性。例如在一张图中有形状大小相似的葡萄和蓝莓,系统可以通过其颜色正确识别,并且可以识别单个葡萄和整串葡萄。
图15 果蔬目标检测效果图
4.3 对比实验
本文采用当前几个主流的目标检测算法在本文数据集基础上进行实验,实验结果对比如下,本系统改进的算法对检测性能有一定的提升。
表2 各算法评价指标
4.4 硬件模块实物展示
称重模块实物展示,称重台机构和称重效果如图16所示。
图16 称重模块
LCD屏安装和键盘安装在在购物车上方,方便顾客查看和操作,使用添加、清空和确认支付等功能。
5 结束语
本系统的实时检测功能不仅可以识别各种水果的种类,还可以准确判断它们的位置,从而在不需要人工干预的情况下完成称重和计价。同时,系统还通过串口通信和网络通信将检测到的信息传递到多个终端上,使得顾客可以方便地获取商品的价格和信息,实现真正的无人售货和无感支付,极大减少了人工操作。
为了实现这些功能,该系统采用了软硬件结合的方式,硬件部分包括称重台、摄像头和通信模块等设备,通过深度学习算法对采集到的图像进行处理,实现目标检测、物体分类等功能。软件部分则包括了目标检测算法的改进、调试和维护以及基于Tkinter库的实时监测界面,通过实时监测界面实现系统功能的展示。
通过对一阶段anchor-free目标检测网络YOLOX的SPP模块,FPN等结构进行了改进,通过增加通道注意力和空间注意力机制,可以使得网络聚焦于图片中信息量更丰富的位置,同时我们修改了回归损失计算函数,将IOU损失函数改进为CIOU损失函数,不仅仅考虑到了更多的位置信息,而且也加速了网络的收敛。而硬件部分则使用TI芯片AM3358作为主控芯片,让其完成主要控制和多级通信的功能,称重模块以51单片机为控制单元,采用HX711A/D转换芯片将压力传感器得到的模拟信号转为数字信号,然后将信息发给TI芯片,TI芯片进行处理,并进行多级分发完成系统的全部控制功能。
本系统具备实时检测多个称重台的能力,可检测多个称重台上的不同目标的种类和位置。此外,该系统的拓展性非常强,未来可以增加更多的检测类别,如蔬菜、生鲜等,也可以加入品质检测和新鲜度检测等功能。该系统的检测精度也相当可靠,通过自主标定的几千张数据集的测试,结果表明我们可以获得83.5%的MAP,这证明了我们改进的目标检测算法具有较高的准确性和稳定性。此外,该系统的检测速度也有了显著的提高,完全能够满足实时检测的需求。
我们计划在未来进一步改进本系统,以实现更轻量化的网络结构,减小网络的计算量、参数量和推理时间。为此,我们将采用更高效的模型设计和训练方法,以便在保持高精度的同时,能够更好地满足实时检测的需求,减小时延。后续我们还将研究使用更加精简、更加简单、更加低廉的芯片,以降低成本,提高性能。为了让我们的无人果蔬售卖系统更加实用和可靠,加入免密支付等功能,使顾客只需要将商品放入购物车,点击付款按钮,既可完成付款,实现真正的智能购物体验。我们将不断探索各种技术和方法,不断优化算法、改进硬件,优化界面设计,提高交互性,以实现速度和精度的完美平衡,以打造一个更加高效、更加智能、更加易用的售卖系统,为顾客带来更好的购物体验和服务。