CN112488301A - 一种基于多任务学习和注意力机制的食品反演方法 - Google Patents

一种基于多任务学习和注意力机制的食品反演方法 Download PDF

Info

Publication number
CN112488301A
CN112488301A CN202011426511.1A CN202011426511A CN112488301A CN 112488301 A CN112488301 A CN 112488301A CN 202011426511 A CN202011426511 A CN 202011426511A CN 112488301 A CN112488301 A CN 112488301A
Authority
CN
China
Prior art keywords
food
food material
model
menu
training
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.)
Granted
Application number
CN202011426511.1A
Other languages
English (en)
Other versions
CN112488301B (zh
Inventor
孙成林
白洪涛
蔡芷薇
何丽莉
曹英晖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN202011426511.1A priority Critical patent/CN112488301B/zh
Publication of CN112488301A publication Critical patent/CN112488301A/zh
Application granted granted Critical
Publication of CN112488301B publication Critical patent/CN112488301B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/285Selection of pattern recognition techniques, e.g. of classifiers in a multi-classifier system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)

Abstract

本发明公开了一种基于多任务学习和注意力机制的食品反演方法,包括如下步骤:步骤1、采集食品数据,构建菜谱数据集;步骤2、建立并训练基于注意力机制的食材文本模型,通过输入食品图片得到对应的食材文本;步骤3、建立并训练菜谱生成模型,通过输入食品图片和食材文本进而得到所述食品图片对应的菜谱文本;步骤4、将所述食材文本和所述菜谱文本分别转化为对应的食材向量和菜谱向量,建立并训练多任务卷积神经网络模型;在所述多任务卷积神经网络模型中通过输入待测食品图片进而得到所述待测食品图片对应的食品分类、卡路里值、食材向量和菜谱向量。

Description

