一种基于深度学习的菜品识别计价方法与流程

文档序号:17187165发布日期:2019-03-22 21:27阅读:572来源:国知局
一种基于深度学习的菜品识别计价方法与流程

本发明涉及计算机视觉领域,尤其涉及一种基于深度学习的菜品识别计价方法。



背景技术:

随着社会的快速发展,方便快捷是人们在生活中越来越关注的话题,“食”作为民生主义的体现和人们的日常生活息息相关。为了体现方便快捷,现阶段大部分的餐厅都采用了自主挑选菜品,排队进行结账。由于结账分为人工计价和自动计价,随着食客人数的增多,人工计价效率低,正确率无法得到保障等缺点就会显露出来。随着“互联网+”等概念的提出,人们对于“智能化”的需求越来越大,因此近年来出现了一些自动计价方法。

最常见的餐盘自动计价方法就是rfid智能餐具,它是在餐具的底部嵌入rfid射频芯片,不同的rfid芯片会发射不同的频率,这样可以区分不同的餐具,结算系统会读取芯片中的信息给出价格。这种计价方法有效解决了人工计价效率低的问题,但是不可避免的带来了新的问题:一是需要rfid餐具,成本较高,一旦rfid芯片损坏需要更换整个餐具,二是结算系统识别的是rfid芯片,并不是识别餐具内装的菜品,对于盛放菜品有较高的要求,菜品和餐具需要一一对应。

因此人们研究的重点从实物的自动计价方法上转移到了图像识别进行自动计价的方法上,通过摄像头获取餐盘图像,寻找餐具图像的特征来进行识别并计价。2017年陈小娥提出了基于hsv空间和形状检测的餐盘识别算法,这是一种传统的图像识别方法,将图像转换到hsv空间,通过阈值分割确定餐具颜色,然后经过极坐标的形状检测,判断出餐具的不同形状,由此获取目标信息并进行计价。该方法对于餐具颜色要求较高,不同餐具之间需要有较大的颜色差异,并且未考虑餐具之间相互遮挡,以及菜品颜色对于餐具的干扰。

深度学习的概念由hinton等人于2006年提出,它源于对人工神经网络的研究。基于深度学习的菜品计价方法的本质是建立目标检测模型,通过检测出的菜品类别进行计价。目标检测模型可以识别同一张图片中的多个物体,并可以定位出不同物体(给出候选框),它主要是利用已经标记好的样本,训练得到特征分类器,利用分类器在图像中确定物体的位置和类别。因此基于深度学习的自动计价方法成为了研究的热点。

目前基于深度学习的主流目标检测算法包括两类:(1)基于区域提名的算法,其将检测问题划分为两个步骤,先产生候选区域,后对候选区域分类,这类算法的典型代表是r-cnn系算法,如r-cnn,fastr-cnn等。(2)端对端的检测算法,其不需要候选区域阶段,直接产生物体的类别概率和位置坐标值,比较典型的算法如yolo和ssd。一般情况下,基于区域提名的算法在准确度上有优势,而端对端的检测算法在速度上有优势。

在基于深度学习的菜品识别计价中,对于模型的检测速度和精度都有一定要求,特别涉及精度方面,在保证检测速度的同时应尽可能提高菜品的识别率。上述两类算法在普通菜品的识别上都有较高的精度,然而在面对一些相似菜品的识别则存在着识别精度低的问题,在识别过程中往往会将相似的菜品识别为同一类,这对于计价来说是不可接受的,因此限制了深度学习在菜品识别计价中的推广使用。

公布号为cn106096932a的中国发明专利申请公开了一种基于餐具形状的菜品自动识别系统的计价方法,方法包括:利用菜品区域的形状和面积特征分割餐盘中的的菜品,其次利用卷积神经网络训练得到分类器,直接对菜品进行识别。该方法通过对菜品识别,不依赖餐具,能够解决菜品错误盛放到餐具的问题,但是需要先分割餐盘图像再进行分类器的识别,所需时间过长,其次基于餐具形状来分割菜品,这对餐具在餐盘中的摆放位置有一定要求,出现遮挡等现象会降低识别的准确度,同时在识别过程中只依赖菜品特征进行分类,仍然存在相似菜品识别率低的问题。

本发明提供了一种基于深度学习的菜品识别计价方法,适用于食堂、餐厅等提供自助结账功能的餐饮场所。利用卷积神经网络,通过采集到的餐盘数据训练两个模型分别用来检测菜品和餐具,由摄像头获取待计价餐盘图片,经训练好的模型进行检测并获取菜品信息和餐具信息,通过信息融合判断得到检测结果,并给出最终价格。该方法能够在保证检测速度的情况下,通过对餐具信息和菜品信息进行融合判断,提高相似菜品的识别正确率,提升检测精确度,确保了计价的准确性。



技术实现要素:

