在餐饮行业中,对托盘中的餐盘进行识别,根据托盘中不同种类的餐盘(外观,色彩,大小)进行计价。

有没有相关的算法可以提供?如何进行边缘检测,训练模型的具体算法是什么?如何进行识别模型训练?
注意:是要在餐盘中装有菜品的情况下对餐盘进行识别。

估计又是什么弱智老师想出来的课题

现在很多学校的食堂不就有这样的系统吗,无非是在每种盘子的底部加装一个射频芯片,只要菜别装错盘子就不会结算出错,为什么现在要根据视觉算法来实现呢,这种系统研发出来会比芯片实现更便宜?

托盘上制作标签
机器可以扫描标签就知道了

centernet目标检测算法也不错,目前在安检机危险品检测识别方面还可以。

Kmeans算法详解及MATLAB实现_dulingtingzi的博客-CSDN博客_kmeans matlab 首先要来了解的一个概念就是聚类,简单地说就是把相似的东西分到一组,同 Classification (分类)不同,对于一个 classifier ,通常需要你告诉它“这个东西被分为某某类”这样一些例子,理想情况下,一个 classifier 会从它得到的训练集中进行“学习”,从而具备对未知数据进行分类的能力,这种提供训练数据的过程通常叫做 supervised learning (监督学习),而在 https://blog.csdn.net/dulingtingzi/article/details/51164979?ops_request_misc=&request_id=&biz_id=102&utm_term=kmeans%E7%AE%97%E6%B3%95&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-8-.first_rank_v2_pc_rank_v29&spm=1018.2226.3001.4187

不一定是视觉识别,可能只是单纯的不同托盘底部有nfc芯片感应,不过如果只是训练识别餐盘颜色也比较简单
img
待餐盘进入摄像头的捕捉区域后触发摄像头拍照进行餐盘或者菜品的识别,最终根据识别结果结账计费。不过会受背景颜色的影响。
收集餐盘样本,利用卷积神经网络训练一个餐盘位置检测模型;
利用摄像头装置对餐盘图像进行实时检测;
按关键帧对检测得到的餐盘位置信息进行判断;
判断餐盘置于稳定状态后将检测结果输出;
继续检测餐盘运动状态,判断餐盘是否移出摄像头范围,重置显示。
其中,根据所述收集餐盘样本,利用卷积神经网络训练餐盘位置检测模型,包括:
在实际餐厅中采集餐盘样本;
对餐盘样本进行数据增强,标注餐盘数据;
卷积神经网络为基础网络,利用得到的样本训练餐盘检测模型。
其中,根据所述利用摄像头进行实时检测,包括:
利用训练好的检测模型进行实时检测。
其中,根据所述按关键帧对检测得到的餐盘位置信息进行判断,包括:
由检测模型在关键帧位置获取餐盘的位置坐标信息;
对比前后两个关键帧中餐盘的位置信息判断餐盘的运动状态。
其中,根据所述判断餐盘置于稳定状态后将激活后续的餐盘或菜品识别模型,包括:
判断得到餐盘为稳定状态;
激活后续的餐盘或者菜品识别。
其中,根据所述继续检测餐盘运动状态,判断餐盘是否移出摄像头范围,重置显示,包括:
待餐盘或者菜品识别模型输出结果后再次触发餐盘位置检测模型;
按关键帧判断餐盘的位置坐标信息;
当不在获得餐盘的位置坐标信息后,确定餐盘移出摄像头范围,重置显示。

CNN应该可以

用dnn去训练吧

有数据的情况下,可以用CNN做,目前Yolo系列检测的效果还不错。

望采纳,谢谢。

matlab算法就可以了