一种基于多任务学习和注意力机制的食品反演方法
技术领域
本发明涉及图像识别技术领域,尤其涉及一种基于多任务学习和注意力机制的食品反演方法。
背景技术
最近几年我们见证了许多关于视觉识别任务研究的卓越成就,包括图像分类,实体识别以及图像语义分割等。但是,与一般的图像识别任务相比,食物图像理解面临着更加艰巨的挑战,因为食物及其组成食材在经过了各种切割和烹饪操作以后,在形状,形态,纹理和颜色等方面都发生了多样的变化,且菜品中的不同食材之间往往存在着相互的遮挡。因此,食品图像分析所面临的挑战已经超越了单纯的计算机视觉任务。
一种早期的食材识别模型是PFD(成对局部特征分布),它利用食材预测的结果来进行食品分类。在PFD中,基于图像块的外观,像素点被标记为食材的类别。然后以标签共现它们的几何特性,例如以距离和方向为特征,将像素之间的空间关系建模为多维直方图。通过这些直方图,PFD表现出令人印象深刻的食品识别性能。但是,PFD在食材种类上几乎没有任何可扩展性,仅使用8个类别,而在食品食材多样的当下,这显然无法满足现实生活中的应用需要。
基于食品图像的菜谱生成被设计为一个检索任务。通过计算食品图像在嵌入空间的相似度,***从一个已有的数据集中检索出对应的菜谱。然而,这类***的表现高度依赖于检索数据集的数据量和数据多样性,以及网络学习的嵌入向量的质量。此外,该***也无法检索到数据集以外的菜谱信息。
关于食物卡路里的估计,目前主流方法是根据的食物类别及其体积来预测食品产生的卡路里。基于深度相机的食物卡路里估算方法,通过深度相机拍摄食品图片来预测食品量从而得到食品图片的预测卡路里值。然而,深度相机作为特殊的设备,人们很难在日常生活中使用。
DietCam是一个通过多张图片估算食物的卡路里的移动应用。它对食品图像进行了语义分割和图像识别,并重建了食品的3D体积,以此为依据预测食物卡路里。3D重建操作是通过基于SIFT的关键点匹配和单应性估计进行的;Pouladzadhe等提出的食物热量预测***需要从食品的顶部和侧面两个角度拍摄照片,并以用户的拇指作为参照物。该方法通过将根据顶视图图像预测的高度与从侧视图预测的宽度相乘从而估计食品的体积。上述用多个图像估计食物体积的方法,通常需要校准摄像机或调整拍摄角度,用户操作难度大,流程复杂。
食品所含卡路里值主要依赖于食品的种类,体积,食材和烹饪方法等因素。有时相同类别的食品包含的卡路里不同,这是因为它们使用的食材和烹饪方法不同。因此,仅根据识别食品类别和体积不能完全解决食品卡路里预测任务,预测准确率有待提高。
发明内容
本发明设计开发了一种基于多任务学习和注意力机制的食品反演方法,本发明的发明目的是解决检索式菜谱生成模型对数据集的依赖问题以及由于未考虑食品的食材和烹饪方法等因素,导致卡路里预测准确率低的问题。
本发明提供的技术方案为:
一种基于多任务学习和注意力机制的食品反演方法,包括如下步骤:
步骤1、采集食品数据,构建菜谱数据集;
步骤2、建立并训练基于注意力机制的食材文本模型,通过输入食品图片得到对应的食材文本;
步骤3、建立并训练菜谱生成模型,通过输入食品图片和食材文本进而得到所述食品图片对应的菜谱文本;
步骤4、将所述食材文本和所述菜谱文本分别转化为对应的食材向量和菜谱向量,建立并训练多任务卷积神经网络模型;
在所述多任务卷积神经网络模型中通过输入待测食品图片进而得到所述待测食品图片对应的食品分类、卡路里值、食材向量和菜谱向量。
优选的是,在所述步骤2中,通过Transformer模型建立食材文本模型过程包括:
将食品图片特征向量作为输入,输出为生成食材的序列L=(l0,…,lk,…,lK),式中,lk代表序列中的一种食材。
优选的是,在所述步骤2中,通过列表结构表示所述食品图片对应的生成食材,包括:
确定包含N个食材元素的字典为
Figure BDA0002825095470000031
从字典D种选择K个元素,生成食材列表
Figure BDA0002825095470000032
将L编码为K×N维的二进制矩阵L,当dj∈D被选中时,Li,j=1,否则Li,j=0;
所述食材文本模型的训练数据包含M张食品图像和食材列表对
Figure BDA0002825095470000033
所述食材文本模型的优化目标为
Figure BDA0002825095470000034
式中,
Figure BDA0002825095470000035
为根据图像x预测的目标矩阵,θI和θL分别是图像编码器和食材解码器的可学习参数;
Figure BDA0002825095470000036
分解为K个条件句:
Figure BDA0002825095470000037
并指定
Figure BDA0002825095470000038
为食材分类的概率分布。
优选的是,在所述步骤2中,通过Transformer模型建立食材文本模型通过Adam优化器进行数据优化:设置β1=0.9,β2=0.99,∈=1e-8,设置学习率0.001,其中,预训练残差网络层学习率为0.0001;训练最大训练轮次为200轮,使用早停法,设置patience为50,如果50轮训练后验证数据的iou标准没有改善,则执行早停;其中,batch_size设置为128,num_workers设置为4。
优选的是,在所述步骤3中,通过Transformer模型建立菜谱文本模型过程包括:
将食品图片特征向量和食材文本特征向量作为输入,输出为生成菜谱的序列R=(r1,…,rt,…,rT),式中,rt为序列中的一种词。
优选的是,在所述步骤2中,通过Transformer模型建立菜谱文本模型通过Adam优化器进行数据优化:β1=0.9,β2=0.99,∈=1e-8,设置初始学习率0.001,每十个轮次衰减一次,衰减因子为0.99;本次训练最大训练轮次为200轮,使用早停法,设置patience为50,如果50轮训练后验证数据的iou标准没有改善,则执行早停;其中,batch_size设置为128,num_workers设置为4。
优选的是,在所述步骤4中,建立并训练多任务卷积神经网络模型包括如下步骤:
步骤4.1、采集样本数据并构建训练样本集和验证测试样本集;
步骤4.2、搭建多任务卷积神经网络模型,
步骤4.3、获取训练多任务卷积神经网络模型的损失函数:
Figure BDA0002825095470000041
式中,Lcal,Lcat,Ling,Ldir分别为卡路里预测,食品分类,食材预测和菜谱预测四个任务的损失函数,λcat,λing和λdir分别为食品分类、食材预测和菜谱预测的损失函数的权重值,N为学习数据的总数;
步骤4.4、对多任务卷积神经网络模型进行训练:
设定初次训练时,各权重值初始化为1;
将所述训练样本集中的图片特征向量输入到所述多任务卷积神经网络模型中,得到多任务卷积神经网络模型的输出为食品分类,卡路里值,食材文本向量和菜谱文本向量并计算食品分类,卡路里值,食材文本向量和菜谱文本向量与对应的真实值之间的损失函数,使所述损失降到最低停止训练得到训练后的多任务卷积神经网络模型;
其中,多任务卷积神经网络模型训练过程中,保存每次迭代的损失值,最终所有迭代的平均损失值的倒数被作为各个任务损失函数的权重;
步骤4.5、对所述训练后的多任务卷积神经网络模型在测试数据集上测试其预测准确率。
优选的是,在所述步骤4.2中,将VGG16模型作为搭建所述多任务卷积神经网络模型的基础网络模型。
优选的是,在所述步骤4.3中,所述卡路里预测损失函数Lcal
Lcal=λreLreabLab
式中,Lab为绝对误差,Lre为相对误差,λre,λab为卡路里预测损失函数的权重值;
所述食品分类的损失函数Lcat
Figure BDA0002825095470000051
式中,ycat(k)为食品图像x的单元k的预测值,gcat(k)是一个二进制值;当单元i是正确值时,设置gcat(k)=1;当单元i不是正确值时,设置gcat(k)=0,n是食品种类数;
所述食材预测的损失函数Ling
Figure BDA0002825095470000052
式中,ying(k)为模型的第k维预测值,ging(k)为第k维实际值;
所述菜谱向量的损失函数Ling
Figure BDA0002825095470000053
式中,ydir(k)为模型的第k维预测值,gdir(k)为第k维输出值。
优选的是,通过Word2vec模型分别将食材样本转换成对应的食材向量v_ingj
Figure BDA0002825095470000054
式中,K是食材的数量,word2vec(wk)是通过Word2Vec得到的对应wk的实数向量,tfidfk,j是样本rj中wk的tf-idf值;
通过Word2vec模型分别将菜谱样本转换成对应的菜谱向量v_dirj
Figure BDA0002825095470000055
式中,T是该样本中菜谱单词数,word2vec(vt)是通过Word2Vec得到的对应vt的实数向量,tfidfk,j是样本rj中vt的tf-idf值。
本发明与现有技术相比较所具有的有益效果:
1、本发明基于深度学习方法,设计了生成式菜谱预测模型,解决了传统检索式菜谱预测模型对菜名-菜谱对照数据集的依赖,即在食品图像对应菜名在数据库中不存在时,训练好的模型也能够根据图像信息生成合理的菜谱文本;
2、本发明基于多任务卷积神经网络,实现了根据食品图像对卡路里值的直接预测,无需先计算图像中食品体积,有效提高卡路里预测的准确率;无需特殊的拍摄设备,降低模型复杂度和用户的使用门槛;
3、本发明基于深度学习方法,实现了根据食品图像直接生成对应的菜谱文本,用户无需输入其他辅助信息,降低了用户操作复杂度;鉴于同一菜品在不同地区所用食材和烹饪方法可能不同,相比于检索式菜谱预测模型,本模型可以根据食品图像学习这些差异性,菜谱生成准确率更高。
附图说明
图1为本发明所述的菜谱生成模型示意图。
图2为本发明所述的卡路里预测模型示意图。
图3为本发明所述的***总体实现流程图。
图4为本发明所述的***整体框架图。
图5为本发明所述的多任务卷积神经网络示意图。
图6为本发明所述的多模态注意力模型示意图。
图7为本发明所述的食材编码器示意图。
图8为本发明所述的菜谱解码器示意图。
图9为本发明所述的单任务卷积神经网络的卡路里预测模型示意图。
图10为本发明所述的多任务卷积神经网络的卡路里预测模型示意图。
具体实施方式
下面结合附图对本发明做进一步的详细说明,以令本领域技术人员参照说明书文字能够据以实施。
本发明提供一种基于多任务学习和注意力机制的食品反演***,包括如下步骤:
步骤一、采集食品数据,构建菜谱数据集;
其中,作为一种优选,在本实施中,使用网络爬虫技术从商业菜谱网站爬取共227310个包含食品图像,食品类别,所含食材,对应菜谱和卡路里标注的数据;选取的三个食谱网站分别为:
(1)http://allrecipes.com/;
(2)http://www.lettuceclub.net/recipe/;
(3)http://www.orangepage.net/;
在步骤一中,通过如下方式排除交叉领域噪音数据和交叉类别噪音数:
1、去除小于80KB的图像对应样本;
2、去除菜谱做法步骤多于8条或少于3条的样本;
3、去除对应样本数少于100的食品类别,并去除对应样本;
本发明对所有样本的菜名和食材名进行标准化:由于本发明的主要目标是细粒度的食品分类任务以及食材识别任务,对食品类别和食材名称进行删除或合并;例如,本发明保留了数据集中不同类型的面食和蛋糕名称作为一个独立的类别,但从数据集中删除了“意大利面”和“蛋糕”这些更加宽泛的名称;因此,食材的命名并不始终保持一致;例如,将食材“番茄”替换为“西红柿”;
作为一种优选,在本实施中,将食材名称统一如表1所示;
表1食材名称统一表
Figure BDA0002825095470000071
Figure BDA0002825095470000081
作为一种优选,在本发明中,数据集共包含227310个样本,其中包含281个细粒度食品类别,1520种食材,28552个菜谱单词,卡路里值的单位是千卡(kcal)每份;
本研究将图像调整尺寸为256×256,输入模型时将图像随机裁剪为224×224用于训练;
步骤二、建立并训练基于注意力机制的编码器-解码器模型,得到食品图片对应得食材文本;
在食材识别中,采用基于注意力机制的编码器-解码器模型,包括图像编码器和食材解码器:
图像编码器用于将食品图像编码为特征向量;在本实施中,作为一种优选,选择50层的残差网络,网络生成图像编码维度为512;
食材解码器基于Windows 10***上的Tensorflow 2.0.0框架,使用Python3.5.6编程语言,构建了由Transformer模块组成的编码器-解码器模型,将图像编码器生成的图像特征向量解码生成食材文本。
本发明采用Transformer结构,将食品图像x(i)作为输入,目标是通过模型生成食材的序列L=(l0,…,lk,…,lK),其中,lk代表序列中的一种食材。
食材解码器由4个Transformer模块和softmax非线性层组成组成,每个模块包含2个注意力(attention)层和一个线性层;第一个注意力层用于对上一个时间步的输出的做self-attention计算,而第二个注意力层用于调整self-attention的输出;
本发明采用列表结构来表示一张食品图像对应的食材文本,该列表长度可变,列表元素之间存在某种顺序关系。
近一步,定义包含N个食材元素的字典为
Figure BDA0002825095470000091
通过从字典D种选择K个元素,可以生成食材列表
Figure BDA0002825095470000092
将L编码为K×N维的二进制矩阵L,当dj∈D被选中时,Li,j=1,否则Li,j=0;因此,编码器-解码器模型的训练数据包含M张食品图像和食材列表对
Figure BDA0002825095470000093
模型的优化目标为:
Figure BDA0002825095470000094
其中,
Figure BDA0002825095470000095
为根据图像x预测的目标矩阵,θI和θL分别是图像编码器和食材解码器的可学习参数。由于L指代列表,可以将
Figure BDA0002825095470000096
因式分解为K个条件句:
Figure BDA0002825095470000097
并指定
Figure BDA0002825095470000098
为食材分类的概率分布;
共同训练图像编码器和食材解码器,概率分布和网络模型通过Adam优化器进行训练调参;作为一种优选,在本实施例中,使用早停法,设置早停监控指标为验证损失,若50轮内验证损失不下降则训练停止;
食材解码器由4个Transformer模块和softmax非线性层组成组成,每个模块包含2个注意力(attention)层和一个线性层;第一个注意力层用于对上一个时间步的输出的做self-attention计算,而第二个注意力层用于调整self-attention的输出;
在本实施例中,本发明使用自己构建的食品数据集训练食材识别模型;训练过程中,本发明采用了数据增强:对输入样本图像进行随机裁剪(crop)和指定缩放(rescale);本发明选用Adam优化器(β1=0.9,β2=0.99,∈=1e-8),设置学习率0.001,其中,预训练残差网络层学习率为0.0001;本次训练最大训练轮次为200轮,使用早停法,设置patience为50,如果50轮训练后验证数据的iou标准没有改善,则执行早停;本模型训练的batch_size设置为128,num_workers设置4;
步骤三、建立并训练菜谱生成模型,进而得到待测食品图像对应的菜谱文本;
基于Windows 10***上的Tensorflow 2.0.0框架,使用Python 3.5.6编程语言,将食品图像和食材列表同时作为模型输入,用于生成菜谱文本。
菜谱解码器将食品图像编码eI和食材编码eL作为输入,目标是通过模型生成菜谱序列R=(r1,…,rt,…,rT),其中,rt指序列中的一个词;
通过步骤二的50层残差网络编码器即可得到512维食品图像向量eI;步骤二中,食材解码器生成食材的序列L=(l0,…,lk,…,lK),再通过一个嵌入层即可将食材文本映射为512维向量eL
菜谱解码器由16个Transformer模块和softmax非线性层组成组成,每个模块包含2个注意力(attention)层和一个线性层。第一个注意力层用于对上一个时间步的输出的做self-attention计算,而第二个注意力层用于调整self-attention的输出;
本模型包含两个输入:图像特征向量
Figure BDA0002825095470000102
和食材编码
Figure BDA0002825095470000101
其中K是食材的数量,de是向量的维度;本发明采用的策略是组合两个注意力层来处理两种模态输入的问题,其中一层接受图像编码eI,另一层则接受食材编码eL,两个注意力层的输出通过求和方法进行合并。
在本实施例中,本发明使用自己构建的食品数据集训练编码器-解码器模型;训练过程中,本发明采用了数据增强:对输入样本图像进行随机裁剪(crop)和指定缩放(rescale);本研究选用Adam优化器(β1=0.9,β2=0.99,∈=1e-8),设置初始学习率0.001,每十个轮次衰减一次,衰减因子为0.99;本次训练最大训练轮次为200轮,使用早停法,设置patience为50,如果50轮训练后验证数据的iou标准没有改善,则执行早停;本模型训练的batch_size设置为128,num_workers设置4;
步骤四、建立并训练多任务卷积神经网络模型,进而得到待测食品图像对应的食品类别和卡路里值;
在本发明中食品卡路里估算设计为回归问题,即输入食品图像,模型输出对应卡路里值;
本发明假定给定的食品图像中仅包含一项食品,且输出食品的卡路里的预测标准时一人份,关于食品食材预测任务,本发明将食材信息由Word2Vec转换为词向量,并将其用于训练多任务卷积神经网络模型;另外,在菜谱预测任务中,做法步骤的句子文本也被转换成向量用于模型训练。
本发明设计的多任务卷积神经网络架构主要基于VGG16,同时训练食品卡路里预测,食品分类,食材预测和菜谱预测任务;网络的全连接层(fc6)由所有任务共享,过渡层(fc7)分支到每个任务,因此每个任务分别具有过渡层(fc7)和输出层(fc8);
设置Lc,Lcat,Ling,Ldir分别为卡路里预测,食品分类,食材预测和菜谱预测四个任务的损失函数,设置Nmul为学习数据的总数;整个模型的损失函数表示为:
Figure BDA0002825095470000111
设置Lab为绝对损失,Lre为相对损失,则Lcal定义为:
Lcal=λreLreabLab
其中,λre,λab,λcat,λing和λdir分别代表四个任务的损失函数的权重值;模型初次训练时,各权重值被初始化为1,模型训练过程中,保存每次迭代的损失值,最终所有迭代的平均损失值的倒数被作为各个任务损失函数的权重;
食品分类模型在vgg16模型的fc6全连接层后连接4096维的fc7b层以及一个fc8b,fc8b层的每一个单元对应一个食品类别。
设置ycat(k)为食品图像x的单元k的预测值,设置gcat(k)为真实值,则Lcat定义为:
Figure BDA0002825095470000121
其中,gcat(k)是一个二进制值;当单元i是正确值时,设置gcat(k)=1;当单元i不是正确值时,设置gcat(k)=0,n是食品种类数;在本实施例中,作为一种优选,例如,当食品分类任务包含20种食品时,设置n=20。
食品卡路里预测任务对应模型包含一个4096维的fc7a层和一个一维的fc8a输出层用于输出预测的卡路里值,由于食品卡路里是一个实数值,因此该任务被处理为一个回归问题,通常在回归问题中,选择MSE(mean square error)作为损失函数,而本发明定义卡路里预测任务的损失函数为:
Lcal=λreLreabLab
其中,Lab为绝对误差,Lre为相对误差,λre,λab为损失函数的权重值;绝对误差是指卡路里预测值和实际值之差的绝对值;相对误差是指绝对误差与实际值之比;由于绝对误差和相对误差都是重要的指标,本发明将Lab和Lre结合得到Lcal,模型在训练过程要使两种误差同时减小,设置ycal为图像x的卡路里预测值,设置gcal为实际卡路里值,则Lab和Lre定义为:
Lab=|ycal-gcal|;
Figure BDA0002825095470000122
为解决食材预测任务,本研究使用Word2Vec将样本对应食材的每个单词转换为向量,由于每个食谱包含多种食材,本发明将获得的所有食材向量计算加权求和值,代表该样本的食材信息,即食品包含的所有食材的Word2Vec向量的线性组合,使用经过计算的向量作为食物食材信息的表示;在使用食材向量作为训练数据的情况下,想要通过食品图片识别出食品包含的每一个独立的食材是很困难的,由于本发明的目标并非通过食品图像识别所包含的食材,而是食品所含卡路里,本发明期望通过多任务卷积神经网络模型来提高食品分类和食品卡路里预测的准确性,获得同步多任务学习的效果,因此采用该方法训练食材预测模型。
本发明使用大型食品语料库预先训练的Word2vec模型,用于食品数据预处理,例如去除低频频率词和对高频词的二次采样;在本实施例中,本发明使用Skip-gram模型并执行负采样来训练Word2Vec;
对于每个样本,只取tf-idf值中排行前Nmax的食材单词,Nmax为样本平均食材单词数;最终,根据tf-idf值和Word2Vec向量可以计算一个样本的食材向量。设置wk为样本rj中的食材单词,样本rj对应的食材向量v_ingj定义为:
Figure BDA0002825095470000131
其中,K是食材的数量,word2vec(wk)是通过Word2Vec得到的对应wk的实数向量,tfidfk,j是样本rj中wk的tf-idf值;
本发明中,对食材信息的学习过程被转化为一个食材向量预测任务;该任务的模型包含一个4096维的fc7c层和一个维度与食材向量维度dI相同的输出层(fc8c)。设置ying(k)为模型的第k维预测值,ging(k)为第k维实际值,则Ling定义为:
Figure BDA0002825095470000132
除了食材预测外,本研究还使用菜谱(做法步骤)预测作为多任务学***均单词数。最终,根据tf-idf权重值和Word2Vec向量计算得到每个样本的菜谱向量。设置vt为样本rj中菜谱文本的单词,样本rj对应的菜谱向量v_dirj定义为:
Figure BDA0002825095470000133
其中,T是该样本中菜谱单词数,word2vec(vt)是通过Word2Vec得到的对应vt的实数向量,tfidfk,j是样本rj中vt的tf-idf值。
本模型针对菜谱信息的训练是通过菜谱向量预测任务实现的,此菜谱向量预测任务模型由4096维的fc7d层和一个输出层(fc8d)组成,其中输出层的维度对应菜谱向量的维度。设置ydir(k)为模型的第k维预测值,gdir(k)为第k维输出值,则Ldir定义为:
Figure BDA0002825095470000141
本研究扩展了VGG-16模型并实现了多任务卷积神经网络,在fc6层和fc7层,使用批量标准化代替dropout;在批量归一化以外的其他层和fc8层,其初始参数设置为ImageNet在1000类分类任务中预训练的vgg16模型参数。为了优化CNN参数,本研究使用了SGD值为0.9,小批量的大小为8。
对于测试,在100次迭代中,本发明使用训练中最后1000次迭代的时间间隔获得了10个模型,并将每个模型预测值的平均值作为最终预测值。
本发明将食品数据集的70%数据用于训练,其余30%用于验证和测试;设置0.001的学***均值为44,本研究只使用每个样本菜谱语句中tf-idf值排在前44的单词;然后,为了简单地考虑时间信息,菜谱文本被按时间顺序分为m个句子,创建m个菜谱向量,最后再将分割的向量连接起来。
实施例
本***通过一张食品图像直接预测其卡路里值,无需用户手动输入其他信息,对图像拍摄角度等无要求,无需使用深度相机等特殊设备,用户操作更简便。
如图9、图10所示,模型采用多任务卷积神经网络,在训练时同时学习卡路里预测,食品分类,食材预测和菜谱预测四个任务,有效提高食品分类和卡路里预测的准确率;实验结果表明,本发明所提模型(相关系数=0.7679)与单任务卷积神经网络的卡路里预测模型(相关系数=0.7217)相比,相关系数提高了0.0462。
本发明构建食品数据集,其中包含281个细粒度食品类别和1520种食材,从一定程度上能够缓解食品和食材种类受限的问题。
本模型将食品图像和食材文本同时作为输入,有效提高菜谱预测准确率;如表2所示,实验结果表明,本模型与食材单输入的菜谱预测模型相比,测试集困惑度(Perplexity)下降了约0.18;本模型与食品图像单输入的菜谱预测模型相比,测试集困惑度下降了约1.40。
表2测试集团困惑度实验结果
模型 困惑度
食材单输入模型 8.81
图像单输入模型 9.53
生成式模型 8.65
与传统查询式菜谱生成***中,预测准确度对数据集的过度依赖不同,本研究将菜谱生成任务设计为一个文本生成问题。
如表3所示,实验结果表明,与传统查询式菜谱预测模型相比,本模型处理食材识别任务的交并比(Intersection-over-Union,IoU)提高了10以上,F1分数提高了15以上。
表3处理食材识别任务的交并比和F1的实验结果
IoU F1
图像-菜谱查询式模型 18.01 29.67
图像-食材查询式模型 17.58 27.93
生成式模型 30.59 45.12
如表4所示,与传统查询式菜谱预测模型相比,本模型处理菜谱生成任务,基于食材信息的精确率(precision)和召回率(recall)显著提高。
表4食材信息的精确率和召回率的实验结果
召回率 精确率
图像-菜谱查询式模型 29.83 27.62
图像-食材查询式模型 28.75 29.16
生成式模型 70.30 73.94
尽管本发明的实施方案已公开如上,但其并不仅仅限于说明书和实施方式中所列运用,它完全可以被适用于各种适合本发明的领域,对于熟悉本领域的人员而言,可容易地实现另外的修改,因此在不背离权利要求及等同范围所限定的一般概念下,本发明并不限于特定的细节和这里示出与描述的图例。

