CN116343198B - 一种基于多模型的菜品识别方法及设备 - Google Patents
一种基于多模型的菜品识别方法及设备 Download PDFInfo
- Publication number
- CN116343198B CN116343198B CN202310417985.7A CN202310417985A CN116343198B CN 116343198 B CN116343198 B CN 116343198B CN 202310417985 A CN202310417985 A CN 202310417985A CN 116343198 B CN116343198 B CN 116343198B
- Authority
- CN
- China
- Prior art keywords
- dish
- registered
- feature
- model
- image
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 66
- 239000013598 vector Substances 0.000 claims abstract description 136
- 238000001514 detection method Methods 0.000 claims abstract description 55
- 238000012545 processing Methods 0.000 claims abstract description 25
- 238000012549 training Methods 0.000 claims description 55
- 238000000605 extraction Methods 0.000 claims description 54
- 230000006870 function Effects 0.000 claims description 15
- 239000000654 additive Substances 0.000 claims description 9
- 230000000996 additive effect Effects 0.000 claims description 9
- 239000000284 extract Substances 0.000 claims description 8
- 238000002372 labelling Methods 0.000 claims description 8
- 238000011176 pooling Methods 0.000 claims description 7
- 238000012216 screening Methods 0.000 claims description 4
- 238000010606 normalization Methods 0.000 claims description 3
- 238000012163 sequencing technique Methods 0.000 claims 1
- 235000003166 Opuntia robusta Nutrition 0.000 description 18
- 244000218514 Opuntia robusta Species 0.000 description 18
- 230000003068 static effect Effects 0.000 description 12
- 230000008569 process Effects 0.000 description 11
- 230000008859 change Effects 0.000 description 5
- 230000000007 visual effect Effects 0.000 description 5
- 230000002354 daily effect Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000004140 cleaning Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000003203 everyday effect Effects 0.000 description 2
- 235000012054 meals Nutrition 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 235000013555 soy sauce Nutrition 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004615 ingredient Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000002994 raw material Substances 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/60—Type of objects
- G06V20/68—Food, e.g. fruit or vegetables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
- G06V10/761—Proximity, similarity or dissimilarity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/774—Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Molecular Biology (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Image Analysis (AREA)
Abstract
本申请提供了一种基于多模型的菜品识别方法及设备,属于基于图像数据处理的菜品识别技术领域。该方法获取来自图像采集设备的待识别菜品图像,通过预设菜品区域检测模型,确定待识别菜品图像中的菜品区域信息。基于菜品区域信息及预设菜品特征识别模型,确定菜品区域信息中的菜品是否为待注册菜品。若是,将待注册菜品相应的菜品信息发送至预设菜品特征库。其中,菜品信息至少包括:菜品标识、菜品特征识别模型提取的菜品特征向量。否则,将菜品区域信息中的菜品相应的菜品特征向量更新至菜品特征库和/或将菜品区域信息中的菜品相应的菜品标识发送至用户终端。
Description
技术领域
本申请涉及基于图像数据处理的菜品识别的技术领域,尤其涉及一种基于多模型的菜品识别方法及设备。
背景技术
随着计算机技术的发展,餐饮行业由原本效率低下的人工售货收银,开始通过计算机视觉技术,进行自动售货及收银。如过去餐厅的结算方式一般是先由客人选取一份或是多份菜品,然后到达结算台,由收银员进行计价,客人按总价付款。现有的结算方式,开始依靠由视觉静态模型库训练的静态识别模型,进行识别菜品及菜品的价格,完成自动结算,例如现有的CN115424258A-一种基于深度学习的餐盘定位识别菜品信息方法该专利公开的识别方法。
但是,由视觉静态模型库训练而来的识别模型,在菜品发生变化,例如菜品配料发生变化,识别模型并不能准确地识别到菜品;且对于未存在于视觉静态模型库中的菜品,更是无法识别,出现识别异常时,仍需要人工处理异常完成结算,结算效率低,人工成本高。若要能够识别更多菜品,需要建立大型菜品训练集,所需成本较高。
基于此,亟需一种能够节省人力、资源成本,并准确且及时识别菜品的技术方案。
发明内容
本申请实施例提供了一种基于多模型的菜品识别方法及设备,用于解决目前菜品识别不准确、不及时,实现自动识别菜品并结算所需人力成本及资源成本高。
一方面,本申请实施例提供了一种基于多模型的菜品识别方法,该方法包括:
获取来自图像采集设备的待识别菜品图像;
通过预设菜品区域检测模型,确定所述待识别菜品图像中的菜品区域信息;
基于所述菜品区域信息及预设菜品特征识别模型,确定所述菜品区域信息中的菜品是否为待注册菜品;
若是,将所述待注册菜品相应的菜品信息发送至预设菜品特征库;其中,所述菜品信息至少包括:菜品标识、所述菜品特征识别模型提取的菜品特征向量;
否则,将所述菜品区域信息中的菜品相应的菜品特征向量更新至所述菜品特征库和/或将所述菜品区域信息中的菜品相应的菜品标识发送至用户终端。
在本申请的一种实现方式中,通过预设菜品区域检测模型,确定所述待识别菜品图像中的菜品区域信息之前,还包括:
获取预设数据库中的若干菜品区域训练样本;其中,各所述菜品区域训练样本中至少包括一个携带标注信息的菜品区域图像;所述标注信息包括菜品标识;
将所述菜品区域训练样本输入待训练的菜品区域检测模型,以对所述菜品区域训练样本进行数据增强处理;其中,所述数据增强处理的处理对象至少包括以下一项或多项:样本图像颜色、样本图像亮度、样本图像几何数据;
通过数据增强处理后的所述菜品区域训练样本,训练所述菜品区域检测模型,以使所述菜品区域检测模型从若干所述处理对象中,确定对各所述菜品区域图像区域检测的关键对象;其中,所述关键对象至少包括一个所述处理对象;所述关键对象用于所述菜品区域检测模型提取所述菜品区域图像。
在本申请的一种实现方式中,通过预设菜品区域检测模型,确定所述待识别菜品图像中的菜品区域信息,具体包括:
通过训练完成的所述菜品区域检测模型,确定所述待识别菜品图像中的各菜品区域坐标集合;其中,所述菜品区域检测模型采用高性能检测器YOLOX;一个所述菜品区域坐标集合对应于所述待识别菜品图像中的一个菜品图像;
基于各所述菜品区域坐标集合,生成所述待识别菜品图像中的菜品区域信息;所述菜品区域信息至少包括菜品区域坐标及其对应的菜品区域图像。
在本申请的一种实现方式中,基于所述菜品区域信息及预设菜品特征识别模型,确定所述菜品区域信息中的菜品是否为待注册菜品,具体包括:
将所述菜品区域信息输入所述菜品特征识别模型中的菜品特征提取子模型,以便所述菜品特征提取子模型提取所述菜品区域信息相应的菜品区域图像的菜品特征向量;其中,所述菜品特征向量为所述菜品特征识别模型中的全局平均池化层输出的预设维度特征向量;
通过所述菜品特征识别模型中的菜品特征匹配子模型,按照预设的FLAT索引,将各所述菜品特征向量与所述菜品特征库中的若干已注册菜品特征向量依次匹配;
基于各所述菜品特征向量与所述菜品特征库中的若干已注册菜品特征向量依次匹配的匹配结果,确定所述菜品区域信息中的菜品是否为待注册菜品。
在本申请的一种实现方式中,通过所述菜品特征识别模型中的菜品特征匹配子模型,按照预设的FLAT索引,将各所述菜品特征向量与所述菜品特征库中的若干已注册菜品特征向量依次匹配,具体包括:
通过图像处理器GPU,按照所述FLAT索引,并行计算所述菜品特征向量与各所述已注册菜品特征向量的余弦相似度;
根据各所述菜品特征向量相应的若干余弦相似度及预设匹配规则,筛选各所述菜品特征向量匹配的所述已注册菜品特征向量,并生成所述匹配结果;其中,所述匹配规则用于剔除小于预设阈值的所述余弦相似度。
在本申请的一种实现方式中,将所述菜品区域信息输入所述菜品特征识别模型中的菜品特征提取子模型之前,方法还包括:
将预设数据库中的若干菜品特征提取训练样本图像,输入所述菜品特征提取子模型,以使所述菜品特征提取子模型将各所述菜品特征提取训练样本图像,转换为图像特征向量,并通过全局平均池化层输出相应的预设维度特征向量为已注册菜品特征向量;其中,所述菜品特征提取子模型为残差卷积网络ResNeXt-50;以及
将加性角度间隔损失函数作为所述菜品特征提取子模型的损失函数,以对所述菜品特征提取子模型进行训练,直至所述加性角度间隔损失函数收敛至预定值。
在本申请的一种实现方式中,基于各所述菜品特征向量与所述菜品特征库中的若干已注册菜品特征向量依次匹配的匹配结果,确定所述菜品区域信息中的菜品是否为待注册菜品,具体包括:
确定所述匹配结果相应的多个已注册菜品标识及与各所述已注册菜品标识对应的余弦相似度;
根据各所述已注册菜品标识、与各所述已注册菜品标识对应的余弦相似度及预先采集的参考菜品信息,确定所述菜品区域信息中的菜品是否为待注册菜品。
在本申请的一种实现方式中,根据各所述已注册菜品标识、与各所述已注册菜品标识对应的余弦相似度及预先采集的参考菜品信息,确定所述菜品区域信息中的菜品是否为待注册菜品,具体包括:
累计所述匹配结果相应的各所述已注册菜品标识的出现次数;
确定所述匹配结果相应的同一所述已注册菜品标识对应的余弦相似度的平均值;
将各所述出现次数归一化处理,并将归一化处理后的所述出现次数分别作为相应的各所述已注册菜品标识的识别权重;
在所述参考菜品信息为无效的情况下,将各所述识别权重与相应的所述平均值的乘积值的最大值对应已注册菜品标识,作为所述菜品标识,并确定所述菜品区域信息中的菜品为非待注册菜品;
在所述参考菜品信息为有效的情况下,依次比对所述匹配结果相应的各所述已注册菜品标识与所述参考菜品信息中的各参考菜品标识;
在所述匹配结果相应的各所述已注册菜品标识与所述参考菜品信息中的各参考菜品标识比对成功的情况下,根据比对得到的至少一个所述参考菜品标识、各所述识别权重与相应的所述平均值的乘积值,确定所述菜品区域信息中的菜品为非待注册菜品及相应的菜品标识。
在本申请的一种实现方式中,方法还包括:
获取来自用户终端的动态注册指令;
根据所述动态注册指令,将实时来自所述图像采集设备的所述待识别菜品图像,作为动态注册菜品图像;并接收来自所述用户终端的动态注册菜品标识;以及
通过所述菜品区域检测模型、所述菜品特征识别模型,依次确定所述动态注册菜品图像的菜品区域信息及相应的菜品特征向量,以根据所述菜品特征向量,确定所述动态注册菜品图像对应的各菜品是否为待注册菜品;
若否,将所述菜品特征向量及相应的所述菜品标识更新至所述菜品特征库;
若是,将所述动态注册菜品标识及所述待注册菜品相应的所述菜品特征向量,更新至所述菜品特征库。
另一方面,本申请实施例还提供了一种基于多模型的菜品识别设备,所述设备包括:
至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
获取来自图像采集设备的待识别菜品图像;
通过预设菜品区域检测模型,确定所述待识别菜品图像中的菜品区域信息;
基于所述菜品区域信息及预设菜品特征识别模型,确定所述菜品区域信息中的菜品是否为待注册菜品;
若是,将所述待注册菜品相应的菜品信息发送至预设菜品特征库;其中,所述菜品信息至少包括:菜品标识、所述菜品特征识别模型提取的菜品特征向量;
否则,将所述菜品区域信息中的菜品相应的菜品特征向量更新至所述菜品特征库和/或将所述菜品区域信息中的菜品相应的菜品标识发送至用户终端。
通过上述技术方案,本申请能够利用菜品区域检测模型、菜品特征识别模型建立的多模型菜品识别模型,完成菜品标识识别及菜品标识注册。实现对菜品的准确、及时地识别,以及低成本实现自动识别菜品并结算,无需频繁利用人力参与辅助识别。
此外,本申请可适用各种餐厅菜品识别,提高餐厅经营的便利性,菜品识别无需限制餐盘类型,较采用RFID餐盘识别技术能够节省餐盘的成本达到20%以上,并由于餐盘数量的减少,还可以进一步减少餐厅日常收集、清洗的成本,使得餐厅经营的整体成本是一步减少。本申请通过多模型的组合并结合菜品动态注册机制,能够持续地保持稳定的菜品识别率,并对新菜品可以通过注册少量图像样本就能提取其菜品特征,让多模型能够识别出新菜品,使得采用本申请技术方案的菜品识别技术方案能够快速实施。且通过构建通用的菜品区域检测模型和通用的菜品特征提取模型,结合动态注册机制,不需要构建大型静态识别模型。在使用环节,采用一台基本的4CPU、15G内存+T4 GPU为主配置的服务器即可满足10台终端的使用,按每天使用5小时,每天每终端的使用成本为6元左右,极大地节省了使用成本。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例中一种基于多模型的菜品识别方法的一种流程示意图;
图2为本申请实施例中一种基于多模型的菜品识别方法中的菜品区域训练样本图像的示意图;
图3为本申请实施例中一种基于多模型的菜品识别方法中的菜品动态注册阶段的流程示意图;
图4为本申请实施例中一种基于多模型的菜品识别方法中的菜品识别阶段的流程示意图;
图5为本申请实施例中一种基于多模型的菜品识别方法的另一种流程示意图;
图6为本申请实施例中一种基于多模型的菜品识别设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
现有的餐厅有一种结算方式是先由客人选取一份或是多份菜品,然后到达结算台,由收银员进行计价,客人按总价付款。现有一种基于视觉静态模型库的菜品识别技术,利用事先建立一定量的菜品图像库进行模型训练,得到有一定识别能力的静态模型,在使用时通过摄像头拍摄图片提交给模型进行识别,该种方式可识别的菜品有限,特别是在中式菜品的变化较多,造成识别率不准确,当菜品有部分配料发生变化后识别正确率严重下降,有新菜也无法识别,导致该技术方案在实际应用中受限制,可用性不高。
具体地,静态识别模型具有以下缺点:
(1)随着时间的变长而识别率降低
静态识别模型的识别主要技术原理是采用分类的方式进行菜品识别,这种方式模型可以识别的菜品类别取决于模型开发阶段训练样本的菜品数量。因此在实际使用中只能识别固定种类的菜品;此外由于中餐的复杂性,当菜品的外观发生变化时,会使得模型的识别准确率严重下降;菜品外观变化的一些常见原因有:菜品的加工过程和出餐方式决定了每份菜品的形态不同,特别是距离样本菜品采集的时间越长,菜品形态的变化越大,因为菜品的原材料受季节、市场供应、市场价格、客人口味需求变化等因素而改变,同时也受菜品制作人的变化而改变,而距离菜品样本采集的时间越长,前述因素的改变就越多,所以识别率就越低。
(2)新菜品无法识别造成在餐厅的实际场景中可用性不高
在餐厅的日常经营中,餐厅会随时推出新菜品,但该技术是基于静态库的识别,新推出的菜品图片样本不在可以识别的类别中,所以无法识别。这些现实的原因都造成该技术在实际的使用场景中可用性不高。
(3)建立大型菜品静态识别模型的成本过高
根据上述技术的技术原理可知,可以通过建立大型菜品训练集来提高更多菜品的识别能力和兼容同一种菜品的更多形状(或样式)。但是,建立大型菜品数据集要求采集到更多的图片样本,大幅增加图片样本的标注量,在机器学习训练环节也需要更多的服务器计算资源,在部署使用环节也需要使用配置更高的推理服务器。并且对于新的餐厅,需要重复进行这样一个收集大量训练数据,然后利用新收集的数据为餐厅开发对应的模型的流程。在整体上造成成本过高,相对于餐厅的经营来说是不划算的,不具备可实施性。
基于此,本申请实施例提供了一种基于多模型的菜品识别方法及设备,用来解决目前进行自动菜品识别,识别结果不准确、不及时,仍需人工介入,辅助菜品识别及结算,实现自动地菜品结算所需人力成本及资源成本高。
以下结合附图,详细说明本申请的各个实施例。
本申请实施例提供了一种基于多模型的菜品识别方法,如图1所示,该方法可以包括步骤S101-S105:
S101,服务器获取来自图像采集设备的待识别菜品图像。
需要说明的是,服务器作为基于多模型的菜品识别方法的执行主体,仅为示例性存在,执行主体不仅限于服务器,本申请对此不作具体限定。
图像采集设备可以是餐厅、餐馆、饭店等地设置于自动结算区域的摄像头、相机等设备。图像采集设备与服务器可以有线或无线连接,并能够进行信息交互。待识别菜品图像可以是进行菜品注册阶段(即将待注册菜品相应的菜品特征向量及反馈信息中的菜品标识,更新至菜品特征库),工作人员展示于图像采集设备侧的菜品图像;也可以是本申请使用阶段,客人在选餐完毕后,展现于图像采集设备侧的已装载菜品的餐盘图像。
在实际使用过程中,采用一台基本的4CPU、15G内存+T4图像处理器(graphicsprocessing unit,GPU)为主配置的服务器即可满足10台菜品识别结算终端的使用。按每天使用5小时,每天每终端的使用成本为6元左右,使用成本低。
S102,服务器通过预设菜品区域检测模型,确定待识别菜品图像中的菜品区域信息。
在本申请实施例中,菜品识别通用模型包括:菜品区域检测模型、菜品特征识别模型,模型使用前,需要对模型进行相应的训练,以使模型能够满足菜品识别的功能。因此,通过预设菜品区域检测模型,确定待识别菜品图像中的菜品区域信息之前,还包括:
首先,服务器获取预设数据库中的若干菜品区域训练样本。其中,各菜品区域训练样本中至少包括一个携带标注信息的菜品区域图像。标注信息包括菜品标识。
接着,服务器将菜品区域训练样本输入待训练的菜品区域检测模型,以对菜品区域训练样本进行数据增强处理。其中,数据增强处理的处理对象至少包括以下一项或多项:样本图像颜色、样本图像亮度、样本图像几何数据。
然后,服务器通过数据增强处理后的菜品区域训练样本,训练菜品区域检测模型,以使菜品区域检测模型从若干处理对象中,确定对各菜品区域图像区域检测的关键对象。其中,关键对象至少包括一个处理对象。关键对象用于菜品区域检测模型提取菜品区域图像。
也就是说,在菜品区域检测模型训练阶段,可以利用数据库如MySQL、Oracle、SqlServer等存储菜品区域训练样本。如采取不少于10000张的菜品图样,如图2所示,各训练样本图中的菜品托盘占图像的区域不低于90%,训练阶段可以采用图像有效像素数为600*600的图像样本。菜品区域训练样本中预先标注了菜品区域201和菜品标识(菜品名称)。本申请可以使用图片标注工具对图样进行标注,包括餐盘区域和对应菜品。要求每个菜品的标注框不低于50个,要求各个菜品标注框的数量尽可能相近,相差不超过20%。
针对菜品区域检测模型,在训练过程中可以采用包含颜色,亮度,旋转等数据增强手段,进而使得模型能够在一定程度上对抗实际使用中样本的变化,引起的性能下降。对于餐盘形状,由于模型在训练中只包含餐盘以及非餐盘两种状态,训练数据中也包含了各种样式的餐盘,因此在数据驱动的学习的过程中餐盘的形状会被菜品区域检测模型弱化,并不会作为核心因素;模型会从数据中自动寻找决策的关键性因素,即从处理对象中,确定用于进行菜品区域检测的关键对象,例如颜色、亮度等。
在本申请实施例中,通过预设菜品区域检测模型,确定待识别菜品图像中的菜品区域信息,具体包括:
服务器通过训练完成的菜品区域检测模型,确定待识别菜品图像中的各菜品区域坐标集合。其中,菜品区域检测模型采用高性能检测器YOLOX。一个菜品区域坐标集合对应于待识别菜品图像中的一个菜品图像。服务器基于各菜品区域坐标集合,生成待识别菜品图像中的菜品区域信息。菜品区域信息至少包括菜品区域坐标及其对应的菜品区域图像。
换言之,本申请采用高性能检测器YOLOX作为基础模型,在训练阶段将所有的菜品都设置为目标类别,然后训练YOLOX,使得模型具备检测图像中包含菜品的区域的能力。在推理阶段,将图像采集设备采集的待识别菜品图像送入到模型中,得到图像中包含菜品的区域;利用得到的菜品区域的坐标信息,可以将这些区域从原始输入图像中裁剪提取出来,得到多张只包含一个菜品的图像。即待识别菜品图像中可以如图2中存在多个菜品,通过菜品区域检测模型处理,可以进行裁剪各菜品区域,并生成多张仅包含一个菜品的图像。包含一个菜品的图像的尺寸插值可以为224*224。
菜品区域坐标可以如(x1,y1,x2,y2)这种形式,(x1,y1)表示区域的左上角坐标,(x2,y2)表示区域的右下角的坐标。整个坐标系统都是以图像的左上角为原点,进行计算的。
本申请通过上述技术方案,由于YOLOX不需要预测菜品的具体类别,只需要区分目标和背景,因此大大降低了任务的难度,能够大幅度提高在复杂场景下部分菜品目标检测的能力。此外,上述模型经过少量的训练之后就可以作为通用的菜品区域检测模型,应用于不同的餐厅,降低单个餐厅的项目实施成本。
采用目标检测模型YOLOX作为菜品区域检测模型,利用收集的数据对模型进行了训练。YOLOX作为轻量级通用目标检测器,响应速度快,在推理性能和通用场景的目标检测的能力上都达到了较高水平。在实际使用过程中,采用8块2080Ti,总的批大小是64,总共训练迭代次数300epoch。
S103,服务器基于菜品区域信息及预设菜品特征识别模型,确定菜品区域信息中的菜品是否为待注册菜品。
在本申请实施例中,服务器基于菜品区域信息及预设菜品特征识别模型,确定菜品区域信息中的菜品是否为待注册菜品,具体包括:
首先,服务器将菜品区域信息输入菜品特征识别模型中的菜品特征提取子模型,以便菜品特征提取子模型提取菜品区域信息相应的菜品区域图像的菜品特征向量。其中,菜品特征向量为菜品特征识别模型中的全局平均池化层输出的预设维度特征向量。
接着,服务器通过菜品特征识别模型中的菜品特征匹配子模型,按照预设的FLAT索引,将各菜品特征向量与菜品特征库中的若干已注册菜品特征向量依次匹配。
然后,服务器基于各菜品特征向量与菜品特征库中的若干已注册菜品特征向量依次匹配的匹配结果,确定菜品区域信息中的菜品是否为待注册菜品。
换言之,菜品特征识别模型包括菜品特征提取子模型、菜品特征匹配子模型,菜品特征提取子模型能够将菜品区域检测模型输出的菜品区域信息(菜品区域图像),转换为有判别力的特征向量。菜品特征匹配子模型能够将菜品特征向量与菜品特征库中的已注册菜品特征向量进行匹配,如将得到的菜品特征向量与菜品特征库中已注册菜品特征向量计算相似度,如果相似度大于一定阈值,确定待识别菜品图像与菜品特征库中相似度距离最近的图像具有相同的菜品标识。若没有大于一定阈值的,则没有匹配到菜品类别,菜品为待注册菜品。
此外,菜品特征库中的已注册菜品,同一菜品标识对应的已注册菜品特征向量可以具有不同数量的特征向量,例如A菜品的已注册菜品特征向量有1个,B菜品的已注册菜品特征向量有2个。菜品特征库中各菜品标识所具有的特征向量数量,与在模型训练阶段输入的菜品标识对应的样本图像数量有关,例如B菜品,加入少量酱油的图像的特征向量为x1,加入过量酱油的图像的特征向量为x2,x1不等于x2,此时,B菜品的已注册菜品特征向量有两个,为x1、x2。
在本申请实施例中,在菜品特征提取模型训练结束之后,模型相当于是一种特征抽取器。因此与训练阶段采用的类别无关,分类也是在特征抽取器的基础上引入了一个额外的分类器(加性角度间隔损失函数)去完成这件事。为了保证特征抽取器能够抽取有判别力的特征,我们在训练模型的时候,采用了包含大量类别的公开数据进行训练,大约有19万类。基于此,上述菜品特征提取子模型不受训练阶段的类别限制,因此在一定的训练数据的基础上,可以作为通用的菜品特征提取模型,应用到不同的餐厅,降低单个餐厅的部署成本,同时也满足了实际运营的需要。且菜品特征提取子模型能够将图像转换为特征向量,进而实现菜品标识的匹配,计算量小,提高了匹配计算效率。
其中,服务器通过菜品特征识别模型中的菜品特征匹配子模型,按照预设的FLAT索引,将各菜品特征向量与菜品特征库中的若干已注册菜品特征向量依次匹配,具体包括:
服务器通过图像处理器GPU,按照FLAT索引,并行计算菜品特征向量与各已注册菜品特征向量的余弦相似度。并根据各菜品特征向量相应的若干余弦相似度及预设匹配规则,筛选各菜品特征向量匹配的已注册菜品特征向量,并生成匹配结果。其中,匹配规则用于剔除小于预设阈值的余弦相似度。
也就是说,服务器可以通过GPU进行并行计算菜品特征向量与已注册菜品特征向量的余弦相似度。并将小于预设阈值的余弦相似度进行剔除,筛选出用于菜品标识匹配的已注册菜品特征向量,进而得到匹配结果。
其中,FLAT是一种精确检索算法。遍历所有已存向量,计算与检索向量的距离,通常是计算欧式距离或者向量的点积。应用到本申请中的具体步骤是:1.菜品特征向量依次与菜品特征库中的已注册菜品特征向量计算余弦相似度,2.将得到的余弦相似度进行从大到小排序,3.获得至少一个余弦相似度对应的菜品标识(将小于预设阈值的余弦相似度进行剔除),4.输出菜品标识。由于整个过程是在GPU上进行,因此计算余弦相似度的过程可以利用向量乘法进行,可以并行计算。
通过上述FLAT索引,能够保证菜品特征匹配子模型的识别精度及召回率;利用余弦相似度距离进行度量,保证了菜品特征匹配的准确性。此外,该模型可以作为通用的菜品特征匹配模型,应用于不同的餐厅,降低单个餐厅的项目实施成本。
在本申请实施例中,菜品特征提取子模型需要进行训练,因此,将菜品区域信息输入菜品特征识别模型中的菜品特征提取子模型之前,方法还包括:
服务器将预设数据库中的若干菜品特征提取训练样本图像,输入菜品特征提取子模型,以使菜品特征提取子模型将各菜品特征提取训练样本图像,转换为图像特征向量,并通过全局平均池化层输出相应的预设维度特征向量为已注册菜品特征向量。其中,菜品特征提取子模型为残差卷积网络ResNeXt-50。以及将加性角度间隔损失函数作为菜品特征提取子模型的损失函数,以对菜品特征提取子模型进行训练,直至加性角度间隔损失函数收敛至预定值。
数据库可以存储有若干菜品特征提取训练样本图像,菜品特征提取子模型能够将菜品特征提取训练样本图像转换为固定维度(即预设维度,如2048维)的特征向量,优质的特征向量具有优良的判别性,在特征空间中,不同的菜品图像能够保持较远的距离,相同的菜品图像能够保持较小的距离,聚集在一起。本申请采用残差卷积网络ResNeXt-50作为基础网络完成对输入图像向特征向量的转换。由于ResNeXt-50的权重是在自然场景的图像下进行训练得到,直接迁移到菜品图像上的表现不是最优的,因此本方案利用标注好的菜品区域图像对卷积网络进行分类任务的训练,即菜品特征提取训练样本图像为标注好菜品区域的图像。
本申请的菜品特征提取子模型还使加性角度间隔损失函数替换交叉熵损失函数,利用加性角度间隔损失函数,对模型进行训练,就可以使得学习到的特征具备这种类内特征很紧致,类间具有较大的差异,即让相同的菜品图像的样本的特征高度聚集,让不同菜品图像的样本的特征之间能够保持一定的间隔。
在本申请实施例中,餐厅或食堂在使用本申请过程中,既可以只通过上述菜品特征库进行菜品识别,还可以结合其当日菜单,进行菜品识别。因此,服务器基于各菜品特征向量与菜品特征库中的若干已注册菜品特征向量依次匹配的匹配结果,确定菜品区域信息中的菜品是否为待注册菜品,具体包括:
服务器确定匹配结果相应的多个已注册菜品标识及与各已注册菜品标识对应的余弦相似度。根据各已注册菜品标识、与各已注册菜品标识对应的余弦相似度及预先采集的参考菜品信息,确定菜品区域信息中的菜品是否为待注册菜品。
换言之,服务器可以先确定匹配结果中的余弦相似度,并根据匹配结果中的余弦相似度对应的已注册菜品标识(筛选已注册菜品标识)、余弦相似度及用户终端提供的参考菜品信息如当日菜单,确定菜品是否为待注册菜品。
进一步地,服务器根据各已注册菜品标识、与各已注册菜品标识对应的余弦相似度及预先采集的参考菜品信息,确定菜品区域信息中的菜品是否为待注册菜品,具体包括:
首先,服务器累计匹配结果相应的各已注册菜品标识的出现次数。
接着,服务器确定匹配结果相应的同一已注册菜品标识对应的余弦相似度的平均值。
随后,服务器将各出现次数归一化处理,并将归一化处理后的出现次数分别作为相应的各已注册菜品标识的识别权重。
在参考菜品信息为无效的情况下,将各识别权重与相应的平均值的乘积值的最大值对应已注册菜品标识,作为菜品标识,并确定菜品区域信息中的菜品为非待注册菜品。
在参考菜品信息为有效的情况下,依次比对匹配结果相应的各已注册菜品标识与参考菜品信息中的各参考菜品标识。并在匹配结果相应的各已注册菜品标识与参考菜品信息中的各参考菜品标识比对成功的情况下,根据比对得到的至少一个参考菜品标识、各识别权重与相应的平均值的乘积值,确定菜品区域信息中的菜品为非待注册菜品及相应的菜品标识。
换言之,如匹配结果中存在5个余弦相似度,可以5个余弦相似度对应的已注册菜品标识进行输出,并可以采用一些策略,如5个里面菜品标识出现次数最多的菜品标识作为最终的模型给出的菜品标识,也可以和当日的菜单进行结合,然后输出合适的菜品标识。
本申请还可以将同一已注册菜品标识对应的余弦相似度进行求平均,并将各已注册菜品标识出现次数进行归一化处理,使出现次数处于(0,1)之间,作为识别权重。在参考菜品信息为无效,即参考菜品信息为空,或未接收到用户发送的参考菜品信息的情况下,依靠各识别权重与相应的平均值的乘积值的最大值得到菜品标识。其中,若同一已注册菜品标识的出现次数只一次,其对应的余弦相似度即作为平均值。
在参考菜品信息不是无效的情况下,服务器可以依次比对匹配结果相应的各已注册菜品标识与参考菜品信息中的各参考菜品标识。即比对当日菜单与匹配结果相应的各已注册菜品标识,并在匹配结果相应的各已注册菜品标识与参考菜品信息中的各参考菜品标识比对成功的情况下,根据比对得到的至少一个参考菜品标识、各识别权重与相应的平均值的乘积值,确定菜品区域信息中的菜品为非待注册菜品及相应的菜品标识。比对成功指的是,如参考菜品信息中包括A、B、C、D菜品,匹配结果相应的各已注册菜品标识包括:B、D、E、F、G,参考菜品信息与匹配结果相应的各已注册菜品标识的交集为非空集合,则比对成功;比对得到参考菜品标识为B、D。然后,服务器根据比对得到的参考菜品标识及相应的各识别权重与相应的平均值的乘积值,确定菜品区域信息中的菜品为非待注册菜品及相应的菜品标识。例如,参考菜品标识B的乘积值为a,参考菜品标识D的乘积值为b,且a<b,那么菜品标识即为D。
S104,服务器在确定菜品区域信息中的菜品为待注册菜品的情况下,将待注册菜品相应的菜品信息发送至预设菜品特征库。
其中,菜品信息至少包括:菜品标识、菜品特征识别模型提取的菜品特征向量。
在本申请实施例中,通过上述实施例得到菜品区域信息中的菜品为待注册菜品,即菜品特征库中未匹配到已注册菜品标识,本申请可以将菜品信息如菜品特征向量、菜品标识发送至菜品特征库。其中,本申请存在菜品动态注册阶段及菜品识别阶段两种工作模式。
在菜品动态注册阶段,待注册菜品包括用户通过用户终端发送的菜品图像及相应的菜品标识,通过上述多模型,如菜品区域检测模型、菜品特征识别模型(菜品特征提取子模型、菜品特征匹配子模型),实现待注册菜品的判断,并将菜品标识及模型得到的菜品特征向量记录至菜品特征库中。
在菜品识别阶段,待注册菜品仅包括菜品图像,服务器可以生成未注册提示信息,并将未注册提示信息发送至用户终端,用户对用户终端进行操作,并发送至服务器反馈信息,反馈信息可以是待注册菜品的菜品标识。进而服务器将反馈信息中的菜品标识及模型的全局平均池化层输出的预设维度菜品特征向量,更新至菜品特征库中。
S105,服务器在确定菜品区域信息中的菜品不为待注册菜品的情况下,将菜品区域信息中的菜品相应的菜品特征向量更新至菜品特征库和/或将菜品区域信息中的菜品相应的菜品标识发送至用户终端。
在本申请实施例中,服务器在确定菜品不为待注册菜品时,在进行菜品动态注册阶段,可以将菜品特征向量按菜品特征库中的原已注册菜品标识,更新至菜品特征库中;在进行实际使用的菜品识别阶段,可以既将菜品特征向量按菜品特征库中的原已注册菜品标识,更新至菜品特征库中,并将菜品标识发送至用户终端,也可以只将菜品标识发送至用户终端。
具体地,在本申请仅进行菜品动态注册阶段时,上述基于多模型的服务器可以具体执行以下实施例:
服务器获取来自用户终端的动态注册指令。
通过动态注册指令,开启动态注册阶段,识别的菜品无论是已注册菜品标识的菜品特征向量,还是新菜品标识的菜品特征向量,都将更新至菜品特征库,提高本申请识别新菜品的兼容能力。
具体地,服务器根据动态注册指令,将实时来自图像采集设备的待识别菜品图像,作为动态注册菜品图像。并接收来自用户终端的动态注册菜品标识。以及通过菜品区域检测模型、菜品特征识别模型,依次确定动态注册菜品图像的菜品区域信息及相应的菜品特征向量,以根据菜品特征向量,确定动态注册菜品图像对应的各菜品是否为待注册菜品。
在确定动态注册菜品图像对应的各菜品不为待注册菜品的情况下,将菜品特征向量及相应的菜品标识更新至菜品特征库,以增加菜品标识对应的菜品特征向量的数量。
在确定动态注册菜品图像对应的各菜品为待注册菜品的情况下,将动态注册菜品标识及待注册菜品相应的菜品特征向量,更新至菜品特征库。
在本申请实施例中,菜品动态注册阶段存在菜品动态注册模块,用于调用多模型的菜品区域检测模型、菜品特征提取子模型、菜品特征匹配子模型,以将菜品特征向量更新至菜品特征库中。菜品识别阶段存在菜品识别接口模块,用于调用模型的菜品区域检测模型、菜品特征提取子模型、菜品特征匹配子模型,以输出至前端设备或用户终端菜品标识。本申请中的前端设备或用户终端,可以是掌上电脑、手机、电脑等设备,本申请对此不作具体限定。
在本申请实施例中,在上述菜品动态注册阶段的使用场景下的流程示意图如图3所示,具体包括以下步骤:
步骤1:图像采集设备将采集的待识别菜品图像和动态注册菜品标识,发送到服务器的菜品动态注册模块301;
步骤2:菜品动态注册模块301将待识别菜品图像发送给菜品区域检测模型302;
步骤3:菜品区域检测模型302提取到菜品区域图像,返回给菜品动态注册模块301;
步骤4:菜品动态注册模块301将菜品区域图像发送给菜品特征提取子模型303;
步骤5:菜品特征提取子模型303提取菜品的特征向量,并转换为固定维度的菜品特征向量,返回给菜品动态注册模块301;
步骤6:菜品动态注册模块301将菜品特征向量发送给菜品特征匹配子模型304进行验证;
步骤7:菜品特征匹配子模型304对菜品特征向量进行匹配,把匹配结果返回给菜品动态注册模块301;
步骤8、菜品动态注册模块301根据菜品特征匹配子模型返回的匹配结果,如果是已注册菜品,则按老菜品更新其菜品特征向量到菜品特征库305中,如果是未注册菜品特征则按新菜品,增加菜品标识及菜品特征向量到菜品特征库305中。
菜品特征库可以在服务器连接的数据库中。本申请上述菜品动态注册阶段的菜品动态注册模块可以是服务器中独立的软件功能模型,可以将要被识别的菜品的特征信息注册到菜品特征库,保证菜品特征库中菜品特征向量的兼容性及本申请对各菜品的不同样式下的识别率。
在本申请实施例中,在上述菜品识别阶段的使用场景下的流程示意图如图4所示,具体包括以下步骤:
步骤1:图像采集设备将采集到待识别菜品图像,发送到服务器的菜品识别接口模块401;
步骤2:菜品识别接口模块401将待识别菜品图像发送给菜品区域检测模型402;
步骤3:菜品区域检测模型402在提取到菜品的菜品区域图像,返回给菜品识别接口模块401;
步骤4:菜品识别接口模块401将菜品区域图像发送给菜品特征提取子模型403;
步骤5:菜品特征提取子模型403提取菜品的特征向量,并转换为固定维度的菜品特征向量,返回给菜品识别接口模块401;
步骤6:菜品识别接口模块401将菜品特征向量发送给菜品特征匹配子模型404进行匹配识别;
步骤7:菜品特征匹配子模型404对菜品特征向量进行匹配,把匹配结果返回给菜品识别接口模块401;
步骤8、菜品识别接口模块401根据菜品特征匹配子模型401返回的匹配结果,将识别的菜品标识返回给用户终端或前端设备显示屏405。
在本申请实施例中,图5为基于多模型的菜品识别方法的一种流程示意图,具体包括:
获取菜品图像,并对菜品检测(菜品区域检测);以及训练阶段进行获取菜品区域训练样本及菜品特征提取训练样本图像,建立菜品图像库;进行菜品特征提取;并将菜品特征向量与菜品特征库中的已注册菜品特征向量进行特征匹配;输出识别结果。
本申请是基于视觉图像识别,基于菜品注册时的菜品图像进行特征提取,与菜品所采用的餐具餐盘无关,对餐厅所使用的餐盘没有限制,能够提高餐厅经营的便利性。由于对餐盘没有限制,所以相较于采用RFID餐盘识别技术能够节省餐盘的成本达到20%以上。由于餐盘数量的减少,还可以进一步减少餐厅日常收集、清洗的成本,使得餐厅经营的整体成本是一步减少。
本申请通过多模型的组合并结合菜品动态注册机制,能够持续地保持稳定的菜品识别率。通过动态注册机器,对新菜品可以通过注册少量图像样本就能提取其菜品特征,让模型能够识别出新菜品。使得采用本申请技术方案的菜品识别项目能够快速实施。本申请通过构建通用的菜品区域检测模型和通用的菜品特征提取模型,结合动态注册机制,不需要构建大型静态识别模型。在使用环节,采用一台基本的4CPU、15G内存+T4 GPU为主配置的服务器即可满足10台终端的使用,按每天使用5小时,每天每终端的使用成本为6元左右。
因此,本申请实现自动识别菜品并结算所需人力成本及资源成本低,并能够采用多模型及动态注册,对菜品进行准确识别,识别效率高,更适用于餐厅等需要自动菜品识别结算的场景下推广使用。
图6为本申请实施例提供的一种基于多模型的菜品识别设备600,该设备包括:
至少一个处理器601。以及,与至少一个处理器601通信连接的存储器602。其中,存储器602存储有可被至少一个处理器601执行的指令,指令被至少一个处理器601执行,以使至少一个处理器601能够:
获取来自图像采集设备的待识别菜品图像。通过预设菜品区域检测模型,确定待识别菜品图像中的菜品区域信息。基于菜品区域信息及预设菜品特征识别模型,确定菜品区域信息中的菜品是否为待注册菜品。若是,将待注册菜品相应的菜品信息发送至预设菜品特征库。其中,菜品信息至少包括:菜品标识、菜品特征识别模型提取的菜品特征向量。否则,将菜品区域信息中的菜品相应的菜品特征向量更新至菜品特征库和/或将菜品区域信息中的菜品相应的菜品标识发送至用户终端。
本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本申请实施例提供的设备与方法是一一对应的,因此,设备也具有与其对应的方法类似的有益技术效果,由于上面已经对方法的有益技术效果进行了详细说明,因此,这里不再赘述设备的有益技术效果。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (7)
1.一种基于多模型的菜品识别方法,其特征在于,所述方法包括:
获取来自图像采集设备的待识别菜品图像;
通过预设菜品区域检测模型,确定所述待识别菜品图像中的菜品区域信息;
基于所述菜品区域信息及预设菜品特征识别模型,确定所述菜品区域信息中的菜品是否为待注册菜品;
若是,将所述待注册菜品相应的菜品信息发送至预设菜品特征库;其中,所述菜品信息至少包括:菜品标识、所述菜品特征识别模型提取的菜品特征向量;
否则,将所述菜品区域信息中的菜品相应的菜品特征向量更新至所述菜品特征库和/或将所述菜品区域信息中的菜品相应的菜品标识发送至用户终端;
其中,基于所述菜品区域信息及预设菜品特征识别模型,确定所述菜品区域信息中的菜品是否为待注册菜品,具体包括:
将所述菜品区域信息输入所述菜品特征识别模型中的菜品特征提取子模型,以便所述菜品特征提取子模型提取所述菜品区域信息相应的菜品区域图像的菜品特征向量;其中,所述菜品特征向量为所述菜品特征识别模型中的全局平均池化层输出的预设维度特征向量;
通过所述菜品特征识别模型中的菜品特征匹配子模型,按照预设的FLAT索引,将各所述菜品特征向量与所述菜品特征库中的若干已注册菜品特征向量依次匹配;
基于各所述菜品特征向量与所述菜品特征库中的若干已注册菜品特征向量依次匹配的匹配结果,确定所述菜品区域信息中的菜品是否为待注册菜品;
其中,通过所述菜品特征识别模型中的菜品特征匹配子模型,按照预设的FLAT索引,将各所述菜品特征向量与所述菜品特征库中的若干已注册菜品特征向量依次匹配,具体包括:
通过图像处理器GPU,按照所述FLAT索引,并行计算所述菜品特征向量与各所述已注册菜品特征向量的余弦相似度;
根据各所述菜品特征向量相应的若干余弦相似度及预设匹配规则,筛选各所述菜品特征向量匹配的所述已注册菜品特征向量,并生成所述匹配结果;其中,所述匹配规则用于剔除小于预设阈值的所述余弦相似度;
其中,将所述菜品区域信息输入所述菜品特征识别模型中的菜品特征提取子模型之前,所述方法还包括:
将预设数据库中的若干菜品特征提取训练样本图像,输入所述菜品特征提取子模型,以使所述菜品特征提取子模型将各所述菜品特征提取训练样本图像,转换为图像特征向量,并通过全局平均池化层输出相应的预设维度特征向量为已注册菜品特征向量;其中,所述菜品特征提取子模型为残差卷积网络ResNeXt-50;以及
将加性角度间隔损失函数作为所述菜品特征提取子模型的损失函数,以对所述菜品特征提取子模型进行训练,直至所述加性角度间隔损失函数收敛至预定值;
其中,所述菜品特征库中各菜品标识分别对应的所述已注册菜品特征向量的数量可以不同;
其中,所述方法还包括:
按照所述FLAT索引,将菜品特征向量依次与所述菜品特征库中的所述已注册菜品特征向量计算所述余弦相似度;
将得到的所述余弦相似度进行从大到小排序,获得至少一个余弦相似度对应的菜品标识,以输出所述菜品标识。
2.根据权利要求1所述方法,其特征在于,通过预设菜品区域检测模型,确定所述待识别菜品图像中的菜品区域信息之前,所述方法还包括:
获取预设数据库中的若干菜品区域训练样本;其中,各所述菜品区域训练样本中至少包括一个携带标注信息的菜品区域图像;所述标注信息包括菜品标识;
将所述菜品区域训练样本输入待训练的菜品区域检测模型,以对所述菜品区域训练样本进行数据增强处理;其中,所述数据增强处理的处理对象至少包括以下一项或多项:样本图像颜色、样本图像亮度、样本图像几何数据;
通过数据增强处理后的所述菜品区域训练样本,训练所述菜品区域检测模型,以使所述菜品区域检测模型从若干所述处理对象中,确定对各所述菜品区域图像区域检测的关键对象;其中,所述关键对象至少包括一个所述处理对象;所述关键对象用于所述菜品区域检测模型提取所述菜品区域图像。
3.根据权利要求2所述方法,其特征在于,通过预设菜品区域检测模型,确定所述待识别菜品图像中的菜品区域信息,具体包括:
通过训练完成的所述菜品区域检测模型,确定所述待识别菜品图像中的各菜品区域坐标集合;其中,所述菜品区域检测模型采用高性能检测器YOLOX;一个所述菜品区域坐标集合对应于所述待识别菜品图像中的一个菜品图像;
基于各所述菜品区域坐标集合,生成所述待识别菜品图像中的菜品区域信息;所述菜品区域信息至少包括菜品区域坐标及其对应的菜品区域图像。
4.根据权利要求1所述方法,其特征在于,基于各所述菜品特征向量与所述菜品特征库中的若干已注册菜品特征向量依次匹配的匹配结果,确定所述菜品区域信息中的菜品是否为待注册菜品,具体包括:
确定所述匹配结果相应的多个已注册菜品标识及与各所述已注册菜品标识对应的余弦相似度;
根据各所述已注册菜品标识、与各所述已注册菜品标识对应的余弦相似度及预先采集的参考菜品信息,确定所述菜品区域信息中的菜品是否为待注册菜品。
5.根据权利要求4所述方法,其特征在于,根据各所述已注册菜品标识、与各所述已注册菜品标识对应的余弦相似度及预先采集的参考菜品信息,确定所述菜品区域信息中的菜品是否为待注册菜品,具体包括:
累计所述匹配结果相应的各所述已注册菜品标识的出现次数;
确定所述匹配结果相应的同一所述已注册菜品标识对应的余弦相似度的平均值;
将各所述出现次数归一化处理,并将归一化处理后的所述出现次数分别作为相应的各所述已注册菜品标识的识别权重;
在所述参考菜品信息为无效的情况下,将各所述识别权重与相应的所述平均值的乘积值的最大值对应已注册菜品标识,作为所述菜品标识,并确定所述菜品区域信息中的菜品为非待注册菜品;
在所述参考菜品信息为有效的情况下,依次比对所述匹配结果相应的各所述已注册菜品标识与所述参考菜品信息中的各参考菜品标识;
在所述匹配结果相应的各所述已注册菜品标识与所述参考菜品信息中的各参考菜品标识比对成功的情况下,根据比对得到的至少一个所述参考菜品标识、各所述识别权重与相应的所述平均值的乘积值,确定所述菜品区域信息中的菜品为非待注册菜品及相应的菜品标识。
6.根据权利要求1所述方法,其特征在于,所述方法还包括:
获取来自用户终端的动态注册指令;
根据所述动态注册指令,将实时来自所述图像采集设备的所述待识别菜品图像,作为动态注册菜品图像;并接收来自所述用户终端的动态注册菜品标识;以及
通过所述菜品区域检测模型、所述菜品特征识别模型,依次确定所述动态注册菜品图像的菜品区域信息及相应的菜品特征向量,以根据所述菜品特征向量,确定所述动态注册菜品图像对应的各菜品是否为待注册菜品;
若否,将所述菜品特征向量及相应的所述菜品标识更新至所述菜品特征库;
若是,将所述动态注册菜品标识及所述待注册菜品相应的所述菜品特征向量,更新至所述菜品特征库。
7.一种基于多模型的菜品识别设备,其特征在于,所述设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上述权利要求1-6任一项所述的一种基于多模型的菜品识别方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310417985.7A CN116343198B (zh) | 2023-04-18 | 2023-04-18 | 一种基于多模型的菜品识别方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310417985.7A CN116343198B (zh) | 2023-04-18 | 2023-04-18 | 一种基于多模型的菜品识别方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116343198A CN116343198A (zh) | 2023-06-27 |
CN116343198B true CN116343198B (zh) | 2024-01-16 |
Family
ID=86885865
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310417985.7A Active CN116343198B (zh) | 2023-04-18 | 2023-04-18 | 一种基于多模型的菜品识别方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116343198B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111080493A (zh) * | 2018-10-18 | 2020-04-28 | 杭州海康威视数字技术股份有限公司 | 一种菜品信息识别方法、装置及菜品自助结算系统 |
CN111753690A (zh) * | 2020-06-15 | 2020-10-09 | 神思电子技术股份有限公司 | 一种菜品托盘识别方法及基于该方法的菜品识别方法 |
CN112115903A (zh) * | 2020-09-25 | 2020-12-22 | 广州市派客朴食信息科技有限责任公司 | 提升基于深度学习的菜品识别系统识别精度的方法 |
CN112115906A (zh) * | 2020-09-25 | 2020-12-22 | 广州市派客朴食信息科技有限责任公司 | 基于深度学习目标检测和度量学习的开放性菜品识别方法 |
CN113313149A (zh) * | 2021-05-14 | 2021-08-27 | 华南理工大学 | 一种基于注意力机制和度量学习的菜品识别方法 |
EP3929931A1 (en) * | 2020-06-26 | 2021-12-29 | Koninklijke Philips N.V. | Dish nutritional value estimation |
CN114638980A (zh) * | 2022-03-04 | 2022-06-17 | 支付宝(杭州)信息技术有限公司 | 菜品种类识别处理方法及装置 |
CN115187972A (zh) * | 2022-03-07 | 2022-10-14 | 浙江工商大学 | 基于特征对比的菜品识别方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11966936B2 (en) * | 2021-05-11 | 2024-04-23 | Capital One Services, Llc | Systems and methods for executing queries on a bitmap index |
-
2023
- 2023-04-18 CN CN202310417985.7A patent/CN116343198B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111080493A (zh) * | 2018-10-18 | 2020-04-28 | 杭州海康威视数字技术股份有限公司 | 一种菜品信息识别方法、装置及菜品自助结算系统 |
CN111753690A (zh) * | 2020-06-15 | 2020-10-09 | 神思电子技术股份有限公司 | 一种菜品托盘识别方法及基于该方法的菜品识别方法 |
EP3929931A1 (en) * | 2020-06-26 | 2021-12-29 | Koninklijke Philips N.V. | Dish nutritional value estimation |
CN112115903A (zh) * | 2020-09-25 | 2020-12-22 | 广州市派客朴食信息科技有限责任公司 | 提升基于深度学习的菜品识别系统识别精度的方法 |
CN112115906A (zh) * | 2020-09-25 | 2020-12-22 | 广州市派客朴食信息科技有限责任公司 | 基于深度学习目标检测和度量学习的开放性菜品识别方法 |
CN113313149A (zh) * | 2021-05-14 | 2021-08-27 | 华南理工大学 | 一种基于注意力机制和度量学习的菜品识别方法 |
CN114638980A (zh) * | 2022-03-04 | 2022-06-17 | 支付宝(杭州)信息技术有限公司 | 菜品种类识别处理方法及装置 |
CN115187972A (zh) * | 2022-03-07 | 2022-10-14 | 浙江工商大学 | 基于特征对比的菜品识别方法 |
Non-Patent Citations (3)
Title |
---|
Largest-eigenvalue-theory for incremental principal component analysis;Shuicheng Yan等;IEEE International Conference on Image Processing 2005;全文 * |
基于图像特征提取的菜品信息读取系统设计;李怀磊;;饮食科学(第06期);全文 * |
混合推荐点餐模型的优化实现;杨艺;李宝琳;;重庆工商大学学报(自然科学版)(第02期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116343198A (zh) | 2023-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108335408B (zh) | 用于自动售货机的物品识别方法、装置、系统及存储介质 | |
CN108416902B (zh) | 基于差异识别的实时物体识别方法和装置 | |
CN111061890B (zh) | 一种标注信息验证的方法、类别确定的方法及装置 | |
CN109165645A (zh) | 一种图像处理方法、装置以及相关设备 | |
US20130141586A1 (en) | System and method for associating an order with an object in a multiple lane environment | |
CN109754009B (zh) | 物品识别方法、装置、售货系统和存储介质 | |
CN109598249B (zh) | 服饰检测方法和装置、电子设备、存储介质 | |
CN111709816A (zh) | 基于图像识别的服务推荐方法、装置、设备及存储介质 | |
CN109934081A (zh) | 一种基于深度神经网络的行人属性识别方法、装置及存储介质 | |
CN111832590B (zh) | 物品识别方法和系统 | |
CN111222382A (zh) | 一种基于图像的商品结算方法、装置、介质及电子设备 | |
CN115272652A (zh) | 基于多元回归和自适应焦点损失的密集物体图像检测方法 | |
CN112686220B (zh) | 商品识别方法及装置、计算设备、计算机存储介质 | |
CN104978585A (zh) | 一种自动计价方法 | |
CN112784822A (zh) | 对象识别方法、装置、电子设备、存储介质及程序产品 | |
CN111126457A (zh) | 信息的获取方法和装置、存储介质和电子装置 | |
CN114612897A (zh) | 一种智能果蔬称重打票方法、装置、电子设备及存储介质 | |
CN116343198B (zh) | 一种基于多模型的菜品识别方法及设备 | |
CN109658523A (zh) | 利用ar增强现实应用实现车辆各功能使用说明的方法 | |
JPWO2019092782A1 (ja) | 情報処理装置、制御方法、及びプログラム | |
CN113537196B (zh) | 图片识别方法、装置、计算机设备及计算机可读存储介质 | |
CN115205589A (zh) | 对象识别方法、装置、电子设备及存储介质 | |
CN111008210B (zh) | 商品识别方法、装置、编解码器及存储装置 | |
CN113160414A (zh) | 货物余量自动识别方法、装置、电子设备以及计算机可读介质 | |
CN115359346B (zh) | 基于街景图片的小微空间识别方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |