当前位置: 首页 > news >正文

智慧自助餐饮系统(SpringBoot+MP+Vue+微信小程序+JNI+ncnn+YOLOX-Nano)

一、项目简介

本项目是配合智慧自助餐厅下的一套综合系统,该系统分为安卓端、微信小程序用户端以及后台管理系统。安卓端利用图像识别技术进行识别多种不同菜品,识别成功后安卓端显示该订单菜品以及价格并且生成进入小程序的二维码,用户扫描后在小程序进行付款和提交订单,用户也可查看订单和菜品等信息,管理员在 Web 后台管理系统进行信息查看餐厅运营情况和管理菜品、订单评价等信息。
本系统涉及的论文文献,可以进行参考和引用。
《基于图像识别的智慧餐饮管理系统》
论文知网检索:基于图像识别的智慧餐饮管理系统
《YOLOX-Nano Intelligent and efficient dish recognition system》
在这里插入图片描述

二、涉及技术

1、后端:SpringBoot、SpringCloud、Mybatis-Plus、SpringSecurity、JWT、Redis、MySQL、Zuul、RabbitMQ
2、前端:Vue、Axios 、ECharts 、微信小程序、Vant Weapp
3、安卓端:JNI、C++、YOLOX-Nano 轻量级模型、ncnn 前向计算框架

三、项目描述

1、为小程序用户端和 Web 管理端以及安卓端提供 RestFul 接口,同时解决前后端跨域问题。
2、使用 SpringSecurity 安全框架、JWT 配合 Redis 保证管理端和用户端数据和认证安全。
3、基于 SpringCloud 将该项目分为数据接口服务、数据统计服务和网关服务。
4、使用消息队列 RabbitMQ 传递订单号实现数据统计服务的数据统计功能,减少用户提交订单的等待时间。
5、利用 Spring 框架的 AOP 特性,采用环绕通知@Around,通过创建切面实现了接口访问的统一日志记录功能。
6、 管理端采用 Vue 框架搭建,采用 Axios 请求数据,使用 ECharts 实现数据可视化。
7、用户端采用微信小程序,用户可以在小程序进行支付并且提交订单信息,同时可对订单进行评分和投诉。
8、 安卓端基于轻量模型 YOLOX-Nano 和 ncnn 框架识别不同种类的菜品并生成进入微信小程序的二维码进行付款。

四、Gitee地址

后端工程:
https://gitee.com/zhong-liangtang/backend-smart-self-service-catering-system

管理端web前端工程:
https://gitee.com/zhong-liangtang/Front-end-Intelligent-self-service-catering-system

用户端微信小程序工程:
https://gitee.com/zhong-liangtang/we-chat-smart-self-service-catering-system

安卓菜品识别工程:
https://gitee.com/zhong-liangtang/ncnn-android-yolox-nano

安卓部署流程:
https://blog.csdn.net/ELSA001/article/details/121032193?spm=1001.2014.3001.5502YOLOX

训练流程:
https://blog.csdn.net/ELSA001/article/details/120918082?spm=1001.2014.3001.5502

五、技术说明