Claims (10)

1.一种基于多任务学习和注意力机制的食品反演方法,其特征在于,包括如下步骤:
步骤1、采集食品数据,构建菜谱数据集;
步骤2、建立并训练基于注意力机制的食材文本模型,通过输入食品图片得到对应的食材文本;
步骤3、建立并训练菜谱生成模型,通过输入食品图片和食材文本进而得到所述食品图片对应的菜谱文本;
步骤4、将所述食材文本和所述菜谱文本分别转化为对应的食材向量和菜谱向量,建立并训练多任务卷积神经网络模型;
在所述多任务卷积神经网络模型中通过输入待测食品图片进而得到所述待测食品图片对应的食品分类、卡路里值、食材向量和菜谱向量。
2.如权利要求1所述的基于多任务学习和注意力机制的食品反演方法,其特征在于,在所述步骤2中,通过Transformer模型建立食材文本模型过程包括:
将食品图片特征向量作为输入,输出为生成食材的序列L=(l0,…,lk,…,lK),式中,lk代表序列中的一种食材。
3.如权利要求2所述的基于多任务学习和注意力机制的食品反演方法,其特征在于,在所述步骤2中,通过列表结构表示所述食品图片对应的生成食材,包括:
确定包含N个食材元素的字典为
Figure FDA0002825095460000011
从字典D种选择K个元素,生成食材列表
Figure FDA0002825095460000012
将L编码为K×N维的二进制矩阵L,当dj∈D被选中时,Li,j=1,否则Li,j=0;
所述食材文本模型的训练数据包含M张食品图像和食材列表对
Figure FDA0002825095460000013
所述食材文本模型的优化目标为
Figure FDA0002825095460000014
式中,
Figure FDA0002825095460000015
为根据图像x预测的目标矩阵,θI和θL分别是图像编码器和食材解码器的可学习参数;
Figure FDA0002825095460000021
分解为K个条件句:
Figure FDA0002825095460000022
并指定
Figure FDA0002825095460000023
为食材分类的概率分布。
4.如权利要求3所述的基于多任务学习和注意力机制的食品反演方法,其特征在于,在所述步骤2中,通过Transformer模型建立食材文本模型通过Adam优化器进行数据优化:设置β1=0.9,β2=0.99,∈=1e-8,设置学习率0.001,其中,预训练残差网络层学习率为0.0001;训练最大训练轮次为200轮,使用早停法,设置patience为50,如果50轮训练后验证数据的iou标准没有改善,则执行早停;其中,batch_size设置为128,num_workers设置为4。
5.如权利要求1所述的基于多任务学习和注意力机制的食品反演方法,其特征在于,在所述步骤3中,通过Transformer模型建立菜谱文本模型过程包括:
将食品图片特征向量和食材文本特征向量作为输入,输出为生成菜谱的序列R=(r1,…,rt,…,rT),式中,rt为序列中的一种词。
6.如权利要求3所述的基于多任务学习和注意力机制的食品反演方法,其特征在于,在所述步骤2中,通过Transformer模型建立菜谱文本模型通过Adam优化器进行数据优化:β1=0.9,β2=0.99,∈=1e-8,设置初始学习率0.001,每十个轮次衰减一次,衰减因子为0.99;本次训练最大训练轮次为200轮,使用早停法,设置patience为50,如果50轮训练后验证数据的iou标准没有改善,则执行早停;其中,batch_size设置为128,num_workers设置为4。
7.如权利要求1所述的基于多任务学习和注意力机制的食品反演方法,其特征在于,在所述步骤4中,建立并训练多任务卷积神经网络模型包括如下步骤:
步骤4.1、采集样本数据并构建训练样本集和验证测试样本集;
步骤4.2、搭建多任务卷积神经网络模型,
步骤4.3、获取训练多任务卷积神经网络模型的损失函数:
Figure FDA0002825095460000024
式中,Lcal,Lcat,Ling,Ldir分别为卡路里预测,食品分类,食材预测和菜谱预测四个任务的损失函数,λcat,λing和λdir分别为食品分类、食材预测和菜谱预测的损失函数的权重值,N为学习数据的总数;
步骤4.4、对多任务卷积神经网络模型进行训练:
设定初次训练时,各权重值初始化为1;
将所述训练样本集中的图片特征向量输入到所述多任务卷积神经网络模型中,得到多任务卷积神经网络模型的输出为食品分类,卡路里值,食材文本向量和菜谱文本向量并计算食品分类,卡路里值,食材文本向量和菜谱文本向量与对应的真实值之间的损失函数,使所述损失降到最低停止训练得到训练后的多任务卷积神经网络模型;
其中,多任务卷积神经网络模型训练过程中,保存每次迭代的损失值,最终所有迭代的平均损失值的倒数被作为各个任务损失函数的权重;
步骤4.5、对所述训练后的多任务卷积神经网络模型在测试数据集上测试其预测准确率。
8.如权利要求7所述的基于多任务学习和注意力机制的食品反演方法,其特征在于,在所述步骤4.2中,将VGG16模型作为搭建所述多任务卷积神经网络模型的基础网络模型。
9.如权利要求7所述的基于多任务学习和注意力机制的食品反演方法,其特征在于,在所述步骤4.3中,所述卡路里预测损失函数Lcal
Lcal=λreLreabLab
式中,Lab为绝对误差,Lre为相对误差,λre,λab为卡路里预测损失函数的权重值;
所述食品分类的损失函数Lcat
Figure FDA0002825095460000031
式中,ycat(k)为食品图像x的单元k的预测值,gcat(k)是一个二进制值;当单元i是正确值时,设置gcat(k)=1;当单元i不是正确值时,设置gcat(k)=0,n是食品种类数;
所述食材预测的损失函数Ling
Figure FDA0002825095460000032
式中,ying(k)为模型的第k维预测值,ging(k)为第k维实际值;
所述菜谱向量的损失函数Ling
Figure FDA0002825095460000041
式中,ydir(k)为模型的第k维预测值,gdir(k)为第k维输出值。
10.如权利要求7所述的基于多任务学习和注意力机制的食品反演方法,其特征在于,通过Word2vec模型分别将食材样本转换成对应的食材向量v_ingj
Figure FDA0002825095460000042
式中,K是食材的数量,word2vec(wk)是通过Word2Vec得到的对应wk的实数向量,tfidfk,j是样本rj中wk的tf-idf值;
通过Word2vec模型分别将菜谱样本转换成对应的菜谱向量v_dirj
Figure FDA0002825095460000043
式中,T是该样本中菜谱单词数,word2vec(vt)是通过Word2Vec得到的对应vt的实数向量,tfidfk,j是样本rj中vt的tf-idf值。
CN202011426511.1A 2020-12-09 2020-12-09 一种基于多任务学习和注意力机制的食品反演方法 Active CN112488301B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011426511.1A CN112488301B (zh) 2020-12-09 2020-12-09 一种基于多任务学习和注意力机制的食品反演方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011426511.1A CN112488301B (zh) 2020-12-09 2020-12-09 一种基于多任务学习和注意力机制的食品反演方法

