一种快速美食图片识别方法及系统与流程

文档序号:12906493阅读:990来源:国知局
一种快速美食图片识别方法及系统与流程

本发明涉及图片识别技术领域,具体涉及一种快速美食图片识别方法及系统。



背景技术:

现今的图片识别大多由通用的大型卷积神经网络获得,速度都比较慢,并且没有专门针对美食的分类。同时,现有的模型主要的目的为识别大量常见的场景,且训练使用的数据的范围较为广泛。这些方式一般取概率最高的类别作为最终的结果输出,而在面对美食图片时,由于图片内容本身较为复杂,可能包含大量其它场景、物体,并且多种类别的美食很可能出现在同一张图片中,所以取概率最高的类别的方法的准确率不高。另外,由于这些模型的计算量较大,所以速度很慢。



技术实现要素:

本发明的目的是使用卷积神经网络快速、准确地识别出内容是美食的图片。

为了实现上述目的,本发明提供了一种快速美食图片识别方法,包括如下步骤:

采集训练集,将训练集包括美食图片集和非美食图片集两个类别;

对美食图片集、非美食图片集分别进行小类划分;

构建inception-bn网络模型,并利用分类后的美食图片集、非美食图片集对inception-bn网络模型进行训练;

将待识别图片输入至训练好的inception-bn网络模型,计算待识别图片属于美食类图片或非美食类图片的概率,将概率与阈值进行比较,并根据比较结果判断待识别图片所属的类别。

进一步,所述对美食图片集、非美食图片集分别进行分类包括

对美食图片集和非美食图片集进行清洗;

按照美食图片集中相同的美食进行小类划分,非美食图片集中相同的场景进行小类分类,分别得到美食类别、场景类别。

进一步,所述计算待识别图片属于美食类图片或非美食类图片的概率,将概率与阈值进行比较,并根据比较结果判断待识别图片所属的类别包括

计算待识别图片在美食图片中每个小类的概率、以及非美食图片中每个小类的概率;

统计美食图片中所有小类的概率之和s1,非美食图片中所有小类的概率之和s2;

判断s1是否不小于s2,是则确定待识别图片为美食图片,否则为非美食图片。

进一步,所述判断s1是否不小于s2,是则确定待识别图片为美食图片,否则为非美食图片还包括

如果确定待识别图片为美食图片,则标记美食图片的区域,计算该区域占美食图片的比例,将该比例与区域阈值比较,若比例不小于区域阈值,则确定待识别图片美食图片。

进一步,所述inception-bn网络模型依次包括第一卷积层、第一池化层、第二卷积层、第二池化层、第一inception结构和第二inception结构,其中,第一inception结构包括多个卷积核和至少一个池化层,第二inception结构包括多个卷积核。

本发明还提供了一种快速美食图片识别系统,包括

一种快速美食图片识别系统,其特征在于,包括

采集模块,用于采集训练集,将训练集包括美食图片集和非美食图片集两个类别;

分类模块,用于对美食图片集、非美食图片集分别进行小类划分;

构建模块,用于构建inception-bn网络模型,并利用分类后的美食图片集、非美食图片集对inception-bn网络模型进行训练;

识别模块,用于将待识别图片输入至训练好的inception-bn网络模型,计算待识别图片属于美食类图片或非美食类图片的概率,将概率与阈值进行比较,并根据比较结果判断待识别图片所属的类别。

进一步,分类模块包括

清洗单元,用于对美食图片集和非美食图片集进行清洗;

划分单元,用于按照美食图片集中相同的美食进行小类划分,非美食图片集中相同的场景进行小类分类,分别得到美食类别、场景类别。

进一步,识别模块包括

概率计算单元,用于计算待识别图片在美食图片中每个小类的概率、以及非美食图片中每个小类的概率;

概率统计单元,用于统计美食图片中所有小类的概率之和s1,非美食图片中所有小类的概率之和s2;

识别确定单元,用于判断s1是否不小于s2,是则确定待识别图片为美食图片,否则为非美食图片。

进一步,识别统计单元还包括

重识别子单元,用于如果确定待识别图片为美食图片,则标记美食图片的区域,计算该区域占美食图片的比例,将该比例与区域阈值比较,若比例不小于区域阈值,则确定待识别图片美食图片。

在上述技术方案中,本发明减少了模型大小、计算量,从而大幅提高计算速度。更有针对性地设置训练数据,数据清洗,以及对所有美食小类别的概率求和,本发明能够更准确的识别美食图片。本发明输入的图片分辨率小,去掉了一级降采样计算,加快计算速度;训练数据有针对性,做了数据清洗,最后的求和处理,提高了识别的准确率。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。

图1为本发明所述的快速美食图片识别系统一个实施例的框图结构示意图;

图2为本发明所述的快速美食图片识别系统中分类模块的框图结构示意图;

图3为本发明所述的快速美食图片识别系统中识别模块的框图结构示意图;

图4为本发明所述的快速美食图片识别方法一个实施例的流程示意图;

图5为传统inception-bn网络模型的结构意图;