本发明的目的是为了保证在一定的检测速度下,在菜品信息中加入餐具信息进行融合判断,解决模型对于相似菜品识别率低的问题,提升计价准确性,并对同一餐盘内的所有检测结果进行统一计价。

为了实现上述目的,本发明提供了一种基于深度学习的菜品识别计价方法,该方法包括:

采集餐盘样本数据;

使用卷积神经网络分别训练菜品模型和餐具模型;

通过摄像头获取待检测的餐盘图像;

通过已训练好的模型得到菜品和餐具的检测信息;

对检测信息进行融合判断,得到最终结果。

其中,根据所述采集餐盘数据,包括:

在餐厅中获取餐盘样本图片;

标注各类餐具数据;

标注各类菜品数据;

对样本数量较少的类别进行数据增强。

其中,根据所述使用卷积神经网络分别训练菜品模型和餐具模型,包括:

卷积神经网络采用卷积神经网络为基础网络;

利用标注好的菜品数据通过卷积神经网络训练一个菜品的模型;

利用标注好的餐具数据通过卷积神经网络训练一个餐具的模型。

其中,根据所述通过摄像头获取待检测的餐盘图像,包括:

红外传感器获取餐盘信号触发摄像头进行拍照。

其中,根据所述利用已训练好的模型得到菜品和餐具的检测信息,包括:

摄像头获取的餐盘图片同时输入菜品模型和餐具模型进行检测;

菜品模型给出检测菜品信息(菜品候选框的位置信息,置信度等);

餐具模型给出检测餐具信息(餐具候选框的位置信息,置信度等)。

其中,根据所述对检测信息进行融合判断,包括:

检测得到的重叠位置区域进行置信度高低的判断;

检测得到的菜品候选框位置与检测得到的餐具候选框位置进行分析;

确定最终的预测结果。

其中,根据所述输出最终结果,包括:

预测得到的结果与价格相关联;

输出最终价格。

基于上述发明方法,与现有方法相比具有突出的区别和贡献在于:

本发明涉及菜品和餐具的同时检测,在保持一定的检测速度下加入了融合判断,充分提取了图像特征,不再局限于单一的菜品特征,在检测相似菜品的过程中,能够通过对餐具特征的融合,提高检测精度,提升计价的准确性。其次本发明不在受限于菜品特征,对于部分遮挡的菜品也具有较高的识别准确率,增强了该方法的适用性。

附图说明:

以下结合附图对本发明的技术方案作进一步说明,但不构成对本发明技术方案的限制。

图1为本申请实施例的基于深度学习的菜品识别计价方法的流程图。

图2为本申请实施例的基于深度学习的菜品识别计价方法训练,检测,判断各模块的流程图。

图3为本申请实施例的基于深度学习的菜品识别计价方法融合判断流程图。

图4为本申请实施例的基于深度学习的菜品识别计价方法融合判断算法流程图。

图5为本申请实施例的基于深度学习的菜品识别计价方法检测步骤判断信息示意图。

图6为本申请实施例的基于深度学习的菜品识别计价方法检测步骤融合判断示意图。

具体实施方式:

以下将通过具体的实施例及附图来详细介绍本发明的目的、技术方案和优点。

图1所示为本申请实施例的基于深度学习的菜品识别计价方法的整个流程示意图,具体实施如下:

步骤s110,采集餐盘样本数据;

步骤s120,使用卷积神经网络分别训练菜品模型和餐具模型;

步骤s130,通过摄像头获取待检测的餐盘图像;

步骤s140,通过已训练好的模型得到菜品和餐具的检测结果;

步骤s150,分析得到的检测信息,得到最终结果。

以下对本申请实施例的若干关键步骤作详细介绍。

图2所示为本申请实施例的基于深度学习的菜品识别计价方法的训练,检测,判断各模块流程图,其中:

根据所述,训练模块,包括:

现场通过摄像头采集餐盘样本数据,对样本数据进行预处理,包括标记餐具数据和菜品数据,其中对于类别较少的数据进行数据增强,避免出现过拟合的现象;

将处理后的餐具数据和菜品数据分别利用卷积神经网络进行训练,得到两个模型。本实施例使用的基础卷积神经网络为tiny-yolov2,并按实际类别数更改神经网络最后一层的卷积核个数和置信度的阈值tc。

根据所述,检测模块,包括:

利用红外传感器获取餐盘信号,触发摄像头拍摄餐盘图像;

将获取到的餐盘图像同时输入菜品模型和餐具模型进行检测;

餐具模型给出检测信息,包含餐具在图像中的位置信息,预测得到的各类置信度;

菜品模型给出检测信息,包含菜品在图像中的位置信息,预测得到的各类置信度。

根据所述,判断模块,包括:

对餐具模型给出的检测结果和菜品模型给出的检测结果进行判断;

同一区域同个模型检测出的不同类别选择置信度最高的类别;

同一区域不同模型检测出的结果以位置信息进行融合判断;

