APP下载

基于机器视觉的一种智能购物车

2022-04-28欧其胜杨桂华

大众科技 2022年2期
关键词:购物车重量基站

欧其胜 杨桂华

基于机器视觉的一种智能购物车

欧其胜杨桂华

(桂林理工大学机械与控制工程学院,广西 桂林 541004)

为提升线下超市购物体验和购物效率,研究设计了一种基于机器视觉的智能商品识别购物车。文章提出的智能购物车是主要基于计算机视觉、UWB超宽带定位技术、重量传感等技术,实现商品识别、定位导购、实时记账、便捷支付等功能的智能识别购物车。文章介绍了该购物车的系统设计方案、硬件和软件设计,测试结果显示,该系统可实现商品识别、定位导购、便捷支付等功能。

商品识别;智能购物车;UWB定位;STM32

引言

随着中国“智慧城市4.0”时代的到来,以人工智能为主要技术,中国经济的飞速发展与智慧城市理念渐渐深入人心,人们开始追求更加智能、便捷的生活,无接触经济兴起。

目前我国人口基数大,传统商场、超市购物流程繁琐,时间花费长,传统购物车只停留在放置商品的功能上,整体功能过于单一,没有探索新零售技术在购物车中的其他应用[1]。而目前的其他智能购物车识别商品依然采用扫描条形码进行识别商品,且需依靠人的自主认知及素质,结算效率低,未能提供自主定位导购服务,难以满足大量市场需求和人们对更智能、便捷的线下购物体验[2]。针对以上情况,本文提出一种集商品识别、定位导购、实时记账、便捷支付和抗菌等功能的智能识别购物车。

1 系统方案设计

本项目提出的智能购物车主要基于计算机视觉、UWB超宽带定位技术、重量传感等技术,实现商品识别、定位导购、实时记账、便捷支付等功能。该智能购物车包括主控制模块、商品识别跟踪系统、定位导购模块、交互系统及服务器,其主要功能如下。

(1)商品识别。摄像传感单元实时获取图像数据,识别模块应用卷积神经网络算法(Convolutional Neural Networks,CNN)进行商品图像识别,并根据商品重量比对,确保识别准确率。

(2)定位导购。定位模块实现购物车位置实时定位,并将位置坐标发送至主控制器STM32F4,控制器将坐标发送至显示模块进行显示,消费者可通过搜索某商品,同时控制器获取该商品位置信息并显示于LCD屏上。购物者通过对比购物车以及目标商品坐标信息确定最终的购买路线。

(3)便捷支付。消费者需要结账时,通过智能购物车生成支付下单请求并发送至超市服务器,超市服务器发送支付二维码信息经过主控制器STM32F4传输到LCD屏幕显示,消费者扫码支付完成后,主控制器从服务器获取支付状态并传输至LCD显示。

2 硬件设计

2.1 购物车硬件设计

本项目以STM32F429处理器为控制核心,Kendryte K210为识别处理器。STM32F429借助Chrom‑ART Accelerator™的优势,支持双层图形的新型LCD-TFT 控制器接口,使该图形加速器创建内容的速度达到单独使用内核时的两倍,LCD显示能力相对于STM32F407有非常大的提升,这也是本项目选用主控制器为STM32F429的主要原因之一。智能购物车硬件系统结构如图1所示。

图1 硬件系统结构图

商品识别模块将识别结果传输到主控制作进一步处理。为了提高识别速率,本项目将主控制器与视觉识别模块通过USART1(PA10/PA9引脚)连接,实现模块之间的串口通信。购物车与超市后台服务器之间的无线通信采用ESP8266模块实现,完成支付数据、支付状态等信息的获取,主控制器通过USART6(PC7/PC6引脚)与ESP8266 WIFI模块的RXD、TXD连接。智能购物车的定位导购功能采用定位精度高(厘米级)、抗干扰能力强的UWB定位技术,UWB定位模块将定位坐标信息传输至主控制器,通过控制器的USART2(PA3/ PA2)引脚与定位模块进行连接,完成定位坐标信息的接收。LCD显示模块通过16个并口(D0~D15引脚)连接与主控制器GPIO相连实时显示商品信息、定位信息以及支付信息。同时为了快速获取商品的重量信息,本项目采用ZXZJ压力传感器,承重为10 kg,精度等级B级,滞后误差±0.015%R.O.,由主控制器通过USART3(PB11/PB10引脚)与重量传感器(通过AD转换器)连接。