Publications (2)

Publication Number Publication Date
CN112488301A true CN112488301A (zh) 2021-03-12
CN112488301B CN112488301B (zh) 2024-04-16

Family

ID=74940621

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011426511.1A Active CN112488301B (zh) 2020-12-09 2020-12-09 一种基于多任务学习和注意力机制的食品反演方法

Country Status (1)

Country Link
CN (1) CN112488301B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113791882A (zh) * 2021-08-25 2021-12-14 北京百度网讯科技有限公司 多任务的部署方法、装置、电子设备及存储介质
CN114898360A (zh) * 2022-03-31 2022-08-12 中南林业科技大学 基于注意力与深度特征融合的食材图像分类模型建立方法
CN115422703A (zh) * 2022-07-19 2022-12-02 南京航空航天大学 一种基于MODIS数据和Transformer网络的地表热红外发射率反演方法
CN117933250A (zh) * 2024-03-22 2024-04-26 南京泛美利机器人科技有限公司 一种基于改进生成对抗网络的新菜谱生成方法

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150169972A1 (en) * 2013-12-12 2015-06-18 Aliphcom Character data generation based on transformed imaged data to identify nutrition-related data or other types of data
US20170277863A1 (en) * 2016-03-24 2017-09-28 Anand Subra Real-time or just-in-time online assistance for individuals to help them in achieving personalized health goals
US20170301001A1 (en) * 2016-04-15 2017-10-19 Wal-Mart Stores, Inc. Systems and methods for providing content-based product recommendations
CN107563439A (zh) * 2017-08-31 2018-01-09 湖南麓川信息科技有限公司 一种识别清洗食材图片的模型及识别食材类别的方法
US20180232689A1 (en) * 2017-02-13 2018-08-16 Iceberg Luxembourg S.A.R.L. Computer Vision Based Food System And Method
CN110059654A (zh) * 2019-04-25 2019-07-26 台州智必安科技有限责任公司 一种基于细粒度识别的菜品自动结算及饮食健康管理方法
AU2019100969A4 (en) * 2019-08-29 2019-10-03 Hongming Dai Chinese Food Recognition and Search System
CN110659420A (zh) * 2019-09-25 2020-01-07 广州西思数字科技有限公司 一种基于深度神经网络蒙特卡洛搜索树的个性化配餐方法
CN111276242A (zh) * 2020-01-20 2020-06-12 吉林大学 一种针对医院重症监护室患者疾病诊断与病情状态评估建模方法
CN111429234A (zh) * 2020-04-16 2020-07-17 电子科技大学中山学院 一种基于深度学习的商品序列推荐方法
CN111651674A (zh) * 2020-06-03 2020-09-11 北京妙医佳健康科技集团有限公司 双向搜索方法、装置及电子设备

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150169972A1 (en) * 2013-12-12 2015-06-18 Aliphcom Character data generation based on transformed imaged data to identify nutrition-related data or other types of data
US20170277863A1 (en) * 2016-03-24 2017-09-28 Anand Subra Real-time or just-in-time online assistance for individuals to help them in achieving personalized health goals
US20170301001A1 (en) * 2016-04-15 2017-10-19 Wal-Mart Stores, Inc. Systems and methods for providing content-based product recommendations
US20180232689A1 (en) * 2017-02-13 2018-08-16 Iceberg Luxembourg S.A.R.L. Computer Vision Based Food System And Method
CN107563439A (zh) * 2017-08-31 2018-01-09 湖南麓川信息科技有限公司 一种识别清洗食材图片的模型及识别食材类别的方法
CN110059654A (zh) * 2019-04-25 2019-07-26 台州智必安科技有限责任公司 一种基于细粒度识别的菜品自动结算及饮食健康管理方法
AU2019100969A4 (en) * 2019-08-29 2019-10-03 Hongming Dai Chinese Food Recognition and Search System
CN110659420A (zh) * 2019-09-25 2020-01-07 广州西思数字科技有限公司 一种基于深度神经网络蒙特卡洛搜索树的个性化配餐方法
CN111276242A (zh) * 2020-01-20 2020-06-12 吉林大学 一种针对医院重症监护室患者疾病诊断与病情状态评估建模方法
CN111429234A (zh) * 2020-04-16 2020-07-17 电子科技大学中山学院 一种基于深度学习的商品序列推荐方法
CN111651674A (zh) * 2020-06-03 2020-09-11 北京妙医佳健康科技集团有限公司 双向搜索方法、装置及电子设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
WEIQING MIN 等: "Ingredient-guided cascade multi-attention network for food recognition", 《MM\'19: PROCEEDINGS OF THE 27TH ACM INTERNATIONAL CONFERENCE ON MULTIMEDIA》, 15 October 2019 (2019-10-15), pages 1331 - 1339 *
蔡芷薇: "基于多任务学习与注意力机制的食品识别模型研究", 《中国优秀硕士学位论文全文数据库 工程科技Ⅰ辑》, vol. 2022, no. 01, 15 January 2022 (2022-01-15), pages 024 - 303 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113791882A (zh) * 2021-08-25 2021-12-14 北京百度网讯科技有限公司 多任务的部署方法、装置、电子设备及存储介质
CN113791882B (zh) * 2021-08-25 2023-10-20 北京百度网讯科技有限公司 多任务的部署方法、装置、电子设备及存储介质
CN114898360A (zh) * 2022-03-31 2022-08-12 中南林业科技大学 基于注意力与深度特征融合的食材图像分类模型建立方法
CN114898360B (zh) * 2022-03-31 2024-04-26 中南林业科技大学 基于注意力与深度特征融合的食材图像分类模型建立方法
CN115422703A (zh) * 2022-07-19 2022-12-02 南京航空航天大学 一种基于MODIS数据和Transformer网络的地表热红外发射率反演方法
CN115422703B (zh) * 2022-07-19 2023-09-19 南京航空航天大学 一种基于MODIS数据和Transformer网络的地表热红外发射率反演方法
CN117933250A (zh) * 2024-03-22 2024-04-26 南京泛美利机器人科技有限公司 一种基于改进生成对抗网络的新菜谱生成方法