得到最终结果与价格相匹配后输出价格。

图3为本申请实施例的基于深度学习的菜品识别计价方法融合判断流程图,其中:

步骤s310,菜品模型给出检测菜品信息,餐具模型给出检测餐具信息;

步骤s320,判断菜品信息,首先筛选掉置信度低于确定阈值tc的候选框,根据检测得到的餐具位置信息(候选框的左上角坐标xvd1,yvd1和右下角坐标xvd2,yvd2)进行菜品信息判断,得到菜品检测结果,包括:两点坐标(xvd1,yvd1),(xvd2,yvd2)和置信度cvd;

同样对餐具信息进行判断,根据检测得到的餐具位置信息(候选框的左上角坐标xtw1,ytw1和右下角坐标xtw2,ytw2),得到餐具检测结果,包括:两点坐标(xtw1,ytw1),(xtw2,ytw2)和置信度ctw;

步骤s330,对菜品检测结果和餐具检测结果进行融合判断。得到的最终结果进行分析,先进行置信度的判断,菜品检测结果中的置信度cvd和餐具检测结果中的置信度ctw进行比较,然后对位置信息进行判断,最终菜品检测结果中的左上角坐标(xvd1,yvd1)和右下角坐标(xvd2,yvd2)以及最终餐具检测结果的左上角坐标(xtw1,ytw1)和右下角坐标(xtw2,ytw2)的分布关系,最后确定输出的检测结果。

图4为本申请实施例的基于深度学习的菜品识别计价方法的融合判断算法流程图,其中:

菜品模型给出检测候选框的位置信息与置信度,首先进行置信度筛选,根据预先设置的阈值tc,只保留置信度大于该阈值的候选框,其次利用位置信息进行候选框判断,具体步骤如下:

获取保留下的候选框(1,2,…,n)的坐标(左上角坐标xvd1n,yvd1n和右下角坐标xvd2n,yvd2n);

判断候选框之间是否有包含关系,具体如下:

假设有两个候选框a,b,其中a两点的坐标为(xvd1,yvd1)和(xvd2,yvd2),b两点的坐标为(xvd12,yvd12)和(xvd22,yvd22);

若xvd12>xvd21或yvd12>yvd21或xvd22<xvd11或yvd22<yvd11,则两个候选框不包含,说明这两个候选框检测的是不同的物体,保留这两个候选框;

若xvd12>xvd11且yvd12>yvd11且xvd22<xvd21且yvd22<yvd21,则两个候选框完全包含,应当舍去包含的候选框,即候选框a,保留被包含的候选框,即候选框b;

其他情况则为部分包含关系,需要对候选框a和候选框b计算相互之间的重叠面积so,同时计算候选框a的面积sa和候选框b的面积sb,找到最小面积min(sa,sb),然后计算重叠率即:so/min(sa,sb),设置一个重叠率阈值to,去除超过to的候选框,保留未超过to的候选框;

最终得到筛选后的菜品信息候选框k,包括:位置信息(xvd1,yvd1),(xvd2,yvd2)和置信度cvd;

餐具模型使用同样的方法进行候选框的筛选,得到筛选后的餐具信息候选框p,包括:位置信息(xtw1,ytw1),(xtw2,ytw2)和置信度ctw;

将筛选后得到的菜品信息候选框k和餐具信息候选框p进行融合判断,首先确定菜品信息和餐具信息的位置关系:

若菜品的位置信息包含在餐具的位置信息中,即菜品候选框(xvd1,yvd1),(xvd2,yvd2)包含在餐具候选框(xtw1,ytw1),(xtw2,ytw2)里,若满足上述条件,则该区域输出的结果为该类菜品信息;

若经筛选后在同一区域,菜品信息仍存在两个置信度近似的类别候选框,则需要考虑餐具信息中的类别信息,即该类别餐具所对应的价格与菜品信息中哪类价格一致,则该区域输出该类菜品信息;

若候选框k的位置信息与候选框p的位置信息相交,应计算重叠率,首先计算候选框面积,候选框k的面积为:sk=(xvd2-xvd1)×(yvd2-yvd1),候选框p的面积为:sp=(xtw2-xtw1)×(ytw2-ytw1),找到其中的最小面积min(sk,sp),其次计算两候选框之间的重叠面积:对xvd1,xvd2,xtw1,xtw2以及yvd1,yvd2,ytw1,ytw2分别从小到大排序,得到序列xn和序列yn,n={0,1,2,3},取中间两组坐标求重叠面积k∩p:sk∩p=|x1-x2|×|y1-y2|,最后得到重叠率or:

or低于阈值tl,则表明原餐盘中存在餐具相互遮挡的问题,若k与p的置信度相近,应使用k的信息,输出该菜品信息;

其中候选框阈值tc,候选框筛选重叠率阈值to以及融合判断重叠率阈值tl均以实际情况确定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1