2.2 识别模块硬件设计

Kendryte K210是集成机器视觉的系统级芯片(SOC),具有RISC-V 64 位双核处理器(CPU),拥有较好的稳定性与可靠性,还有丰富的外设单元,如FPIOA、UART、DVP、SPI、GPIO、JTAG、PWM、OTP、I2S以及I2C等。K210每个核心内置独立FPU,其包含一个国内自主研发的神经网络硬件加速器KPU,其AI算力高达0.8 TFLOPS,用于高性能计算卷积人工神经网络,集成卷积、归一化、激活以及池化等神经网络运算单元[3]。

视觉识别模块硬件连接图如图2所示。为实时捕获视频流中的图像数据,本模块采用OV7740高清摄像头CMOS传感器,通过K210芯片的DVP(Digital Video Port)数字视频接口与K210连接,K210芯片通过SCCB串行摄像控制总线协议配置摄像头寄存器,DVP将OV7740(60FPS)捕获的图像数据输出至KPU。为了存储更大的 KMODEL 识别模型,本项目采用扩展MicroSD卡的形式,KendryteK210通过串行外设接口(SPI)连接扩展MicroSD卡。K210串行外设接口有4组SPI接口,本项目采用K210的串行外设接口3(SPI3)进行连接扩展MicroSD卡。K210作为识别模块处理器,只负责商品的检测识别,通过异步收发器UART3连接STM32F4进行串口通信,实现商品识别结果的发送,将识别信息传输至主控制器。K210的UART支持自由引脚映射功能,使用FM来对芯片引脚进行映射和管理,将PIN35设置为UART3的发送引脚,PIN35设置为UART3的接收引脚。

图2 识别模块硬件连接图

2.3 定位模块硬件设计

定位模块由MCU STM32F103和DWM1000模块组成,应用于定位基站以及购物车定位标签。DWM1000模块是基于Decawave公司DW1000芯片设计的超宽带收发模组。该模块可用在TWR或TDOA定位系统中,定位目标精度小于10 cm;并且该模块最高支持6.8 Mbps的数据传输率,DWM1000板上搭载的DW1000芯片,是基于CMOS的、低功耗的的无线收发集成电路,遵循802.15.4-2011[1]协议中的 UWB 标准的芯片,模块上包含了天线、无线通讯模块以及相关电路[4]。

STM32F103与DWM1000模块通过SPI通信连接,DWM1000模块的SPI_CLK、SPI_MISO、SPI_MISI、SPI_Csn、IRQ、RESET引脚分别于STM32F103的A5、A6、A7、A4、B5、B15引脚相连,基站采用单独电源供电。

3 软件设计

3.1 商品识别算法

商品识别包括视觉识别、商品重量识别。第一步是商品的粗判断,由视觉识别模块进行商品图像的识别。第二步是商品的精确判断,视觉识别模块将识别结果发送至STM32主控制模块,STM32主控制模块从车载SD卡获取该商品重量信息并与重力传感器所测重量进行误差范围比对,比对成功,则STM32主控模块将最终的商品识别结果以及其信息发送至LCD显示模块。同理当商品从购物车内拿出,由识别模块识别,再与重量传感器减少的重量值进行比对,得到取出商品的具体信息,由STM32处理后,将结果发送给LCD显示模块。

本文提出的商品视觉识别是基于CNN算法的一种商品图像识别系统,利用图像边缘计算能带来更快速的响应服务和更优质的实时业务体验[5]。商品识别系统流程图如图3所示。

图3 商品识别系统流程图

