食物重量计算方法、装置及存储介质与流程

文档序号:22799172发布日期:2020-11-04 03:55阅读:236来源:国知局
食物重量计算方法、装置及存储介质与流程

本申请涉及食物重量计算领域,特别是涉及一种食物重量计算方法、装置及存储介质。



背景技术:

随着计算机视觉技术不断提高和营养学的蓬勃发展,如何在营养学中引入计算机视觉,以及使用计算机视觉技术辅助营养学中各种食物的估重成为了一个值得探讨的问题,尤其是在当图像中包含多个复杂状态目标时,如何对图中的食物进行正确的估重。目前对存在多个食物的这类图像中,只是根据opencv技术中的一些传统常规方法做一些简单的处理后进行简单的计算,例如图像的二值化处理,膨胀和腐蚀处理,得到食物大概的轮廓,最终计算食物的重量。然而,在上述识别过程中,对于复杂背景下,传统的opencv技术无法准确的确定食物的轮廓,使得基于opencv技术的后续切割包含食物的图像区域子图将无法精准切分,从而导致基于图像区域子图进行食物重量计算的准确率低。

针对上述的现有技术中存在的目前的食物重量计算方法采用opencv技术,无法准确的确定食物的轮廓,使得基于opencv技术的后续切割包含食物的图像区域子图将无法精准切分,从而导致基于图像区域子图进行食物重量计算的准确率低。



技术实现要素:

本公开的实施例提供了一种食物重量计算方法、装置及存储介质,以至少解决现有技术中存在的目前的食物重量计算方法采用opencv技术,无法准确的确定食物的轮廓,使得基于opencv技术的后续切割包含食物的图像区域子图将无法精准切分,从而导致基于图像区域子图进行食物重量计算的准确率低。

根据本公开实施例的一个方面,提供了一种食物重量计算方法,包括:获取待计算食物重量的图像,其中图像包括待计算重量的食物和参照物;利用预设的检测模型对图像进行检测,在图像中确定包含食物的第一图像区域和包含参照物的第二图像区域;利用预设的识别模型对图像进行识别,确定食物的类别;根据第一图像区域、第二图像区域以及预设的分割模型,确定食物的像素点面积和参照物的像素点面积;以及根据食物的类别、食物的像素点面积以及参照物的像素点面积,确定食物的重量。

根据本公开实施例的另一个方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时由处理器执行以上任意一项所述的方法。

根据本公开实施例的另一个方面,还提供了一种食物重量计算装置,包括:获取模块,用于获取待计算食物重量的图像,其中图像包括待计算重量的食物和参照物;检测模块,用于利用预设的检测模型对图像进行检测,在图像中确定包含食物的第一图像区域和包含参照物的第二图像区域;识别模块,用于利用预设的识别模型对图像进行识别,确定食物的类别;分割模块,用于根据第一图像区域、第二图像区域以及预设的分割模型,确定食物的像素点面积和参照物的像素点面积;以及重量确定模块,用于根据食物的类别、食物的像素点面积以及参照物的像素点面积,确定食物的重量。

根据本公开实施例的另一个方面,还提供了一种食物重量计算装置,包括:处理器;以及存储器,与处理器连接,用于为处理器提供处理以下处理步骤的指令:获取待计算食物重量的图像,其中图像包括待计算重量的食物和参照物;利用预设的检测模型对图像进行检测,在图像中确定包含食物的第一图像区域和包含参照物的第二图像区域;利用预设的识别模型对图像进行识别,确定食物的类别;根据第一图像区域、第二图像区域以及预设的分割模型,确定食物的像素点面积和参照物的像素点面积;以及根据食物的类别、食物的像素点面积以及参照物的像素点面积,确定食物的重量。

在本公开实施例中,首先获取包括待计算重量的食物和参照物的图像,然后利用预设的检测模型对图像进行检测,从图像中确定包含食物的第一图像区域和包含参照物的第二图像区域,便于后续的目标分割。其次,利用预设的识别模型对图像进行识别,确定食物的类别,便于后续可以根据食物的类别来确定食物的重量,提高了所确定的食物重量的准确率。进一步地,根据第一图像区域、第二图像区域以及预设的分割模型,确定食物的像素点面积和参照物的像素点面积。由于分割模型利用全卷积神经网络对图像中的每个像素点进行分类,能够很好的将待计算重量的食物和参照物分割出来,因此将第一图像区域、第二图像区域输入预设的分割模型后,能够输出与食物对应的像素点和与参照物对应的像素点在图像中的区域位置,保证了根据各个像素点在图像中的区域位置计算得到的食物的像素点面积和参照物的像素点面积的准确性。最后,根据食物的类别、食物的像素点面积以及参照物的像素点面积,确定食物的重量。从而,通过这种方式,不仅能够准确地确定食物的类别,还能够准确地从图像中分割出与食物对应的像素点和与参照物对应的像素点在图像中的区域位置,保证了根据各个像素点在图像中的区域位置计算得到的食物的像素点面积和参照物的像素点面积的准确性,使得根据食物的类别、食物的像素点面积以及参照物的像素点面积,所确定的食物的重量的准确率得到有效的提高。进而解决了现有技术中存在的目前的食物重量计算方法采用opencv技术,无法准确的确定食物的轮廓,使得基于opencv技术的后续切割包含食物的图像区域子图将无法精准切分,从而导致基于图像区域子图进行食物重量计算的准确率低的技术问题。

附图说明

此处所说明的附图用来提供对本公开的进一步理解,构成本申请的一部分,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。在附图中:

图1是用于实现根据本公开实施例1所述的方法的计算设备的硬件结构框图;

图2是根据本公开实施例1所述的食物重量计算方法的流程示意图;

图3是根据本公开实施例1所述的包括食物和参照物的待计算食物重量的图像的示意图;

图4是根据本公开实施例1所述的分割模型的网络结构示意图;

图5是根据本公开实施例2所述的食物重量计算装置的示意图;以及

图6是根据本公开实施例3所述的食物重量计算装置的示意图。

具体实施方式

为了使本技术领域的人员更好地理解本公开的技术方案,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本公开一部分的实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本公开保护的范围。

需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

实施例1

根据本实施例,提供了一种食物重量计算方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

