智能餐盘检测系统设计与开发

2024-12-31 00:00:00陆萍
客联 2024年9期
关键词:深度学习神经网络

摘 要:本项目针对自助餐厅中手工结算的弊端,基于深度学习技术开发了一款能够对菜品自动识别与计价结算的系统。在软件开发中,使用Python语言,借助PyQT开发了菜品自动识别与计价结算系统的GUI界面;选用了MySQL进行数据库的建立与维护;采用基于PyTorch深度学习框架的开源图像识别项目YOLO-V5作为系统骨干模型,利用自行收集的菜品数据集对模型进行训练与微调,实现了基于图像识别的智能餐盘检测结算系统。

关键词:菜品识别;Python;深度学习;神经网络

一、引言

近几年,随着深度学习技术的快速发展和大规模食品图像数据集的不断发布,国内外对食品图像识别研究也逐渐增多。这些研究主要围绕着菜品食物的热量、体积、营养成分、菜谱生成等领域而开展,目前这些成果已逐步应用到商用场景中。

国内学者也对食品图像识别做了大量的研究,由于在菜品与烹饪上的差异,中餐菜品比西餐要丰富了很多,图像纹理更加复杂,这对产品的识别提出了更高的要求,是的中餐菜品的识别更具有挑战性。为了促进中餐自动检测识别的研究,2017 年Chen Xin等发布了一个大型的中餐菜品数据集,该数据集共计包含了208中不同类别的菜品,共计185628张有效图片。除了提供了大型的中餐数据集,作者还提出了一种新的菜品检测分类方法,该方法使用投票的方式将多种模型预测的结果融合起来,大幅提升了菜品检测识别的正确率。本文利用该数据集对YOLO-V5深度检测模型进行预训练,在自行收集的菜品数据集上微调,使用PyQT、MySQL、PyTorch等工具实现了智能餐盘检测与结算系统的开发。

二、项目开发工具简介

(一)MySQL简介

MySQL是一款安全、跨平台、高效的轻量级数据库系统,由甲骨文公司开发。当前多种主流语言都能与该数据库系统进行紧密结合。

(二)PyQT简介

PyQT5是Digia Qt5与Python语言结合的应用框架,是当前最强大的一款GUI库。PyQT5是由一系列Python模块组成,该库所含有内容共计超过620个类,6000函数和方法,能在不同的主流操作系统上运行。

(三)OpenCV简介

OpenCV(Open Source Computer Vision Library)是一个开源发行的跨平台计算机视觉库,该库集成了数量众多的计算机视觉通用算法,已成为计算机视觉领域最有影响力的研究工具。

(四)PyTorch简介

PyTorch由Facebook人工智能团队以Torch为底层开发的一款开源深度学习框架。该框架以Python作为开发语言,为人工智能领域的科学研究与应用开发提供了极大的便利。PyTorch拥有两个非常强大的优势,一是支持GPU张量运算,在图形处理单元(GPU)的帮助下,能够为张量计算提供强大的加速能力,使其能够在短时间内处理大数据的要求;二是支持动态图机制,能够自动构建神经网络的动态图,并提供具自动求导的功能。

三、菜品图像识别模型

本项目采用了计算机视觉技术来自动识别餐盘内的各类菜品,需要从摄像头实时采集视频数据,对视频中的每帧图像进行检测识别,获得菜品的位置并标定菜品的品名与价格,进而自动完成当前餐盘内所有菜品的价格结算。为了提高开发进度,同时保证检测与识别的精度与性能,该系统选用了YOLO-V5图像检测模型作为菜品检测的基础模型。该模型采用了当前在图像处理中应用最为广泛的深度卷积神经网络模型来完成特征的提取与检测工作,其核心是搭建起深度的卷积-池化-全连接网络结构。该识别模型的YOLO-V5采用了高度优化后的卷积神经网络作为核心,具有非常好的可扩展性,可以通过在自己的数据集上训练后,获得具有专门用途的识别模型。

为了使训练的模型更具有中国菜品的特色,本文没有使用网络上可获得的国外公开数据集,而是自己采集标了一份从某餐厅中获取的图像数据集。

四、智慧餐厅结算系统开发

(一)需求分析

该系统需要有四大方面的需求,分别是菜品图片的检测识别功能、摄像头实时检测识别功能,数据获取和管理功能。

菜品图片的检测识别功能要求能够对待检测的菜品图片进行实时的检测,判定是否含有菜品,如果有的话,进一步将识别出来的菜品信息显示出来。摄像头实时检测菜品功能要求能够从摄像头中实时的获取菜品图片进行检测。需要能够判定是否有菜品,还需要实时的将识别出来的菜品信息显示在界面上。数据获取和管理功能,要求将图片中的信息能够进行管理,录入。同时可以快速的找到指定的数据片段。综合管理功能需要系统能够具备对用户,数据、参数等多个维度设置的综合管理能力。方便维护人员能够结算系统的各个层面。

(二)总体架构设计

1.数据库设计

本项目目前在数据库设计中相对简单,涉及到的实体仅有菜品与消费记录2张工作表,其中菜品工作表共存放了4个字段,分别代表着菜品的编号,菜品的英文名,菜品的中文名和菜品的单价。该工作表用于匹配已经识别的菜品信息,并同时显示在桌面上,让用户在结账过程有一个更好的体验。而消费记录表用于存放订单信息,其中共有三个字段,分别代表着消费记录的编号,付款的时间和消费的总价格。

2.菜品自动结算界面的设计

为了对菜品进行自动识别结算,进一步开发了结算界面。在开发中使用了Anaconda与PyQT进行GUI界面的布局,采用VSCode作为开发环境。布局后的界面如图1所示。图中右侧为摄像头采用的视频展示区域,其中调用了训练后的YOLO-V5模型对视频中的内容进行实时的检测与识别。当单击确认后,左侧的表格控件中将展示出各个具体的饭菜品名及数量与价,并给出最终的总价格,从而实现餐厅的菜品智能结算。

3.菜品信息管理界面的设计

在完成菜品识别与结算功能后,还需对菜品表中的数据进行管理。如图2所示。图中左侧为表中数据展示区域,可以查看表中所有的数据。当输入指定数据后,点击确认,可以进行数据的一个检索。同时,右侧还有增减,修改,删除功能,也只要根据提示,输入指定的信息,单击确定。会提示相应的信息,同时左侧表格中也会有相应的数据显示。从而完成所有的管理功能。

(三)迁移

在桌面端开发训练好的基于YOLO-V5的菜品检测与识别模型对硬件环境的依赖比较高,无法灵活方便地部署。为了提高系统部署的灵活性与可用性,进一步将训练好的系统迁移到Nvidia Jetson Nano平台上是一个比较好的选择。

Nvidia Jetson Nano是一块用于深度学习或者计算机视觉的开发板,该系统选用的是一个具有4GB 显存的版本。在Jetson Nano的主面板上提供了四个USB接口、一个HDMI视频接口、一个电源接口(type-c)、网线接口、一个Micro-USB,一个摄像头接口,另外硬件上还包含一个小的散热风扇。整个系统使用了亚克力板提供保护。在把整个硬件组装好后,可以将整个系统看成一个小的计算机硬件系统。但是与普通桌面硬件环境相比,由Jetson Nano组装后的硬件体积要小很多,可以很方便地进行空间部署。

五、结论

本文在前人研究的基础上,对移动端目标检测框架YOLOv5进行了微调,训练出一个专门识别中国传统菜品的模型,提高了对该类型菜品的检测精度和速度。由于个人知识与技术有限,且受到时间限制,该系统还只是实现了智能结算系统的基本原型,在功能上还有许多不足,离实际应用还存在一定的距离。还可以在以下方面进一步建设与改进:(1) 本系统暂还未实现对单位人员的管理功能,需要在后续进一步的完善。(2) 在该系统中添加支付接口。当前的系统只能够自动完成菜品识别与计价,还不支持用户自动刷卡或支付宝、微信支付。若是加上自动刷脸支付功能,可以给用户提供更方便的服务。

参考文献:

[1] Qiu Jianing, Frank Po Wen Lo, Yingnan Sun, Siyao Wang, Be-nny Lo. Mining discriminative food regions for accurate food recognition//Proceedings of the British Machine Vision Conference. Cardiff, UK, 2019: 158

[2] Szeliski R. 计算机视觉:算法与应用[M]. 第二版. 清华大学出版社, 2012.01

[3] Joe Minichino. OpenCV3计算机视觉:Python语言实现[M]. 第二版. 机械工业出版社, 2016-06-01.

[4] 陈云. 深度学习框架PyTorch 入门与实践[M]. 第一版. 电子工业出版社, 2017-12-22.

[5]福塔 (Ben Forta) 著 ; 刘晓霞 译 ; 钟鸣 译. MySQL必知必会[M]. 第一版. 人民邮电出版社, 2009-01.

[6] 王维波 等. Python Qt GUI与数据可视化编程[M]. 第一版. 人民邮电出版社, 2019

[7] Chen Xin, Zhu Yu, Zhou Hua, et al. ChineseFoodNet: A Large-scale Image Data-set for Chinese Food Recognition [DB/OL]. https://arxiv.org/pdf/1705.02743.pdf.2017.

猜你喜欢
深度学习神经网络
神经网络抑制无线通信干扰探究
电子制作(2019年19期)2019-11-23 08:42:00
MOOC与翻转课堂融合的深度学习场域建构
大数据技术在反恐怖主义中的应用展望
深度学习算法应用于岩石图像处理的可行性研究
软件导刊(2016年9期)2016-11-07 22:20:49
基于深度卷积网络的人脸年龄分析算法与实现
软件工程(2016年8期)2016-10-25 15:47:34
基于神经网络的拉矫机控制模型建立
重型机械(2016年1期)2016-03-01 03:42:04
复数神经网络在基于WiFi的室内LBS应用
基于支持向量机回归和RBF神经网络的PID整定