【数学建模】常用模型算法及MATLAB代码汇总_360°顺滑-CSDN博客_matlab代码大全 一、蒙特卡洛算法一、蒙特卡洛算法1、定义蒙特卡洛算法是以概率和统计的理论、方法为基础的一种数值计算方法,将所求解的问题同一定的概率模型相联系,用计算机实现统计模拟或抽样,以获得问题的近似解,故又称随机抽样法或统计实验法。2、适用范围可以较好的解决多重积分计算、微分方程求解、积分方程求解、特征值计算和非线性方程组求解等高难度和复杂的数学计算问题。3、特点蒙特卡洛算法可以应用在很多场合,但求的是近似解,在模拟样本越大的情况下,越接近于真实值,单样本数增加会带来计算量的大幅上升。对于一些简单. https://blog.csdn.net/weixin_44668898/article/details/106607288?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162936144116780261942546%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=162936144116780261942546&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-106607288.first_rank_v2_pc_rank_v29&utm_term=matlab%E7%AE%97%E6%B3%95%E4%BB%A3%E7%A0%81&spm=1018.2226.3001.4449
如有帮助,请采纳

基本Kmeans算法介绍及其实现_Liam Q的专栏-CSDN博客_kmeans算法 1.基本Kmeans算法[1]选择K个点作为初始质心repeat 将每个点指派到最近的质心,形成K个簇 重新计算每个簇的质心until 簇不发生变化或达到最大迭代次数时间复杂度:O(tKmn),其中,t为迭代次数,K为簇的数目,m为记录数,n为维数空间复杂度:O((m+K)n),其中,K为簇的数目,m为记录数,n为维数2.注意问题(1)K如何确定 https://blog.csdn.net/qll125596718/article/details/8243404?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162936536516780255293021%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=162936536516780255293021&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-3-8243404.first_rank_v2_pc_rank_v29&utm_term=kmeans%E7%AE%97%E6%B3%95&spm=1018.2226.3001.4187

印个区别的二维码不就行了

使用带有感应的托盘或许更好

你看,我用这个手电照着它,它就亮了。
就问你怕不怕。

注意:是要在餐盘中装有菜品的情况下对餐盘进行识别

那你在盘子底下进行识别不就简单多啦?

比如寿司店里不同的盘子的寿司价格不同, 顾客吃完后盘子摞在一起,服务员用一个仪器从上到下扫一遍,价格就出来了,这个用贴标签或感应装置就可以,很成熟的技术。
比如公司食堂打自助,选好的菜放到托盘里, 然后把装着菜品托盘放在仪器上称一下,价格就出来了,这个是盘底放了感应装置。
简单成熟的方案有好多,这些都比你用图片识别来的便宜,方便,稳定。
不知道餐盘中装有菜品进行识别比起上面的两个例子有什么优势?


还要不装菜品?客人剩饭是常事吧,莫非要把盘子刷干净再结账?

实际项目中用的rfid, 直接定做的rfid的餐盘,识别区域下方装rfid的读卡器, 然后对餐盘数据录入,程序就简单的增删改查, 图像识别方案就算了, 图像采集设备装下面会被餐盘挡住, 装上方会被菜品挡住.

博主,不知道你是开发人员还是项目经理?
如果你是开发人员:
你首先要梳理清除:餐盘款式会不会变化?这种变化你们能控制或者跟踪到吗?餐盘清洗造成褪色、打菜淋上去的非透明菜汁,这个变化有规律可循吗?打菜的师傅放错或者捎带在某个菜品上放了两包子两蒸红薯有考虑处理流程吗?把所有这些情况都能掌控了,算法就简单多了,掌控不了,算法难度很大。其实最后算法难度都在异常情况的处理了,原始餐盘的颜色形状大小这些识别都相对很简单。
如果你是项目经理:
那么为什么不用RFID或者NFC呢?或者精巧设计一个条码识读流程也行。这样比起餐盘识别来,边际成本低很多了,用户的接受度几乎也没任何问题。
所以个人认为,就博主现在提问当中的信息量来看,博主的问题重点应该不是算法选取或算法设计问题,而应该是总体技术架构选型问题,需先从项目管理和需求层面重点考量。

可以用很简单的方法解决问题,为什么要读取盘子里的菜品和餐盘模具呢?用读写器和芯片就可以解决的问题。在不同的餐盘中放入芯片,每一种餐盘一个价位 。到时候读多少个餐盘,都多少钱就行了。