图6为本发明采用的inception-bn网络模型的结构意图;

图7为inception-bn网络模型中inception块的结构意图;

图8、图9分别为对图5、图6采用的inception-bn网络模型对图片识别的误检率与召回率的关系;

图10为应用本发明计算待识别图片概率的工作流程示意图。

具体实施方式

为了使本领域的技术人员更好地理解本发明的技术方案,下面将结合附图对本发明作进一步的详细介绍。

如图1所示,本发明提供了一种快速美食图片识别系统,包括采集模块10、分类模块20、构建模块30和识别模块40。

其中,采集模块10,用于采集训练集,将训练集包括美食图片集和非美食图片集两个类别;分类模块20,用于对美食图片集、非美食图片集分别进行小类划分;构建模块30,用于构建inception-bn网络模型,并利用分类后的美食图片集、非美食图片集对inception-bn网络模型进行训练;识别模块40,用于将待识别图片输入至训练好的inception-bn网络模型,计算待识别图片属于美食类图片或非美食类图片的概率,将概率与阈值进行比较,并根据比较结果判断待识别图片所属的类别。

进一步,如图2所示,分类模块10包括清洗单元110和划分单元120。其中,清洗单元110用于对美食图片集和非美食图片集进行清洗;划分单元120用于按照美食图片集中相同的美食进行小类划分,非美食图片集中相同的场景进行小类分类,分别得到美食类别、场景类别。

进一步,如图3所示,识别模块40包括概率计算单元410、概率统计单元420、识别确定单元430。其中,概率计算单元410用于计算待识别图片在美食图片中每个小类的概率、以及非美食图片中每个小类的概率;概率统计单元420用于统计美食图片中所有小类的概率之和s1,非美食图片中所有小类的概率之和s2;识别确定单元430用于判断s1是否不小于s2,是则确定待识别图片为美食图片,否则为非美食图片。更进一步,识别统计单元430还包括重识别子单元4301,用于如果确定待识别图片为美食图片,则标记美食图片的区域,计算该区域占美食图片的比例,将该比例与区域阈值比较,若比例不小于区域阈值,则确定待识别图片美食图片。

本发明利用采集模块10、分类模块20以及构建模块完成识别图片模型的训练和应用。训练时,采集模块收集很多种类、很多数量的美食图片,以及非美食类别图片,进行数据清洗,然后将每个小类作为一个类别,使用这些预定好了所属类别的图片训练卷积神经网络,提取图片的特征,得到更加针对美食图片的图片分类器。应用时,图片分类器对图片计算出属于每个小类别的概率。随后,通过将所有预先已知属于美食类别的小类别的概率相加,能够得到图片内容是美食的概率。这比一般只取概率最高的小类别的方法要更加准确。

如图4所示,本发明还提供了一种快速美食图片识别方法。

在s101中,采集模块10采集训练集,将训练集包括美食图片集和非美食图片集两个类别;

具体地,可以通过网络搜索流行的美食名字,然后下载对应的图片。本发明的目的在于能够区分图片是美食图片还是非美食图片,因此需要采集美食类图片和非美食类图片。进一步,所述采集的图片是通过网络下载的,其来源包括imagenet、places2、google图片搜索,或其他图片数据库以及利用其他搜索引擎下载获得的图片。为了让模型能够更好地区分美食、非美食图片,再收集10倍于美食图片数量的其它类别图片作为背景类别,来源包括imagenet和places2。另外,因为有些背景类别也包括美食内容的图片,所以还需要做数据清洗,将背景类别中属于美食的类别去掉。如果不清理数据,模型的准确率会受到很大的影响。

在s102中,分类模块20用于对美食图片集、非美食图片集分别进行小类划分;

因为模型需要进行分类的图片可能并不是美食图片,所以需要在训练时也包含非美食类别。另外,虽然模型最终的目标是把图片分类为美食、非美食两类,但是在训练时依然需要将美食类别分为各种小类,这是因为比如宫保鸡丁、拍黄瓜虽然都是美食,但是从视觉角度来说,它们的区别很大,而cnn能获取的也只有图片所包含的视觉信息,所以将它们作为同一类别进行训练的做法并不合理。因此需要将美食进行分类,得到多种美食类别及场景类别。具体地,为每一类别的美食及场景设置唯一编码,根据编码确定美食类别,具体地,每个美食类别包括编码号、美食名称。

具体地,本实施例中包括50个类别的美食图片,500个类别的场景图片,共计550个类别,将550个类别作为独立的小类别,对模型进行分类训练,提高图片分类器对美食及场景的识别。

在s103中,构建模块30用于构建inception-bn网络模型,并利用分类后的美食图片集、非美食图片集对inception-bn网络模型进行训练;

进一步,所述inception-bn网络模型依次包括第一卷积层、第一池化层、第二卷积层、第二池化层和第一inception结构和第二inception结构,其中,第一inception结构包括多个卷积核和至少一个池化层,第二inception结构包括多个卷积核。

