一种基于神经网络的食物识别方法与流程

文档序号:14941208发布日期:2018-07-13 20:51阅读:363来源:国知局

本发明涉及一种食物识别方法,尤其涉及一种基于神经网络的食物识别方法。



背景技术:

随着智能化技术的发展,基于深度神经网络,使用卷积计算提取输入食物图像中的特征,并根据提取得到的特征对食物进行分类的方法已经逐步得到应用。目前使用神经网络模型,对给定的输入图像进行卷积计算进行特征提取,使用池化操作对卷积计算后的结果进行降维,对图像从局部到全局进行特征抽取,最后根据提取的特征进行食物图像的分类,在大多数情况下能够准确地识别并分类食物图片。但是网络在进行池化池化操作的过程中会丢失低层的卷积计算得到的一些细节信息,所以对于一些细节对分类起到重要作用的场景,其准确度会降低。

具体而言,目前的食物识别方法在对食物原材进行识别是有较好的效果,究其原因则在,于食物原材未经处理,待识别食物体积大,即便抛弃大量特征也不会影响识别结果。但是,对于熟食而言,尤其对于以精细见长的中餐,食物原材经过细致的处理,在菜品中食物往往是极细致的丝状或粒状,在这种情况下,采用原本会对图像特征进行大量抛弃的识别方法,则会导致重要的细节信息丢失,而无法识别中餐菜品。对此,人们需要一种可以针对食物细节更好进行识别的方法。



技术实现要素:

本发明提供一种基于神经网络的食物识别方法,旨在解决目前食物识别方法对细节识别不准确的问题。

本发明所述的一种基于神经网络的食物识别方法,包括以下步骤:

s1,获取食物图像并输入神经网络;

s2,对输入的图像进行特征抽取和降维,得到关键特征;

s3,对输入的图像进行lbp特征值计算,得到lbp特征图;

s4,将lbp特征图与关键特征进行合并,得到细节特征,并将细节特征输入到下一层;

s5,使用神经网络最终抽取的特征进行食物图像的分类。

本发明所述的一种基于神经网络的食物识别方法,对获取的食物图像不仅进行关键特征的提取,还对其进行lbp特征计算,将得到的lbp特征图与关键特征进行合并,也就是说,可以将得到的lbp特征图,使用跳跃连接输入到网络的较高层中,与其抽取的特征进行合并,作为下一次的输入,形成残差模块,使得网络可以在较高层中学到一些已经丢失和经过变化后的局部细节信息,实现对细节的准确识别,解决目前食物识别方法在进行池化操作的过程中会丢失低层的卷积计算得到的一些细节信息,对于一些细节对分类起到重要作用的场景,其准确度会降低的问题。具体而言,目前的食物识别方法在识别中餐菜品时,由于菜品呈现食物体积细小且相互混合的特点,在进行识别丢失的细节信息会使菜品中体积细小的食材被丢失,导致不能准确识别食物,而本发明通过计算图像的lbp特征图,并将lbp特征图与关键特征合并,使得细节特征不被抛弃,网络上层依旧可以学习细节特征,基于这一优点,本发明所述的识别方法可以用于精准识别食物,尤其适用于中餐菜品的识别,解决了目前食物识别方法识别细节不准确的问题。同时,本发明要求保护的识别方法,不仅仅适用于识别食物,由于其具有保留细节特征的功能,在需要进行细节识别,例如与中餐菜品有类似特点的塑料颗粒分离等方面,都可以使用该种识别方法。本发明提供了一种可以进行准确识别的方法,一种基于神经网络的食物识别方法,解决了目前食物识别方法对细节识别不准确的问题。

附图说明

图1是一种基于神经网络的食物识别方法的流程图1;

图2是一种基于神经网络的食物识别方法的流程图2;

图3是一种基于神经网络的食物识别方法的步骤s0的流程图;

图4是一种基于神经网络的食物识别方法的步骤s01的流程图;

图5是一种基于神经网络的食物识别方法的步骤s02的流程图;

图6是一种基于神经网络的食物识别方法的步骤s03的流程图;

图7是一种基于神经网络的食物识别方法的步骤s2的流程图;

图8是一种基于神经网络的食物识别方法的步骤s3的流程图。

具体实施方式

如图1所示,一种基于神经网络的食物识别方法,包括以下步骤:s1,获取食物图像并输入神经网络;s2,对输入的图像进行特征抽取和降维,得到关键特征;s3,对输入的图像进行lbp特征值计算,得到lbp特征图;s4,将lbp特征图与关键特征进行合并,得到细节特征,并将细节特征输入到下一层;s5,使用神经网络最终抽取的特征进行食物图像的分类。对获取的食物图像不仅进行关键特征的提取,还对其进行lbp特征计算,将得到的lbp特征图与关键特征进行合并,使得细节特征不被抛弃,网络上层依旧可以学习细节特征,解决了目前食物识别方法对细节识别不准确的问题。