智慧自助餐饮系统拟解决的关键问题在于如何识别多个菜品,该系统拟采用2021年识别率最高的轻量型模型进行菜品识别,并且准确率保证在99.9%以上,确保用户在菜品识别的体验良好,并且需要保证识别系统工作的稳定性,使其在长时间高效率识别的情况下依旧稳定运行。
传统的自助餐饮工作很大程度上依赖人工管理,在餐饮的订单支付信息传达方面比较落后,诸如通过人工计算食物的价格并且给出订单小票,其信息的准确率可能不尽如人意。自助餐饮系统通过MySQL建立订单数据表,通过使用JDBC连接数据库进行连接并操作数据,将用户的订单信息通过小程序的弹框或者订单页面件展示出来,直到用户确认知晓后才可关闭。
在自助餐饮的收费方面,存在收费项目杂乱不统一、收费明细不明确等问题,导致用户认为自助餐饮收费不合理、乱收费、服务与收费价格不符,因而拒绝上交费用。智慧自助餐饮系统将使用持久层框架MyBatis-Plus,将使用MyBatis-Plus框架调用JDBC服务,JDBC连接数据库进行连接并操作数据,再通过接口来封装对数据库的增删改查操作,对自助餐饮收费服务进行严格管理。
智慧自助餐饮系统需要通过训练模型和在稳定的开发软件进行开发,为了达到这一目标,采用以下版本的运行环境和训练环境。
工具 版本
模型训练显卡 GeForce RTX 3070 Laptop GPU
CUDA 11.1
cudnn 8.0
Anaconda 4.10.3
pytorch 1.8.0
后端开发工具 lntelliJ IDEA 2021.2.2 (Ultimate Edition)
后端Java运行环境 jdk1.8.0_301
前端Vue 2.6.11
微信小程序开发工具 微信开发者工具 Stable 1.06.2303220
安卓开发工具 Android Studio Arctic Fox | 2020.3.1 Patch 3
数据库 MySQL 8.0.26
操作系统 Windows 10

相关文章:

智慧自助餐饮系统(SpringBoot+MP+Vue+微信小程序+JNI+ncnn+YOLOX-Nano)

一、项目简介 本项目是配合智慧自助餐厅下的一套综合系统,该系统分为安卓端、微信小程序用户端以及后台管理系统。安卓端利用图像识别技术进行识别多种不同菜品,识别成功后安卓端显示该订单菜品以及价格并且生成进入小程序的二维码,用户扫描…...

零基础学编程从入门到精通,系统化的编程视频教程上线,中文编程开发语言工具构件之缩放控制面板构件用法

一、前言 零基础学编程从入门到精通,系统化的编程视频教程上线,中文编程开发语言工具构件之缩放控制面板构件用法 编程入门视频教程链接 https://edu.csdn.net/course/detail/39036 编程工具及实例源码文件下载可以点击最下方官网卡片——软件下载—…...

【MySQL进阶之路】MySQL 中表空间和数据区的概念以及预读机制

欢迎关注公众号(通过文章导读关注:【11来了】),及时收到 AI 前沿项目工具及新技术的推送! 在我后台回复 「资料」 可领取编程高频电子书! 在我后台回复「面试」可领取硬核面试笔记! 文章导读地址…...

JVM 性能调优 - 常用的垃圾回收器(6)

垃圾收集器 在 JVM(Java虚拟机)中,垃圾收集器(Garbage Collector)是负责自动管理内存的组件。它的主要任务是在程序运行过程中,自动回收不再使用的对象所占用的内存空间,以便为新的对象提供足够的内存。 JVM中的垃圾收集器使用不同的算法和策略来实现垃圾收集过程,以…...

【java】Hibernate访问数据库

一、Hibernate访问数据库案例 Hibernate 是一个在 Java 社区广泛使用的对象关系映射(ORM)工具。它简化了 Java 应用程序中数据库操作的复杂性,并提供了一个框架,用于将对象模型数据映射到传统的关系型数据库。下面是一个简单的使…...

从零开始手写mmo游戏从框架到爆炸(八)— byte数组传输

导航:从零开始手写mmo游戏从框架到爆炸(零)—— 导航-CSDN博客 Netty帧解码器 Netty中,提供了几个重要的可以直接使用的帧解码器。 LineBasedFrameDecoder 行分割帧解码器。适用场景:每个上层数据包,使…...

Elasticsearch:BM25 及 使用 Elasticsearch 和 LangChain 的自查询检索器

本工作簿演示了 Elasticsearch 的自查询检索器将非结构化查询转换为结构化查询的示例,我们将其用于 BM25 示例。 在这个例子中: 我们将摄取 LangChain 之外的电影样本数据集自定义 ElasticsearchStore 中的检索策略以仅使用 BM25使用自查询检索将问题转…...

uniapp的api用法大全

页面生命周期API uniApp中的页面生命周期API可以帮助开发者在页面的不同生命周期中执行相应的操作。常用的页面生命周期API包括:onLoad、onShow、onReady、onHide、onUnload等。其中,onLoad在页面加载时触发,onShow在页面显示时触发&#xf…...