Also Published As

Publication number Publication date
CN112488301B (zh) 2024-04-16

Similar Documents

Publication Publication Date Title
CN110059198B (zh) 一种基于相似性保持的跨模态数据的离散哈希检索方法
CN107516110B (zh) 一种基于集成卷积编码的医疗问答语义聚类方法
CN112131350B (zh) 文本标签确定方法、装置、终端及可读存储介质
CN109614471B (zh) 一种基于生成式对抗网络的开放式问题自动生成方法
CN112488301B (zh) 一种基于多任务学习和注意力机制的食品反演方法
CN112232087B (zh) 一种基于Transformer的多粒度注意力模型的特定方面情感分析方法
CN113435203B (zh) 多模态命名实体识别方法、装置以及电子设备
CN112667818B (zh) 融合gcn与多粒度注意力的用户评论情感分析方法及***
CN111291188B (zh) 一种智能信息抽取方法及***
CN111753189A (zh) 一种少样本跨模态哈希检索共同表征学习方法
CN111737578A (zh) 一种推荐方法及***
CN112148831B (zh) 图文混合检索方法、装置、存储介质、计算机设备
CN114743020A (zh) 一种结合标签语义嵌入和注意力融合的食物识别方法
US11915343B2 (en) Color representations for textual phrases
CN111753116A (zh) 图像检索方法、装置、设备及可读存储介质
Estevez-Velarde et al. AutoML strategy based on grammatical evolution: A case study about knowledge discovery from text
CN115482418B (zh) 基于伪负标签的半监督模型训练方法、***及应用
CN111581364B (zh) 一种面向医疗领域的中文智能问答短文本相似度计算方法
Wei et al. Semantic pixel labelling in remote sensing images using a deep convolutional encoder-decoder model
CN111651594B (zh) 基于键值记忆网络的案件案由分类方法及介质
CN108804544A (zh) 互联网影视多源数据融合方法和装置
CN115408551A (zh) 一种医疗图文数据互检方法、装置、设备及可读存储介质
Guo et al. Matching visual features to hierarchical semantic topics for image paragraph captioning
CN114356990A (zh) 基于迁移学习的基地命名实体识别***及方法
Lauren et al. A low-dimensional vector representation for words using an extreme learning machine

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