一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于多特征融合的食物识别系统及方法与流程

2022-11-09 22:00:26 来源:中国专利 TAG:


1.本发明涉及图像识别及图形数据处理技术领域,特别涉及一种基于多特征融合的食物识别系统及方法。


背景技术:

2.作为食品计算的核心任务之一,食品图像识别同时是计算机视觉领域中细粒度视觉识别的重要分支,因而具有重要的理论研究意义,并在智慧健康、食品智能装备、智慧餐饮、智能零售及智能家居等方面有着广泛的应用前景。
3.目前的食物识别一般包括两种方案,第一种是基于resnet,vggnet等特征提取网络提取特征,普遍存在部分类别分类准确率低的问题;第二种是基于无监督的图像搜索算法,如moco、byol、swav等。
4.例如公开号为cn114550018a的中国专利申请,提出一种基于深度学习食物图像识别模型的营养管理方法及系统,基于深度学习食物图像识别模型,计算不同种类食物子图像中所含营养的量,将所有食物中的营养素进行累加,得到给用户各种营养素总摄入量;将用户上传的食物摄入信息通过服务器和其他数据集关联。
5.一般来说,无监督的算法效果低于有监督学习的算法效果。上述方法均未从实际应用场景出发,且由于食物识别场景中存在背景噪声较大,拍摄角度不一等问题,上述方案的识别精度较差,应对复杂场景的鲁棒性不高。


技术实现要素:

