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

基于图像分割的食物热量估算方法、装置、设备及介质与流程

2022-11-12 22:40:20 来源:中国专利 TAG:


1.本技术涉及计算机及数字医疗技术领域,具体涉及一种基于图像分割的食物热量估算方法、装置、设备及介质。


背景技术:

2.随着现代生活节奏的不断加快,人们常常因为忙碌的工作学习而忽略了个人正常饮食,由此由于饮食不均衡导致的肥胖症状逐渐增多。又由于现代人们工作状态往往容易习惯久坐,并且严重缺乏锻炼,使得肥胖人群数量逐渐增多。由于肥胖会增加很多疾病的患病风险,因此人们越来越关注肥胖,也越来越关注自身的健康饮食。
3.大多数情况下,由于人们缺乏营养知识和意志力,人们对热量控制往往需要通过专业机构根据自身的身体情况制定专门食谱,以达到控制饮食摄入热量的目的,但是这种方法成本较高、效率较低。脱离了专业机构制定的专门食谱,人们无法获知自身正常饮食中餐食的热量数据,进而难以把控正常饮食中每日摄取的食物热量,从而不利于控制饮食摄入热量,增加了肥胖风险。。


技术实现要素:

4.为解决上述问题,本技术实施例提供了一种基于图像分割的食物热量估算方法、装置、设备及介质,以通过食物图像识别和分割,方便、智能、准确地帮助用户了解自身的饮食热量摄入情况,从而有助于用户日常控制饮食热量。
5.本技术实施例采用下述技术方案:
6.第一方面,提供了一种基于图像分割的食物热量估算方法,该方法包括:
7.获取食物图像,对食物图像进行预处理;
8.对预处理后的食物图像进行分割,并提取食物特征;
9.采用训练好的支持向量机模型根据食物特征进行食物种类识别;
10.根据识别出的各食物种类及热量表,确定图像中的食物热量。
11.第二方面,提供了一种基于图像分割的食物热量估算装置,该装置包括:
12.预处理单元,用于获取食物图像,对食物图像进行预处理;
13.食物特征提取单元,用于对预处理后的食物图像进行分割,并提取食物特征;
14.食物种类识别单元,用于采用训练好的支持向量机模型根据食物特征进行食物种类识别;
15.食物热量确定单元,用于根据识别出的各食物种类的面积及热量表,确定图像中的食物热量。
16.第三方面,本技术实施例还提供了一种计算机设备,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述基于图像分割的食物热量估算方法的步骤。
17.第四方面,本技术实施例还提供了一种计算机可读存储介质,计算机可读存储介
质存储有计算机程序,计算机程序被处理器指令时实现上述基于图像分割的食物热量估算方法的步骤。
18.本技术实施例采用的上述至少一个技术方案能够达到以下有益效果:
19.本技术提供的基于图像分割的食物热量估算方法,获取食物图像,对食物图像进行预处理;对预处理后的食物图像进行分割,并提取食物特征;采用训练好的支持向量机模型根据食物特征进行食物种类识别;根据识别出的各食物种类的面积及热量表,确定图像中的食物热量。本技术提供的基于图像分割的食物热量估算方法,首先对食物图像进行预处理,排除食物图像中其他成分的干扰;然后通过对食物图像进行图割分割、颜色分割和纹理分割,准确提取食物特征,通过训练好的支持向量机模型准确识别食物种类;最后确定出图像中的食物热量。本技术提供的基于图像分割的食物热量估算方法,不仅能够估算各食物种类的热量,也能够估算食物图像中的食物总热量。本技术提供的基于图像分割的食物热量估算方法,通过多张混合图像作为训练集和测试集训练支持向量机模型,使得训练好的支持向量机模型的食物识别准确度更高。本技术提供的基于图像分割的食物热量估算方法,用户在每餐前只要上传食物图像即可得出餐食较为精准的热量数值,更方便用户控制自身的饮食热量,从而控制自身的体重。
附图说明
20.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
21.图1示出根据本技术的一个实施例的基于图像分割的食物热量估算方法的应用环境示意图;
22.图2示出根据本技术的一个实施例的基于图像分割的食物热量估算方法的流程示意图;
23.图3示出根据本技术的一个实施例的一张图像对应的s-t图;
24.图4示出根据本技术的另一个实施例的基于图像分割的食物热量估算方法的流程示意图;
25.图5示出根据本技术的一个实施例的基于图像分割的食物热量估算装置的结构示意图;
26.图6示出根据本技术的一个实施例的计算机设备的结构示意图;
27.图7示出根据本技术的另一个实施例的计算机设备的结构示意图。
具体实施方式
28.为使本技术的目的、技术方案和优点更加清楚,下面将结合本技术具体实施例及相应的附图对本技术技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
29.以下结合附图,详细说明本技术各实施例提供的技术方案。
30.本技术实施例提供的基于图像分割的食物热量估算方法,可应用在如图1的应用环境中,其中,客户端通过网络与服务端进行通信。客户端可以但不限于各种个人计算机、
笔记本电脑、智能手机、平板电脑、便携式可穿戴设备、摄像机、照相机等具有摄像头和显示屏的设备。服务端可以用独立的服务器或者是多个服务器组成的服务器集群来实现。食物图像可以是客户端通过其具有的摄像头拍摄并传输于服务端的,食物图像也可以是存储于客户端并传输于服务端的;图像中的食物热量可以是服务端估算并传输提供于客户端的,图像中的食物热量可以可视化显示于客户端,以方便用户直接查看。服务端通过从客户端获取食物图像,对食物图像进行预处理;对预处理后的食物图像进行分割,并提取食物特征;采用训练好的支持向量机模型根据食物特征进行食物种类识别;根据识别出的各食物种类的面积及热量表,确定图像中的食物热量并传输至客户端。在本技术中,服务端首先对食物图像进行预处理,排除食物图像中其他成分的干扰;然后通过对食物图像进行图割分割、颜色分割和纹理分割,准确提取食物特征,通过训练好的支持向量机模型准确识别食物种类;最后确定出图像中的食物热量。客户端不仅能够展示各食物种类的热量,也能够展示食物图像中的食物总热量。本技术提供的基于图像分割的食物热量估算方法,用户在每餐前只要上传食物图像即可得出当前餐食较为精准的热量数值,更方便用户控制自身的饮食热量,从而控制自身的体重。下面通过具体的实施例对本技术进行详细的描述。
31.图2示出了本技术一个实施例提出的基于图像分割的食物热量估算方法。根据图2所示,该方法包括步骤s210~步骤s240:
32.步骤s210,获取食物图像,对食物图像进行预处理。
33.服务端基于与客户端的连接通过客户端获取食物图像,从而首先对食物图像进行预处理。
34.客户端可以通过其具有的摄像头拍摄食物图像,将其拍摄的食物图像传输至服务器。服务端也可以获取客户端已经存储的食物图像。食物图像除了包括图像外观外,还携带有图像参数,例如食物图像的尺寸、食物图像的深度、食物图像的占屏比等。食物图像中至少包括一种食物种类。
35.服务端对食物图像进行预处理时,可以但不限于对食物图像进行提取图像参数、提取感兴趣区域、去噪等处理。服务端可以首先提取食物图像的尺寸和食物图像的占屏比等参数,通过上述参数确定食物图像中的感兴趣区域,从而排除食物图像中其他成分的干扰,然后服务端对食物图像进行去噪,以提高食物特征提取的准确率。服务端还可以提取食物图像的深度参数以方便后续确定各食物种类的体积等。
36.步骤s220,对预处理后的食物图像进行分割,并提取食物特征。
37.服务端对食物图像进行预处理后,即开始识别食物图像中包含的各食物种类。在识别时,首先通过图像分割提取食物特征。
38.图像分割即根据图像的色彩、空间纹理、几何形状等特征把图像划分成若干个互不相交的区域,使得这些特征在同一区域表现出一致性或相似性,而在不同区域间表现出明显的不同。由于食物的形态变化多种多样,但食物的颜色和纹理在不同的形态下基本保持不变,因此,服务端可以对食物图像进行图割分割、颜色分割以及纹理分割等,从而得到食物形状特征、食物颜色特征、食物纹理特征、甚至食物大小特征等,以更全面地提取食物特征,从而更准确地识别食物种类。
39.步骤s230,采用训练好的支持向量机模型根据食物特征进行食物种类识别。
40.服务端提取食物特征后,采用训练好的svm模型(支持向量机模型)最终确定食物
种类。
41.svm模型是用于分类的常用技术之一,其与普通分类算法相比更高效、且易于扩展和使用。服务端首先通过训练集和测试集训练得到训练好的支持向量机模型,该训练好的支持向量机模型为识别率达到识别标准的模型。服务端利用该训练好的支持向量机模型,将已经提取的食物特征输入后,得到食物种类的识别结果。为了获得更高识别率的训练好的支持向量机模型,可以采用多张具有多种食物的混合图像分别作为训练集和测试集对初始化svm分类器进行训练。
42.步骤s240,根据识别出的各食物种类及热量表,确定图像中的食物热量。
43.服务端可以通过其数据库预存有各食物种类的热量表数据。服务端识别出食物图像中所包含的各食物种类后,可以将食物种类在热量表数据中进行查找匹配,从而确定图像中所包含的各食物种类的热量,即确定图像中的食物种类的热量值。服务端可以将各食物种类的热量值标注于食物图像中,传输于客户端进行可视化展示,从而使用户直观获知食物图像中的各食物种类的热量。
44.当服务端接收的食物图像还包括食物图像的深度等图像参数时,服务端还可以通过食物大小特征得到的各食物的面积,确定图像中的各食物种类的体积,从而基于各食物种类的体积、各食物种类的密度、各食物种类的热量关系估算图像中的食物总热量值。服务端可以将图像中的食物的总热量值标注于食物图像中,传输于客户端进行可视化展示,从而使用户明确获知食物图像中的食物总共摄入的热量值。
45.由图2所示的方法可以看出,本技术提供的基于图像分割的食物热量估算方法,获取食物图像,对食物图像进行预处理;对预处理后的食物图像进行分割,并提取食物特征;采用训练好的支持向量机模型根据食物特征进行食物种类识别;根据识别出的各食物种类的面积及热量表,确定图像中的食物热量。本技术提供的基于图像分割的食物热量估算方法,首先对食物图像进行预处理,排除食物图像中其他成分的干扰;然后通过对食物图像进行图割分割、颜色分割和纹理分割,准确提取食物特征,通过训练好的支持向量机模型准确识别食物种类;最后确定出图像中的食物热量。本技术提供的基于图像分割的食物热量估算方法,不仅能够估算各食物种类的热量,也能够估算食物图像中额食物总热量。本技术提供的基于图像分割的食物热量估算方法。本技术提供的基于图像分割的食物热量估算方法,用户在每餐前只要上传食物图像即可得出当前餐食较为精准的热量数值,更方便用户控制自身的饮食热量,从而控制自身的体重。
46.在本技术的一些实施例中,在上述方法中,获取食物图像,对食物图像进行预处理,包括:获取食物图像的图像外观和图像参数,其中,图像参数包括食物图像的占屏比和食物图像的深度;根据图像参数提取图像外观的感兴趣区域,并对感兴趣区域进行去噪处理。
47.当服务端获取通过客户端具有的摄像头拍摄的食物图像时,客户端可以为双摄像头组件,通过双摄像头组件,可以使拍摄的食物图像包括尺寸、屏占比、深度等图像参数。比如,食物图像的占屏的大小与食物到双摄像头所在平面的距离的远近有关,食物图像到双摄像头所在平面的距离越远,食物图像在屏幕中显示的图像越小,占屏比越小。又比如,通过双摄像头测距原理可以计算到食物图像的深度,食物图像的深度用于指示食物图像中食物的厚度。服务端获取食物图像时同时获取了食物图像的图像外观外及其图像参数。而当
服务端直接获取客户端已经存储的食物图像时,可以通过解析食物图像而获取其携带的图像参数。
48.服务端根据图像参数提取感兴趣区域并对感兴趣区域进行去噪处理。为了减轻服务端的处理压力,服务端可以先基于图像参数提取感兴趣区域保留。感兴趣区域用于指示图像外观中排除了无用背景、干扰物品等之后的食物所在范围。比如,根据食物图像的占屏比参数排除无用背景,仅保留有食物画面的图像区域;又比如,根据食物图像的深度参数排除深度超过预设阈值的部分,因为超过预设阈值的部分极可能并非食物,而是水壶等干扰。服务端确定感兴趣区域后,感兴趣区域可能由于拍摄灯光、拍摄像素等各种原因出现噪点,对感兴趣区域进行去噪处理以为后续食物特征提取提供良好的图像基础。去噪处理可以但不限于使用中值滤波等方法。在本技术的一些实施例中,在上述方法中,对预处理后的食物图像进行分割,并提取食物特征,包括:对预处理后的食物图像进行图像块分割,并基于图像块分割结果提取食物形状特征;对预处理后的食物图像进行颜色分割,并基于颜色分割结果提取食物颜色特征;对预处理后的食物图像进行纹理分割,并基于纹理分割结果提取食物纹理特征。
49.为了提高食物热量的估算准确度,需要提高食物种类识别的精度。因此,本技术在对食物图像提取感兴趣区域,并对感兴趣区域去噪处理后,对处理后的食物图像进行图像块分割、颜色分割和纹理分割,实现精确的食物种类分离。
50.在本技术的一些实施例中,在上述方法中,对预处理后的食物图像进行图像块分割,并基于图像块分割结果提取食物形状特征,包括:采用图割分割方法对预处理后的食物图像进行图像块分割,并基于图像块分割结果提取食物形状特征。
51.图割分割是选择区域和为每种食物部分找到最佳边界的方法。图割分割具有如下重要特征:第一,稳健性;在图割切割方法中,图像的每个像素都映射到图中的一个顶点上,相邻像素通过加权边连接,权重根据预定义的能量函数确定,切割成本由图中所有顶点的总边连接分数决定。第二,良好的算法特性;即图在绘制时是图像的符号表示,比如区域之间的边界与图的边匹配。第三,低损耗;即分割后的图能够进行图像重建,并且重建后的图像较初始图像虽进行了压缩但损失最小。本技术将具有上述三个特征的图割分割用于食物图像的图像块分割,能够准确高效地提取图像形状特征甚至食物大小特征等。
52.以下具体介绍图割分割方法。图割分割方法用于用给定的图像建立图进行分割,该方法是把图像分割问题与图的最小割问题相关联。将一个图定义为一个二元组的形式g=(v,e),其中v是顶点的集合,e是连接v中两个不同顶点的边集合。如果e中的顶点对(即边)是无序的,则g是无向图。
53.顶点v由两种不同类型的节点组成:一种为邻域节点,对应于图像中的每个像素;另一种为终端节点,由s(源点)和t(汇点)组成,s节点通常表示对象,t节点通常表示背景。边e同样由两种不同类型组成:一种为称为n-links,连接图像中的相邻像素(即每两个邻域节点的连接);另一种称为t-links,连接终端节点和邻域节点。
54.图3示出了本技术一个实施例的一张图像对应的s-t图,在图3中,实线的边表示n-links,虚线的边标识t-links。图中每条边都具有一个非负的权值we,不同的边可以有不同的权值,分别代表不同的物理意义。一个割(cut)就是图中边集合e的一个子集c,那么|c|就是边子集c的所有边的权值的总和。最小割可以通过找到网络的最大流(max flow)来实现。
因此最小割把图的顶点划分为两个不相交的子集s和t,其中,s∈s、t∈t、s∪t=v。边集合e包括了上述两种边,而该集合中所有边的断开会导致s和t图分开,因此若一个割的边的所有权值之和最小,那么这个割就称为最小割,也就是图割分割的结果。
55.食物颜色特征是用于区分图像中食物种类的主要特征,例如可以将红色认定为西红柿、火腿等,可以将紫色认定为茄子、甘蓝等,再结合食物形状特征和食物纹理特征进一步确定食物种类。本技术中,可以通过opencv库等手段对食物图像进行颜色分割。
56.在本技术的一些实施例中,在上述方法中,对预处理后的食物图像进行纹理分割,并基于纹理分割结果提取食物纹理特征,包括:采用gabor滤波器组对预处理后的食物图像进行纹理分割,并基于纹理分割结果提取食物纹理特征。
57.食物纹理特征是表征食物图像中食物细节的重要特征之一。本技术采用gabor滤波器组在频域中测量食物图像中食物的局部纹理特征。不同纹理一般具有不同的中心频率及带宽,根据这些频率及带宽设计一组gabor滤波器对纹理图像进行滤波,每个gabor滤波器只允许与其频率相对应的纹理顺利通过,而使其他纹理的能量受到抑制,从而从各滤波器的输出结果中分析和提取纹理特征。
58.举例来说,通过图割切割已经将食物图像分割为若干个图像块,那么基于图割分割的图像块结果建立gabor滤波器组,选择合适的尺度和方向组成gabor滤波器组;gabor滤波器组与每个图像块在空域卷积,每个图像块可以得到相应的滤波器输出,这些输出是图像块大小的图片,如果直接将其作为特征向量,特征空间的维数会很大;因此,可以将滤波器输出压缩为一个列向量作为图像块的纹理特征。
59.基于上述方法,对预处理后的食物图像进行了有效的图像块分割、颜色分割和纹理分割,从而提取食物形状特征、食物颜色特征和食物纹理特征。
60.在本技术的一些实施例中,在上述方法中,支持向量机模型通过以下方法进行训练:采集多张混合图像并将多张混合图像划分为训练集和测试集,每张混合图像中均包括多种食物;对训练集和测试集中的所有混合图像进行分割并提取食物特征,其中,食物特征包括食物形状特征、食物颜色特征和食物纹理特征;基于训练集的食物特征对初始化svm分类器进行训练,得到支持向量机模型;将测试集的食物特征带入支持向量机模型验证识别效果。
61.服务端在提取食物特征后,即可以基于训练好的支持向量机模型识别食物种类。
62.食物一般可以分为以下几类:一类为单一食物,一类为非混合食物,一类为混合食物。单一食物和非混合食物种类的识别相对较容易;而混合食物中食物部分的相互融合、大小不同,使得混合食物种类的识别相对困难。因此本技术通过以下方法对支持向量机模型进行训练,以提高食物种类识别的准确性。
63.首先采集多张混合图像并将多张混合图像划分为训练集和测试集。对于多张混合图像有特殊要求,即每张混合图像中均包括多种食物,比如一张混合图像中包括15种不同种类的食物。可以将多张混合图像中的一半用于训练模型,另一半用于验证模型。
64.然后对训练集和测试集中的所有混合图像进行分割并提取食物特征。采用图割分割方法对混合图像进行图像块分割,提取混合图像的食物形状特征;对混合图像进行颜色分割,提取混合图像的食物颜色特征;采用gabor滤波器组对混合图像进行纹理分割,提取混合图像的食物纹理特征。
65.将训练集的混合图像的食物形状特征、食物颜色特征和食物纹理特征输入初始化的svm分类器进行训练,即得到支持向量机模型。将测试集的混合图像的食物形状特征、食物颜色特征和食物纹理特征输入支持向量机模型验证识别效果。基于本技术的训练方式训练好的支持向量机模型,不仅能够准确识别单一食物的种类,而且对非混合食物(比如牛排和薯条)的种类识别准确率能达到90%,对混合食物(比如咖喱食品或汤)的种类识别准确率能达到75%,大大提高了食物种类的识别准确度。
66.在本技术的一些实施例中,在上述方法中,根据识别出的各食物种类及热量表,确定图像中的食物热量,包括:基于图像块分割结果提取食物大小特征;根据食物大小特征和食物种类确定各食物种类的面积;根据各食物种类的面积以及食物图像的深度确定各食物种类的体积;根据各食物种类的体积以及各食物种类的密度确定各食物种类的质量;根据各食物种类的质量以及热量表确定各食物种类的热量;根据各食物种类的热量确定图像中的所有食物总热量。
67.服务端在识别食物图像中的食物种类后,即可以根据其数据库存储的各食物种类的热量表数据,确定图像中的各食物种类的热量值,从而将各食物种类的热量值标注于食物图像传输于客户端。该方法能够使用户直观获知食物图像中各食物种类的热量值。为了使用户还能够清晰获知食物图像中的所有食物的总热量值,本技术还提供了如下方法。
68.首先基于图像块分割结果提取食物大小特征。在采用图割分割对图像进行图像块分割后,不仅能够提取到食物形状特征,还能够提取到食物大小特征,该食物大小特征用于指示每个图像块的食物大小。
69.根据食物大小特征和食物种类确定各食物种类的面积。在非混合图像和混合图像情况下,一种食物可能为多个部分分散为食物图像的不同图像块。因此,基于每个图像块提取的食物种类和食物大小特征,将食物种类相同的食物大小特征求和后得到该食物种类在食物图像中的总面积。具体可以通过公式进行计算,其中,s
l
表示a类食物在食物图像中的总面积,n表示被识别为a类食物的图像块的数量,ti表示被识别为a类食物的食物大小特征。
70.根据各食物种类的面积以及食物图像的深度确定各食物种类的体积。服务端在获取食物图像的同时获取了食物图像的深度。因此,基于食物种类的面积和食物图像的深度求积后得到该食物种类的体积。具体可以通过公式v
l
=s
l
×
h进行计算,其中,v
l
表示a类食物的体积,h为食物图像的深度。
71.根据各食物种类的体积以及各食物种类的密度确定各食物种类的质量。一旦确定了食物种类,即可以相应确定该食物种类的密度。因此,基于食物种类的体积和食物种类的密度求积后得到该食物种类的质量。具体可以通过公式m
l
=ρ
×vl
进行计算,其中,m
l
表示a类食物的质量,ρ表示a类食物的密度。
72.根据各食物种类的质量以及热量表确定各食物种类的热量。一旦确定了食物种类,即可以根据数据库存储的各食物种类的热量表数据,确定各食物种类的单位热量值。因此,基于食物种类的质量和单位热量值求积后得到该食物种类的热量。具体可以通过公式j
l
=k
×ml
进行计算,其中,j
l
表示a类食物的热量,k表示a类食物的单位热量值(通常单位热量值的单位为千卡/克)。
73.根据各食物种类的热量确定图像中的所有食物总热量。对于非混合食物或者混合
食物的食物图像,由于其包括了多种食物种类,需要将多种食物种类的热量求和后,最终确定图像中的所有食物的总热量值。具体,可以通过公式其中,j表示图像中的所有食物的总热量值,m表示食物图像中的食物种类的数量。
74.通过本技术的上述方法,不仅能够确定图像中各食物种类的单位热量值、确定图像中各食物种类的热量,还能够确定图像中的所有食物的总热量。服务端确定图像中的食物热量后,可以将食物热量标注于食物图像中回传至客户端,以在客户端进行可视化展示,从而使用户全面了解食物图像中各种类食物的热量情况和总热量情况,进而有针对性地选择自身饮食的食物热量摄取,达到有效控制体重的目的,从而减少肥胖的发生率,有效减少糖尿病、高血压等疾病的患病风险。
75.比如在实际场景中,对于高血糖人群每日摄入的食物总热量应当保持在1500千卡~1800千卡范围内,对于肥胖的高血糖人群每日摄入的食物总热量应当保持在1200千卡~1500千卡范围内。若每日摄入的食物总热量低于最低值,则可能导致高血糖人群的热量摄入不足而出现头晕等症状。若每日摄入的食物总热量高于最高值,则可能导致高血糖人群的热量摄入过高,过高的血糖难以控制,必须增加降糖药或胰岛素的剂量而导致体重进一步增加,体重的增加导致对药物的抵抗加重,进一步升高血糖从而进入恶性循环。而血糖长期过高还会引发更严重的并发症。
76.通过本技术提供的基于图像分割的食物热量估算方法,高血糖人群能够随时监控自身饮食的食物热量摄取。用户通过拍摄上传食物图像获知每餐饮食的热量数据,对自身每餐的摄入热量有所掌控,从而更精准地把控每日摄入的食物总热量,减缓高血糖人群的病程发展。
77.图4示出了本技术另一个实施例的基于图像分割的食物热量估算方法的流程示意图,结合图4所示,本实施例的基于图像分割的食物热量估算方法包括以下步骤s401~步骤s411:
78.步骤s401,获取食物图像的图像外观和图像参数,其中,图像参数包括食物图像的占屏比和食物图像的深度。
79.步骤s402,根据图像参数提取图像外观的感兴趣区域,并对感兴趣区域进行去噪处理。
80.步骤s403,采用图割分割方法对处理后的食物图像进行图像块分割,并基于图像块分割结果提取食物形状特征和食物大小特征。
81.步骤s404,对处理后的食物图像进行颜色分割,并基于颜色分割结果提取食物颜色特征。
82.步骤s405,采用gabor滤波器组对处理后的食物图像进行纹理分割,并基于纹理分割结果提取食物纹理特征。
83.步骤s406,采用训练好的支持向量机模型根据食物特征进行食物种类识别。
84.步骤s407,根据食物大小特征和食物种类确定各食物种类的面积。
85.步骤s408,根据各食物种类的面积以及食物图像的深度确定各食物种类的体积。
86.步骤s409,根据各食物种类的体积以及各食物种类的密度确定各食物种类的质量。
87.步骤s410,根据各食物种类的质量以及热量表确定各食物种类的热量。
88.步骤s411,根据各食物种类的热量确定图像中的所有食物总热量。
89.其中,步骤s406中的支持向量机模型通过以下步骤s4061~步骤s406训练得到:
90.步骤s4061,采集多张混合图像并将多张混合图像划分为训练集和测试集,每张混合图像中均包括多种食物。
91.步骤s4062,对训练集和测试集中的所有混合图像进行分割并提取食物特征,其中,食物特征包括食物形状特征、食物颜色特征和食物纹理特征。
92.步骤s4063,基于训练集的食物特征对初始化svm分类器进行训练,得到支持向量机模型。
93.步骤s4064,将测试集的食物特征带入支持向量机模型验证识别效果。
94.图5示出了本技术一个实施例的基于图像分割的食物热量估算装置的结构示意图,根据图5所示,该装置500可以部署于服务端,该装置500包括:
95.预处理单元501,用于获取食物图像,对食物图像进行预处理。
96.服务端基于与客户端的连接通过客户端获取食物图像,从而首先对食物图像进行预处理。
97.客户端可以通过其具有的摄像头拍摄食物图像,将其拍摄的食物图像传输至服务器。服务端也可以获取客户端已经存储的食物图像。食物图像除了包括图像外观外,还携带有图像参数,例如食物图像的尺寸、食物图像的深度、食物图像的占屏比等。食物图像中至少包括一种食物种类。
98.服务端对食物图像进行预处理时,可以但不限于对食物图像进行提取图像参数、提取感兴趣区域、去噪等处理。服务端可以首先提取食物图像的尺寸和食物图像的占屏比等参数,通过上述参数确定食物图像中的感兴趣区域,从而排除食物图像中其他成分的干扰,然后服务端对食物图像进行去噪,以提高食物特征提取的准确率。服务端还可以提取食物图像的深度参数以方便后续确定各食物种类的体积等。
99.食物特征提取单元502,用于对预处理后的食物图像进行分割,并提取食物特征。
100.服务端对食物图像进行预处理后,即开始识别食物图像中包含的各食物种类。在识别时,首先通过图像分割提取食物特征。
101.图像分割即根据图像的色彩、空间纹理、几何形状等特征把图像划分成若干个互不相交的区域,使得这些特征在同一区域表现出一致性或相似性,而在不同区域间表现出明显的不同。由于食物的形态变化多种多样,但食物的颜色和纹理在不同的形态下基本保持不变,因此,服务端可以对食物图像进行图割分割、颜色分割以及纹理分割等,从而得到食物形状特征、食物颜色特征、食物纹理特征、甚至食物大小特征等,以更全面地提取食物特征,从而更准确地识别食物种类。
102.食物种类识别单元503,用于采用训练好的支持向量机模型根据食物个特征进行食物种类识别。
103.服务端提取食物特征后,采用训练好的svm模型(支持向量机模型)最终确定食物种类。
104.svm模型是用于分类的常用技术之一,其与普通分类算法相比更高效、且易于扩展和使用。服务端首先通过训练集和测试集训练得到训练好的支持向量机模型,该训练好的支持向量机模型为识别率达到识别标准的模型。服务端利用该训练好的支持向量机模型,
将已经提取的食物特征输入后,得到食物种类的识别结果。为了获得更高识别率的训练好的支持向量机模型,可以采用多张具有多种食物的混合图像分别作为训练集和测试集对初始化svm分类器进行训练。
105.食物热量确定单元504,用于根据识别出的各食物种类的面积及热量表,确定图像中的食物热量。
106.服务端可以通过其数据库预存有各食物种类的热量表数据。服务端识别出食物图像中所包含的各食物种类后,可以将食物种类在热量表数据中进行查找匹配,从而确定图像中所包含的各食物种类的热量,即确定图像中的食物种类的热量值。服务端可以将各食物种类的热量值标注于食物图像中,传输于客户端进行可视化展示,从而使用户直观获知食物图像中的各食物种类的热量。
107.当服务端接收的食物图像还包括食物图像的深度等图像参数时,服务端还可以通过食物大小特征得到的各食物的面积,确定图像中的各食物种类的体积,从而基于各食物种类的体积、各食物种类的密度、各食物种类的热量关系估算图像中的食物总热量值。服务端可以将图像中的食物的总热量值标注于食物图像中,传输于客户端进行可视化展示,从而使用户明确获知食物图像中的食物总共摄入的热量值。
108.在本技术的一些实施例中,在上述装置500中,预处理单元501,还用于获取食物图像的图像外观和图像参数,其中,图像参数包括食物图像的占屏比和食物图像的深度;根据图像参数提取图像外观的感兴趣区域,并对感兴趣区域进行去噪处理。
109.在本技术的一些实施例中,在上述装置500中,食物特征提取单元502,包括:食物形状特征提取模块,用于对预处理后的食物图像进行图像块分割,并基于图像块分割结果提取食物形状特征;食物颜色特征提取模块,用于对预处理后的食物图像进行颜色分割,并基于颜色分割结果提取食物颜色特征;食物纹理特征提取模块,用于对预处理后的食物图像进行纹理分割,并基于纹理分割结果提取食物纹理特征。
110.在本技术的一些实施例中,在上述食物特征提取单元502中,食物形状特征提取模块,具体用于采用图割分割方法对预处理后的食物图像进行图像块分割,并基于图像块分割结果提取食物形状特征。
111.在本技术的一些实施例中,在上述食物特征提取单元502中,食物纹理特征提取模块,具体用于采用gabor滤波器组对预处理后的食物图像进行纹理分割,并基于纹理分割结果提取食物纹理特征。
112.在本技术的一些实施例中,在上述装置500中,食物种类识别单元503,包括:模型训练模块,用于采集多张混合图像并将多张混合图像划分为训练集和测试集,每张混合图像中均包括多种食物;对训练集和测试集中的所有混合图像进行分割并提取食物特征,其中,食物特征包括食物形状特征、食物颜色特征和食物纹理特征;基于训练集的食物特征对初始化svm分类器进行训练,得到支持向量机模型;将测试集的食物特征带入支持向量机模型验证识别效果。
113.哎本技术的一些实施例中,在上述装置500中,食物热量确定单元504,还用于基于图像块分割结果提取食物大小特征;根据食物大小特征和食物种类确定各食物种类的面积;根据各食物种类的面积以及食物图像的深度确定各食物种类的体积;根据各食物种类的体积以及各食物种类的密度确定各食物种类的质量;根据各食物种类的质量以及热量表
确定各食物种类的热量;根据各食物种类的热量确定图像中的所有食物总热量。
114.需要说明的是,上述基于图像分割的食物热量估算装置可一一实现前述的基于图像分割的食物热量估算方法,对此不再赘述。
115.图6是本技术的一个实施例计算机设备的结构示意图。请参考图6,该计算机设备可以是服务端,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性和/或易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的客户端通过网络连接通信。该计算机程序被处理器执行时以实现基于图像分割的食物热量估算方法服务端侧的功能或步骤。
116.在一个实施例中,提供了一种计算机设备,该计算机设备可以是客户端,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和摄像头。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部服务器通过网络连接通信。该计算机程序被处理器执行时以实现基于图像分割的食物热量估算方法客户端侧的功能或步骤。
117.在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
118.获取食物图像,对食物图像进行预处理;
119.对预处理后的食物图像进行分割,并提取食物特征;
120.采用训练好的支持向量机模型根据食物特征进行食物种类识别;
121.根据识别出的各食物种类及热量表,确定图像中的食物热量。
122.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
123.获取食物图像,对食物图像进行预处理;
124.对预处理后的食物图像进行分割,并提取食物特征;
125.采用训练好的支持向量机模型根据食物特征进行食物种类识别;
126.根据识别出的各食物种类及热量表,确定图像中的食物热量。
127.需要说明的是,上述关于计算机可读存储介质或计算机设备所能实现的功能或步骤,可对应参阅前述方法实施例中,服务端侧以及客户端侧的相关描述,为避免重复,这里不再一一描述。
128.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括
随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
129.所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
130.以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
再多了解一些

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

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

相关文献