传统的inception-bn网络模型如图5所示,本发明在图5所示的inception-bn网络模型上进行了改进,改进后本发明所述的inception-bn网络模型具体结构如图6所示。传统的inception-bn网络模型会对图片做5次降采样操作,即实现将输入图片的分辨率从第一卷积层直至第二inception结构进行降低,本实施例中输入第一卷积层的图片为224x224分辨率,第二inception结构输出的图片的分辨率降低为了为7x7,具体的结构如图5,输入的图片首先被conv1(卷积层)、pool1(池化层)、pool2降采样3次,其它层只进行卷积计算,不降采样。随后inception3、4(inception结构)会继续进行卷积计算,并分别降采样一次;每个inception结构包含多个顺序级联的如图7所示的inception块,并且inception结构内的最后一级inception块会对图片降采样。具体来说,inception3包含3个inception块(前两个只卷积,最后一个卷积并且降采样),inception4包含5个(前四个只卷积,最后一个卷积并且降采样),inception5包含2个(两个都只卷积,都不降采样)。为了减少计算量,本发明把inception5的整体、inception4内最后一级inception块去掉,即包括第一卷积层、第一池化层、第二卷积层、第二池化层和第一inception结构和第二inception结构。其中,第二inception结构并不进行降采样操作。这样模型本身只进行4次降采样(conv1、pool1、conv2、pool2、inception3)。本发明所述的inception-bn网络模型使用112*112的图片作为模型的输入,而不是原始的224*224。由于图片尺寸与计算量是平方关系,所以计算量约减少为原先的五分之一。本实施例中使用的inception-bn网络,将5次降采样过程减少为4次,以及将模型的输入图片分辨率减半为112。

通过模型性能评价,将全部测试用的图片使用模型计算一遍对应的分类结果,然后根据上述定义的规则计算出属于美食类别的概率,通过绘制曲线,展示不同对美食类别的概率阈值,以该模型识别过程中误检率(falsepositiverate)、召回率(recall)间的关系。误检率的定义为fpr=fp/(fp+tn),其中,fp表示“falsepositive”,为认为是美食图片的图片中,实际上不是美食图片,而是背景类别图片的数量;tn表示“truenegative”,意思为认为不是美食的图片中,真的不是美食图片的数量。召回率的定义为:recall=tp/(tp+fn),其中,tp表示“truepositive”,意思为模型认为是美食图片的图片中,确实是美食图片的数量;fn表示“falsenegative”,意思为认为不是美食图片,而实际上是美食图片的数量。如图8、图9分别为利用如图5所示的inception-bn网络模型、图6所示的inception-bn网络模型对图片识别的误检率与召回率的关系。根据图示的参数可知,相同的参数条件下,图6所示的inception-bn网络模型的fpr更低,其recall应该高。在实际使用中,一般预先确定能够接受多高的误检率,然后比较不同模型在这个误检率下的recall。

在s104中,用于将待识别图片输入至训练好的inception-bn网络模型,计算待识别图片属于美食类图片或非美食类图片的概率,将概率与阈值进行比较,并根据比较结果判断待识别图片所属的类别。

如图10应用本发明计算待识别图片概率的工作流程示意图。

进一步,s104包括s1041-s1043。

在s1041中,概率计算单元410计算待识别图片在美食图片中每个小类的概率、以及非美食图片中每个小类的概率;

在s1042中,概率统计单元420统计美食图片中所有小类的概率之和s1,非美食图片中所有小类的概率之和s2;

在s1043中,识别确定单元430判断s1是否不小于s2,是则确定待识别图片为美食图片,否则为非美食图片。

使用模型时,对模型输入一张图片,模型会计算得到图片属于预定义的550类中每个类别的得分,并且这550个类别的得分的总和是1。通过将50个美食类别的得分相加,就可以得到图片是美食的概率p,不是美食的概率就是1-p。通过判断p是否大于在某个误检率下的阈值,就能够最终判断这个图片是不是美食图片。假如我们能够接受千分之一的误检,并且千分之一误检率的阈值是0.7,那么我们就认为p大于0.7的图片是美食图片。

更进一步,在s1043还包括如下步骤:

如果确定待识别图片为美食图片,则标记美食图片的区域,计算该区域占美食图片的比例,将该比例与区域阈值比较,若比例不小于区域阈值,则确定待识别图片美食图片。该步骤由重识别子单元4301执行。

当待识别图片中某些部分是美食,其它部分不是美食时,如厨房里的一盘菜,而模型的判断输出与训练时图片实际标签的标注方式有关,在标注时,我们可以规定图片中至少60%的区域是美食时,该图片才是美食图片。因为inception-bn网络模型中间的输出是三维的,包含宽高这两个维度,并且在最后有对整个区域进行综合计算的步骤(全联接),因此模型可以学习到当大部分区域都是美食时才将图片判定为美食这个隐性的规则。

以上只通过说明的方式描述了本发明的某些示范性实施例,毋庸置疑,对于本领域的普通技术人员,在不偏离本发明的精神和范围的情况下,可以用各种不同的方式对所描述的实施例进行修正。因此,上述附图和描述在本质上是说明性的,不应理解为对本发明权利要求保护范围的限制。

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