作者主页:毕业设计精选
作者简介:9年JAVA全栈开发经验,专注JAVA技术、系统定制、远程指导,致力于企业数字化转型,CSDN博客专家
摘 要
针对目前高校就餐排队时长、计费细则缺失与缺乏高效计费系统等问题,笔者以某高校食堂菜品为样本, 基于 Vue、微信小程序、SpringBoot 技术设计一个基于图像识别的智慧餐饮管理系统。实践表明, 该系统能够稳定运行, 可以为管理者提供决策支持,达到预期设计要求。
关键词:智慧餐饮管理系统;计算机视觉;推荐系统;SpringBoot;
0 引言
随着科学技术的不断进步,人工智能已广泛应用于各行 各业中。近年来,高校的招生规模不断扩大,学生人数不断 增加,使得高校食堂经常出现排队时间长、计费不准确以及 大量耗费人力资源等问题。由此可见,高校食堂引入以图像 识别技术为核心的餐饮管理系统具有重要的实践意义。本文 采用计算机视觉、推荐系统、后端微服务框架 SpringBoot 、 前端 Vue 框架及微信小程序搭建智能化的餐饮管理系统,并 结合高校食堂的具体需求进行优化,旨在为高校提供更准确、 更快速的就餐结算方式。
1 系统核心技术
1.1 计算机视觉
在图像识别模块中,采用 YOLOX 与 ncnn 计算框架作 为主要技术来实现。YOLOX 是旷视科技公司在 2021 年提 出的高性能的检测器,在 YOLO(You Only Look Once )系列的基础上借鉴了近年来目标检测学术界的最新成果 ,同 时继承了 YOLO 系列容易部署的特点,提供了多种部署版 本 [1] 。ncnn 是腾讯优图实验室的首个开源项目 ,是一个为手 机端极致优化的高性能神经网络前向计算框架。该计算框架 无第三方依赖,手机端 CPU 的运算速度快于目前所有已知的 开源框架。它使开发者能够将深度学习算法轻松移植到手机 端并高效执行,开发出人工智能应用 [2]。
1.2 推荐系统
项目中的推荐模块利用协同过滤推荐算法(Collaborative Filtering ,CF )实现。协同过滤推荐算法利用聚类的思想, 用大数据分析、数据挖掘等技术将许多看起来没有关联的人, 通过某些特定的算法挖掘出具备相似特征的个别群体 ,将 他们感兴趣的事物划分、过滤后推荐给那些具备相似特征的 人 [3-4] 。CF 算法主要分为基于存储的方法(Memory_Based ) 和基于模型的方法(Model_Based )。基于存储的方法是利 用用户评价过的事物信息,根据用户行为数据来预测用户可能感兴趣的未知事物,分为基于用户的协同过滤(User-Based CF )和基于物品的协同过滤(Item-Based CF )两种算法。 基于模型的方法使用机器学习( 聚类、回归等)算法建立用 户与事物之间以及用户与用户之间的关系,然后通过优化过 程得到模型参数,建立的数据模型比原始数据集小,最终根 据模型产生合理的推荐 [5-6]。
1.3 微信小程序
微信小程序的开发框架为 MINA 框架,包含视图层 (View )和逻辑层(App Service ),视图层和逻辑层通过系 统层的 JS Bridage 进行通信。视图层用于渲染页面结构,通 过使用 WXML 文件搭建页面的基本视图结构,使用 WXSS 文件控制页面的展现样式。逻辑层使用 JavaScript 语言编写, 具有逻辑处理、数据处理、接口调用等功能,将逻辑层中的 数据与页面进行单向绑定,当数据变更时,对应页面组件会 作出对应的更新 [7-8]。
1.4 Web 前端技术框架
管理端借助 Web 网站作为媒介实现,Web 前端主要利 用 Vue 框架实现。Vue 是一套专注于视图层的渐进式框架,与其他大型框架不同的是它被设计为可以自下向上的逐层应 用。Vue 中的数据绑定及组件式开发特性能够有效简化代码, 降低了代码的耦合度,同时增加了代码的可复用性 [9-10]。
1.5 Web 后端技术框架
项目后端基于 SpringBoot 框架和 MySQL 数据库实现。 SpringBoot 是由 Pivotal 团队设计的全新框架,用于简化新 Spring 应用的初始搭建以及开发过程,能够有效缩短开发时 间。MySQL 作为一个关系型数据库管理系统,将数据存储 在不同的表中,并且使用标准化的 SQL 语言对数据进行增 删改查操作。利用 Mybatis 持久层框架生成调用 MySQL 的 SQL 语句,控制 SQL 语句的时序调用,以此建立后台与数 据库之间的操作。
2 系统设计
2.1 系统架构设计
该系统架构设计如图 1 所示,Web 前端采用 Vue 框架搭 建网页端,Web 后端采用 SpringBoot 搭建,将 MySQL 作为 数据库。
图 1 系统架构设计
2.2 系统总体设计
系统由网页端和小程序端组成,两者共享同一个后端, 所有数据从同一个后端中获取、保存。网页端负责实现管理 员的权限,小程序端负责实现用户的权限。
系统管理端功能模块如图 2 所示,共分为餐厅管理模块、菜品管理模块、用户管理模块、反馈管理模块以及数据统计 模块 5 个模块。餐厅管理模块负责管理管理员的账号信息及 餐厅的信息;菜品管理模块负责管理餐厅所设置菜品的信息; 用户管理模块可以查看用户的所有信息,方便管理员对用户 信息进行处理;用户反馈模块为用户端提交给管理者的信息,方便管理者快速获得用户的诉求,及时处理;数据统计模块 负责统计餐厅的收支情况、菜品消耗的数据,便于餐厅管理 者及时作出判断。
系统用户端功能模块如图 3 所示,由登录注册页、首页、 个人中心页、搜索页组成。用户在登录注册页可以利用手机号进行注册;用户在首页可根据需求选择不同的餐厅,查看 各餐厅设置的菜品信息,系统也会根据用户平时的用餐习惯 进行推荐;用户在个人中心中可查看订单信息,能够对每个 菜品进行评价,能够将有疑问的地方反馈给管理员,方便餐 厅进行改善及个性化推荐。
图 2 系统管理端功能模块
图 3 系统用户端功能模块
2.3 数据库及关联关系设计
智慧餐饮管理系统按照用途分为管理端与用户端两大 板块。其中,管理端板块分为管理员信息管理模块( 利用 Manager 表实现)、 餐厅信息管理模块( 利用 Restaurant 表 实现)、菜品信息管理模块(利用 Menu 表及其相关联的各 类表实现)、 用户信息管理模块(利用 Consumer 表及其相 关联的各类表)、 数据统计模块( 利用 Day 、Month 、Year 表及其相关联的各类表统计餐厅数据实现)以及评价与反馈 模块( 利用 feedback 、evaluate 表实现)。 用户端板块包括 用户信息模块(利用 Consumer 表及其相关联的各类表实现)、 菜品餐厅信息展示模块(利用 Menu 表及其相关联的各类表 实现)、搜索历史模块(利用 history 表实现)。数据库表及 关联关系如表 1 所示。
3 系统实现
3.1 图像识别模块实现
试验所需图像在广东海洋大学食堂的菜品中采集,共 采集 15 类菜品,利用采集的数据集对轻量化模型 YOLOX- Nano 进行训练,将训练好的模型使用 ncnn 计算框架部署于 安卓平台的手机端,并通过连接 USB 摄像头对准菜品进行精 准识别。菜品识别系统安卓程序开启时,如果摄像头开始检 测到有菜品,则每 0.5 s 拍摄并识别一次图像,在 2 s 后停止 拍摄,检测效果如图 4 所示。
3.2 管理端实现
管理端实现效果如图 5 所示,Web 前端基于Vue 框架实现, 左部导航栏囊括所有功能模块,便于餐厅的管理者全面了解相 关信息,进一步参与餐厅的决策,实现数字化与智能化。
表 1 数据库表及关联关系
表索引 | 表名 | 主键字段 | 表描述 | 关联表名称 | 关联关系 | ||
T1 | Consumer | C_id | 用户表 | history evaluate feedback day_mp month_mp year_mp order | 1 1 1 1 1 1 1 | ∶ ∶ ∶ ∶ ∶ ∶ ∶ | n n n n n n n |
T2 | Restaurant | res_id | 餐厅信息表 | — | — | ||
T3 | Menu | M_id | 菜品信息表 | evaluate Menu_Order Day_Menu Month_Menu Year_Menu Day_MP Month_MP Year_MP | 1 1 n n n 1 1 1 | ∶ ∶ ∶ ∶ ∶ ∶ ∶ ∶ | 1 1 1 1 1 1 1 1 |
T4 | Order | O_id | 订单信息表 | Consumer Menu_Order evaluate | n 1 1 | ∶ ∶ ∶ | 1 n n |
T5 | Manager | MA_id | 管理员信息表 | — | — | ||
T6 | Day | D_id | 日餐厅数据统计信息表 | Day_Menu | 1 | ∶ | n |
T7 | Month | MON_id | 月餐厅数据统计信息表 | Month_Menu | 1 | ∶ | n |
T8 | Year | Y_id | 年餐厅数据统计信息表 | Year_Menu | 1 | ∶ | n |
T9 | Day_Personal | DP_id | 日个人就餐数据统计信息表 | Day_MP | 1 | ∶ | n |
T10 | Month_Personal | MP_id | 月个人就餐数据统计信息表 | Month_MP | 1 | ∶ | n |
T11 | Year_Personal | YP_id | 年个人就餐数据统计信息表 | Year_MP | 1 | ∶ | n |
图 4 图像识别模块实现效果
图 5 管理端实现效果
3.3 用户端实现
用户端实现效果如图 6 所示,用户端基于微信小程序的 MINA 框架实现系统基本功能。用户通过使用本餐饮系统, 进入微信小程序查看菜品,扫描二维码后可以进行支付、评 价与反馈等操作。
在日常使用中,用户会产生大量的行为数据,通过前端 将用户的行为数据存入数据库,后端定期调用协同过滤算法 脚本,离线构建推荐结果,将推荐结果存入数据库,供前端 利用该数据形成推荐结果可视化,如图 7 所示。
图 6 用户端实现效果
图 7 推荐实现流程
4 结 语
本文基 于计算机视觉、推荐 系统、后端微服务框架 SpringBoot 、前端 Vue 框架及微信小程序搭建的餐饮管理系 统,不仅能够提高餐饮业管理者的决策与管理能力,还能够 降低成本。由于研究时间有限,还需要在更多功能设计、系 统高并发访问速度等方面加以完善,为传统餐饮业提供更多 稳定、创新的方案。
参考文献
[1]GE Z,LIU S,WANG F,et al.YOLOX: exceeding YOLO series in 2021[Z].2021
[2] 林志斌 , 黄智全 , 颜林明 . 基于 Android 平台人脸检测研 究 [J]. 电子质量 , 2021(11):40-45.
[3] 何 结 龙 , 周 仄 , 李 克 凡 , 等 . 基 于 Spring Boot 的 空 调 能 耗 智 能 控 制 系 统 的 设 计 与 实 现 [J]. 电 脑 知 识 与 技术 ,2021,17(3):109-112.
[4] 梁莹 . 基于 Spring Boot 的教师企业实践管理系统的设计 与实现 [D]. 南宁 : 广西大学 ,2021:123-125.
[5] 杨军 . 基于购物特征分类的混合推荐算法研究 [D]. 长春 : 吉林大学 ,2021:18-20.
[6] 刘军 , 杨军 , 宋姗姗 . 基于用户购买意愿力的协同过滤推 荐算法 [J]. 吉林大学学报 ( 理学版 ),2021,59(6):1432-1438.
[7] 范国婷 , 任乐琦 , 周灵辉 , 等 . 基于微信小程序的二 维码点餐系统设计研究 [J]. 赤峰学院学报 ( 自然科学 版 ),2019,35(12):59-62.
[8] 申燕萍 , 何梦磊 . 基于微信小程序的点餐系统 [J]. 电脑知 识与技术 ,2018,14(4):62-63.
[9] 何豪 . 基于 Vue.js 的国家语委申报管理系统的设计与实 现 [D]. 武汉 : 华中师范大学 ,2021:35.
[10] 肖子量 . 基于 Vue 的云通信调度系统客户端的设计与实 现 [D]. 北京 : 北京邮电大学 ,2021:5-6.