APP下载

具有识别分析功能的超市蔬菜称重系统

2021-08-27乐坤

科技与创新 2021年16期
关键词:树莓程序数据库

乐坤

(武汉理工大学机电工程学院,湖北 武汉430070)

随着人民生活水平的提高,超市购物逐渐成为常态。但这也引发了下班时段超市蔬菜区称重排队的问题,这不仅浪费了顾客的宝贵时间,给顾客带来不好的购物体验,还减缓了超市的结算速度,影响超市的收益。此外,随着人工智能的兴起,无人超市发展迅猛,但要实现真正的无人化,需要使用具有自动识别称重功能的设备[1]。

针对上述存在的问题,亟待开发一种具有识别分析功能的超市蔬菜称重系统[2]。本项目在传统电子秤的基础上,加入自动识别功能和数据分析功能,使该系统不仅能为用户提供快速的蔬菜识别称重、打印小票服务,还能为超市管理者对蔬菜的补充、进货、促销等决策提供参考。

1 系统整体方案设计

本系统以搭载了YOLO V3蔬菜识别算法、数据分析算法的树莓派为核心部件,配合摄像头、液晶显示屏、压力传感器及HX711 AD转换模块等完成功能。系统整体设计如图1所示。

图1 系统整体设计框图

当压力传感器检测到质量变化时,通过HX711 AD转换模块将质量信息传送给树莓派。同时摄像头开始工作,采集托盘上蔬菜图像传送给树莓派。树莓派通过YOLO V3算法识别出蔬菜品种后,从数据库中取出该品种蔬菜的单价数据,从而计算出总价,并将信息均显示在液晶屏上,同时打印出小票。在每笔称重结束后,树莓派会将该次称重的所有信息存储在数据库中,这样当超市管理员通过图形用户界面来查看某一时间段、某一种蔬菜的销售情况时,树莓派就会调用已封装好的数据分析函数将数据库中的相应数据以图表的形式展现出来。这为超市管理员在蔬菜进货量、价格调整、余量处理等方面的决策提供了有力的参考依据。此外,超市管理员还可随时通过图形用户界面更改数据库中蔬菜的品种与单价。

2 硬件结构

2.1 控制模块

本系统以树莓派RPI 4B为核心控制器[3],它是一款基于ARM的微型电脑主板,以SD/MicroSD卡为内存硬盘,具备所有PC的基本功能。其只有信用卡大小,这使得本系统很容易在传统电子秤上实现。其具有无线Wi-Fi模块,因此不需要额外搭建网络连接,在电脑上使用VNC远程访问即可获得树莓派上的数据。其还具有优秀的图像处理能力,尤其是4B款最高有8 G运行内存,这极大加快了蔬菜识别计算速度,使其成为本系统开发的首选。

2.2 图像识别模块

本系统采用树莓派专用摄像头,该摄像头使用OV5647感光芯片,最大像素可达500万,传感器像素为1 080 P,支持调焦,具有体积小、工作电压低、便于连接等特点。经测验,该摄像头采集图像清晰准确、失真率低,可为蔬菜识别算法提供可靠的图像数据。

2.3 称重模块

本系统称重模块由压力传感器与HX711 AD转换器组成。

压力传感器通过应变片将压力信号转换为电信号。其上下表面各有一个应变片,每个应变片内有两个压力电阻。四个压力电阻组成全桥式电路,从而使传感器具有较高测量精度。

HX711 AD转换器将压力传感器测量的质量转换为数字信号。HX711是一款专为高精度电子秤设计的24位A/D转换器芯片。该芯片具有两路模拟通道输入,内部集成128倍增益可编程放大器,是一款理想的高精度、低成本采样前端模块。HX711通过四根插线即可与树莓派实现连接,由树莓派对其进行供电。

2.4 用户交互模块

本系统采用3.5英寸(11.67 cm)HDML高清触摸屏,刷新率可达60 FPS,最大分辨率高达1 920×1 080,可清晰地展示称重结果。该显示屏采用薄膜基板技术(TFT),水平、垂直视角均可达到170°,可满足不同身高客户及多客户同时观察的要求。该显示屏不仅可通过HDML线与树莓派连接,还可以通过26PIN母座与树莓派连接。该显示屏支持触摸控制功能,当超市管理员没有电脑不能实现远程访问时,也可直接通过触控该显示屏操控树莓派,来查看蔬菜销售信息。

3 软件设计

3.1 蔬菜识别程序设计