6.鉴于现有技术中的上述缺陷或不足,本发明提供了一种基于多特征融合的食物识别系统及方法,其基于注意力机制,加入sift特征,并且融合了基于深度可分离卷积的cnn特征,可以有效提升食物识别的精度,且在复杂场景下有较高的鲁棒性。
7.本发明的第一方面,提供了一种基于多特征融合的食物识别方法,包括:接收输入的原始食物图像,分别提取该原始食物图像的全局特征、sift特征和卷积特征;将原始食物图像的全局特征、sift特征和卷积特征融合相加,并将结果输出至第一全连接层;利用归一化指数函数对第一全连接层的输出进行归一化。
8.进一步的,提取原始食物图像的全局特征的步骤包括:将原始食物图像输入至全局特征提取模块,全局特征提取模块包括依次连接的图像补丁分割模块、第一网络模块、第二网络模块、第三网络模块、第四网络模块、第一平均池化模块和第二全连接层;图像补丁分割模块用于将原始食物图像分割为n
×
n的图像补丁;第一网络模块包括依次连接的1个linear embeddding模块和2个swin transformer模块;1个linear embeddding模块用于对输入的图像补丁进行线性编码;2个
swin transformer模块为依次相连的1个w-msa模块和1个sw-msa模块,用于对线性编码后的数据进行特征提取;第二网络模块包括依次连接的1个patch merging模块和2个swin transformer模块;1个patch merging模块用于对输入数据进行降采样处理;2个swin transformer模块为依次相连的1个w-msa模块和1个sw-msa模块;第三网络模块包括依次连接的1个patch merging模块和6个swin transformer模块;1个patch merging模块用于对输入数据进行降采样处理;6个swin transformer模块为依次相连的3组注意力模块,每组注意力模块包括依次连接的1个w-msa模块和1个sw-msa模块;第四网路模块包括依次连接的1个patch merging模块和2个swin transformer模块;1个patch merging模块用于对输入数据进行降采样处理;2个swin transformer模块为依次连接的1个w-msa模块和1个sw-msa模块。
9.进一步的,提取原始食物图像的sift特征的步骤包括:对于输入的原始食物图像在尺度空间中检测极值点,提取位置、尺度和旋转不变量特征,并将其抽象成特征向量,输出sift特征向量。
10.进一步的,提取原始食物图像的卷积特征的步骤包括:将原始食物图像输入至卷积神经网络特征提取模块;卷积神经网络特征提取模块包括依次连接的第一卷积模块、第一mobilenetv2卷积模块、第二mobilenetv2卷积模块、第二卷积模块、第二平均池化模块和第三全连接层;其中,第一卷积模块用于提取低维度的卷积特征,第一mobilenetv2卷积模块和第二mobilenetv2卷积模块通过增加图像的通道数提取更高维度的卷积特征;第二卷积模块用于特征降维。
11.进一步的,第一卷积模块包括依次连接的第一卷积层、第一批量归一化层和第一激活函数层;第一卷积层用于对输入数据进行特征提取,第一批量归一化层用于加快训练和收敛的速度,第一激活函数层用于完成数据的非线性变换。
12.进一步的,第一mobilenetv2卷积模块包括依次连接的第一卷积层、第一批量归一化层、第一激活函数层、第一深度可分离卷积层、第二批量归一化层、第二激活函数层、第二卷积层、第三批量归一化层和第三激活函数层;第一深度可分离卷积层用于轻量化卷积神经网络。
13.进一步的,第二mobilenetv2卷积模块包括依次连接的第一卷积层、第一批量归一化层、第一激活函数层、第一深度可分离卷积层、第二批量归一化层、第二激活函数层、第二卷积层、第三批量归一化层和第三激活函数层;第一深度可分离卷积层用于轻量化卷积神经网络。
14.进一步的,第二卷积模块包括依次连接的第一卷积层、第一批量归一化层和第一激活函数层;第一卷积层用于对输入数据进行特征提取,第一批量归一化层用于加快训练和收敛的速度,第一激活函数层用于完成数据的非线性变换。
15.进一步的,还包括模型训练步骤:制作训练集和测试集;
定义训练模型的超参数;将交叉熵损失作为损失函数;以最小化损失值为目标,利用训练集不断迭代训练模型的参数;当损失值的下降幅度在预定范围内时,停止训练,获得训练后的模型;加载训练后的模型,利用测试集进行评估。
16.本发明的第二方面,还提供了一种基于多特征融合的食物识别系统,包括:全局特征提取模块,用于接收输入的原始食物图像,并提取图像中的全局特征;sift特征提取模块,用于接收输入的原始食物图像,并提取图像中的sift特征;卷积神经网络特征提取模块,用于接收输入的原始食物图像,并提取图像中的卷积特征;特征融合模块,用于将全局特征、sift特征和卷积特征融合相加,并将结果输出至第一全连接层;第一全连接层,用于对融合相加后的特征进行分类;归一化模块,用于对第一全连接层的输出进行归一化处理。
17.本发明提供的一种基于多特征融合的食物识别系统及方法,可以有效提升食物识别的精度,且在复杂场景下有较高的鲁棒性。
附图说明
18.通过阅读参照以下附图所作的对非限制性实施例的详细描述,本发明的其它特征、目的和优点将会变得更明显:图1是本发明一个实施例提供的基于多特征融合的食物识别方法的程序流程图;图2是本发明一个实施例提供的基于多特征融合的食物识别方法的逻辑图;图3是本发明一个实施例提供的基于多特征融合的食物识别方法中的全局特征提取模块的结构示意图;图4是本发明一个实施例提供的基于多特征融合的食物识别方法中的卷积神经网络特征提取模块的结构示意图;图5是本发明一个实施例提供的基于多特征融合的食物识别方法中的卷积神经网络特征提取模块的第一卷积模块的结构示意图;图6是本发明一个实施例提供的基于多特征融合的食物识别方法中的卷积神经网络特征提取模块的第一mobilenetv2卷积模块的结构示意图;图7是本发明一个实施例提供的基于多特征融合的食物识别方法中的卷积神经网络特征提取模块的第二mobilenetv2卷积模块的结构示意图;图8是本发明一个实施例提供的基于多特征融合的食物识别方法中的卷积神经网络特征提取模块的第二卷积模块的结构示意图;图9是本发明一个实施例提供的基于多特征融合的食物识别系统的结构示意图;图10是本发明一个实施例提供的电子设备的结构示意图。
具体实施方式
19.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例
中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
20.在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”“所述”和“该”也旨在包括多数形式,除非上下文清楚的表示其他含义。
21.应当理解,尽管在本发明实施例中可能采用术语第一、第二、第三等来描述获取模块,但这些获取模块不应限于这些术语。这些术语仅用来将获取模块彼此区分开。
22.取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”或“响应于检测”。类似的,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
23.需要注意的是,本发明实施例所描述的“上”“下”“左”“右”等方位词是以附图所示的角度来进行描述的,不应理解为对本发明实施例的限定。此外在上下文中,还需要理解的是,当提到一个元件被形成在另一个元件“上”或“下”时,其不仅能够直接形成在另一个元件“上”或者“下”,也可以通过中间元件间接形成在另一元件“上”或者“下”。
24.本发明的一个实施例,提供了一种基于多特征融合的食物识别方法,该方法基于注意力机制,加入sift特征,并且融合了基于深度可分离卷积的cnn特征,可以有效提升食物识别的精度,且在复杂场景下有较高的鲁棒性。
25.参见图1、2,本实施例的方法包括如下步骤:步骤s101,接收输入的原始食物图像,分别提取该原始食物图像的全局特征、sift特征和卷积特征。
26.具体的,本实施例的方法需要将原始食物图像输入至全局特征提取模块、sift特征提取模块和卷积神经网络特征提取模块,以提取全局特征、sift特征(局部特征的一种)和卷积特征(局部特征的一种)。
27.(1)全局特征提取模块参见图3,本实施例的全局特征提取模块基于swin transformer,主要包括图像补丁分割模块(patch partition block)、4个网络模块、1个平均池化层和1个全连接层。
28.其中,图像补丁分割模块(patch partition block)将h
×w×
3大小的原始食物图像分割为4
×
4大小的补丁,每个补丁的大小为 h/4,w/4,c(h为高、w为宽、c为通道数),即每个补丁有4
×4×
3共48个维度特征,以作为后续输入。
29.每个网络模块由偶数个swin transfomer 模块组成,每个模块是w-msa(窗口自注意力机制)或者sw-msa(偏移窗口自注意力机制),上述两种模块交替出现。每经历完一个网络模块后,会进行下采样。
30.其中,第一网络模块包括依次连接的1个linear embeddding模块和2个swin transformer模块;linear embeddding模块用于对输入的图像补丁进行线性编码;2个swin transformer模块为依次相连的1个w-msa模块和1个sw-msa模块,用于对线性编码后的数据进行特征提取;第二网络模块包括依次连接的1个patch merging模块和2个swin transformer模
块;1个patch merging模块用于对输入数据进行降采样处理;2个swin transformer模块为依次相连的1个w-msa模块和1个sw-msa模块;第三网络模块包括依次连接的1个patch merging模块和6个swin transformer模块;1个patch merging模块用于对输入数据进行降采样处理;6个swin transformer模块为依次相连的3组注意力模块,每组注意力模块包括依次连接的1个w-msa模块和1个sw-msa模块;第四网路模块包括依次连接的1个patch merging模块和2个swin transformer模块;1个patch merging模块用于对输入数据进行降采样处理;2个swin transformer模块为依次连接的1个w-msa模块和1个sw-msa模块。
31.上述第一网络模块的输出特征图尺寸不变,依然为h/4,w/4,c。第二网络模块的输出特征图的宽高变为原来的1/2,通道数为原来的2倍,即h/8,w/8,2c。第三网络模块的输出特征图的宽高变为原来的1/2,通道数为原来的2倍,即h/16,w/16,4c。第四网络模块的输出特征图的宽高变为原来的1/2,通道数为原来的2倍,即h/32,w/32,8c。
32.综上,在第一网络模块之后,每经过一个网络模块,输出的特征图宽高变为原来的1/2,通道数为原来的2倍。经过4个网络模块后,得到h/32
×
w/32
×
8c的特征。将该特征输出接入全局平均池化层,得到8c个特征,再输入至全连接层,全连接层维度为128,表示128个全局特征。
33.(2)sift特征提取模块本实施例的sift特征提取模块是在不同的尺度空间上查找关键点(即特征点),并计算出关键点的方向。因此,本实施例的sift所查找到的关键点是一些十分突出且不会因光照、仿射变换和噪音等因素而变化的点,例如:角点、边缘点、暗区的亮点及亮区的暗点等。
34.本实施例sift特征提取模块对于输入的图像,在尺度空间中检测极值点,提取位置、制度、旋转不变量特征,并将其抽象成特征向量,输出为128维的sift特征向量。
35.(3)卷积神经网络特征提取模块参见图4-图8,卷积神经网络cnn是一种自学习的特征表达方法,相当于在训练一个个filter(过滤器、卷积核),比sift/hog这些依靠先验知识设计的特征的表达效果更高。
36.参见图4,本实施例的卷积神经网络cnn包括依次连接的第一卷积模块、第一mobilenetv2卷积模块、第二mobilenetv2卷积模块、第二卷积模块、平均池化模块和全连接层。其中,第一卷积模块用于提取低维度的卷积特征,第一mobilenetv2卷积模块和第二mobilenetv2卷积模块通过增加图像的通道数提取更高维度的卷积特征;第二卷积模块用于特征降维。
37.具体的,参见图5,第一卷积模块包括依次连接的卷积层、批量归一化层和激活函数层。其中,卷积层为3
×
3卷积,输出通道数为32,卷积步长为2。卷积层用于对输入数据进行特征提取。批量归一化层用于加快训练和收敛的速度,激活函数层用于完成数据的非线性变换。本实施例的输入图像为224
×
224
×
3大小,经过第一卷积模块后,输出图像为112
×
112
×
32大小。
38.参见图6,第一mobilenetv2卷积模块包括依次连接的第一卷积层、第一批量归一化层、第一激活函数层、第一深度可分离卷积层、第二批量归一化层、第二激活函数层、第二
卷积层、第三批量归一化层和第三激活函数层。其中,第一卷积层为1
×
1卷积,输出通道数为128,卷积步长为1,其接收第一卷积模块输出的112
×
112
×
32大小的图像。第一深度可分离卷积层为3
×
3的深度可分离卷积,输出通道数为128,卷积步长为2,其用于轻量化卷积神经网络。第二卷积层为1
×
1卷积,输出通道数为64,卷积步长为1。经过上述处理后,第一mobilenetv2卷积模块的输出图像大小为64
×
64
×
64。
39.参见图7,第二mobilenetv2卷积模块包括依次连接的第一卷积层、第一批量归一化层、第一激活函数层、第一深度可分离卷积层、第二批量归一化层、第二激活函数层、第二卷积层、第三批量归一化层和第三激活函数层。其中,第一卷积层为1
×
1卷积,输出通道数为256,卷积步长为1,其接收第一mobilenetv2卷积模块输出的64
×
64
×
64大小的图像。第一深度可分离卷积层为3
×
3的深度可分离卷积,输出通道数为256,卷积步长为2,其用于轻量化卷积神经网络。第二卷积层为1
×
1卷积,输出通道数为128,卷积步长为1。经过上述处理后,第二mobilenetv2卷积模块的输出图像大小为32
×
32
×
128。
40.参见图8,第二卷积模块包括依次连接的卷积层、批量归一化层和激活函数层;所述卷积层为3
×
3卷积,输出通道数为256,卷积步长为2,其用于对输入数据进行特征提取。批量归一化层用于加快训练和收敛的速度,激活函数层用于完成数据的非线性变换。第二卷积模块的输入图像为32
×
32
×
128大小,经过第二卷积模块后,输出图像为16
×
16
×
256大小。
41.步骤s102,将原始食物图像的全局特征、sift特征和卷积特征融合相加,并将结果输出至第一全连接层。
42.具体的,将全局特征提取模块、sift特征提取模块、卷积神经网络cnn特征提取模块等三个模块提取到的特征进行特征融合,具体为对应位进行相加,并增加全连接层,该全连接层长度为167,表示为167种食品。
43.步骤s103,利用归一化指数函数对所述第一全连接层的输出进行归一化。
44.具体的,通过归一化指数函数softmax进行归一化,以便于分类。
45.进一步的,本实施例还包括模型训练步骤,包括:步骤s104,通过网络爬虫采集食物图像数据集,进过人工清洗后分为训练集和测试集。
46.步骤s105,定义训练模型的超参数,使用adam优化器(即自适应矩估计优化器),权重损失定义为0.0001,初始学习率为0.001,每训练100个epoch衰减为原来的1/10。
47.步骤s106,使用交叉熵损失作为损失函数。
48.步骤s107,以最小化损失值为目标,不断迭代网络模型参数,当损失值下降不明显时,停止训练,获得训练后的模型。
49.步骤s108,加载训练后的模型,对测试集进行评估。
50.本发明以自定义食物识别数据集testset为例,使用分类准确率(accuracy)作为评测指标,其定义是:对于给定的测试数据集,分类器正确分类的样本数与总样本数之比。其数值越大,表示模型的效果越好,数值越低,表示模型的效果越差。
51.表1序号分类准确率算法188.37%基于resnet50实现的食物分类
276.3%基于byol实现的图像搜索,top1作为分类结果393.45%本发明提出的食物识别算法表1是同一测试集下不同算法训练得到的结果对比:序号1:基于resnet50 实现的食品分类。
52.序号2:使用无监督学习算法byol对数据集进行特征提取,对测试集中的所有图片进行特征检索,以top1的检索结果作为分类结果。
53.序号3:使用本发明提出的食物识别算法。
54.由表1比对结果看,在自定义食物识别数据集testset上,使用序号3中本发明提出的食物识别算法,比序号1中基于resnet50 实现的食品分类准确率高 93.45%-88.37% = 5.08%,比序号2中基于byol实现的图像搜索算法分类准确率高 93.45%-76.3% = 17.15%。
55.据此可知,本发明提出的基于多特征融合的食物识别算法,在相同条件下,可以达到更高的精度,实现更准确的食物识别。此外,在复杂场景下该算法也有较高的鲁棒性。
56.参见图9,本发明的另一实施例还提供了一种基于多特征融合的食物识别系统200,该系统200包括全局特征提取模块201、sift特征提取模块202、卷积神经网络特征提取模块203、特征融合模块204、第一全连接层205和归一化模块206。该系统200能够执行上述方法实施例中的各个步骤。
57.具体的,该系统200包括:全局特征提取模块201,用于接收输入的原始食物图像,并提取图像中的全局特征;sift特征提取模块202,用于接收输入的原始食物图像,并提取图像中的sift特征;卷积神经网络特征提取模块203,用于接收输入的原始食物图像,并提取图像中的卷积特征;特征融合模块204,用于将全局特征、sift特征和卷积特征融合相加,并将结果输出至第一全连接层;第一全连接层205,用于对融合相加后的特征进行分类;归一化模块206,用于对第一全连接层的输出进行归一化处理。
58.本实施例的基于多特征融合的食物识别系统200是与方法实施例诸步骤对应一致的功能模块构架,其与所述方法采用相同的技术手段来解决相同的技术问题,因此实现原理和技术效果与方法类似,本实施例不再赘述。
59.参见图10,本发明的另一实施例还供了一种电子设备的结构示意图。下面具体参考图10,其示出了适于用来实现本实施例中的电子设备300的结构示意图。本实施例中的电子设备300可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、pda(个人数字助理)、pad(平板电脑)、pmp(便携式多媒体播放器)、车载终端(例如车载导航终端)、可穿戴电子设备等等的移动终端以及诸如数字tv、台式计算机、智能家居设备等等的固定终端。图10示出的电子设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
60.如图10所示,电子设备300可以包括处理装置(例如中央处理器、图形处理器等)301,其可以根据存储在只读存储器(rom)302中的程序或者从存储装置308加载到随机访问
存储器(ram)303中的程序而执行各种适当的动作和处理以实现如本发明描述的各实施例的方法。在ram 303中,还存储有电子设备300操作所需的各种程序和数据。处理装置301、rom 302以及ram 303通过总线304彼此相连。输入/输出(i/o)接口305也连接至总线304。
61.通常,以下装置可以连接至i/o接口305:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置306;包括例如液晶显示器(lcd)、扬声器、振动器等的输出装置307;包括例如磁带、硬盘等的存储装置308;以及通信装置309。通信装置309可以允许电子设备300与其他设备进行无线或有线通信以交换数据。虽然图10示出了具有各种装置的电子设备300,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代的实施或具备更多或更少的装置。
62.以上描述仅为本发明的较佳实施例。本领域技术人员应当理解,本发明中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本发明中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献