本实施例所提供的方法实施例可以在服务器或者类似的计算设备中执行。图1示出了一种用于实现食物重量计算方法的计算设备的硬件结构框图。如图1所示,计算设备可以包括一个或多个处理器(处理器可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于存储数据的存储器、以及用于通信功能的传输装置。除此以外,还可以包括:显示器、输入/输出接口(i/o接口)、通用串行总线(usb)端口(可以作为i/o接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算设备还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。

应当注意到的是上述一个或多个处理器和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算设备中的其他元件中的任意一个内。如本公开实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。

存储器可用于存储应用软件的软件程序以及模块,如本公开实施例中的食物重量计算方法对应的程序指令/数据存储装置,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的食物重量计算方法。存储器可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至计算设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输装置用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算设备的通信供应商提供的无线网络。在一个实例中,传输装置包括一个网络适配器(networkinterfacecontroller,nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置可以为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。

显示器可以例如触摸屏式的液晶显示器(lcd),该液晶显示器可使得用户能够与计算设备的用户界面进行交互。

此处需要说明的是,在一些可选实施例中,上述图1所示的计算设备可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图1仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算设备中的部件的类型。

在上述运行环境下,根据本实施例的第一个方面,提供了一种食物重量计算方法,该方法例如可以应用到食物估重系统,通过该方法可以对包含食物和参照物的图像进行识别分类并确定食物的重量。图2示出了该方法的流程示意图,参考图2所示,该方法包括:

s202:获取待计算食物重量的图像,其中图像包括待计算重量的食物和参照物;

s204:利用预设的检测模型对图像进行检测,在图像中确定包含食物的第一图像区域和包含参照物的第二图像区域;

s206:利用预设的识别模型对图像进行识别,确定食物的类别;

s208:根据第一图像区域、第二图像区域以及预设的分割模型,确定食物的像素点面积和参照物的像素点面积;以及

s210:根据食物的类别、食物的像素点面积以及参照物的像素点面积,确定食物的重量。

正如背景技术中所述的,目前对存在多个食物的这类图像中,只是根据opencv技术中的一些传统常规方法做一些简单的处理后进行简单的计算,例如图像的二值化处理,膨胀和腐蚀处理,得到食物大概的轮廓,最终计算食物的重量。然而,在上述识别过程中,对于复杂背景下,传统的opencv技术无法准确的确定食物的轮廓,使得基于opencv技术的后续切割包含食物的图像区域子图将无法精准切分,从而导致基于图像区域子图进行食物重量计算的准确率低。

针对背景技术中存在的技术问题,根据本实施例的第一个方面提供的食物重量计算方法,首先获取待计算食物重量的图像。其中图像包括待计算重量的食物和参照物,待计算重量的食物例如为常见食材和各种烹饪后常见的食物,常见的食物有米饭,粥,各种炒菜等。参照物是指在实际生活中常见的尺寸固定的物体,以一元硬币为主,本申请实例可以用于对各种食物和有固定尺寸的参照物进行重量的计算。例如,待计算食物重量的图像为图3所示的图像,该图像中待计算重量的食物为豆角炒肉,参照物为一枚一元硬币。

进一步地,利用预设的检测模型对图像进行检测,在图像中确定包含食物的第一图像区域和包含参照物的第二图像区域。以及利用预设的识别模型对图像进行识别,确定食物的类别。其中,识别模型基于包括多个盛放着食物餐具和多个参照物的样本图像训练得到,用于训练识别模型的数据由包含各种盛放着食物餐具和参照物的图像以及图像中各个食物、餐具和参照物本身对应的类别数据组成。因此将待计算食物重量的图像输入到识别模型之后,识别模型能够同时识别出图像中所有的食物、餐具和参照物,而不需要提前对图像进行其他高级语义处理。从而,识别模型能够对图像中的多个食物和参照物进行识别,而不需要对目标进行单独处理,同时确定图像中的不同的食物、餐具和参照物的类别。即,识别模型也可以确定参照物的类别,并且在图像中包括盛装着食物的餐具的情况下,识别模型同样可以确定该餐具的类别。

进一步地,根据第一图像区域、第二图像区域以及预设的分割模型,确定食物的像素点面积和参照物的像素点面积。具体为,将第一图像区域、第二图像区域输入预设的分割模型后,分割模型能够很好的将待计算重量的食物和参照物分割出来,分别输出与食物对应的像素点和与参照物对应的像素点在图像中的区域位置,并对像素点进行各种条件的筛选后对该区域位置进行计算,确定食物的像素点面积和参照物的像素点面积。其中,图4示例性的示出了分割模型的网络结构,该分割模型为一个四分割模型,结构为先编码(下采用)再解码(上采样)的u形结构,保持输入和输出大小一样,并且利用全卷积神经网络对图像中的每个像素点进行分类,从而可以对一张图中的多个目标(食物和参照物)同时进行分割,具有很好的泛化能力以及很好的鲁棒性。

最后,根据食物的类别、食物的像素点面积以及参照物的像素点面积,确定食物的重量。其中,图像中的参照物作为转换真实面积的参考,例如硬币的真实面积为75.36平方毫米,在知道参照物的像素点面积和真实面积的情况下,可以根据参照物的真实面积和像素点面积的比例,计算食物的真实面积,并根据食物的类别和食物的真实面积,确定食物的重量。

从而,本实施例首先获取包括待计算重量的食物和参照物的图像,然后利用预设的检测模型对图像进行检测,从图像中确定包含食物的第一图像区域和包含参照物的第二图像区域,便于后续的目标分割。其次,利用预设的识别模型对图像进行识别,确定食物的类别,便于后续可以根据食物的类别来确定食物的重量,提高了所确定的食物重量的准确率。进一步地,根据第一图像区域、第二图像区域以及预设的分割模型,确定食物的像素点面积和参照物的像素点面积。由于分割模型利用全卷积神经网络对图像中的每个像素点进行分类,能够很好的将待计算重量的食物和参照物分割出来,因此将第一图像区域、第二图像区域输入预设的分割模型后,能够输出与食物对应的像素点和与参照物对应的像素点在图像中的区域位置,保证了根据各个像素点在图像中的区域位置计算得到的食物的像素点面积和参照物的像素点面积的准确性。最后,根据食物的类别、食物的像素点面积以及参照物的像素点面积,确定食物的重量。从而,通过这种方式,不仅能够准确地确定食物的类别,还能够准确地从图像中分割出与食物对应的像素点和与参照物对应的像素点在图像中的区域位置,保证了根据各个像素点在图像中的区域位置计算得到的食物的像素点面积和参照物的像素点面积的准确性,使得根据食物的类别、食物的像素点面积以及参照物的像素点面积,所确定的食物的重量的准确率得到有效的提高。进而解决了现有技术中存在的目前的食物重量计算方法采用opencv技术,无法准确的确定食物的轮廓,使得基于opencv技术的后续切割包含食物的图像区域子图将无法精准切分,从而导致基于图像区域子图进行食物重量计算的准确率低的技术问题。

在一个优选实施例中,根据第一图像区域、第二图像区域以及预设的分割模型,确定食物的像素点面积和参照物的像素点面积的操作,包括:利用预设的分割模型对第一图像区域进行分割处理,确定与食物对应的像素点在第一图像区域中的第一区域位置信息;利用预设的分割模型对第二图像区域进行分割处理,确定与参照物对应的像素点在第二图像区域中的第二区域位置信息;以及根据第一区域位置信息和第二区域位置信息,确定食物的像素点面积和参照物的像素点面积。

具体地,由于分割模型利用全卷积神经网络对图像中的每个像素点进行分类,因此先将第一图像区域输入预设的分割模型,输出与食物对应的像素点在第一图像区域中的第一区域位置信息。然后将第二图像区域输入预设的分割模型,输出与参照物对应的像素点在第二图像区域中的第二区域位置信息。最后,根据第一区域位置信息和第二区域位置信息,并对像素点进行各种条件的筛选后对该区域位置进行计算,确定食物的像素点面积和参照物的像素点面积。通过这种方式,保障了所确定的食物的像素点面积和参照物的像素点面积的准确性。

此外,在图像中包括盛装着食物的餐具的情况下,第一图像区域为包含盛装着食物的餐具的图像区域,在将第一图像区域输入预设的分割模型,能够分别输出与食物对应的像素点在第一图像区域中的区域位置信息和与餐具对应的像素点在第一图像区域中的区域位置信息。

在另一个优选实施例中,根据食物的类别、食物的像素点面积以及参照物的像素点面积,确定食物的重量的操作,包括:根据食物的像素点面积、参照物的像素点面积以及预设的参照物的真实面积,确定食物的真实面积;以及根据食物的类别和食物的真实面积,确定食物的重量。

具体地,参照图3所示,图像中的参照物为一枚一元硬币,预设的硬币的真实面积例如为为75.36平方毫米。由于食物与参照物处于同一图像中,因此参照物的像素点面积和真实面积之间的映射关系可以看做食物的像素点面积和真实面积之间的映射关系。在一个优选实施例中,可以通过计算参照物的像素点面积以及预设的参照物的真实面积之间的比例,然后据所计算的比例以及食物的像素点面积,确定食物的真实面积。从而在确定参照物的像素点面积和真实面积以及食物的像素点面积的情况下,能够确定食物的真实面积。此外,考虑到,真实面积相同的食物,其类别不同的情况下食物的重量各不相同,因此还需要根据食物的类别和食物的真实面积,确定食物的重量。通过这种方式,保证了所确定的食物的重量的准确性。

可选地,根据食物的类别和食物的真实面积,确定食物的重量的操作,包括:根据食物的类别,确定与食物对应的重量影响因子,其中重量影响因子用于指示类别的食物的真实面积与重量之间的比例关系;以及根据食物的真实面积和重量影响因子,确定食物的重量。

具体地,在本实施例中,需要预先设置好与各个不同类别的食物对应的重量影响因子。例如,根据大量的实验数据总结出各个不同类别的食物真实面积与重量之间的比例关系。因此,在根据食物的类别和食物的真实面积,确定食物的重量的操作过程中,首先根据所确定的食物的类别,确定与食物对应的重量影响因子,然后根据食物的真实面积和重量影响因子,反计算出食物的重量。通过这种方式,进一步提高了所确定的食物的重量的准确性。

可选地,根据食物的像素点面积、参照物的像素点面积以及预设的参照物的真实面积,确定食物的真实面积的操作之前,还包括:利用预设的识别模型对图像进行识别,确定参照物的类别;以及根据参照物的类别,从预设的数据库中确定参照物的真实面积,其中预设的数据库中存储有各个不同类别的参照物的真实面积。

具体地,参照物作为转换真实面积的参考,预设的数据库中预先存储有各个不同类别的参照物的真实面积,从而通过确定参照物的类别的方式,就能够确定参照物的真实面积。并且由于识别模型基于包括多个盛放着食物餐具和多个参照物的样本图像训练得到,用于训练识别模型的数据由包含各种盛放着食物餐具和参照物的图像以及图像中各个食物、餐具和参照物本身对应的类别数据组成,因此可以利用预设的识别模型对图像进行识别,确定参照物的类别,然后根据参照物的类别,从预设的数据库中确定参照物的真实面积。通过这种方式,能够快速的确定参照物的真实面积。

可选地,预设的识别模型基于包括多个食物和多个参照物的样本图像训练得到,并且利用预设的识别模型对图像进行识别,确定食物的类别的操作,包括:利用包括多个卷积层的卷积模型,生成与图像对应的第一图像特征;利用包括多个残差单元的残差网络模型,对第一图像特征进行特征提取,生成第二图像特征;以及利用包括识别层的识别模型,对第二图像特征进行识别,确定食物的类别。

具体地,在本申请实施例中,不再需要通过各种预定义框在图像上密集采样从而得到多个图像区域子图,而是直接将待计算食物重量的图像输入到预先训练好的识别模型。识别模型是一种由使用编码器-解码器结构组成的深度卷积网络结构,包括:卷积层、残差单元以及识别层,其中编码器部分负责特征提取,随着网络层加深,网络的通道数逐渐变大,在编码的过程中,会有部分信息丢失,特征图逐渐变小。解码器部分负责特征的还原,在解码时,加入与之对应的编码层信息。每一层网络都加入了一部分图片的特征。因此,识别模型相当于由包括多个卷积层的卷积模型、包括多个残差单元的残差网络模型以及包括识别层的识别模型组成。在利用预设的识别模型对图像进行识别,确定食物的类别的操作过程中,首先利用卷积模型,生成与图像对应的第一图像特征,然后利用包括多个残差单元的残差网络模型,对第一图像特征进一步进行特征提取,生成第二图像特征。从而能够更好的提取更多的有用信息,减少信息损失。最后,利用包括识别层的识别模型,对第二图像特征进行识别,确定食物的类别。其中,食物的类别可以用数字表示,经过大量实验证明,当残差单元在5-8个,效果较好,利用该模型识别食物的识别准确率较高,定位效果良好。从而,本实施例利用带有残差单元的深度卷积网络识别出图像中的食物,使得所识别出的食物的类别准确率得到有效提高。

此外,参考图1所示,根据本实施例的第二个方面,提供了一种存储介质。存储介质包括存储的程序,其中,在程序运行时由处理器执行以上任意一项所述的方法。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

实施例2

图5示出了根据本实施例所述的食物重量计算装置500,该装置500与根据实施例1的第一个方面所述的方法相对应。参考图5所示,该装置500包括:获取模块510,用于获取待计算食物重量的图像,其中图像包括待计算重量的食物和参照物;检测模块520,用于利用预设的检测模型对图像进行检测,在图像中确定包含食物的第一图像区域和包含参照物的第二图像区域;识别模块530,用于利用预设的识别模型对图像进行识别,确定食物的类别;分割模块540,用于根据第一图像区域、第二图像区域以及预设的分割模型,确定食物的像素点面积和参照物的像素点面积;以及重量确定模块550,用于根据食物的类别、食物的像素点面积以及参照物的像素点面积,确定食物的重量。

可选地,分割模块540,包括:第一分割子模块,用于利用预设的分割模型对第一图像区域进行分割处理,确定与食物对应的像素点在第一图像区域中的第一区域位置信息;第二分割子模块,用于利用预设的分割模型对第二图像区域进行分割处理,确定与参照物对应的像素点在第二图像区域中的第二区域位置信息;以及确定子模块,用于根据第一区域位置信息和第二区域位置信息,确定食物的像素点面积和参照物的像素点面积。

可选地,确定子模块,包括:第一确定单元,用于根据食物的像素点面积、参照物的像素点面积以及预设的参照物的真实面积,确定食物的真实面积;以及第二确定单元,用于根据食物的类别和食物的真实面积,确定食物的重量。

可选地,第二确定单元,包括:第一确定子单元,用于根据食物的类别,确定与食物对应的重量影响因子,其中重量影响因子用于指示类别的食物的真实面积与重量之间的比例关系;以及第二确定子单元,用于根据食物的真实面积和重量影响因子,确定食物的重量。

可选地,第一确定单元,包括:计算子单元,用于计算参照物的像素点面积以及预设的参照物的真实面积之间的比例;以及第三确定单元,用于根据所计算的比例以及食物的像素点面积,确定食物的真实面积。

可选地,装置500还包括:参照物类别确定模块,用于利用预设的识别模型对图像进行识别,确定参照物的类别;以及参照物真实面积确定模块,用于根据参照物的类别,从预设的数据库中确定参照物的真实面积,其中预设的数据库中存储有各个不同类别的参照物的真实面积。

可选地,预设的识别模型基于包括多个食物和多个参照物的样本图像训练得到,并且识别模块530,包括:第一生成子模块,用于利用包括多个卷积层的卷积模型,生成与图像对应的第一图像特征;第二生成子模块,用于利用包括多个残差单元的残差网络模型,对第一图像特征进行特征提取,生成第二图像特征;以及食物类别确定子模块,用于利用包括识别层的识别模型,对第二图像特征进行识别,确定食物的类别。

从而根据本实施例,装置500首先获取包括待计算重量的食物和参照物的图像,然后利用预设的检测模型对图像进行检测,从图像中确定包含食物的第一图像区域和包含参照物的第二图像区域,便于后续的目标分割。其次,利用预设的识别模型对图像进行识别,确定食物的类别,便于后续可以根据食物的类别来确定食物的重量,提高了所确定的食物重量的准确率。进一步地,根据第一图像区域、第二图像区域以及预设的分割模型,确定食物的像素点面积和参照物的像素点面积。由于分割模型利用全卷积神经网络对图像中的每个像素点进行分类,能够很好的将待计算重量的食物和参照物分割出来,因此将第一图像区域、第二图像区域输入预设的分割模型后,能够输出与食物对应的像素点和与参照物对应的像素点在图像中的区域位置,保证了根据各个像素点在图像中的区域位置计算得到的食物的像素点面积和参照物的像素点面积的准确性。最后,根据食物的类别、食物的像素点面积以及参照物的像素点面积,确定食物的重量。从而,通过这种方式,不仅能够准确地确定食物的类别,还能够准确地从图像中分割出与食物对应的像素点和与参照物对应的像素点在图像中的区域位置,保证了根据各个像素点在图像中的区域位置计算得到的食物的像素点面积和参照物的像素点面积的准确性,使得根据食物的类别、食物的像素点面积以及参照物的像素点面积,所确定的食物的重量的准确率得到有效的提高。进而解决了现有技术中存在的目前的食物重量计算方法采用opencv技术,无法准确的确定食物的轮廓,使得基于opencv技术的后续切割包含食物的图像区域子图将无法精准切分,从而导致基于图像区域子图进行食物重量计算的准确率低的技术问题。

实施例3

图6示出了根据本实施例的食物重量计算装置600,该装置600与根据实施例1的第一个方面的方法相对应。参考图6所示,该装置600包括:处理器610;以及存储器620,与处理器610连接,用于为处理器610提供处理以下处理步骤的指令:获取待计算食物重量的图像,其中图像包括待计算重量的食物和参照物;利用预设的检测模型对图像进行检测,在图像中确定包含食物的第一图像区域和包含参照物的第二图像区域;利用预设的识别模型对图像进行识别,确定食物的类别;根据第一图像区域、第二图像区域以及预设的分割模型,确定食物的像素点面积和参照物的像素点面积;以及根据食物的类别、食物的像素点面积以及参照物的像素点面积,确定食物的重量。

可选地,根据第一图像区域、第二图像区域以及预设的分割模型,确定食物的像素点面积和参照物的像素点面积的操作,包括:利用预设的分割模型对第一图像区域进行分割处理,确定与食物对应的像素点在第一图像区域中的第一区域位置信息;利用预设的分割模型对第二图像区域进行分割处理,确定与参照物对应的像素点在第二图像区域中的第二区域位置信息;以及根据第一区域位置信息和第二区域位置信息,确定食物的像素点面积和参照物的像素点面积。

可选地,根据食物的类别、食物的像素点面积以及参照物的像素点面积,确定食物的重量的操作,包括:根据食物的像素点面积、参照物的像素点面积以及预设的参照物的真实面积,确定食物的真实面积;以及根据食物的类别和食物的真实面积,确定食物的重量。

可选地,根据食物的类别和食物的真实面积,确定食物的重量的操作,包括:根据食物的类别,确定与食物对应的重量影响因子,其中重量影响因子用于指示类别的食物的真实面积与重量之间的比例关系;以及根据食物的真实面积和重量影响因子,确定食物的重量。

可选地,根据食物的像素点面积、参照物的像素点面积以及预设的参照物的真实面积,确定食物的真实面积的操作,包括:计算参照物的像素点面积以及预设的参照物的真实面积之间的比例;以及根据所计算的比例以及食物的像素点面积,确定食物的真实面积。

可选地,存储器620还用于为处理器610提供处理以下处理步骤的指令:根据食物的像素点面积、参照物的像素点面积以及预设的参照物的真实面积,确定食物的真实面积的操作之前,利用预设的识别模型对图像进行识别,确定参照物的类别;以及根据参照物的类别,从预设的数据库中确定参照物的真实面积,其中预设的数据库中存储有各个不同类别的参照物的真实面积。

可选地,预设的识别模型基于包括多个食物和多个参照物的样本图像训练得到,并且利用预设的识别模型对图像进行识别,确定食物的类别的操作,包括:利用包括多个卷积层的卷积模型,生成与图像对应的第一图像特征;利用包括多个残差单元的残差网络模型,对第一图像特征进行特征提取,生成第二图像特征;以及利用包括识别层的识别模型,对第二图像特征进行识别,确定食物的类别。

从而根据本实施例,装置600首先获取包括待计算重量的食物和参照物的图像,然后利用预设的检测模型对图像进行检测,从图像中确定包含食物的第一图像区域和包含参照物的第二图像区域,便于后续的目标分割。其次,利用预设的识别模型对图像进行识别,确定食物的类别,便于后续可以根据食物的类别来确定食物的重量,提高了所确定的食物重量的准确率。进一步地,根据第一图像区域、第二图像区域以及预设的分割模型,确定食物的像素点面积和参照物的像素点面积。由于分割模型利用全卷积神经网络对图像中的每个像素点进行分类,能够很好的将待计算重量的食物和参照物分割出来,因此将第一图像区域、第二图像区域输入预设的分割模型后,能够输出与食物对应的像素点和与参照物对应的像素点在图像中的区域位置,保证了根据各个像素点在图像中的区域位置计算得到的食物的像素点面积和参照物的像素点面积的准确性。最后,根据食物的类别、食物的像素点面积以及参照物的像素点面积,确定食物的重量。从而,通过这种方式,不仅能够准确地确定食物的类别,还能够准确地从图像中分割出与食物对应的像素点和与参照物对应的像素点在图像中的区域位置,保证了根据各个像素点在图像中的区域位置计算得到的食物的像素点面积和参照物的像素点面积的准确性,使得根据食物的类别、食物的像素点面积以及参照物的像素点面积,所确定的食物的重量的准确率得到有效的提高。进而解决了现有技术中存在的目前的食物重量计算方法采用opencv技术,无法准确的确定食物的轮廓,使得基于opencv技术的后续切割包含食物的图像区域子图将无法精准切分,从而导致基于图像区域子图进行食物重量计算的准确率低的技术问题。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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