蔬菜识别程序是本系统的核心部分。目前已有众多算法可以在蔬菜识别任务上取得出色的结果,但各算法各有优劣。本系统选用的是YOLO V3算法,它是基于YOLO V1算法发展而来的。与传统的两阶段目标检测方法(RCNN、Fast-RCNN、Faster-RCNN)不同,YOLO系列算法省略了前者的提取候选区这一步骤,只需对图片进行一次处理,即可识别并定位出目标。此外,YOLO采用回归的方法,不用复杂的框架。上述特点使其识别速度相比于前者得到了很大程度的提升,可以满足实时检测的要求。同时,由于其没有进行区域采样,所以对全局信息有较好的表现。YOLO V3网络可基于Facebook人工智能研究院推出的Pytorch库实现搭建。

为了训练YOLO V3网络,可以使用Fruit-360数据集,该数据集包含131类蔬菜和水果,共有90 483张图片,涵盖了超市销售的所有水果和蔬菜。

3.2 称重程序设计

称重程序可以借助Python中已封装好的第三方库hx711和RPI.GPIO来实现。hx711库专为树莓派驱动HX711转换器而设计,提供了切换HX711工作通道、修改HX711放大增益倍数和读取HX711原始数据三个功能。RPI.GPIO库提供了众多控制树莓派GPIO引脚的函数,具有设置引脚值、读取引脚值等功能。

该程序在系统开机后的初次使用时,需要使用已知质量的物体来校准凋零。该程序为本系统的主程序,其内包含调用蔬菜识别程序和数据库程序的接口函数。

其程序执行流程如图2所示,首先校准调零,进入称重待机模式,当检测到质量变化时,通过接口函数调用蔬菜识别程序,识别成功后,通过数据库程序接口函数在数据库中取出对应蔬菜的单价,然后完成计算并展示结果,最后再次调用数据库程序将该次称重的信息存入数据库。

图2 称重程序流程图

3.3 数据库程序设计

本系统使用的是SQLite3数据库[4]。SQLite是一款用C语言编写的小型嵌入式数据库,它的数据库就是一个文件。它的运行不需要一个单独的服务器进程,其运行环境与主程序位于同一进程空间,这使其具有很高的执行效率。此外SQLite是一款轻量级数据库,其运行所占内存空间只有几百KB,而且它是完全独立的,无需在系统上安装任何外部依赖。SQLite支持多种开发语言,如C、C++、PHP、Java、Python等。本系统使用Python语言,Python内部有已封装好的SQLite3模块,使用该模块可以快速地创建与数据库的连接、创建数据表以及实现对数据表的增删改查。

本系统共需两个数据表,一个是蔬菜单价表,一个是称重信息记录表。蔬菜单价表用于称重时结合质量数据计算蔬菜总价,称重信息记录表用于生成展示蔬菜销售情况的图表。两个数据库各存储为一个文件,工作时相互独立,互不影响。两个数据库除了可以用程序调用修改外,也可直接在树莓派以文本编辑器形式打开进行修改。

3.4 图形用户界面程序设计

图形用户界面程序完全独立于称重程序,该程序通过可视化界面为超市管理员提供修改蔬菜单价和查看各类蔬菜销售情况两个功能。该程序需要修改或读取数据库内数据,因此其内部也含有数据库程序调用函数。

图形用户界面可通过Python中的内置库Tkinter来实现。Tkinter是Python的标准GUI库,因此其无需安装,有着良好的性能与技术支持。Thinker非常适合本系统中这种小型、简单GUI的开发。而将数据库中数据可视化需要用到Python另一个第三方库Matplotlib,它是一个2D绘图库。Matplotlib与NumPy一起使用,可以很方便地将数据集绘制成条形图、扇形图等图形。通过这些图表,超市管理者可以很快知道各种蔬菜的销售情况和剩余数量等,而不需要去一一查看。

4 结束语

本文介绍了具有识别分析功能的蔬菜称重系统的设计方案和实现过程,该系统在传统电子秤的性能方面,增加了自动识别蔬菜功能,既能有效提高当前超市蔬菜零售区的运行效率,也为将来的无人超市提供了技术支持,具有良好的应用前景。此外,该系统还为超市管理员提供了图形用户界面,为其在蔬菜管理上提供了有力的帮助。

在接下来的研究中还可对本系统继续优化,比如对YOLO V3算法进行改进[5],提高蔬菜识别精准度;增加语音检测模块,通过购物者的描述实现双识别功能;优化图形用户界面程序,使其可以实时动态显示各类蔬菜的销售情况,且更加美观,同时也可以增加更多的数据分析功能;开发微信小程序实现移动端的管理等。

猜你喜欢

树莓程序数据库
给Windows添加程序快速切换栏
试论我国未决羁押程序的立法完善
“程序猿”的生活什么样
英国与欧盟正式启动“离婚”程序程序
数据库
黄金水果红树莓
树莓红了 游人醉了
数据库
e络盟率先推出第三代树莓派
数据库