基于NB-IoT与MaixPy3的果蔬收银机设计
2022-10-20盖康豪李隆基郑瑜
盖康豪,李隆基,郑瑜
(河南科技大学 信息工程学院,河南 洛阳 471023)
0 引 言
目前,计算机算力水平的提升、通信技术的发展、电子元件成本的降低使得A-IOT 的体系模式得以广泛运用。其中,在果蔬售卖机领域,有两种形式的果蔬售卖一体机,一种是带有冷藏功能的柜体式的自助售卖机,生鲜果蔬存放其中,用户需要通过操作显示屏选择相应果蔬并付款,这种形式的果蔬售卖机体积庞大,容纳货物有限,价格昂贵,传感器节点多从而导致维护复杂。另一种利用计算机视觉等技术的果蔬收银机,生鲜果蔬不直接存放在机器里,而是存放在无人店铺中,用户可以将选好的果蔬放入识别台并进行付款,由于其免去了超市收银员的劳动成本同时生产成本较低、升级更新简单从而在一些无人水果店得以广泛运用。但是,目前市面上的果蔬收银机只能一次性识别一类果蔬,在用户挑选多类果蔬的情况下需要多次识别并支付操作,这样既会降低效率也会使得用户的体验感变差。
针对该问题,设计出一种果蔬收银一体机,该收银机机利用一个识别摄像头可以同时将识别区内的不同称重识别区上的果蔬同时识别出来,并计算出商品的价格信息以供顾客支付,提高了支付效率与用户体验感。
1 果蔬收银机系统结构设计
1.1 工作原理
该果蔬收银一体机利用hx711 应变片传感器测量出相应果蔬的重量,摄像头传感器搭配YOLO 目标检测模型识别果蔬的种类,通过NB-IoT 通信方式连接云端,开发板自带的Wi-Fi 功能接入互联网,通信协议采用物联网轻量级协议MQTT,采集到云端数据库中果蔬种类售价信息后将数据保存到本地并且云端MQTT 主题更新时本体可以收到相应的通知,该售价信息结合果蔬的重量可以计算出顾客需要支付的费用,支付方式可以采用RFID 射频磁卡支付或者借助百度AI 提供API 实现的人脸支付。此外,每个果蔬收银机内部设有GPS 定位模块,可以将不同的收银机所处售卖点的每日售卖信息发生至云端数据中心以方便统计与管理借助,借助已有的数据分析科学模型可以做出相应的经营决策。
顾客使用时,将选好的果蔬按类别放在不同的称重台上,待识别完毕后可以在交互屏幕上查看识别信息并完成支付操作。产品也可以通过MQTT 协议订阅固件或视觉模型的更新主题,从而可以使得在远端发布更新的固件或视觉模型,在本地完成更新升级。
1.2 总体设计
所设计的果蔬收银一体机采用MaixSense 开发板。该开发板以全志R329 双核Cortex-A53 处理器作为核心单元,带有MaixPy3 固件,具有AI 处理单元,IO 口可以多功能扩展,可以运行Linux 系统,开发者可以直接在开发板上跑通相关CV 等AI 模型。在该设计中,我们将Armbian 系统装入该开发板中。采用摄像头模块来实时获取识别台上的商品信息,并使用YOLOv3 模型识别果蔬的种类,通过GPS 模块获取当前所在地点经纬度信息同时由NB-IoT 通信模组与云端服务器相连以实现云端信息的数据交互,网络协议采用MQTT。果蔬一体机会将计算好的果蔬与价格信息显示在交互式屏幕上,用户据此可以采用磁卡进行支付,借助现有百度AI 的API 接口还可以实现人脸支付、扫码支付的功能。如图1所示。
图1 总体设计方案图
2 系统单元设计
2.1 中央处理单元
以R329 作为核心单元的MaixSense 开发版,内置多种硬件加速单元(KPU、FPU,FFT 等)与MaixPy3 固件,支持YOLOv3 等AI 模型,外设(FPIOA、UART、GPIO、SPI、I2C、I2S、TIMER)齐全,板载资源也十分丰富,包含Wi-Fi 模组可接入互联网,可装载Linux 嵌入式系统,体积十分小巧,支持MicroPython 进行开发,减小了开发难度。
2.2 传感器单元
在压力传感器模块采用专门为电子秤设计hx711 芯片,搭配桥式应变片传感器从而具有精度灵敏度高且使用方便的优点。采用带有陶瓷天线的中科微芯片AT6558D 的GPS 模块可以准确获取到当前的经纬度信息,摄像头模块采用广角摄像头传感器OV5640 以录入果蔬种类。在射频模块采用RFID 技术的MFRC-522,成本低且有足够好的IC 感应。
2.3 通信单元
借助移远的BC260Y-CN 我们可以独立使用NB-IoT,该芯片内置的超级天线可以增强信号,与中国移动的物联网卡相配合可以将采集的数据上报给云端,也可以从云端数据中心获取想要的数据。但是NB-IoT 的通信方式具有一定的局限性,其下行时延高的缺点导致一些互联网的API 调用与数据库的交互出现差错,MaixSense 的Wi-Fi 功能(搭配http协议)可以解决此问题。
2.4 用户交互单元
用户交互单元主要包括交互式显示屏,该屏幕采用串口屏幕,由于串口屏幕内置了STM32 处理器,可以分担一定的计算任务,所以利用它可以节约单片机的引脚资源以及内存的计算消耗。
3 实验
3.1 Hx711 压力传感器测试
hx711 模块本质为一个AD 转化芯片,满量程输出为输入电源的激励电压×灵敏度(1 mV/V),在硬件连接时由A/B 两个通道,A 通道带有128 倍信号增益,可以将5 mV的电压放大128 倍,然后采样输出24 BitAD 转换的值,单片机通过指定时序将24 Bit 数据读出。
Hx711 本质是对应变片形变而产生电路阻值的测量,所以对应变片的安装方式也尤为重要,其粘贴方式采用双臂电桥的方式,即一个应变片粘贴于受力体上方,受力拉伸,另一个粘贴于受力体下方,受力压缩,这样既可以消去温度误差也可以提高传感器的灵敏度。如图2所示。
图2 HX711 原理图
通过输出hx711 的对应时序,使用A 通道读取,我们 可以得到对应的AD 数值,记为VAD,量程为span,最终重量为weight,有如下计算公式:
经过去皮调零后,采集到重量测试数据与相对误差如表1所示。
表1 hx711 测试结果
3.2 GPS 定位测试
定位模块采用维特智能的ATK-NEO-6M-GPS,该定位模块使用串口通信(UART)的方式传输信息,定位数据采用NMEA-0183 协议。在测试中,我们将使用NMEA-0183协议命令表中的定位地理信息($GPGLL)、当前卫星信息($GPGSA)、可见卫星数($GPGSV)来获取相关的位置信息,并绘制其中的卫星视图。利用百度地图坐标转化API 将获取到的GPS 系统使用的坐标系转换为百度坐标系BD09,并分析测量时的搜星数,搜星数越多,测量结果越准确。
如图3所示,在GPS 搜星图中,红色标号代表卫星信号未达到可用标准,绿色则表示卫星信号已达到可用标准。GPS 测试数据如表2所示。
图3 GPS 搜星图
表2 GPS 测试数据
3.3 多果蔬种类目标检测测试
为仅用一个摄像头模块将视野中的所有果蔬种类检测出来,使用多目标检测算法YOLOv 模型。首先对果蔬种类制作相应数据集(主要包含apple、pear、banana、orange 四类),共200 张标注图片,每张图片包含上述的2~4 类水果种类,标注完成后将数据集按照7:2:1 的方式划分为训练集、验证集、测试集。图像像素大小设置为360×360,数据批次大小为10,优化器模型采用Adam,其余超参数使用YOLO 预训练模型默认参数,进行150轮次训练,训练结果的mAP指标,如图4所示,为在IoU阈值为0.5情况下的mAP指标训练曲线,在计算机视觉的目标检测算法中,其mAP 面积数值越高表示训练识别与检测效果越好,最高值为1,在测试中其值最终高达0.963,说明目标检测训练结果良好。
图4 mAP_0.5 训练曲线
我们将摄像头传感器获取的图像信息带入模型,将标识概率阈值设置为0.7,并将检测结果的位置与概率信息标注出来。如图5所示。
图5 果蔬检测结果
3.4 MQTT 订阅与数据融和
为使得终端节点的果蔬数据信息始终与云端数据库相同,我们使用MQTT 主题订阅的方式,每个终端节点均订阅云端服务器的果蔬信息主题,每当云端服务器将该主题信息更新时,终端节点会接收到主题信息改变的通知并修改本地内存的果蔬信息表,搭配装有中国移动物联网卡的移远BC260Y-CN 通信模块,这种方式合理利用了NB-IoT 上行通信时延低和下行通信时延较高(相对)的特点,避免了每次计算数据时都向云端服务器发送拉取果蔬数据信息请求,同时也实现了本地果蔬数据信息与云端实时同步。我们利用云端服务器发布主题,终端节点订阅主题,交互信息的格式采用JSON 数据格式,数据内容包括果蔬的名称、每斤价格以及产地,利用MQTT 测试软件MQTTfx 打印交互内容。如图6所示,图为MQTT 云端消息订阅调式日志。
图6 MQTT 订阅日志
终端节点获取到每个果蔬种类对应的价格信息后,便将各个传感器测得的结果进行数据融和操作从而计算出付款价格等信息。其中主要用的数据有果蔬重量信息、果蔬目标检测位置与种类信息、GPS 定位信息等。数据融和步骤如图7所示。
图7 数据融和步骤
其中,付款金额信息price 代表了所有果蔬测量价格的总和,每种果蔬种类价格的计算由目标检测中果蔬的单位价格信息与检测位置对应的压力传感器的重量信息决定,用数学公式可以表示为:
将果蔬价格计算出来后,为了方便在云端进行数据分析,还可以根据付款数据生成订单信息以及GPS 付款地点,通过MaixSense 的Wi-Fi 功能将数据发送至服务器,在云端可以进行数据库的操作并结合一些金融数学模型还可以做出一些商业的经营决策内容并生成相应的MQTT 主题。
4 结 论
本研究涉及的果蔬收银一体机基于智能识别、称重以及付款于一体,在目前便捷生活理念的驱动下,在果蔬店、无人便利店、无人超市等自动无人化零售领域具有广阔的市场前景。该研究设计利用目标检测算法可以同时计算出用户挑选的不同果蔬的数据,合理利用了NB-IoT 的低功耗、连接数量大、上行时延低但下行时延高的特点,MQTT 协议实现本地数据模型与云端的同步,搭配MaixPy3 开发的计算机视觉模型实现了A-IOT 的体系架构,在操作便捷性上对当前果蔬自助收银机具有重大的改进意义。