首先通过高清摄像头采集每种商品上百张不同角度原始商品图片数据作为数据集制作,预处理数据集为目标分辨率(将原始商品图片转换成224×224像素大小),图像数据集依照TFRecord数据集格式构建,通过VOTT标记工具进行目标图像区域标记,商品识别神经网络模型采用TensorFlow深度学习框架进行训练,得到多次迭代后保存的训练权重识别模型,最终导出可以被K210硬件平台直接识别的Kmodel格式商品识别模型文件[6]。然后将训练好的神经网络模型存放于SD文件系统,K210控制芯片利用购物车上搭载的摄像头(OV7740)进行实时捕获并将捕获的图像数据直接传输至神经网络处理器KPU,KPU神经网络处理器通过加载并运行商品识别模型,进行快速卷积、批归一化、激活以及池化等卷积神经网络运算,完成商品视觉识别任务。最后将识别结果通过串口发送至主控制器STM32。主控制器接收到识别模块发送的识别结果时,等待重力传感器发送新的重量信息进行差运算,得出此时放入的商品重量,将该商品理想的重量信息与计算得出的重量信息进行比对(指定误差范围内),判断商品类别。同时主控制器获取购物车内新总重量信息进行差运算,当放入新的商品,利用差值得出该商品重量为正值,同理当从购物车内取出商品,利用差值得到该商品的重量为负值,进而判断商品是放入还是取出。

3.2 UWB定位导购算法

目标商品定位采用基于到达时间差TDOA算法的UWB定位技术。UWB定位模块实获取定位购物车位置,主控制器获取目标商品位置并将购物车及目标商品位置坐标发送至显示模块。

UWB定位模块包括MCU(STM32f103)和DWM1000射频模块。UWB室内定位系统组成包括标签(购物车)、基站和定位服务器三部分[7]。UWB定位原理如图4所示。标签到达两个传感器的距离(传输速度与到达时间差之积为c×∆t)之差可以确定一条双曲线,四个传感器就可以确定两条双曲线,这两条双曲线的交点就是待定位标签的位置坐标。

式(1)中,(x, y)是待定位标签的位置,(x1, y1)是已知基站1的位置,(x2, y2)是已知基站2的位置,同理通过基站3和基站4求出购物车位置,通过6组位置求均值,减少定位误差。

本项目采用4基站布置在超市四个角落,有两个基站分别布置在出入口(出口基站连接定位服务器),为提高定位精度,使基站与购物车于同一水平高度。UWB基站布置图如图5所示。

图5 UWB基站布置图

3.3 购物结算

为从根本上解决超市排队结帐购物结账拥挤等问题,本项目采用购物车电子支付,实现快速结算功能。本项目的电子支付功能通过调用微信API进行订单支付[8],购物车通过LCD显示支付二维码和支付状态。具体过程如下。

当顾客在购物车上创建订单后,购物车系统将创建订单请求发送给超市后台服务器,超市服务器通过当前系统时间生成1个唯一订单号,并存储至数据库中。为防止订单发生串单,设置1个设备在同一时间只能设置1个订单。创建订单后,超市服务器向微信发送下单支付请求,成功后微信将返回支付二维码信息。支付系统记录当前支付状态后,发送结果和二维码信息到购物车主控STM32,购物车通过LCD屏输出支付二维码显示给顾客进行支付。在显示二维码后,购物车将不断询问服务器订单是否完成支付,若订单状态为未完成时,将询问支付平台的支付状态,并将支付结果返回至购物车。同时支付平台也会在顾客支付成功后将支付结果传输给超市服务器,服务器将处理数据写入数据库中。订单创建及支付流程图如图6所示。

图6 订单创建及支付流程图

3.4 人机交互

人机交互模块主要由LCD触摸交互屏实现,在购物车推手栏上安置一个电子式交互屏幕,辅助购物车实现商品导购、宣传、商品结账等一系列功能,人机交互界面如图7所示。主控制器实时获取购物车位置信息并显示于LCD屏超市地图中,当消费者通过搜索栏输入类别或商品名称查找某商品,主控制STM32获取该商品的价格、位置、生产日期等信息。当消费者点击该商品,STM32将该类商品的坐标信息发送至LCD显示模块的超市地图中,消费者可以通过两个位置坐标确定最终购买路线,当其到达指定商品位置附近,提示已到达指定位置附近等提示信息。当商品被放入至购物车中,主控制器将其价格、数量发送至LCD进行显示,并显示所购总价,购物者可以对消费数据一目了然[9]。当购物者点击结账时,STM32通过无线模块发送下单请求和接收支付二维码信息,并将支付二维码发送至LCD显示,当购物者通过微信付款后,显示“支付成功”和“欢迎下次光临”等问候语。

