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

基于图像的菜肴识别装置和方法与流程

2022-02-19 11:57:28 来源:中国专利 TAG:


1.本公开涉及基于图像的菜肴识别装置和方法。


背景技术:

2.目前市场上有许多饮食记录系统可用于监测个体的营养摄入。这些系统通常依赖于接收用户输入以记录所消耗的食物,该过程需要大量的人类交互以及一定程度的能力,并且从用户获得动力。为了达到期望的有效水平,用户必须准确且持久地记录所消耗的菜肴。


技术实现要素:

3.如上所述,饮食记录系统的用户需要准确且持久地输入和/或记录他们消耗的菜肴。因此,提供一种用户友好且直观的记录工具,以提高用户坚持每天输入和/或记录所消耗食物的习惯的能力的可能性是非常重要的。实现用户友好性和直观性的关键因素之一是系统在最少量的用户交互步骤内正确地响应用户意图的能力。
4.为此,可以利用机器学习和深度学习过程来改善对用户意图的理解,同时减少所需要的用户输入和/或记录菜肴干预量。尽管机器学习过程(诸如涉及神经网络的过程)可以用于从大量标记的训练数据中提取在一个类别内常见且不同于其它类别的模式,但对于许多食品来说,诸如中式烹饪菜肴,缺乏与食品相关联的明确定义或规范,这可能会导致类别规范问题。例如,一些菜肴可能由相似的食物成分组成和/或具有相似的外观但名称不同,并且一些具有相似名称的菜肴可能具有明显不同的食物成分。为此,通常难以以精细粒度指定互斥类别的集合,并且难以基于这样的集合收集示例性数据。类别定义之间的重叠或训练数据的实际重叠可能产生机器学习中的混淆并导致不准确的分类,这在使用中可能会导致用户的挫败感。然而,如果类别定义相差较大,并且仅收集高度代表性的数据以避免重叠,会导致菜肴识别中的高特异性和低灵敏度——这是不期望的,因为系统将不适合识别现实生活中丰富多样的菜肴。因此,提供一种用户友好的基于图像的菜肴识别方法将是有利的,该方法可以准确地识别用户输入(即高召回率),并且还能够响应用户输入的变化(即高特异性)。
5.为了更好地解决前面提到的一个或多个问题,在第一方面,提供了一种基于图像的菜肴识别计算机实现方法。该方法包括:获取描绘待识别菜肴的第一图像;使用预测模型分析第一图像以确定第一候选主题,其中,第一候选主题包括多个候选菜肴标识符,每个候选菜肴标识符与候选菜肴相关联,候选菜肴标识符中的一个是与最能代表第一候选主题的候选菜肴相关联的形心菜肴标识符;获取菜肴标识符的参考集合;针对参考集合中的每个菜肴标识符,计算指示由相应的菜肴标识符表示的菜肴与第一候选主题之间相似度的关联分数;选择参考集合中具有最高关联分数的一个或多个菜肴标识符作为第一候选主题的一个或多个变体菜肴标识符;以及输出第一候选主题的形心菜肴标识符和第一候选主题的一个或多个变体菜肴标识符。
6.在一些实施例中,输出第一候选主题的形心菜肴标识符和第一候选主题的一个或多个变体菜肴标识符包括:显示第一候选主题;以及在接收到扩展第一候选主题的用户输入时,显示第一候选主题的形心菜肴标识符和第一候选主题的一个或多个变体菜肴标识符。在这些实施例中,第一候选主题的形心菜肴标识符可以显示在第一候选主题的一个或多个变体菜肴标识符上方,并且第一候选主题的一个或多个变体菜肴标识符可以按照相应的关联分数降序显示。
7.在一些实施例中,第一候选主题中的多个候选菜肴标识符可以表示彼此相似的菜肴。
8.在一些实施例中,该方法还可以包括:使用预测模型分析第一图像,以确定一个或多个附加候选主题。在这些实施例中,每个附加候选主题可以包括多个候选菜肴标识符,每个候选菜肴标识符与候选菜肴相关联,候选菜肴标识符中的一个是最能代表相应候选主题的形心菜肴标识符。此外,该方法还可以包括输出一个或多个附加候选主题。
9.在一些实施例中,该方法还可以包括针对一个或多个附加候选主题中的每一个执行以下方法步骤:针对参考集合中的每个菜肴标识符,计算指示由相应的菜肴标识符表示的菜肴与相应附加候选主题之间相似度的关联分数;选择参考集合中具有最高关联分数的一个或多个菜肴标识符作为相应附加候选主题的一个或多个变体菜肴标识符;以及输出相应附加候选主题的形心菜肴标识符和相应附加候选主题的一个或多个变体菜肴标识符。
10.在一些实施例中,该方法还可以包括使用预测模型确定第一候选主题和一个或多个附加候选主题的排序。在这些实施例中,排序可以指示相应候选主题的形心菜肴与获得的第一图像描绘的菜肴之间递减的相似度。该方法还可以包括基于所确定的排序,显示第一候选主题和一个或多个附加候选主题。
11.在一些实施例中,该方法还可以包括:获取多个食谱,其中,多个食谱中的每一个包括:菜肴标识符、多个食物成分以及一个或多个烹饪指令;从获得的多个食谱中选择食谱的核心子集;基于以下至少一个,计算核心子集中各食谱之间的相似度分数:两个食谱的菜肴标识符之间的相似度、两个食谱的食物成分之间的相似度,以及两个食谱的烹饪指令之间的相似度;基于多个食谱的相似度分数,将多个食谱聚类为多个参考主题;以及针对多个参考主题中的每个主题,选择与相应参考主题具有最高余弦相似度的食谱作为形心食谱,其中,选定食谱的菜肴标识符是相应参考主题的形心菜肴标识符。在这些实施例中,确定第一候选主题可以包括从多个参考主题中选择第一候选主题。
12.在一些实施例中,该方法还可以包括确定多个食谱中每个食谱的流行度分数,其中,流行度分数指示相应食谱的流行度或普遍度。在这些实施例中,选择食谱的核心子集可以基于多个食谱的流行度分数执行。
13.在一些实施例中,计算核心子集中各食谱之间的相似度分数可以基于以下至少一个的一个或多个同义词执行:两个食谱的菜肴标识符、多个食物成分以及烹饪指令。
14.在一些实施例中,将多个食谱聚类为多个参考主题可以基于k均值聚类或奇异值分解执行。
15.在一些实施例中,该方法还可以包括针对多个参考主题中的每个主题,基于相应参考主题的食谱确定多个关键词。在这些实施例中,多个关键词中的每一个与烹饪技术和食物成分中的至少一个相关联;
16.在一些实施例中,该方法还可以包括:选择多个参考主题中的一个;基于选定参考主题的形心菜肴标识符和选定参考主题的多个关键词中的至少一个,获取第二图像;以及基于第二图像和选定参考主题,训练预测模型。
17.在一些实施例中,预测模型可以是以下至少一个:卷积神经网络、残差神经网络和密集神经网络。
18.在第二方面,提供了一种包括计算机可读介质的计算机程序产品。计算机可读介质中包含计算机可读代码,计算机可读代码被配置为当在合适的计算机或处理器上执行时,使得计算机或处理器执行如本文所述的方法。
19.在第三方面,提供了一种基于图像的菜肴识别装置。该装置包括处理器,处理器被配置为:获取描绘待识别菜肴的第一图像;使用预测模型分析第一图像以确定第一候选主题,其中,第一候选主题包括多个候选菜肴标识符,每个候选菜肴标识符与候选菜肴相关联,候选菜肴标识符中的一个是与最能代表第一候选主题的候选菜肴相关联的形心菜肴标识符;获取菜肴标识符的参考集合;针对参考集合中的每个菜肴标识符,计算指示由相应的菜肴标识符表示的菜肴与第一候选主题之间相似度的关联分数;选择参考集合中具有最高关联分数的一个或多个菜肴标识符作为第一候选主题的一个或多个变体菜肴标识符;以及输出第一候选主题的形心菜肴标识符和第一候选主题的一个或多个变体菜肴标识符。
20.根据上述方面和实施例,解决了现有技术的局限性。特别地,上述方面和实施例使得能够在基于图像的菜肴识别中实现高召回率以及高特异性。上述实施例通过以粗(例如主题)粒度执行图像识别来获得高灵敏度,并且通过执行基于自然语言处理(nlp)的主题变体搜索来获得高特异性。
21.因此,提供了一种基于图像的菜肴识别改进方法和装置。参考下文描述的实施例,本公开的这些和其它方面将变得明显并得以阐明。
附图说明
22.为了更好地理解实施例,并且为了更清楚地示出如何实现这些实施例,现在仅通过示例的方式参考附图,其中:
23.图1是根据一个实施例的基于图像的菜肴识别装置的框图;
24.图2示出根据一个实施例的基于图像的菜肴识别方法;
25.图3a示出根据一个实施例,在显示器上以第一状态输出的第一候选主题和多个附加候选主题的示例;以及
26.图3b示出在显示器上以第二状态输出图3a的第一候选主题和多个附加候选主题。
具体实施方式
27.如上所述,提供了一种解决了现有问题的改进装置及其操作方法。
28.图1示出根据一个实施例的装置100的框图,该装置可以用于执行基于图像的菜肴识别。尽管下文在针对单个图像执行菜肴识别的上下文中描述了装置100的操作,但应当理解的是,装置100能够针对多个图像中的每一个执行基于图像的菜肴识别。
29.如图1所示,该装置包括处理器102,用于控制装置100的操作并且可以实现本文所描述的方法。处理器102可以包括被配置为或编程为以本文所述的方式控制装置100的一个
或多个处理器、处理单元、多核处理器或模块。在特定实施方式中,处理器102可以包括多个软件及/或硬件模块,每个模块被配置为执行或用于执行本文描述方法的各个或多个步骤。
30.简言之,处理器102被配置为获取描绘待识别菜肴的第一图像,并且使用预测模型分析第一图像以确定第一候选主题。第一候选主题包括多个菜肴标识符,每个菜肴标识符与候选菜肴相关联,并且候选菜肴标识符中的一个是与最能代表第一候选主题的候选菜肴相关联的形心菜肴标识符。
31.处理器102还被配置为获取菜肴标识符的参考集合,并且针对参考集合中的每个菜肴标识符,计算指示由相应的菜肴标识符表示的菜肴与第一候选主题之间相似度的关联分数。随后,处理器102被配置为选择参考集合中具有最高关联分数的一个或多个菜肴标识符作为第一候选主题的一个或多个变体菜肴标识符,并且输出第一候选主题的形心菜肴标识符和第一候选主题的一个或多个变体菜肴标识符。
32.在一些实施例中,装置100还可以包括至少一个用户接口104。备选地或附加地,至少一个用户接口104可以位于装置100外部(即与装置100分离或远离装置100)。例如,至少一个用户接口104可以是另一设备的一部分。用户接口104可以用于向装置100的用户提供从本文描述的方法中得到的信息。备选地或附加地,用户接口104可以被配置为接收用户输入。例如,用户接口104可以允许装置100的用户手动输入指令、数据或信息。在这些实施例中,处理器102可以被配置为从一个或多个用户接口104获取用户输入。
33.用户接口104可以是能够向装置100的用户呈现(或输出或显示)信息的任何用户接口。备选地或附加地,用户接口104可以是使装置100的用户能够提供用户输入、与装置100交互和/或控制装置100的任何用户接口。例如,用户接口104可以包括一个或多个开关、一个或多个按钮、小键盘、触摸屏或应用(例如平板电脑或智能电话上)、显示屏、图形用户接口(gui)或其它视觉渲染部件,一个或多个扬声器、一个或多个麦克风或任何其它音频部件、一个或多个灯、提供触觉反馈(例如振动功能)的部件或任何其它用户接口或用户接口的组合。
34.在一些实施例中,装置100可以包括存储器106。备选地或附加地,一个或多个存储器106可以位于装置100外部(即与装置100分离或远离装置100)。例如,一个或多个存储器106可以是另一设备的一部分。存储器106可以被配置为存储可以由处理器102执行以执行本文所述方法的程序代码。存储器可以用于存储由装置100的处理器102获取或创建的信息、数据、信号和测量。例如,存储器106可以用于存储(例如在本地文件中)菜肴标识符的参考集合。处理器102可以被配置为控制存储器106存储菜肴标识符的参考集合。
35.在一些实施例中,装置100可以包括通信接口(或电路)108,用于使装置100能够与装置100内部或外部的任何接口、存储器和/或装置通信。通信接口108可以无线地或经由有线连接与任何接口、存储器和/或设备通信。例如,通信接口108可以无线地或经由有线连接与一个或多个用户接口104通信。类似地,通信接口108可以无线地或经由有线连接与一个或多个存储器106通信。
36.应当理解的是,图1仅示出说明装置100的一个方面所需的部件,并且在实际实施中,装置100可以包括所示部件的备选部件或附加部件。
37.图2示出根据一个实施例的基于图像的菜肴识别计算机实现方法。所示的方法一般可以由装置100的处理器102执行或在处理器102的控制下执行。
38.参见图2,在框202处,获取描绘待识别菜肴的第一图像。更具体地,第一图像可以由装置100的处理器102获取。第一图像可以从装置100的存储器106获取,或者从外部存储器或数据库获取。例如,第一图像可以从装置100外部的成像设备(例如相机)的存储器获取。用户可以在食用之前拍摄菜肴的照片,然后可以将照片传送至装置100的处理器102以执行菜肴识别。
39.返回图2,在框204处,使用预测模型分析在框202处获得的第一图像,以确定第一候选主题。更具体地,第一图像可以由装置100的处理器102获取。第一候选主题包括多个候选菜肴标识符,每个候选菜肴标识符与候选菜肴相关联,候选菜肴标识符中的一个是与最能代表第一候选主题的候选菜肴相关联的形心菜肴标识符。在一些实施例中,第一候选主题中的多个候选菜肴标识符可以表示彼此相似的菜肴。在一些实施例中,预测模型可以是以下至少一个:卷积神经网络、残差神经网络和密集神经网络。
40.如下文中将进一步详细描述的,在框204处确定第一候选主题可以包括使用预测模型从多个参考主题中选择第一候选主题。更详细地,在多个参考主题中,处理器102可以被配置为选择具有最可能是第一图像描绘的菜肴的候选菜肴的主题。附加地或备选地,处理器102可以被配置为选择具有最可能是第一图像描绘的菜肴的形心菜肴的主题。
41.返回图2,在框206处,获取菜肴标识符的参考集合。更具体地,菜肴标识符的参考集合可以由装置100的处理器102获取。如将在下文中更详细地说明的,在一些实施例中,该方法还可以包括获取多个食谱的步骤,其中,多个食谱中的每一个包括:菜肴标识符、多个食物成分以及一个或多个烹饪指令。在这些实施例中,菜肴标识符的参考集合可以从多个获得的食谱中获取,即从至少一些获得的食谱中提取菜肴标识符。
42.返回图2,在框208处,针对在框206获得的参考集合中的每个菜肴标识符,计算关联分数。更具体地,参考集合中每个菜肴标识符的关联分数可以由装置100的处理器102计算。菜肴标识符的关联分数指示由相应的菜肴标识符表示的菜肴与第一候选主题之间相似度。
43.在一些实施例中,参考集合中每个菜肴标识符的关联分数可以基于余弦相似度度量来计算。在这些实施例中,该方法还可以包括基于与相应菜肴标识符相关联的食谱中一个或多个语义关键词(例如菜肴标识符本身及其别名/同义词、食物成分和指令)的相关出现频率,确定参考集合中每个菜肴标识符的矢量。该方法还可以包括基于与第一候选主题中的候选菜肴标识符相关联的食谱中相同的一个或多个语义关键词在食谱中的相关出现频率,确定第一候选主题的矢量。备选地,该方法可以包括基于与第一候选主题中的形心菜肴标识符相关联的食谱中相同的一个或多个语义关键词在食谱中的相关出现频率,确定第一候选主题的矢量。
44.因此,由相应的菜肴标识符表示的菜肴与第一候选主题之间的相似度可以基于参考集合中相应菜肴标识符的矢量与第一候选主题的矢量之间的接近距离来计算,或者基于参考集合中相应菜肴标识符的矢量与第一候选主题的矢量之间的角度来计算。
45.返回图2,在框210处,选择参考集合中具有最高关联分数的一个或多个菜肴标识符作为第一候选主题的一个或多个变体菜肴标识符。更具体地,参考集合中具有最高关联分数的一个或多个菜肴标识符可以由装置100的处理器102选择,作为第一候选主题的一个或多个变体菜肴标识符。
46.在一些实施例中,选择参考集合中的一个或多个菜肴标识符作为第一候选主题的一个或多个变体菜肴标识符可以基于关联分数的预定阈值和待选择菜肴标识符的预定数量中的至少一个执行。例如,处理器102可以被配置为或者仅选择关联分数超过预定阈值的菜肴标识符,或者仅选择参考集合的所有菜肴标识符中关联分数最高的四个菜肴标识符,或者仅选择参考集合的所有菜肴标识符中关联分数最高的四个菜肴标识符且假定这四个菜肴标识符的关联分数均超过预定阈值。
47.返回图2,在框212处,输出第一候选主题的形心菜肴标识符和第一候选主题的一个或多个变体菜肴标识符。更具体地,第一候选主题的形心菜肴标识符和一个或多个变体菜肴标识符可以在处理器102的控制下经由装置100的用户接口104(例如显示屏)输出。
48.在一些实施例中,在框212处输出第一候选主题的形心菜肴标识符和第一候选主题的一个或多个变体菜肴标识符包括:显示第一候选主题,并且在接收到扩展第一候选主题的用户输入时,显示第一候选主题的形心菜肴标识符和第一候选主题的一个或多个变体菜肴标识符。在这些实施例中,第一候选主题的形心菜肴标识符可以显示在第一候选主题的一个或多个变体菜肴标识符上方。此外,在这些实施例中,第一候选主题的一个或多个变体菜肴标识符可以按照相应的关联分数降序显示。
49.虽然图2中未示出,但在一些实施例中,该方法还可以包括使用预测模型分析在框202处获得的第一图像,以确定一个或多个附加候选主题,并且输出一个或多个附加候选主题。每个附加候选主题可以包括多个候选菜肴标识符,每个候选菜肴标识符与候选菜肴相关联。此外,对于每个附加候选主题,候选菜肴标识符中的一个可以是最能代表相应候选主题的形心菜肴标识符。在这些实施例中,用于确定一个或多个附加候选主题的预测模型可以与用于在框204处确定第一候选主题的预测模型相同。在一些实施例中,装置100的处理器102可以被配置为确定附加候选主题的预定数量或附加候选主题的最大预定数量。
50.在一些实施例中,输出一个或多个附加候选主题中的每一个可以包括输出相应附加候选主题的形心菜肴标识符和相应附加候选主题的一个或多个变体菜肴标识符。在一些实施例中,输出一个或多个附加候选主题中的每一个可以包括显示相应附加候选主题,并且在接收到扩展相应附加候选主题的用户输入时,显示相应附加候选主题的形心菜肴标识符和相应附加候选主题的一个或多个变体菜肴标识符。图3a和图3b中示出与一个或多个附加候选主题一起输出的第一候选主题的示例。
51.在方法包括使用预测模型分析第一图像,以确定一个或多个附加候选主题的一些实施例中,该方法还可以包括针对一个或多个附加候选主题中的每一个执行以下步骤:针对参考集合中的每个菜肴标识符,计算指示由相应的菜肴标识符表示的菜肴与相应附加候选主题之间相似度的关联分数;选择参考集合中具有最高关联分数的一个或多个菜肴标识符作为相应附加候选主题的一个或多个变体菜肴标识符;以及输出相应附加候选主题的形心菜肴标识符和相应附加候选主题的一个或多个变体菜肴标识符。在这些实施例中,参考集合中每个菜肴标识符的关联分数可以基于余弦相似度度量来计算。
52.虽然图2中未示出,但在一些实施例中该方法还可以包括使用预测模型确定第一候选主题和一个或多个附加候选主题的排序。在这些实施例中,排序可以指示相应候选主题的形心菜肴与在框202处获得的第一图像描绘的菜肴之间递减的相似度。此外,在这些实施例中,该方法还可以包括基于所确定的排序,显示第一候选主题和一个或多个附加候选
主题。图3a和图3b示出所确定的第一候选主题和一个或多个附加候选主题的排序示例。
53.虽然图2中未示出,但在一些实施例中,该方法还可以包括获取多个食谱。多个食谱中的每一个包括:菜肴标识符、多个食物成分以及一个或多个烹饪指令。菜肴标识符、多个食物成分和一个或多个烹饪指令可以以标记或未标记格式提供和/或存储(例如在存储器106中)。标记格式的示例包括可扩展标记语言(xml)和javascript对象符号(json),未标记格式的示例包括定界纯文本、正则表达式和电子表格。
54.在获取多个食谱的步骤之后,该方法还可以包括从获得的多个食谱中选择食谱的核心子集,以及基于以下至少一个,计算核心子集中各食谱之间的相似度分数:两个食谱的菜肴标识符之间的相似度、两个食谱的食物成分之间的相似度,以及两个食谱的烹饪指令之间的相似度。随后,该方法可以包括基于多个食谱的相似度分数,将多个食谱聚类为多个参考主题,以及针对多个参考主题中的每个主题,选择形心食谱。选定食谱的菜肴标识符是相应参考主题的形心菜肴标识符。在这一点上,可以执行食谱选择,从而将与相应参考主题的平均中心具有最高余弦相似度的食谱选择为形心食谱。备选地,可以执行食谱选择,从而将与相应参考主题的平均中心具有最小接近距离的食谱选择为形心食谱。此外,在这些实施例中,在框204处确定第一候选主题可以包括从多个参考主题中选择第一候选主题。
55.在这些实施例中,计算核心子集中各食谱之间的相似度分数可以基于余弦相似度度量执行。获得的多个食谱中的每一个可以用矢量表示,该矢量是基于食谱中一个或多个语义关键词(例如食谱的菜肴标识符及其别名/同义词、食物成分和指令)的相关出现频率来确定的(例如由装置100的处理器102确定)。多个食谱中两个食谱之间的相似度分数可以由对应于两个食谱的两个矢量之间的角度来表示。在这些实施例中,计算的核心子集中各食谱之间的相似度分数可以针对不相关的通用关联来调整。此外,在这些实施例中,相似度分数的计算可以至少基于两个食谱的食物成分的相似度执行。在这种情况下,计算的核心子集中各食谱之间的相似度分数可以针对食谱的总重量中食物成分的比例来调整(矢量化和比例加权的项频率

逆文档频率度量)。
56.作为示例,如参照图1所描述的,可以从食谱数据库获取多个食谱。在该示例中,食谱数据库可以包括与多个菜肴n相关联的食谱,并且每个菜肴n与由l(n)个项构成的相应结构化文本描述相关联。从该食谱数据库中可以提取项(或关键词)的总数m。对于n个菜肴中的每个菜肴n,项m的出现计数是f(n,m),因此,菜肴n中项m的分数项频率是f(n,m)/l(n)。项m也出现在n’(m)/n个菜肴的结构化文本描述中,其中,不对与单个菜肴相关联的结构化文本描述中的重复进行计数。因此,项m的分数文档频率是n’(m)/n。因此,相关项频率t(n,m)(即“项频率反文档频率(tf

idf)”)可以根据以下公式从原始分数项频率针对文档频率进行调整:
[0057][0058]
这样,每个菜肴n具有带有tf