如图2、图3所示,该种基于神经网络的食物识别方法,还包括神经网络训练步骤s0,所述s0包括以下步骤:s01,制作收集样本;s02,选择训练样本,提取其关键特征和lbp特征图并进行合并,得到细节特征并输入到下一层;s03,计算神经网络最终抽取的特征的损失,损失大于阈值至返回步骤s02,步骤小于阈值则进入步骤s04;s04,使用测试样本的图像进行测试,若测试损失小于阈值则结束训练步骤,进入步骤s1,若测试损失大于阈值则返回步骤s02。该步骤为神经网络训练步骤,神经网络具有学习功能,在使用神经网络进行食物识别前,可以对神经网络进行训练,使其学习需要识别的对象,在对大量训练样本的学习下,可以更为快速准确的对需要识别的对象进行识别。

如图4所示,所述步骤s01包括以下步骤:s011,收集所有菜式的图像,调整为固定大小的图像;s012,为每个菜式图像的分配对应的菜式名标签;s013,将所有图像和对应的标签分为训练样本和测试样本。本发明中使用神经网络对食物进行识别,在训练神经网络是需要收集食物样本,部分食物样本作为训练样本,对神经网络进行训练,部分样本作为测试样本,对经过训练的神经网络进行测试,以便后续使用。

如图5所示,所步骤s02包括以下步骤:s021,选取训练样本输入网络,使用卷积计算提取输入图像的特征图;s022,使用最大池化操作处理步骤s021中的特征图,并对结果进行非线性激活函数处理得到关键特征;s023,计算图像的lbp特征图并与步骤s022得到的关键特征合并;s024,将步骤s023合并所得的均值和方差进行batchnormalization操作,将其归一化到[0,1]的范围内,作为细节特征输入下一层的卷积。将得到的lbp特征图,使用跳跃连接输入到网络的较高层中的,与其抽取的特征进行合并,作为下一层的输入,形成残差模块,使得网络可以在较高层中学到一些已经丢失和经过变化后的局部细节信息。

如图6所示,所述步骤s03包括以下步骤:s031,将最后一个激活函数的激活值使用全连接层展开成指定大小;s032,使用softmax输出图像属于各个菜式的概率得到预测标签;s033,根据预测标签和实际标签使用损失函数计算损失,如损失小于阈值则结束步骤,如损失大于阈值则进入步骤s034;s034,根据步骤s033的损失使用优化函数计算梯度更新网络参数,并返回步骤s02。对损失进行计算,以便进一步对神经网络进行调整训练,保证神经网络可以保留适当的细节信息,即便因为抛弃底层信息而导致细节缺失,也不因为保留大量无用信息,影响处理效率。

如图7所示,所述步骤s2包括以下步骤:s21,使用卷积计算提取输入图像的特征图;s22,使用最大池化操作处理步骤s21中的特征图;s23,使用非线性激活函数处理步骤s22中的输出,得到关键特征。该步骤是为了处理输入到网络中食物图像,网络迭代地在每一层对图像进行特征抽取,同时进行降维,具体而言则是,对于输入的食物图像,使用不同的卷积核进行卷积计算提取不同的图像特征,对于卷积计算得到的特征,使用池化操作去除冗余信息达到降维效果,池化操作之后使用非线性的激活函数,将特征映射到非线性空间中,对于每个激活值,使用batchnormalize用激活值的均值方差来稳定激活值,网络迭代使用这样的方式对图像特征进行抽取。

如图8所示,所述步骤s3包括以下步骤:s31,对于每一像素点,使用lbp算子划定大小为k的邻域内;s32,以邻域中心像素为阈值,与相邻的(k*k-1)个像素的灰度值进行比较;s33,若周围像素大于中心像素值,则该像素点的位置被标记为1,否则标记为0;s34,按照顺时针将邻域中的标记点,从外到内地排列成一个二进制数,作为中心像素的lbp值;s35,重复步骤s31至步骤s34,得到整幅图像的lbp特征图。本步骤是为了得到lbp特征图像,以便使用跳跃连接输入到网络的较高层中的,与其激活值进行合并,作为下一层的输入,形成残差模块,使得网络可以在较高层中学到一些已经丢失和经过变化后的局部细节信息。

对于本领域的技术人员来说,可根据以上描述的技术方案以及构思,做出其它各种相应的改变以及变形,而所有的这些改变以及变形都应该属于本发明权利要求的保护范围之内。

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