笔记——asp.net core 中的 REST

REST(reprentational state transfer,表层状态转移) REST原则:提倡按照HTTP的语义使用HTTP。 如果一个系统符合REST原则,我们就说这个系统是Restful风格的。 在RPC风格的Web API系统中,我们把服务端的代码…...

排序算法---堆排序

原创不易,转载请注明出处。欢迎点赞收藏~ 堆排序(Heap Sort)是一种基于二叉堆数据结构的排序算法。它将待排序的元素构建成一个最大堆(或最小堆),然后逐步将堆顶元素与堆的最后一个元素交换位置&#xff0c…...

Java字符串(包含字母和数字)通用排序

说明:本文章是之前查到的一篇安卓版的,具体原文路径忘记了。稍微改了一点,挺符合业务使用的! 一、看代码 /*** 包含数字的字符串进行比较(按照从小到大排序)*/private static Integer compareString(Stri…...

【Spring】springmvc如何处理接受http请求

目录 ​编辑 1. 背景 2. web项目和非web项目 3. 环境准备 4. 分析链路 5. 总结 1. 背景 今天开了一篇文章“SpringMVC是如何将不同的Request路由到不同Controller中的?”;看完之后突然想到,在请求走到mvc 之前服务是怎么知道有请求进来…...

2024年安全员-B证证模拟考试题库及安全员-B证理论考试试题

题库来源:安全生产模拟考试一点通公众号小程序 2024年安全员-B证证模拟考试题库及安全员-B证理论考试试题是由安全生产模拟考试一点通提供,安全员-B证证模拟考试题库是根据安全员-B证最新版教材,安全员-B证大纲整理而成(含2024年…...

redis过期淘汰策略、数据过期策略与持久化方式

redis的过期淘汰策略 redis过期淘汰策略有很多,默认是no-eviction 不删除任何数据,内存不足存入会直接报错,可以在redis配置文件中进行设置,其中有两个非常重要的概念,LRU与LFU LRU表示最近最少使用,LFU为最少频率使用 又按照volatile已设置过期时间的数据集和allkeys所有数…...

Oracle Vagrant Box 扩展根文件系统

需求 默认的Oracle Database 19c Vagrant Box的磁盘为34GB。 最近在做数据库升级实验,加之导入AWR dump数据,导致空间不够。 因此需要对磁盘进行扩容。 扩容方法1:预先扩容 此方法参考文档Vagrant, how to specify the disk size?。 指…...

TDengine用户权限管理

Background 官方文档关于用户管理没有很详细的介绍,只有零碎的几条,这里记录下方便后面使用。官方文档:https://docs.taosdata.com/taos-sql/show/#show-users 1、查看用户 show users;super 1,表示超级用户权限 0,表…...

推荐一款开源的跨平台划词翻译和OCR翻译软件:Pot

Pot简介 一款开源的跨平台划词翻译和OCR翻译软件 下载安装指南 根据你的机器型号下载对应版本,下载完成后双击安装即可。 使用教程 Pot具体功能如下: 划词翻译输入翻译外部调用鼠标选中需要翻译的文本,按下设置的划词翻译快捷键即可按下输…...

spring boot学习第十一篇:发邮件

1、pom.xml文件内容如下&#xff08;是我所有学习内容需要的&#xff0c;不再单独分出来&#xff0c;包不会冲突&#xff09;&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"…...

Linux中ps/kill/execl的使用

ps命令&#xff1a; ps -aus或者ps -ajx或者 ps -ef可以查看有哪些进程。加上 | grep "xxx" 可以查看名为”xxx"的进程。 ps -aus | grep "xxx" kill命令&#xff1a; kill -9 pid 杀死某个进程 kill -l 查看系统有哪些信号 execl函数&#…...

【web前端开发】HTML及CSS简单页面布局练习

案例一 网页课程 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-wi…...

10分钟快速上手Muzic:从零开始你的AI音乐创作之旅

10分钟快速上手Muzic&#xff1a;从零开始你的AI音乐创作之旅 【免费下载链接】muzic 这是一个微软研究院开发的音乐生成AI项目。适合对音乐、音频处理以及AI应用感兴趣的开发者、学生和研究者。特点是使用深度学习技术生成音乐&#xff0c;具有较高的创作质量和听觉体验。 项…...

BlueDot BME280库深度解析:嵌入式多传感器驱动实践

1. BlueDot BME280 库技术解析&#xff1a;面向嵌入式工程师的多传感器驱动实践指南BME280 是博世&#xff08;Bosch&#xff09;推出的高精度环境传感器&#xff0c;集成温度、相对湿度与气压三参数测量能力&#xff0c;广泛应用于气象站、IoT终端、无人机姿态补偿及室内环境监…...

MATLAB 2018B语音信号降噪与盲源分离GUI系统,多维滤波技术展示与实时外放体验

2-6 基于matlab 2018B的语音信号降噪和盲源分离GUI界面&#xff0c;包括维纳滤波&#xff0c;小波降噪、高通、低通、带通滤波&#xff0c;及提出的滤波方法。 每个功能均展示降噪前后声音效果并外放出来。 程序已调通&#xff0c;可直接运行。直接双击运行main.m&#xff0c;耳…...

XCOM 2模组管理的终极解决方案:Alternative Mod Launcher完整指南

XCOM 2模组管理的终极解决方案&#xff1a;Alternative Mod Launcher完整指南 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/g…...

从DXF到Qt图形:利用dxflib精准解析与绘制复杂多段线

1. DXF文件与dxflib库基础解析 在CAD设计领域&#xff0c;DXF文件就像工程图纸的"万能翻译官"。这种由AutoCAD创建的开放格式&#xff0c;能够完整保存各类图形元素信息。而dxflib这个轻量级C库&#xff0c;就是专门为读取这种文件而生的利器。我第一次接触这个库时&…...

给硬件工程师的PCIe协议栈拆解:从FPGA IP核视角看三层协议如何协同工作

给硬件工程师的PCIe协议栈拆解&#xff1a;从FPGA IP核视角看三层协议如何协同工作 当你在Xilinx UltraScale或Intel Stratix 10 FPGA中集成PCIe硬核IP时&#xff0c;是否曾好奇过那个配置向导里勾选的"Enable Advanced Mode"究竟在底层做了什么&#xff1f;物理层的…...

4个关键步骤:全方位掌控BetterJoy让Switch手柄在PC上完美适配

4个关键步骤&#xff1a;全方位掌控BetterJoy让Switch手柄在PC上完美适配 【免费下载链接】BetterJoy Allows the Nintendo Switch Pro Controller, Joycons and SNES controller to be used with CEMU, Citra, Dolphin, Yuzu and as generic XInput 项目地址: https://gitco…...

手把手教你搭建轻量级Gitea代码托管平台:Windows本地部署实战

1. 为什么选择Gitea作为本地代码托管平台 作为一个长期在Windows环境下开发的程序员&#xff0c;我深知一个轻量级代码托管平台的重要性。以前我也用过Gitblit这类工具&#xff0c;但随着项目复杂度提升&#xff0c;越来越需要一个更现代的解决方案。Gitea就像是为个人开发者量…...

MySQL数据同步神器Canal实战:从配置到Java客户端开发全流程

MySQL数据同步神器Canal实战&#xff1a;从配置到Java客户端开发全流程 在数据驱动的时代&#xff0c;实时数据同步已成为现代应用架构的核心需求。想象一下电商平台的库存实时更新、金融系统的交易流水同步、物流系统的状态追踪——这些场景都离不开高效可靠的数据同步机制。…...

OpenClaw跨平台脚本:Qwen3-32B生成的Python代码自动测试

OpenClaw跨平台脚本&#xff1a;Qwen3-32B生成的Python代码自动测试 1. 为什么需要AI全流程编程辅助 作为经常需要写脚本处理数据的开发者&#xff0c;我发现自己陷入了一个典型困境&#xff1a;每天要花大量时间编写重复性代码&#xff0c;而真正需要创造性思考的部分反而被…...