李书阁 赵鹏举 程诗妍 汤红辉
摘要:针对传统的商品识别方法导致自动售货机空间利用率低、附加成本高等问题,文章提出一种基于YOLOv5s的轻量化商品图像检测方法,并在此基础上,构建了一个基于图像识别的自动售货机商品识别系统,以达到降低运营成本、优化购物体验的目的。
关键词:目标检测;商品识别;轻量化网络;系统架构
中图分类号:TP315 文献标志码:A
0 引言
自動售货机可以在无人值守的情况下提供自动化销售服务,在我国的酒店、车站等公共场所随处可见,已发展成为智能零售系统的典型代表。传统的自动售货机商品识别方法主要有重力感应、射频识别、机械装置分隔等,此类自动售货机结构复杂,空间利用率低,商品种类受限,成本较高,顾客通常不能打开柜门自由选择商品,购物体验较差。随着图像处理和计算机视觉技术的不断发展,基于图像的商品识别技术得到广泛研究。每张自动售货机的商品图像一般都包含多种类型的多个商品,利用计算机视觉领域的目标检测技术可以找出一张图像中所有感兴趣的商品,获取每个商品在图像中的具体位置坐标,进而识别出每种商品的类别和数量。由于自动售货机中商品种类较多,外观、形状各异,还可能存在遮挡情况,商品图像采集受光照、角度影响大,因此,基于目标检测技术的自动售货机商品识别面临极大挑战。
1 基于目标检测技术的商品识别方法
1.1 目标检测技术
商品识别一般利用目标检测技术,确定图像中所有商品所处的位置、类别和数量。传统的目标检测方法采用基于特征的图像匹配识别技术,手工设计特征对目标进行检测,常用的方法有ORB、HOG、LBP、SIFT、SURF等[1]。由于手工设计的特征受光照、视角等因素影响,无法准确表达目标特征,鲁棒性较低,检测效果不理想。为了更好地解决这些问题,基于深度学习的目标检测方法开始被应用于商品识别的研究。基于深度学习的目标检测方法按照处理流程不同可以划分为2种:两阶段检测算法和单阶段检测算法。两阶段检测算法在第一阶段先生成候选框并进行候选框的筛选,第二阶段根据候选框计算目标物体的所属类别概率,判断候选框内是否包含待检测的物体目标,常见的算法有R-CNN[2]、SPP-Net[3]、Fast R-CNN[4]等。单阶段检测算法不需要生成候选框,直接回归预测目标框的位置坐标和目标的分类概率,常见的算法有YOLO[5]、SSD[6]等。上述目标检测算法网络参数量和运算量特别大,难以部署到计算能力有限的嵌入式设备。
近年来,许多学者开展基于深度学习的目标检测模型的轻量化研究,减少模型的参数量和计算量,易于部署到嵌入式设备进行高效的目标检测。龚惟新等[7]引入C3HB模块和交叉注意力模块实现 YOLOv5s模型的轻量化。杨小冈等[8]使用MobileNetv3结构重构YOLOv5模型的主干网络﹐并添加MNtECA特征提取网络对模型进行压缩和加速。本文综合考虑商品识别系统的检测精度和速度,以及在自动售货机嵌入式系统的部署需求,选择YOLOv5s模型作为商品识别方案,并在此基础上提出一种轻量化的商品识别算法。
1.2 商品识别方法
YOLOv5s模型框架是YOLO系列的改进结构,性能表现优异。作为一种单阶段的目标检测算法,YOLOv5s由4个部分组成:Input、Backbone、Neck和Head。为了实现YOLOv5s的轻量化并保持良好的网络性能,首先采用网络模型Shufflenetv2[9]替换YOLOv5s原来的主干网络,轻量化的Shufflenetv2网络可以减小模型参数量和计算量。然后,在模型主干网络中引入注意力机制(Convolutional Block Attention Module,CBAM)[10],提取图像中的关键信息,提高目标检测精度。最后,利用Focal-EIoU Loss[11]代替CIoU Loss,在IoU基础上引入目标框和预测框的长宽信息,解决CIoU中长宽比等比例变化惩罚失效的问题,更加关注高质量的分类样本,提高对难分类样本的学习能力,减少漏检或者误检的情况。
为了实现基于深度学习的商品检测,系统必须建立商品图像数据集。在自动售货机每层隔板顶部安装一个广角摄像头,选取10种商品按随机位置和角度摆放,以单张拍摄的方式采集至少500张商品图像。为了扩充图像数据集,还需将拍摄的图像随机进行拉伸、旋转、模糊、镜像等处理,然后使用LabelImg工具进行标注,并将数据集文件保存为VOC格式,最后按照7∶2∶1的比例将数据集划分为3部分:训练集、验证集及测试集。搭建深度学习环境,将商品图像数据集输入轻量化后的YOLOv5s模型中训练学习300个Epoch,生成最终学习结果。
2 自动售货机商品识别系统设计
2.1 系统开发环境
为了开发基于深度学习的商品图像目标检测网络模型,本文在Windows10 64位操作系统中,利用Anaconda3搭建深度学习环境,使用CUDA11.8、Python3.9和Pytorch 2.0.0搭建开发环境。利用 PyCharm 2022.2.4和PyQt5开发自动售货机商品识别应用界面,利用嵌入式轻量化的数据库工具SQLite3开发商品信息数据库,系统可靠性高、可移植性好。开发商品识别系统的计算机采用Intel Core i7-13700KF CUP处理器,配置NVIDIA GeForce RTX 3060 GPU(显存12 GB)和32 GB DDR4内存。自动售货机配置瑞萨RZ/G2L嵌入式开发板,可以实现商品识别网络模型的移植和部署。
2.2 系统架构设计
自动售货机商品识别系统由设备层、网络层、平台层和应用层组成,系统框架如图1所示。设备层由摄像头、称重传感器、温度传感器、门锁感应器及其他感应装置组成,负责售货机关键部件控制和数据采集。摄像头用于采集商品图像数据,并将采集的数据分类存放于文件系统;称重传感器实时监测和采集每个隔板上货物的质量信息。门锁感应器实时监测售货机柜门开闭情况。网络层由TCP/IP协议的以太网和4G/5G移动网构成数据传输通道,负责系统各层功能模块之间的信息交互。平台层由文件系统、数据库和搭建Pytorch运行环境的服务器组成,负责设备层的数据存储管理和统一调度控制,同时为应用层提供计算服务。应用层由后台应用层和终端应用层2部分组成。后台应用层包括商品图像采集、训练学习和检测识别等模块。图像采集模块负责商品图像和商品属性信息的采集,并存入文件系统;商品图像训练学习模块负责基于深度学习的目标检测模型的训练学习,导入商品图像训练数据集后自动学习,并将最终学习结果保存到文件系统;商品图像检测识别模块利用最终学习得到的网络模型检测实时采集的商品图像,获取图像中包含的商品种类和数量信息,然
后从数据库中查询相应的商品信息并计算商品总价。终端应用层主要针对自动售货机的多元化应用场景,提供如扫码购物、商品图像识别等多种不同类型的服务功能。
2.3 系统工作流程
首先,在平台层利用服务器制作商品图像数据集,商品种类发生变化时,还要及时补充新增商品的图像数据并完成图像的标注。每次新增商品的图像数据都要进行商品图像训练学习,并将最终学习得到的网络模型移植到自动售货机的嵌入式系统。系统工作流程如图2所示。顾客购物时,通过扫码打开售货机柜门,触发称重传感器进行重力计算,并开启摄像头拍摄商品图像,根据商品图像识别售货机每层商品的种类和数量。顾客选取商品关闭柜门后,再次触发称重传感器称重和摄像头拍摄,根据此时拍摄的商品图像检测识别每层剩余商品的种类和数量。根据图像识别信息统计顾客购物前后商品种类和数量的差值,根据称重信息统计商品重量的差值,然后汇总商品销售信息并按照销量与售价计算总价,顾客结算之后,向顾客推送结算信息并完成购物过程。通过称重传感器进行重力计算,可以对商品的类别与数量变化进行辅助验证,提高商品识别的准确性和可靠性。
3 系统测试与验证
为了评估最终训练学习得到的网络模型的检测精度,本文利用测试集对网络模型进行评估,采用平均精度均值(Mean Average Precision,mAP)来评估网络模型的分类和定位性能,mAP是评价目标检测模型性能的常用指标。测试结果表明,轻量化后的YOLOv5s网络模型训练300个Epoch后,在测试集上可达到94.1% mAP,能够准确地预测图片中商品的位置和类别,具有良好的预测效果。将最终训练学习得到的网络模型移植到自动售货机的瑞萨RZ/G2L嵌入式开发板中,以此构建基于图像的商品识别系统。
4 结语
本文提出一种基于YOLOv5s的轻量化商品图像检测方法,并依此构建一个基于图像识别的自动售货机商品识别系统。具体设计如下:首先,采用轻量化网络Shufflenet-V2替换YOLOv5s原来的主干网络,引入注意力机制提取图像中的关键信息,利用Focal-EIoU Los代替CIoU Loss提高目标检测精度,构建一种轻量化的目标检测算法,并部署在自动售货机的嵌入式系统中实现商品识别。其次,利用轻量化的YOLOv5s模型构建一种自动售货机商品识别系统,可以实现扫码开门购物,无感自动结算,提升顾客的购物体验。最后,利用测试集对网络模型进行评估测试,测试结果表明,本文提出的轻量化商品图像检测模型具有良好的识别效果。
参考文献
[1]RUBLEE E,RABAUD V,KONOLIGE K,et al.ORB:an efficient alternative to SIFT or SURF[C].Proc of International on Computer Vision.Washington DC:IEEE Computer Society,2011.
[2]GIRSHICK R,DONAHUE J,DARRELL T,et al.Rich feature hierarchies for accurate object detection and semantic segmentation[C].Columbus:2014 IEEE Conference on Computer Vision and Pattern Recognition,2014.
[3]HE K,ZHANG X,REN S,et al.Spatial pyramid pooling in deep convolutional networks for visual recognition[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2015(9):1904-1916.
[4]GIRSHICK R.Fast R-CNN [C].Columbus:2015 IEEE International Conference on Computer Vision,2015.
[5]LIU W,ANGUELOV D,ERHAN D,et al.SSD:single shot multibox detector[C].Amsterdam:European Conference on Computer Vision,2016.
[6]REDMON J,DIVVALA S,GIRSHICK R,et al.You only look once:unified,real-time object detection[C].Las Vegas:2016 IEEE Conference on Computer Vision and Pattern Recognition,2016.
[7]龚惟新,杨珍,李凯,等.基于改进YOLOv5s的自然环境下猕猴桃花朵检测方法[J].农业工程学报,2023(6):177-185.
[8]杨小冈,高凡,卢瑞涛,等.基于改进YOLOv5的轻量化航空目标检测方法[J].信息与控制,2022(3):361-368.
[9]MA N,ZHANG X,ZHENG H T,et al.Shufflenet v2:Practical guidelines for efficient cnn architecture design[C].Berlin:Proceedings of the European conference on computer vision,2018.
[10]WOO S,PARK J,LEE J Y,et al.Cbam:convolutional block attention module[C].Berlin:Proceeding of the European Conference on Computer Vision,2018.
[11]ZHANG Y F,REN W,ZHANG Z,et al.Focal and efficient EIoU loss for accurate bounding box regression[J].Neuro Computing,2022(506):146-157.
(編辑 何 琳编辑)
Commodity recognition system design for vending machine based on object detection technologyLi Shuge, Zhao Pengju, Cheng Shiyan, Tang Honghui
(Chongqing College of Electronic Engineering, Chongqing 401331, China)
Abstract: In response to the problems of low space utilization and high additional costs caused by traditional commodity recognition methods used in vending machines, a lightweight commodity image detection method based on YOLOv5s is proposed. A commodity recognition system for vending machine based on image recognition is constructed to reduce operating costs and optimize shopping experience on this basis.
Key words: object detection; commodity recognition; lightweight net; system architecture