idf值且长度为m的项矢量。
[0059]
任意两个菜肴n1、n2的项矢量之间的余弦相似度值可以使用以下公式确定:
[0060]
[0061]
其中,w
m
表示根据例如食谱的总重量中食物成分的比例得到的项的重要性加权。在这种情况下,两个矢量彼此越接近,余弦相似度值越大。
[0062]
在这些实施例中,选择与相应参考主题具有最高余弦相似度的食谱作为形心食谱可以基于相似度度量和接近距离度量中的至少一个执行。例如,具有最大相似度度量(即表示食谱的矢量与相应参考主题的矢量之间的最小角度)的食谱可以被选作形心食谱。作为另一示例,具有最小接近距离度量的食谱可以被选作形心食谱。接近距离度量可以由接近度值d表示。更详细地,任意两个菜肴n1、n2(与相应食谱相关联)的项矢量之间的接近度值d(n1,n2)可以使用以下公式确定:
[0063][0064]
接近度值与余弦相似度值相反,即两个矢量彼此越接近,接近度值越小。此外,在这些实施例中,该方法还可以包括确定多个食谱中每个食谱的流行度分数。食谱的流行度分数可以指示食谱的流行度或普遍度。例如,食谱的流行度分数可以基于互联网搜索引擎或烹饪网站或食物/膳食订单服务网站返回的相应菜肴全名的搜索结果计数来确定。在这些实施例中,选择食谱的核心子集可以基于多个食谱的流行度分数执行。例如,食谱的核心子集可以包括流行度分数高于预定阈值的食谱。作为另一示例,食谱的核心子集可以包括流行度分数最高的预定数量(例如流行度分数最高的200个)食谱。
[0065]
在一些实施例中,多个食谱可以由装置100的处理器102获取。另外,在一些实施例中,可以从食谱数据库获取多个食谱。例如,结构化食谱数据库可以存储在装置100的存储器106中,并且处理器102可以从存储器106获取多个食谱。食谱数据库可以被配置为使得可以引入新食谱,以持续扩大食谱数据库。此外,如上所述,在这些实施例中,在框206处获取菜肴标识符的参考集合可以包括从所获得的多个菜肴中提取菜肴标识符。
[0066]
如上所述,在一些实施例中该方法还可以包括计算核心子集中各食谱之间的相似度分数。在这些实施例中,计算核心子集中各食谱之间的相似度分数可以基于以下至少一个的一个或多个同义词执行:两个食谱的菜肴标识符、多个食物成分以及烹饪指令。以下至少一个的一个或多个同义词:食谱的菜肴标识符、多个食物成分以及烹饪指令,可以从存储在存储器106中的同义词词典中获取或者由处理器102检索得到。同义词词典可以包括烹饪术语的同义词,诸如食物成分、特色风味、烹饪方法和烹饪风格等。
[0067]
在一些实施例中,除了菜肴标识符(这里称为“原始菜肴标识符”)之外,所获得的多个食谱中的每一个还可以包括一个或多个等效菜肴标识符。一个或多个等效菜肴标识符可以是原始菜肴标识符的同义词,因为特定菜肴可以根据诸如区域的不同因素采用不同的名称。例如,原始菜肴标识符为“cheese omelet(奶酪煎蛋饼)”的菜肴可以具有诸如“cheese omelette”和“omelette du fromage”的等效菜肴标识符。在这些实施例中,计算核心子集中各食谱之间的相似度分数可以基于原始菜肴标识符以及至少一个等效菜肴标识符执行。
[0068]
如上所述,在一些实施例中该方法还可以包括将多个食谱聚类为多个参考主题。更详细地,彼此具有低协方差或高相似度(用相似度分数表示)的食谱可以被聚类为多个参考主题。在这些实施例中,聚类过程可以基于k均值聚类或奇异值分解执行。
[0069]
虽然图2中未示出,但该方法还可以包括针对多个参考主题中的每个主题,基于相
应参考主题的食谱确定多个关键词。在这些实施例中,多个关键词中的每一个可以与烹饪技术和食物成分中的至少一个相关联。多个关键词可以从与选定参考主题的形心菜肴相关联的食谱中提取。
[0070]
如上所述,在一些实施例中,该方法还可以包括将多个食谱聚类为多个参考主题。在这些实施例中,该方法还可以包括选择多个参考主题中的一个,基于选定参考主题的形心菜肴标识符和选定参考主题的多个关键词中的至少一个,获取第二图像,以及基于第二图像和选定参考主题,训练预测模型。在这些实施例中,预测模型可以基于使用选定参考主题作为标记的地面实况来训练。预测模型还可以基于第二图像和选定参考主题进一步验证。应当理解的是,可以基于选定参考主题的形心菜肴标识符和选定参考主题的多个关键词中的至少一个获取多于一个第二图像,并且训练预测模型可以基于这些第二图像和选定参考主题中的多于一个执行。
[0071]
在这些实施例中,获取第二图像可以包括基于在互联网搜索引擎中使用多个关键词和/或选定参考主题的形心菜肴标识符中的至少一个的图像搜索来检索第二图像。例如,第二图像可以是与作为搜索关键词的形心菜肴标识符高度相关的图像。在这种情况下,第二图像将增加训练预测模型时的主题内多样性。另外,搜索可以以适当的包容性进行。例如,可以使用单个关键词的全词匹配或不同关键词的组合。更详细地,在中文文本的情况下,关键词可以由多于一个的没有分隔符的中文字符组成。在这种情况下,全词匹配是指整个关键词(即关键词中的每个汉字)的匹配,而不仅仅是关键词的一部分(即关键词中仅一些汉字)的匹配。
[0072]
虽然图2中未示出,但该方法还可以包括接收选择菜肴标识符的用户输入。在一些实施例中,用户能够从输出的形心菜肴标识符和第一候选主题的一个或多个变体菜肴标识符中进行选择。此外,在针对一个或多个附加候选主题输出候选主题和一个或多个变体菜肴标识符的实施例中,用户能够从这些输出的菜肴标识符中进行选择。由用户选择的菜肴标识符可以存储(例如在装置100的存储器106中)以用于用户的饮食分析目的和/或饮食的历史记录。
[0073]
图3a和图3b示出根据一个实施例,在显示器上分别以第一状态和第二状态输出的第一候选主题和多个附加候选主题。
[0074]
图3a和图3b中示出的输出可以在图1的装置100的用户接口104处执行。更详细地,该输出可以在以下步骤之后执行:处理器102已经确定第一候选主题和多个附加候选主题,已经计算出参考集合中每个菜肴标识符与每个候选主题的关联分数,已经选定用于第一候选主题和多个附加候选主题中每一个的变体菜肴标识符,并且已经确定第一候选主题和多个附加候选主题的排序。在该实施例中,排序指示相应候选主题的形心菜肴与第一图像描绘的菜肴之间递减的相似度。
[0075]
如图3a所示,在第一状态下,第一候选主题31(“候选主题a”)与三个附加候选主题32、33、34(“候选主题b”、“候选主题c”和“候选主题d”)及其确定的相应排序一起显示。此外,以确定相应候选主题的排序降序显示候选主题。图3a可以被视为候选主题31、32、33、34的初始输出阶段示例。
[0076]
在接收到(例如经由用户接口104)扩展候选主题31、32、33、34中任何一个的用户输入时,还显示候选主题的形心菜肴标识符和候选主题的一个或多个变体菜肴标识符。在
该实施例中,用户可以通过点击相应候选主题的倒三角图标来选择一个候选主题进行扩展。
[0077]
用户选择第一候选主题31进行扩展,由此启动从第一状态到第二状态的过渡的一个示例在图3b中示出。接收到该特定用户输入后,第一候选主题31的形心菜肴标识符310以及第一变体菜肴标识符311、第二变体菜肴标识符312、第三变体菜肴标识符313和第四变体菜肴标识符314显示在第一候选主题31的候选主题标识符下方。更具体地,形心菜肴标识符310显示在变体菜肴标识符311、312、313、314上方(作为候选主题的默认选项)。此外,在该实施例中,第一候选主题31的第一到第四变体菜肴标识符311、312、313、314按照其相应的关联分数降序显示。
[0078]
这样,可以向用户呈现基于图像的菜肴识别结果的两级格式。具体地,向用户提供描绘第一状态下的待识别菜肴的第一图像的候选主题概览,同时,如果需要的话,向用户提供选项以查看候选主题的形心菜肴和变体菜肴。在该实施例中,还可以通过点击对应于已扩展候选主题的三角形图标“最小化”候选主题,从而从第二状态返回到第一状态。
[0079]
因此,提供了一种克服了现有问题的基于图像的菜肴识别改进方法和装置。
[0080]
还提供了一种包括计算机可读介质的计算机程序产品,计算机可读介质中储存有计算机可读代码,计算机可读代码被配置为当在合适的计算机或处理器上执行时,使得计算机或处理器执行本文所述的一种或多种方法。因此,应当理解的是,本公开同样适用于计算机程序,特别是载体上或载体中的适用于将本公开实施例投入实践的计算机程序。程序可以是源代码、目标代码、代码中间源和诸如部分编译形式的目标代码的形式,或者适合于在本文描述的根据实施例的方法的实施方式中使用的任何其它形式。
[0081]
还应当理解的是,此类程序可以具有许多不同的架构设计。例如,实现所述方法或系统的功能的程序代码可以被细分为一个或多个子例程。功能在这些子例程之间的多种不同分布方式对于本领域技术人员来说将是明显的。子例程可以一起存储在一个可执行文件中以形成自包含程序。这种可执行文件可以包括计算机可执行指令,例如处理器指令和/或解释器指令(例如java解释器指令)。备选地,一个或多个或全部子例程可以存储在至少一个外部库文件中,并且例如在运行期间静态地或动态地与主程序链接。主程序包含对至少一个子例程的至少一个调用。子例程还可以包括对彼此的函数调用。
[0082]
涉及计算机程序产品的一个实施例包括与本文阐述的至少一种方法的每个处理阶段相对应的计算机可执行指令。这些指令可以细分为子例程和/或存储在可静态或动态链接的一个或多个文件中。涉及计算机程序产品的另一实施例包括与本文阐述的至少一种系统和/或产品的每个装置相对应的计算机可执行指令。这些指令可以细分为子例程和/或存储在可静态或动态链接的一个或多个文件中。
[0083]
计算机程序的载体可以是能够携带该程序的任何实体或设备。例如,载体可以包括数据存储器,诸如rom,例如cdrom或半导体rom,或者磁记录介质,例如硬盘。此外,载体可以是可传输载体,诸如电信号或光信号,其可以经由电缆或光缆或无线电或其它手段来传送。当程序包含在这种信号中时,载体可以由此类电缆或其它设备或装置构成。备选地,载体可以是嵌入程序的集成电路,该集成电路适用于执行相关方法或在相关方法的执行中使用。
[0084]
在实践所要求保护的发明的过程中,通过学习附图、公开内容及所附权利要求,本
领域技术人员对于所公开实施例的变型是可以理解并实现的。在权利要求中,“包括”一词不排除其它元件或步骤,不定冠词“一”或“一个”不排除多个。单个处理器或其它单元可以满足权利要求中所述的多项功能。某些措施被记载在相互不同的从属权利要求中的事实不指示这些措施的组合不能被用于获得优势。计算机程序可以存储/分布在适当的介质上,例如与硬件一起提供或作为其它硬件一部分提供的光存储介质或固态介质,但是也可以以其它形式分布,例如经由因特网或其它有线或无线远程通信系统。权利要求中的任何附图标记不应理解为限制其范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献