图7 人机交互界面

4 系统测试

经过测试,该购物车可以实现商品识别、定位导购和便捷支付等功能。在商品识别方面本项目只采用100种商品分类检测,在此条件下识别功能表现良好,虽识别效率稍有延迟,但识别准确率比较高。识别速度的快慢与训练的识别模型和处理器运算能力有较大的联系。在定位导购方面,因没有过多物体阻挡,定位精度达到预期要求,若布置于商场中,定位精度会略有降低。在搜索某商品时,该购物车能成功显示商品相关信息以及位置坐标于LCD上,定位精度良好。当商品处于购物车中上方,视觉识别模块进行识别商品,在商品放入购物车底部,根据重力传感器所测重量进行检验,并能将结果发送至LCD进行显示。当点击账单结算后,LCD成功显示微信支付二维码,完成支付后显示支付成功。

5 结束语

论文基于STM32和计算机视觉设计的智能购物车可以实现商品识别、定位、便捷支付功能,在理想的条件下可以实现一定速度的商品识别,系统整体功能表现良好。识别模块处理器对识别速率有一定的影响,在后续的发展中,可根据需要采用AI算力更大的处理器,实现识别效率的提升。该型购物车具有功能丰富、功能模块化、响应速度快、性价比高等优势,采用的模块化方案便于实现模块的更换,实现购物车各功能的升级。

[1]王博毅,张河,赵明伟,等. 基于单片机设计的Smart Buy 智能购物车[J]. 电子世界,2019(17): 175-176.

[2]刘雪,徐永进,秦雪雪. 基于单片机控制的智能购物车系统研究[J]. 河北农机,2020(3): 35.

[3]蒋达央. 基于卷积神经网络的商品图像识别系统设计[J]. 北京工业职业技术学院学报,2021,20(3): 28-31.

[4]张志山. 基于UWB的人员跟踪定位系统的设计[J]. 电子世界,2020,10(3): 155-156.

[5]方梓锋,张锋. 基于K210和YOLOv2的智能垃圾分类平台[J]. 自动化与仪表,2021,36(8): 102-106.

[6]王浩. 基于K210芯片的KPU硬件加速人脸检测应用系统设计[J]. 办公自动化,2021,26(11): 58-59,39.

[7]黄佳鑫,王民慧. 基于UWB技术的定位算法设计[J]. 智能计算机与应用,2020,10(11): 137-143.

[8]邵华梅,汪志成,徐丽琴,等. 基于STM32的散装食品自动售货机设计[J]. 机械制造与自动化,2021,50(3): 220-223.

[9]龙正江,刘丽华,林力,等. 基于物联网可交互超市智能购物车设计[J]. 辽宁科技学院学报,2019,21(3): 17-18.

An Intelligent Shopping Cart Based on Machine Vision

In order to improve the shopping experience and shopping efficiency of offline supermarkets, an intelligent commodity recognition shopping cart based on machine vision is studied and designed. The intelligent shopping cart proposed in this paper is mainly based on computer vision, UWB ultra wideband positioning technology, weight sensing and other technologies to realize the intelligent identification shopping cart with the functions of commodity identification, positioning and shopping guide, real-time bookkeeping, convenient payment and so on. This paper introduces the system design scheme, hardware and software design of the shopping cart. The test results show that the system can realize the functions of commodity identification, positioning and shopping guide, convenient payment and so on.

commodity identification; smart shopping cart; UWB positioning; STM32

TP249

A

1008-1151(2022)02-0009-04

2021-09-15

广西壮族自治区大学生创新创业训练计划项目(202110596194);广西高等教育本科教学改革工程项目(2021JGA198)。

欧其胜,男,桂林理工大学机械与控制工程学院学生,研究方向为机械电子工程。

杨桂华,女,桂林理工大学机械与控制工程学院副教授,研究方向为计算机检测与控制方向。

猜你喜欢

购物车重量基站
重量
被疫情改变的购物车
推购物车购物
购物车里的“时间线”
基于移动通信基站建设自动化探讨
可恶的“伪基站”
清空购物车了吗!
基于GSM基站ID的高速公路路径识别系统
小基站助力“提速降费”
创新的重量