CN113194792A - 用于采集和注释烹饪图像以训练智能烹饪器具、定位智能烹饪器具中的食物以及确定智能烹饪器具中的食物的烹饪进度的系统和方法 - Google Patents
用于采集和注释烹饪图像以训练智能烹饪器具、定位智能烹饪器具中的食物以及确定智能烹饪器具中的食物的烹饪进度的系统和方法 Download PDFInfo
- Publication number
- CN113194792A CN113194792A CN201880100142.1A CN201880100142A CN113194792A CN 113194792 A CN113194792 A CN 113194792A CN 201880100142 A CN201880100142 A CN 201880100142A CN 113194792 A CN113194792 A CN 113194792A
- Authority
- CN
- China
- Prior art keywords
- image
- food
- cooking
- images
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
-
- A—HUMAN NECESSITIES
- A47—FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
- A47J—KITCHEN EQUIPMENT; COFFEE MILLS; SPICE MILLS; APPARATUS FOR MAKING BEVERAGES
- A47J36/00—Parts, details or accessories of cooking-vessels
- A47J36/32—Time-controlled igniting mechanisms or alarm devices
- A47J36/321—Time-controlled igniting mechanisms or alarm devices the electronic control being performed over a network, e.g. by means of a handheld device
-
- A—HUMAN NECESSITIES
- A47—FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
- A47J—KITCHEN EQUIPMENT; COFFEE MILLS; SPICE MILLS; APPARATUS FOR MAKING BEVERAGES
- A47J37/00—Baking; Roasting; Grilling; Frying
- A47J37/04—Roasting apparatus with movably-mounted food supports or with movable heating implements; Spits
- A47J37/041—Roasting apparatus with movably-mounted food supports or with movable heating implements; Spits with food supports rotating about a horizontal axis
-
- A—HUMAN NECESSITIES
- A47—FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
- A47J—KITCHEN EQUIPMENT; COFFEE MILLS; SPICE MILLS; APPARATUS FOR MAKING BEVERAGES
- A47J37/00—Baking; Roasting; Grilling; Frying
- A47J37/06—Roasters; Grills; Sandwich grills
- A47J37/0623—Small-size cooking ovens, i.e. defining an at least partially closed cooking cavity
- A47J37/0629—Small-size cooking ovens, i.e. defining an at least partially closed cooking cavity with electric heating elements
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F24—HEATING; RANGES; VENTILATING
- F24C—DOMESTIC STOVES OR RANGES ; DETAILS OF DOMESTIC STOVES OR RANGES, OF GENERAL APPLICATION
- F24C7/00—Stoves or ranges heated by electric energy
- F24C7/08—Arrangement or mounting of control or safety devices
- F24C7/081—Arrangement or mounting of control or safety devices on stoves
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B13/00—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
- G05B13/02—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
- G05B13/0265—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric the criterion being a learning criterion
- G05B13/027—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric the criterion being a learning criterion using neural networks only
-
- H—ELECTRICITY
- H05—ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
- H05B—ELECTRIC HEATING; ELECTRIC LIGHT SOURCES NOT OTHERWISE PROVIDED FOR; CIRCUIT ARRANGEMENTS FOR ELECTRIC LIGHT SOURCES, IN GENERAL
- H05B1/00—Details of electric heating devices
- H05B1/02—Automatic switching arrangements specially adapted to apparatus ; Control of heating devices
- H05B1/0227—Applications
- H05B1/0252—Domestic applications
- H05B1/0258—For cooking
- H05B1/0261—For cooking of food
- H05B1/0263—Ovens
-
- A—HUMAN NECESSITIES
- A47—FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
- A47J—KITCHEN EQUIPMENT; COFFEE MILLS; SPICE MILLS; APPARATUS FOR MAKING BEVERAGES
- A47J2202/00—Devices having temperature indicating means
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/26—Pc applications
- G05B2219/2643—Oven, cooking
Landscapes
- Engineering & Computer Science (AREA)
- Food Science & Technology (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- General Engineering & Computer Science (AREA)
- Mechanical Engineering (AREA)
- Combustion & Propulsion (AREA)
- Chemical & Material Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Image Analysis (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本文所公开的方法和系统提出一种食物制备系统,该食物制备系统提供了对用户友好的数据采集和数据注释过程,该过程利用来源于人群的数据来降低与使用专用烹饪实验和专业人工注释工作开发广泛的训练集相关的高昂成本。本文公开了一种用于定位食物并确定食物在食物制备系统所捕获的图像中的轮廓的方法和系统。本文公开了一种用于评估食物制备系统中的食物的各自烹饪进度和/或整体烹饪进度的方法和系统。
Description
技术领域
本公开涉及烹饪器具领域,尤其涉及用于采集和注释烹饪图像以训练智能烹饪器具的的系统和方法,涉及用于训练烹饪器具和/或相关服务器以确定烹饪器具中的食物的烹饪进度水平的系统和方法,以及涉及用于训练智能烹饪器具和/或相关服务器以确定烹饪器具中的食物的位置和勾画食物的轮廓的系统和方法。
背景技术
传统食物制备系统,例如微波炉、火炉、烤箱、电炊具、炉灶和蒸笼等,依赖于烹饪温度和烹饪持续时间参数的手动输入。这些传统系统要求用户拥有关于不同食物应该如何加热和烹饪到合适的熟度但不破坏食物的安全性和风味要求的大量知识和经验。一些更新型号的电食物制备系统允许用户从几个预设食物选项中进行选择,并根据用户的选择来调节烹饪时间和功率水平。然而,这种预设选择菜单对于用户可能希望烹饪的多个食物来说太有限,或者太粗放,使得难以提供指导。
一些研究者建议使用人工智能和深度学习技术来基于食物的图像自动识别和定位食物和成分。然而,由于可用食物的数量大,不同形式的食物可用于不同的食谱,且在不同的条件下捕获图像,导致识别结果非常差。此外,食物成分和烹饪食谱的数量有成百上千种,且人工智能和深度学习模型的训练需要大量的注释训练数据,使得这些解决方案难以在纯学术研究的设置范围之外部署。
此外,即使当训练图像可用时,设计合适的图像处理方法或数据处理流水线以确定智能烹饪器具内的食物的身份和/或烹饪状态这个问题,在预测精度、模型尺寸、训练效率和/或运行速度方面非常有挑战性。
由于这些原因,需要用于采集和注释智能烹饪器具和训练图像处理模型的训练数据,控制烹饪器具的功能,以及帮助用户使用烹饪器具和与烹饪器具进行交互的改进的方法和系统。
发明内容
如背景技术中讨论的,需要用于采集和注释智能烹饪器具和训练图像处理模型的训练数据,控制烹饪器具的功能,以及帮助用户使用烹饪器具和与烹饪器具进行交互的改进的方法和系统。
有利的是具有一种数据采集和注释方法以及用户界面,该数据采集和注释方法以及用户界面易于使用,可应用于多个食物,且在采集和处理大量数据方面较为有效。从大量用户采集的注释的训练数据可用于训练各个图像处理模型以确定食物身份、食物位置和轮廓以及烹饪进度水平,这样进一步用于向用户提供实时反馈和/或自动控制烹饪进度。此外,需要改进的方法和系统来确定用于多个食物的智能烹饪器具中的烹饪进度,以允许用户接收实时反馈和/或自动控制烹饪功能。此外,改进的图像处理方法或数据处理流水线用于确定智能烹饪器具内的食物的身份、位置、轮廓和/或烹饪进度水平,提供更好的预测精度、更小的模型尺寸、更好的训练效率和/或更快的运行速度。
基于本文所述的方法和系统,可解决或减少与传统食物制备系统相关的许多问题。传统食物制备系统要求用户拥有大量烹饪知识和经验,以成功地制备烹饪食物。此外,烹饪通常需要用户监控食物并监督烹饪过程,监控和监督可能比较冗长和耗时。因此,需要一种食物制备系统,该食物制备系统可给忙碌和/或不熟练的用户提供指导和/或监控食物在被烹饪时的进度,以减少用户成功烹饪食物所需的经验量和注意力。
此外,重要的是提供易于实现和简单的数据采集和数据注释方法和系统,该方法和系统可有助于普通家庭烹饪提交他们的烹饪图像并有助于注释工作,且对于专业注释专家编辑和查看注释数据较为有效。本文所公开的方法和系统提供了一种食物制备系统,该食物制备系统提供了对用户友好的数据采集和数据注释过程,该过程利用来源于人群的数据来降低与使用专用烹饪实验和专业人工注释工作开发广泛的训练集相关的高昂成本。食物制备系统和相应的方法采集一种或多种数据类型(例如结构化数据和非结构化数据,结构化数据例如温度和重量数据,以及非结构化数据例如图像和热图),并允许(例如,由用户、技术人员和/或专家)注释所采集的数据,以提供关于烹饪过程的信息(例如,使温度、重量、热量分布和/或食物外观与烹饪过程的进度相关),以及食物身份、位置和/或轮廓信息。利用图像处理和用户输入的组合来创建识别食物(例如,确定存在哪些食物以及相应的食物位于智能烹饪器具中的哪个位置)和确定烹饪进度(例如,确定食物是否未充分烹饪、完全烹饪、过度烹饪等)的模型。利用用户输入和社会网络给食物制备系统创建来源于人群的训练集数据库,并规避开发训练数据集的成本高昂的方式。
另外,本文公开了用于评估食物制备系统中的食物个体和/或整体的烹饪进度的方法和系统。用于评估食物的烹饪进度的方法依赖于可靠的注释数据,例如使用上面简要概述的过程采集和注释的数据,以向用户提供实时反馈和指导。所公开的方法和系统允许同时烹饪和独立监控不同类型的食物。此外,方法和系统受到具体训练以利用差异特征张量来优化确定食物烹饪进度的精确度,该差异特征张量将食物烹饪进度与烹饪过程开始时食物的基线图像进行比较。在烹饪进度水平确定模型中,降低了由于存在不同的食物和/或相同类型的食物(其外观和一致性轻微变化)而导致的噪声和平均效应,从而使得对烹饪进度水平进行评估的精确度更好。
另外,本文公开了一种用于定位食物和确定食物在食物制备系统所捕获的图像中的轮廓的方法和系统。该方法依赖于使用上面简要概述的过程采集和注释的可靠的注释数据,以确定食物的位置和轮廓,该方法具有比传统方法更高的精确度,原因是食物身份和食物的烹饪进度水平提供附加约束。一旦在烹饪器具所捕获的测试图像中确定食物位置和轮廓,则食物位置和轮廓信息可用于提取测试图像的多个部分,以使用专用烹饪进度确定模型来独立确定食物的烹饪进度水平,该专用烹饪进度确定模型使用所采集的注释的训练数据来单独训练。确定烹饪进度水平的这一附加步骤更精确,且更不容易在烹饪器具中的成像条件下或图像中产生噪声。通过在确定烹饪进度水平之前执行的位置和轮廓确定,所公开的方法和系统允许不同类型的食物被同时烹饪和独立监控,并改善烹饪器具的功能和用户的便利性。
在一个方面,根据一些实施例,一种方法由计算系统执行,计算系统与烹饪器具通信地耦合并被配置成控制烹饪器具的一个或多个功能。烹饪器具包括:食物支撑平台,被配置成支撑食物;一个或多个第一传感器,用于捕获结构化数据;一个或多个第二传感器,用于捕获非结构化数据;以及一个或多个加热单元,被配置成在烹饪器具操作期间加热放置在食物支撑平台上的食物。结构化数据包括在烹饪器具操作期间对应于食物的温度数据。非结构化数据包括在烹饪器具操作期间对应于食物的图像数据。计算系统包括一个或多个处理器和存储指令的存储器,指令用于执行该方法。该方法包括:激活一个或多个第一传感器和一个或多个第二传感器,以在烹饪器具中的第一烹饪过程期间捕获第一烹饪数据。激活一个或多个第一传感器和一个或多个第二传感器包括在第一烹饪过程期间捕获一系列温度值以及一系列图像,其中一系列温度值中的每一个温度值和一系列图像中的每一个图像由各自的时间戳记录。该方法进一步包括:经由耦合到计算系统的显示生成组件,在第一注释用户界面中显示一系列图像的至少一个子集。第一注释用户界面包括:根据第一烹饪过程的时间线显示的一系列图像的子集中的每一个图像;和多个输入区域,用于指定一系列图像的子集中的食物的相应烹饪进度水平。该方法进一步包括:在接收第一用户输入之后,对具有对应温度数据和第一用户输入所指定的烹饪进度水平的图像子集进行分组,第一用户输入指定一系列图像的子集中的食物的相应烹饪进度水平;和将具有对应温度数据和烹饪进度水平的图像子集发送到训练数据语料库的服务器,以用于训练智能烹饪器具。
在另一方面,根据一些实施例,一种在智能烹饪器具中定位食物的方法在计算机系统处执行,计算机系统具有一个或多个处理器和存储器并通信地耦合到至少第一烹饪器具。该方法包括:获取多个训练图像,多个训练图像中的每一个训练图像包含一个或多个食物类型的相应食物;获取对应于多个训练图像中的每一个训练图像所包括的每一个食物的相应注释数据,其中所述每一个训练图像中的所述每一个食物的相应注释数据包括对应于所述每一个食物的相应食物类型的食物类型标签、对应于所述每一个图像内的所述每一个食物的相应位置的一组位置坐标、对应于所述每一个图像内的所述每一个食物的相应边界的轮廓的描述、以及对应于所述每一个图像中所表示的所述每一个食物的烹饪进度水平标签;和使用多个训练图像,以相应注释数据作为地面真值,来训练图像处理模型,其中图像处理模型包括多个特征提取层、区域建议网络和评估网络,并且其中,评估网络具有四个预测头,这四个预测头对应于(1)食物类型、(2)位置坐标、(3)轮廓和(4)在输入图像中识别的相应食物的烹饪进度水平。
在另一方面,根据一些实施例,一种确定食物的烹饪进度水平的方法在计算机系统处执行,计算机系统具有一个或多个处理器和存储器。计算机系统通信地耦合到至少第一烹饪器具。该方法包括:获取对应于第一烹饪器具内的第一食物的初始烹饪进度水平的第一基线图像;获取对应于第一烹饪器具内的第一食物的当前烹饪进度水平的第一测试图像;生成对应于第一测试图像的第一测试特征张量,其中生成对应于第一测试图像的第一测试特征张量包括:获取对应于第一基线图像的第一基线特征张量,第一基线特征张量使用第一特征提取模型从第一基线图像提取;使用第一特征提取模型提取对应于第一测试图像的相应特征张量;和基于对应于第一测试图像的相应特征张量与对应于第一基线图像的第一基线特征张量之间的差来计算差异特征张量,其中差异特征张量用作对应于第一测试图像的第一测试特征张量;和使用第一测试特征张量作为烹饪进度确定模型的输入,来确定第一烹饪器具内的第一食物的当前烹饪进度水平,烹饪进度确定模型已针对对应于第一食物的实例的训练图像的差异特征张量以各种烹饪进度水平来训练。
根据一些实施例,一种计算系统包括处理器和存储指令的存储器,指令在被执行时使一个或多个处理器执行本文所述的方法。根据一些实施例,一种电子设备包括一个或多个处理器,以及存储一个或多个程序的存储器;一个或多个程序被配置成由一个或多个处理器执行,且一个或多个程序包括用于执行或使得能够执行本文所述的任何方法的操作的指令。根据一些实施例,一种非暂时性计算机可读存储介质中存储有指令,指令在由电子设备执行时,使该设备执行或使得该设备能够执行本文所述的任何方法的操作。根据一些实施例,一种电子设备包括:用于捕获图像的装置;用于加热食物的装置;以及用于执行或使得能够执行本文所述的任何方法的操作的装置。
根据下面的描述,所公开的技术方案的各种优点显而易见。
附图说明
由于在结合附图时对优选实施例的详细描述,下文将更清楚地理解所公开的技术的上述特征和优点及其附加特征和优点。
为了更清楚地描述本公开的技术的实施例或现有技术中的技术方案,下面简要介绍了描述实施例或现有技术所需的附图。显然,下文描述的附图仅示出了本公开的技术的一些实施例,且本领域的普通技术人员仍然可以不付出创造性的工作即从这些附图中获得其他附图。
图1A示出了根据一些实施例的食物制备系统(例如,包括智能烹饪器具和相关服务器)的操作环境的框图。
图1B和图1C示出了根据一些实施例的食物制备系统的框图。
图2A示出了根据一些实施例的智能烹饪器具。
图2B示出了根据一些实施例的多个示例性智能烹饪器具。
图3示出了根据一些实施例的食物制备系统的注释用户界面。
图4示出了根据一些实施例的食物制备系统的训练模型服务器的框图。
图5A示出了根据一些实施例的对应于烹饪器具的烹饪过程的注释图像。
图5B是示出根据一些实施例的由食物制备系统的训练集服务器执行的图像划分和分组过程的框图。
图5C是示出根据一些实施例的由食物制备系统的训练模型服务器执行的食物定位和勾画轮廓过程的框图。
图6示出了根据一些实施例的食物制备系统的训练模型服务器的烹饪进度水平确定模块的框图。
图7是根据一些实施例的在食物制备系统中采集和注释数据的方法的流程图。
图8是根据一些实施例的在食物制备系统中确定食物位置和轮廓的方法的流程图。
图9是根据一些实施例的在食物制备系统中确定烹饪进度水平的方法的流程图。
图10是根据一些实施例的示例性烹饪器具的框图。
图11是根据一些实施例的示例性服务器的框图。
图12是根据一些实施例的示例性用户设备或注释站的框图。
在附图的数个视图中,相同的附图标记指示对应的部件。
具体实施方式
现在,将详细参考实施例,其示例在附图中示出。在下面的详细描述中,阐述了大量具体细节,以提供对本文提出的主题的透彻理解。然而,对于本领域的技术人员显而易见的是,可在没有这些具体细节的情况下实践该主题。在其它情况下,没有详细描述公知的方法、过程、组件和电路,以免不必要地模糊实施例的各方面。
下面参考本申请的实施例中的附图清楚和完整地描述本申请的实施例中的技术方案。显然,所描述的实施例仅仅是本申请的实施例中的一部分实施例,而不是全部实施例。本领域普通技术人员基于本申请的实施例不付出创造性的工作即获得的所有其他实施例都应落入本申请的保护范围内。
图1A示出了根据一些实施例的食物制备系统(例如,包括智能烹饪器具和相关服务器)的操作环境100的框图。
食物制备系统的操作环境100包括一个或多个烹饪器具(例如,器具A 110、器具B112和器具C 114),其通过网络190(例如,诸如因特网的广域网,或诸如智能家庭网络的局域网)连接到一个或多个服务器(例如,训练集服务器120和训练模型服务器122),且可选地连接到一个或多个用户设备(例如,用户设备A 111、用户设备B 113和用户设备C 115)和/或注释站128。
在一些实施例中,一个或多个烹饪器具(例如,智能烤箱,智能炉灶等)被配置成采集原始传感器数据(例如,图像、重量、温度、热图数据等)并将原始传感器数据发送到对应的用户设备(例如,智能电话、平板设备等)、注释站128(例如,工作站和台式计算机)和/或训练集服务器120(例如,由烹饪器具的制造商或制造商的第三方服务提供商提供的服务器)。在一些实施例中,一个或多个烹饪器具还被配置成从训练模型服务器122和/或对应的用户设备接收控制指令(例如,器具A 110可从训练模型服务器122接收控制指令,以将智能烤箱温度设置为425°F来烘烤蔬菜,且器具A 110可从用户设备A 111接收控制指令,以将温度改变成400°F)。关于一个或多个烹饪器具(例如,器具A 110、器具B 112和器具C 114)的其它细节,将参考本公开的其它部分来详细描述。
在一些实施例中,一个或多个用户设备被配置成从相应的器具接收原始传感器数据(例如,对应于器具A 110的用户设备A 111被配置成从器具A 110接收原始传感器数据)。在一些实施例中,一个或多个用户设备还被配置成向注释站128和/或训练集服务器120发送注释数据。在一些实施例中,一个或多个用户设备被配置成生成控制指令并将控制指令发送到相应的器具(例如,用户设备A 111可以向器具A 110发送指令以打开/关闭器具A110或调节器具A 110上的设置,例如打开烤箱或改变智能烤箱的温度)。在一些实施例中,一个或多个用户设备包括但不限于移动电话、平板电脑或计算机设备。在一些实施例中,一个或多个用户设备可对应于一个器具(例如,计算机和移动电话均可对应于器具A 110(例如,两者在器具设置过程中都被登记为器具A的控制设备),使得器具A 110可以向计算机和移动电话之一或两者发送原始传感器数据)。在一些实施例中,用户设备对应于器具(例如,用户设备A 111对应于器具A 110)(例如,与器具共享数据和/或与器具通信)。例如,器具A110可采集数据(例如,原始传感器数据,诸如图像或温度数据),并将所采集的数据发送到用户设备A 111,使得所采集的数据可由用户在用户设备A 111上进行注释。
在一些实施例中,注释站128被配置成从一个或多个器具(例如,器具110、112和114)接收所采集的数据,使得所采集的数据可由专业注释人员注释。在一些实施例中,注释站128被配置成从一个或多个用户设备(例如,用户设备111、113和115)接收注释数据,以供专业注释人员审阅、编辑和/或批准。在一些实施例中,当来自一个或多个用户设备的注释数据在注释站128处被批准时,注释站将批准的数据发送到训练集服务器120以包括在存储在训练集服务器处的训练语料库中。在一些实施例中,注释站128从服务器120检索注释数据,以供专业注释人员审阅、编辑和/或批准。在一些实施例中,注解站128从服务器120检索未注释数据,以供专业注释人员进行注释。在注释站128处注释和/或批准的传感器数据返回到服务器120以包括在训练语料库中。
在一些实施例中,训练集服务器120被配置成从一个或多个烹饪器具(例如,器具110、112和114)接收原始传感器数据,和/或从一个或多个用户设备(例如,用户设备111、113和115)接收注释数据。在一些实施例中,训练集服务器120还被配置成向注释站128发送原始数据和/或注释数据,并从注释站128接收注释数据和/或批准的注释数据。训练集服务器120被配置成根据训练模型服务器122所采用的训练模型和训练方法来预处理注释数据,例如,对训练数据进行分组、划分和相关,以及索引和存储训练数据。训练集服务器120被配置成根据请求训练数据的特定训练模型,向训练模型服务器122发送所选择的训练数据(例如,包括、对应于或基于在注释站128处批准的注释数据的数据)。
在一些实施例中,训练模型服务器122被配置成从训练集服务器120接收训练数据。可选地,训练模型服务器还被配置成向一个或多个器具和/或用户设备发送控制指令(例如,根据特定烹饪器具的控制协议准备的机器指令)和/或发送文本数据(例如,文本消息)。训练模型服务器122包括身份模型123(例如,还称为“食物身份确定模型”)、定位模型124(例如,还称为“食物位置和轮廓确定模型”)和熟度模型126(例如,还称为“烹饪进度水平确定模型”)。定位模型124与识别和定位当前在烹饪器具中烹饪的食物相关。例如,定位模型124可用于识别智能烤箱的烤箱架的左侧上的两块鸡肉和智能烤箱的烤箱架的右侧上的四块饼干,并在智能烤箱所捕获的图像中勾画每一个食物的轮廓。熟度模型126与确定烹饪器具中存在的食物的烹饪进度水平或“熟度”相关。例如,熟度模型126可包括用于确定食物是否被完全烹饪(例如,熟度模型126可允许智能炉灶确定一块牛排被烹饪为三分熟)或80%烹饪的模型。训练模型服务器122基于从训练集服务器120接收的训练数据训练定位模型124和/或熟度模型126。一旦定位模型124和熟度模型126的训练充分地完成(例如,达到阈值精确度水平),则训练集服务器120接收来自烹饪器具的请求,以基于烹饪器具所捕获的传感器数据实时地确定食物位置和轮廓,和/或食物的烹饪进度水平。在一些实施例中,由训练集服务器120确定的烹饪进度水平提供给正在请求的烹饪器具,使得每个烹饪器具确定适当的动作,例如,基于所确定的烹饪进度水平改变烹饪器具的操作和/或警告用户。
在一些实施例中,烹饪器具(例如,器具110、112和114)、用户设备(例如,用户设备111、113和115)、注释站128、训练集服务器120和训练模型服务器122通过一个或多个网络190连接(例如,共享数据和/或通信)。一个或多个网络190可包括有线和无线网络,且可以是家庭的局域网或广域网(例如,因特网)。
图1B示出了根据一些实施例的食物制备系统的框图。
在一些实施例中,如图1B所示,食物制备系统101包括烹饪器具140和与烹饪器具140分开地实现的计算系统130。烹饪器具140可用作图1A中的烹饪器具110、112和114中的任一个。在一些实施例中,计算系统130通过一个或多个网络190与烹饪器具140通信。在一些实施例中,计算系统130在用户设备上实现(例如,与用户应用程序相关联,用于控制烹饪器具和与烹饪器具进行交互)。在一些实施例中,计算系统130和器具140还与计算系统160通信,以根据客户端-服务器配置来实现计算系统130和器具140上的一些功能。在一些实施例中,计算系统160在烹饪器具的制造商的服务器上(例如,在训练模型服务器122上)实现。在一些实施例中,计算系统160在独立的计算机上(例如,在智能家庭的本地服务器上)实现。
参考图1B,计算系统130包括注释用户界面模块132、成像处理模块134、网络通信单元136和一个或多个数据库138中的一个或多个,其对应于如上关于图1A所描述的用户设备(例如,用户设备111、113和115)。在一些实施例中,计算系统130进一步包括用户侧烹饪进度监控模块149和用户侧器具功能控制模块153,以除了方便如本文所述的食物制备系统的数据采集和注释方面之外,还方便食物制备系统的烹饪进度监控和器具控制方面。
在一些实施例中,注释用户界面模块132允许计算系统130的用户查看和注释从对应的器具140(例如,器具110、112或114)接收的原始传感器数据。例如,用户可在他们的用户设备(例如,用户设备111、113或115)上使用应用程序来查看由对应的器具记录的图像和温度数据。例如,用户能够向所采集的数据添加注释和细节,这在下面参考图3进一步详细地描述。
在一些实施例中,图像处理模块154获取由器具140的成像系统捕获的图像并处理该图像以供分析。例如,图像处理模块154和器具140的成像系统的功能在下面参考图2A进行描述。
网络通信单元136允许计算系统130通过一个或多个网络190与器具140和/或计算系统160通信。
在一些实施例中,数据库138包括先前捕获的食物图像或来自其它类似食物制备系统的图像的数据库。在一些实施例中,数据库138包括允许计算系统向用户提供营养信息和食谱的成分数据库。
在一些实施例中,计算系统130包括与计算系统160和器具140结合来提供用户侧功能(例如用户侧烹饪进度监控和器具功能控制)的应用程序。在一些实施例中,应用程序还提供对社交网络的访问,以使用户与使用相同或类似器具的其他用户交换烹饪图像和食谱,和/或联系制造商或服务提供商以获得与器具140相关的信息和服务。
在一些实施例中,用户侧烹饪进度监控模块149被配置成基于由器具140捕获的实时传感器数据,使用已在计算系统160上训练的食物位置和轮廓确定模型以及食物烹饪进度水平确定模型,来确定食物的烹饪进度。在一些实施例中,用户侧烹饪进度监控模块149被配置成使用食物位置和轮廓确定模型以及食物烹饪进度水平确定模型的本地副本来在本地确定食物的烹饪进度。在一些实施例中,用户侧烹饪进度监控模块149向计算系统160发送请求,并实时地从计算系统160接收确定结果。该请求包括由器具140捕获的实时传感器数据,且使用已在计算系统160上训练的食物位置和轮廓确定模型以及食物烹饪进度水平确定模型来确定结果。
在一些实施例中,用户侧器具功能控制模块153被配置成向用户提供用户界面以直接控制器具功能(例如,打开/关闭器具或设置器具参数等),和/或基于烹饪进度监控的结果自动生成控制指令。在一些实施例中,从用户侧烹饪进度监控模块149向用户侧器具功能控制模块153提供烹饪进度监控的结果。在一些实施例中,从计算系统160向用户侧器具功能控制模块153提供烹饪进度监控的结果。在一些实施例中,从器具140向用户侧器具功能控制模块153提供烹饪进度监控的结果。
在一些实施例中,器具140包括一个或多个第一传感器(例如,传感器141)、一个或多个加热单元143、显示器144、I/O模块145、用户界面145、网络通信单元147、机械单元148、控制模块155、成像系统,以及可选地,包括器具侧烹饪进度监控模块149’。控制模块155包括可选的器具侧器具功能控制单元153’。
在一些实施例中,一个或多个第一传感器141被配置成捕获结构化数据,例如温度、重量和/或湿度。如本文所讨论的,结构化数据指的是定量或状态数据,例如温度、湿度、时间、开/关、烤箱模式等。例如,一个或多个第一传感器212可以是烹饪器具140的食物支撑平台上的温度传感器(例如温度计)、或湿度传感器、或重量传感器。
在一些实施例中,一个或多个加热单元143被配置成加热器具的烹饪室的至少一部分(例如,被配置成加热炉灶面的一侧的加热线圈)。例如,下面参考图2A提供一个或多个加热单元143的功能的其它示例。
在一些实施例中,器具140包括显示器144,显示器144可以向用户提供关于器具140的信息(例如,智能烤箱的烘烤功能当前已打开)。在一些实施例中,显示器144可与I/O模块145和用户界面146集成,以允许用户将信息输入器具140中或从器具140中读出信息。在一些实施例中,显示器144与I/O模块145和用户界面146结合而向用户提供建议、警报和营养信息,并从用户接收控制指令(例如,通过由器具140提供的硬件和/或软件接口)。在一些实施例中,显示器144可以是触摸屏显示器或包括按钮的显示器。在一些实施例中,显示器144可以是没有触摸屏特征的简单显示器(例如传统LED或LCD显示器),且用户界面146可以是可手动控制的硬件按钮或旋钮。在一些实施例中,用户界面146可选地包括以下之一或多个:显示器,扬声器,键盘,触摸屏,语音输入输出接口等。
网络通信单元147在功能上类似于网络通信单元137。网络通信单元147允许器具140通过一个或多个网络190与计算系统130和/或计算系统160通信。
本文所述的机械单元148指的是被配置成物理地改变烹饪器具140的内部感测(例如,成像)、加热和/或食物布局配置的、器具140的硬件以及对应的软件和固件组件。例如,一个或多个第一传感器141可对应于机械单元,使得一个或多个传感器141可移动以扫描器具140的烹饪室内的相应区域(例如,电动机可被配置成在预定区域上移动传感器,以捕获预定区域上的数据)。在另一示例中,烹饪器具的食物支撑平台可对应于包括电动机和/或机器臂的机械单元,以改变加热元件和食物支撑平台的各部分的相对位置,和/或将食物移动到烹饪器具内的食物储存室或食物支撑平台的不同部分。在一些实施例中,器具140的机械单元148根据来自食物制备系统的器具功能控制单元(例如,器具侧器具功能控制模块153’、用户侧器具功能控制模块153和/或服务器侧器具功能控制模块153”)的指令来操作。
在一些实施例中,器具侧烹饪进度监控模块149’被配置成监控存在于器具140的烹饪室或炉灶面中的食物。例如,器具侧烹饪进度监控模块149’可基于由一个或多个第一传感器212和/或一个或多个第二传感器214记录的原始数据来确定食物已烹饪到中等熟度。在一些实施例中,器具侧烹饪进度监控模块149’被配置成基于由传感器141和成像系统捕获的实时传感器数据,使用已在计算系统160上训练的食物位置和轮廓确定模型以及食物烹饪进度水平确定模型,来确定食物的烹饪进度。在一些实施例中,器具侧烹饪进度监控模块149’被配置成使用食物位置和轮廓确定模型以及食物烹饪进度水平确定模型的本地副本来在本地确定食物的烹饪进度。在一些实施例中,器具侧烹饪进度监控模块149’向计算系统160发送请求,并实时地从计算系统160接收确定结果。该请求包括由器具140捕获的实时传感器数据,且使用已在计算系统160上训练的食物位置和轮廓确定模型以及食物烹饪进度水平确定模型来确定结果。
在一些实施例中,成像系统包括一个或多个第二传感器142。一个或多个第二传感器142被配置成捕获非结构化数据。非结构化数据的示例包括RGB图像和热或红外图像。例如,一个或多个第二传感器142可被配置成捕获或记录存在于器具140的烹饪室或炉灶面中的食物的静止图像或视频。下面参考图2A提供一个或多个第二传感器214的功能的其它示例。在一些实施例中,成像系统包括数据存储系统,该数据存储系统存储食物烹饪室的尺寸和食物烹饪室内的参考标记的尺寸、相机和食物烹饪室内的各种参考标记之间的距离,使得相机拍摄的图像可用于精确地确定图像内的食物的尺寸和形状。因此,成像系统消除了传统成像系统的问题,传统成像系统要求用户特别注意在图像内放置参考标记或使用图像,而不能从图像内物品的尺寸、位置和方向信息受益。在一些实施例中,成像系统包括图像捕获触发系统。例如,在一些实施例中,当图像捕获触发系统检测到相机的视场改变时,触发图像捕获。例如,当烤箱门打开时,烤箱中的照明条件将改变,且将响应于烤箱门的打开而触发图像捕获。在一些实施例中,当食物开始出现在相机的视场中时,触发图像捕获。在一些实施例中,当食物被完全放入且烤箱门关闭时,触发图像捕获。在一些实施例中,图像捕获触发系统还指示相机在烤箱门打开之前立即捕获并存储烤箱架的图像,作为烤箱内部的室基线图像。在一些实施例中,响应于用户的输入,例如在用户将食物放入食物烹饪室中之后,手动触发图像捕获。手动触发更容易和更不复杂地实现,并允许用户有意捕获最好地反映用于成分识别的食物特性的图像。在一些实施例中,图像处理模块154获取由一个或多个第二传感器142捕获的图像,并基于在放入食物之前捕获的室基线图像对图像进行预处理以从图像中去除背景。室基线图像捕获食物制备系统的食物烹饪室中的食物支撑平台的确切状态,并给包含食物的图像提供优良的过滤器以去除背景。
在一些实施例中,控制模块155包括传感器控制151、传感器控制152和器具侧器具功能控制模块153’。传感器控制151被配置成控制和调节一个或多个第一传感器141。例如,传感器控制151可发送指令,以使一个或多个第一传感器141以1分钟的间隔记录温度数据。传感器控制152被配置成控制和调节一个或多个第二传感器142。例如,传感器控制152可发送指令,以使一个或多个第二传感器142沿着第一方向移动,且当一个或多个第二传感器142在移动之前处于起始位置并在移动之后处于最终位置时,使一个或多个第二传感器142拍摄照片。
器具侧器具功能控制模块153’被配置成控制和调节器具140的各种功能。例如,器具侧器具功能控制模块153’可以向加热单元143发送指令以激活一个或多个加热单元中的第一加热单元。在一些实施例中,器具侧器具功能控制模块153’基于预配置的操作协议,生成控制指令并将控制指令发送到器具140的各个组件(例如,以实现器具140的正常例程功能)。在一些实施例中,器具侧器具功能控制模块153’基于对烹饪器具内的食物的实时烹饪进度监控,生成控制指令并将控制指令发送到器具140的各个组件(例如,以基于预设反应协议或程序自动调节器具140的功能而不需要用户干预)。在一些实施例中,器具侧器具功能控制模块153’基于从用户设备接收的实时用户指令或经由器具140的用户界面146接收的实时用户指令,生成控制指令并将控制指令发送到器具140的各个组件。在一些实施例中,从用户侧烹饪进度监控模块149向器具侧器具功能控制模块153’提供烹饪进度监控结果。在一些实施例中,从计算系统160向器具侧器具功能控制模块153’提供烹饪进度监控结果。在一些实施例中,从器具侧烹饪进度监控模块149’向器具侧器具功能控制模块153’提供烹饪进度监控结果。
在一些实施例中,计算系统160包括服务器侧烹饪进度监控模块149”和服务器侧器具功能控制模块153”。在一些实施例中,服务器侧烹饪进度监控模块149”使用图4所示的定位模型124和熟度模型126,根据从烹饪器具140接收(例如,直接接收或通过计算系统130接收)的实时传感器数据来确定食物的食物身份、位置、轮廓和/或烹饪进度水平。在一些实施例中,计算系统160例如由图1和图4中的训练模型服务器122实现。
图1B中的食物制备系统101内的各个系统的功能仅仅是说明性的。功能的其它配置和划分是可能的。在各个实施例中,一个子系统的一些功能可以在另一个子系统上实现。
在一些实施例中,如图1C所示,食物制备系统102包括与器具140’集成的计算系统130’。在一些实施例中,计算系统130’与计算系统160’通信以实现器具140’的一些功能。在一些实施例中,器具140’可选地与计算系统160通信以外包器具140’的一些功能。
参考图1C,器具140’具有内置计算系统130’。器具140’包括传感器141、一个或多个加热单元143、显示器144、I/O模块145、户界面146、网络通信单元147、机械单元148和成像系统。器具140’的这些组件对应于器具140中的那些组件,并具有类似的功能,为了简洁起见,这里不再重复。
在一些实施例中,器具140’内的计算系统130’包括控制单元155’、传感器控制151’、传感器控制152’、器具侧烹饪进度监控系统149”’、器具侧器具功能控制模块153”’、图像处理系统154’、数据库138’和器具侧注释用户界面模块132’。这些组件的功能对应于器具140中具有相同名称的相应部件(例如,传感器控制151’具有与传感器控制151相同的功能),为了简洁起见将不再重复。在一些实施例中,注释用户界面模块132”’可允许用户在与器具140分开的用户设备上查看和注释原始用户数据。相比之下,器具侧注释用户界面模块132’可允许用户在器具140’的显示器144上查看和注释原始用户数据,和/或利用语音输入注释图像中的食物的烹饪进度水平。
提供上述示例仅仅是为了说明的目的。下面将参考其它附图和图示阐述各个组件的功能的更多细节。可以理解,本文所述的一个或多个组件可以独立于其它组件使用。
图2A示出了根据一些实施例的食物制备系统的烹饪器具。图2B示出了根据一些实施例的多个示例性烹饪器具。
图2A示出了示例性烹饪器具200,烹饪器具200可用作图1B中的器具140和图1C中的器具140’。烹饪器具200包括用于加热食物(包括烹饪原始食物或重新加热先前烹饪的食物)的系统。烹饪器具200包括能够通过各种方式(例如传导方式、对流方式、辐射方式、传导方式等)加热食物的加热系统。散发到食物的热量或功率量、热量散发到食物的速率、散发到食物的热量的分布和/或散发热量的持续时间可通过安装在烹饪器具上并连接到加热装置的各种控制装置(例如,旋钮、按钮或应用)来控制,在下文讨论。在一些实施例中,控制可由用户手动调节。烹饪器具200的示例在图2B中示出。
参考图2A,烹饪器具200包括食物支撑平台210,食物支撑平台210被构造成支撑和保持食物(例如,烤箱中的烤箱架、炉灶面上的锅、微波炉中的板、空气炸锅中的篮)。虽然图2A中仅示出了一个食物支撑平台210,但是烹饪器具200可包括一个或多个食物支撑平台。在一些实施例中,食物支撑平台210包括可移动和/或调节食物支撑平台210的构造的机械单元148。例如,诸如搅拌器、烤肉架和风扇的转动和搅动机构被构造成转动或旋转食物并围绕食物重新分配热量或加热单元。例如,烤肉扦子能够旋转以均匀地烹饪食物。在另一示例中,烤箱架可具有可调节的高度,以使食物朝向或远离烘烤器移动。
在一些实施例中,烹饪器具200还包括一个或多个第一传感器141(例如,图2A中示出为第一传感器212-1、212-2和212-3)和一个或多个第二传感器142(例如,图2A中示出为第二传感器214-1和214-2)。例如,一个或多个第一传感器212和一个或多个第二传感器214可以就地定位。在一些实施例中,一个或多个第一传感器212和/或一个或多个第二传感器214的位置是可移动的和/或可调节的。例如,烹饪器具200可包括扫描烹饪器具200内部的相应预定区域的两个第一传感器。例如,一个或多个第二传感器142是原地成像系统(例如,成像系统)的一部分,该成像系统包括一个或多个静止图像相机或视频相机(例如,第二传感器214-1和214-2),该一个或多个静止图像相机或视频相机安装在烹饪器具200内或附近,使得相机的视场包围将放入和烹饪食物的室的内部。或烹饪器具的暴露的烹饪表面(例如,烤盘或电炒锅的加热表面)。一个或多个第二传感器142指向烹饪器具200的食物支撑表面210(例如,参见图2B,烤箱201中的烤箱架,微波炉202中的微波旋转板,烤肉箱203中的旋转杆,电炉灶面204的烹饪表面)。一个或多个第二传感器142的每个传感器可以位于食物制备系统200的烹饪室的内部(例如,参见图2B,位于烤箱201内部)或者直接位于食物支撑表面上方(例如,参见图2B,位于炉灶面204上方)。在一些实施例中,一个或多个第二传感器142的位置和取向是可移动的和/或可调节的。例如,食物制备系统200可包括扫描食物制备系统200内部的相应预定区域的两个第一传感器。例如,一个或多个相机可选地安装在智能烤箱的内顶壁中,具有在烤箱架的顶部观察的视场。另一个相机可选地安装在烤箱内部的顶部侧边缘上,具有从烤箱架上方的一侧观察的烤箱架视场。在一些实施例中,相机安装在烹饪食物的室的外部,并通过透明窗口(例如,隔热窗口)指向食物的位置。在一些实施例中,相机放置在室的外部或将放置食物的平台的上方。
在一些实施例中,烹饪器具200还包括一个或多个加热单元143(例如,在图2A中示出为加热单元216-1、216-2和216-3)。例如,加热单元216-1、216-2和216-3可以是三个加热线圈或感应烹饪表面的三个部分。在一些实施例中,可单独控制加热单元216-1、216-2和216-3,以加热食物制备系统200的烹饪室或炉灶面的不同部分。每个加热单元被配置成分别加热食物制备系统200的烹饪室的预定区域,使得烹饪室或炉灶面的不同区域可具有不同的温度或以不同的速率加热。这对于同时烹饪不同类型的食物可能是期望的。例如,加热单元226-1可设置在第一温度或功率。以用于烹饪位于烹饪室的第一区域中的鸡肉,且加热单元226-2可设置在第二温度或功率,以用于烹饪位于烹饪室的第二区域中的蔬菜,使得鸡肉和蔬菜可以以不同的温度和/或不同的速率同时被烹饪。在一些实施例中,一个或多个加热单元216的位置和方向是可移动的,并具有可调节的部分,使得一个或多个加热单元216可在烹饪室内移动。
在一些实施例中,烹饪器具200还包括显示器220,用作如图1B和图1C所描述的显示器144。在一些实施例中,显示器220还是用户界面(例如,参见图1B和图1C,用户界面146),其允许用户输入信息(例如,设置计时器,启动器具,设置温度,设置烹饪模式,快照食物的图片,查询食物的烹饪状态等)以及从食物制备系统200接收信息(例如,烹饪室/炉灶面的当前温度、流逝的时间、食物身份、数量、外观、烹饪进度水平、预测的烹饪结果、烹饪动作建议等)。
在一些实施例中,烹饪器具200还包括控制226(例如,控制旋钮226-1、226-2、226-3),其用于调节食物制备系统200的烹饪参数(例如,调节加热单元的功率输出、烹饪方法、烹饪温度、热分布、烹饪时间)。例如,控制旋钮226-1可用于控制加热单元216-1的温度。在一些实施例中,控制226包括按钮、旋钮和触摸屏控制中的一个或多个,对手动调节和控制指令(例如,从器具功能控制模块153、153’或153”接收的控制指令)做出响应。在一些实施例中,控制226结合到如上所述的食物制备系统200的显示器和用户界面中,使得显示器和用户界面允许用户控制和调节食物制备系统200的烹饪功能和烹饪参数。例如,用户可在烤箱的显示器上输入期望的温度,且烤箱还可显示烤箱的当前温度。
参考图2B,烹饪器具200(例如,用作器具140或器具140’)可包括但不限于烤箱201、微波炉202、烤肉箱203和电炉灶204。在一些实施例中,烹饪器具200可以是可执行一个或多个烹饪功能的多功能器具(例如,可具有烘烤、烧烤和蒸汽功能的对流烤箱)。
图3示出了根据一些实施例的对应于食物制备系统的用户界面。如图3所示,注释用户界面300根据烹饪过程显示原始传感器数据和注释选项。在一些实施例中,注释用户界面300包括烹饪方法输入区域310、食物类型输入区域311、食物轮廓选择区域312、烹饪图像库313、结构化数据显示区域314、烹饪进度水平注释区域315和食物轮廓调节区域316。在一些实施例中,注释用户界面300对应于食物制备系统的烹饪器具200的实例,并显示正在由烹饪器具200烹饪或已烹饪的食物的原始(未注释)传感器数据和注释选项。在一些实施例中,注释用户界面300可显示在用户设备(例如,用户设备111、113或115)上,或者显示在器具140或140’的显示器144上。在一些实施例中,注释用户界面300或用户界面300的简化版本(例如,出于审阅和批准的目的,注释用户界面300省略图像库313)可显示在注释站128的显示器上。
在一些实施例中,烹饪方法输入区域310指示用于已成像的烹饪过程的烹饪方法。在一些实施例中,基于食物制备系统的对应器具(例如,器具200)的所选择的功能和设置,自动确定烹饪方法。在一些实施例中,烹饪方法输入区域310向用户提供用户可以从中选择的烹饪方法列表(例如,烹饪方法列表可包括诸如蒸汽、烤架、烘焙、烧烤、油炸等选择,且用户可简单地选择烹饪方法选项之一)。在一些实施例中,烹饪方法输入区域310允许用户键入烹饪方法。例如,用户可键入“烘培”以指示烹饪过程的烹饪方法。在一些实施例中,烹饪方法输入区域310向用户提供一旦用户开始打字用户就可以从中选择的、自动建议的烹饪方法选项的列表。
食物类型输入区域311指示在烹饪器具中烹饪的食物。在一些实施例中,通过食物制备系统(例如,使用图像处理和深度学习技术)根据食物的图像自动确定在食物类型输入区域311中显示的食物类型。在一些实施例中,食物类型输入区域311向用户提供用户可以从中选择的食物类型列表(例如,白蛋糕、花生酱饼干、鸡肉、牛排、比萨饼、胡萝卜、大米等)。在一些实施例中,食物类型输入区域310允许用户键入对应于正在烹饪器具中烹饪的食物的一个或多个食物类型。例如,用户可键入“胡萝卜”以指示烹饪过程涉及烹饪胡萝卜。在一些实施例中,食物类型输入区域311向用户提供一旦用户开始打字用户就可以从中选择的、建议的食物类型列表。在一些实施例中,根据在食物类型输入区域311中是输入单个食物类型还是输入多个食物类型,可改变注释用户界面的配置。例如,如果在烹饪过程中只烹饪一种类型的食物,则图像只包括一个食物,且所有食物可具有相同烹饪进度水平。用户界面允许用户用单个输入来注释同一图像中的所有食物(例如,将所选择的烹饪进度水平标签拖到图像,或者将图像拖到对应于所选择的烹饪进度水平的位置,且响应于拖动的完成,计算系统用相同烹饪进度水平来单独地标记图像中的所有食物)。在另一示例中,如果在烹饪过程中烹饪多种类型的食物,则可在给定的时间将同一图像中的食物烹饪到不同的烹饪进度水平。用户界面呈现烹饪进度标签,用户可将烹饪进度标签拖放到图像中的每个食物的位置,以用对应的烹饪进度水平单独地注释食物。在一些实施例中,多个食物具有相同烹饪进度水平,且用户可选择包括多个食物的图像的一部分,并将图像的该部分拖到用于该烹饪进度水平的图像框,以用该烹饪进度水平标记多个食物。在一些实施例中,当准备训练图像包时,图像中的每个食物类型被给予对应的训练图像包,且每个图像包包括代表性图像,代表性图像包括处于每个预设烹饪进度水平的食物类型的实例。例如,如果一组图像中的每一个图像包括图像左侧的牛排和图像右侧的马铃薯,则注释界面允许用户选择对应于七个牛排烹饪进度水平中的每一个的代表性图像,并用牛排的这些烹饪进度水平标记图像左侧,以及用烹饪进度标记图像右侧;注释用户界面允许用户选择对应于五个马铃薯烹饪进度水平的代表性图像,并用马铃薯的这些烹饪进度水平标记图像右侧。在一些实施例中,针对马铃薯烹饪进度水平注释的图像包括在一个注释数据包中,且针对牛排烹饪进度水平注释的图像包括在不同的注释数据包中。在一些实施例中,每个图像分成两个部分,使得每个注释数据包仅包括针对一种类型的食物的注释。
食物轮廓选择区域312包括多种轮廓形状(例如,用于不同类型的食物的几何形状(例如,正方形、卵形、圆形、三角形、星形、树形、心形、楔形、棒形、立方体形、圆盘形等)和/或一般形状(例如,菜花形、羊排形、胡萝卜形、虾形、鸡腿形等)),以用于在由器具200的一个或多个第二传感器142记录的原始图像(例如,RGB图像或红外图像)中定位不同食物和勾画不同食物的轮廓。在一些实施例中,食物轮廓选择区域312自动填充有对应于食物类型输入区域311中列出的食物类型的轮廓形状。例如,在食物类型输入区域311中指定食物类型是“比萨饼”之后,食物轮廓选择区域312自动填充有圆形轮廓、半圆形轮廓和圆形扇区轮廓,其分别对应于整个比萨饼、半个比萨饼和一片比萨饼。在一些实施例中,食物轮廓选择输入区域312显示用户可浏览的各种轮廓。在一些实施例中,食物轮廓选择输入区域312包括允许用户绘制任何形状的轮廓的手工绘制工具。下面进一步详细地描述勾画图像或视频中的食物的轮廓的过程。
在一些实施例中,烹饪图像库313包括由器具200的一个或多个第二传感器214记录的多个图像(例如,图像313-1、313-3和313-n)。在一些实施例中,如图3所示,图像示出为按时间顺序排列的图像序列(例如,在烹饪开始时,在第0分钟捕获图像313-1,且在烹饪开始之后的第3分钟捕获图像313-3,在烹饪开始之后的第5分钟捕获313-5)。在一些实施例中,固定数量的代表性图像(例如,图像313-1、313-3和313-n)选自在烹饪过程期间拍摄并显示在烹饪图像库313中的所有图像。用户可选择代表性图像以查看接近所选择的代表性图像的时间所捕获的其他图像。在一些实施例中,与捕获多个图像中的一个图像的时间相关联的时间戳还显示在烹饪图像库中的每个图像之下。例如,图像313-3可包括时间戳标签,以指示在烹饪过程的第3分钟记录图像313-3。在一些情况下,当选择图像313-3时或如果指针悬停在图像313-3上时,可显示图像313-3的时间戳标签。在一些实施例中,时间线318显示对应于图像库313中的多个图像(例如,图像313-1、313-3和313-n)的位置的时间线。在一些实施例中,用户能够在烹饪图像库313中滚动(例如,烹饪图像库313可包括比可放入注释用户界面300的可视部分的那些图像更多的图像,且用户可滚动或擦除烹饪过程的时间线以查看图像库313中与烹饪过程相关的所有图像)。例如,烹饪过程可具有30分钟的总流逝时间,且在开始(例如,在第0分钟记录的图像313-1)和5分钟之间记录的前5个图像可显示在用户图像库313上。用户可在图像库中滚动以浏览在烹饪过程中的其它时间记录的图像(例如,用户可向左/向右滚动和/或向上/向下滚动,以查看其它记录的图像,或者沿着时间线拖动位置指示器)。
结构化数据显示区域314显示由一个或多个第一传感器212记录的结构化数据(例如温度、重量、湿度等)。例如,如图3所示,所记录的温度(例如,黑点)在结构化数据显示区域314中示出。在一些实施例中,如图所示,示出了在整个烹饪过程的持续时间所记录的结构化数据,且可选窗口317指示当前在烹饪图像库313中显示的时间帧(例如,烹饪进度的前五分钟)覆盖在结构化数据上。例如,如图所示,结构化数据显示区域314显示在30分钟烹饪过程中记录的所有温度数据。可选窗口317描绘在第0分钟和第5分钟之间记录的温度数据,其对应于图像库中所示的图像(例如,图像313-1、313-3和313-5)。在未示出的一些实施例中,结构化数据显示区域314在图像库313中的图像所示的时间段上显示所记录的结构化数据。例如,结构化数据显示区域314显示在第0分钟和第5分钟之间记录的温度数据,其对应于图像库中所示的图像(例如,图像313-1、313-3和313-5)。
在一些实施例中,烹饪进度水平注释区域315显示烹饪进度水平的预定选择,用户可从烹饪进度水平的预定选择中做出选择,以注释在器具200处捕获的结构化数据和非结构化数据。在一些实施例中,烹饪进度水平注释区域315可基于食物类型输入区域311中列出的食物类型来更新烹饪进度水平的选择。例如,烹饪进度水平注释区域315可显示七个熟度水平,七个熟度水平的范围从生的(例如,框315-1)到烧焦(例如,框315-7),且当在食物类型输入区域中列出牛排时,七个熟度水平包括诸如一分熟和三分熟的类别。在一些实施例中,如图所示,使用诸如“七八分熟”的提示词来标记烹饪进度水平。在未示出的一些实施例中,可使用数值(例如,1=生的,10=烧焦)来标记烹饪进度水平。虽然在图3中示出了七个预设烹饪进度水平,但是可显示任意数量的预设烹饪进度水平。下面进一步详细地描述用烹饪进度水平注释结构化数据和非结构化数据的过程。
为了说明在食物制备系统(例如,食物制备系统101和102)中采集和注释数据的过程,下面提供更具体的示例方案。在一个示例中,用户将多个饼干放在智能烤箱(例如,器具200,其可对应于器具140或140’)中的烤箱架上的托盘上。智能烤箱设置为烘烤功能并预加热至第一温度(例如,激活一个或多个加热单元以加热烹饪室)。智能烤炉可(例如,通过显示器144或用户界面146)显示智能烤炉的当前温度。一旦烹饪过程开始(例如,通过检测食物存在于智能烤箱的烹饪室中,通过用户启动计时器,或通过用户按下启动按钮等),智能烤箱就开始记录温度(例如,结构化数据)并捕获烹饪室中的烤箱架的原始图像(例如,非结构化数据)。温度数据和原始图像以预定的间隔记录,例如每分钟记录。温度数据和原始图像包括指示记录数据的时间的时间戳(例如,5:30PM,或在烹饪过程开始之后的第10分钟)。在一些情况下,以相同的间隔(例如,同时)记录温度数据和图像。在一些情况下,以不同的间隔记录温度数据和图像。在一些情况下,第一温度传感器可记录烤箱顶部的温度,第二温度传感器可记录烤箱底部左侧的温度,第三温度传感器可记录烤箱底部右侧的温度。在一些情况下,第一相机可捕获顶部烤炉架的图像,第二相机可捕获底部烤炉架的图像。一旦烹饪过程完成(例如,食物永久地从烹饪室中取出,智能烤箱关闭,或一个或多个加热单元停用等),则结构化数据和非结构化数据的采集完成。所采集的结构化数据和非结构化数据被认为是原始数据,因为它们没有被注释、编辑或分类。在一些实施例中,在烹饪过程期间,原始数据被捕获并发送到用户设备或显示在烤箱上以进行注释。在一些实施例中,在对应于相应烹饪会话的所有原始数据完成之后进行注释。
在该示例中,在数据采集完成之后,用于上述烹饪过程的所采集的原始数据可显示在注释用户界面(例如,由智能烤箱的显示器144显示或者由对应于智能烤箱的用户设备显示的注释用户界面300)上。烹饪方法在烹饪方法输入区域310中示出。在该示例中,使用智能烤箱的烘烤功能烹饪食物。注释用户界面300的烹饪方法输入区域310基于与烹饪过程相关联的智能烤箱的设置而自动列出“烘烤”。食物类型在食物类型输入区域311中列出,并基于所列出的食物类型示出了各种轮廓选项(例如,椭圆形、正方形、矩形、自由形状等)。由智能烤箱中的相机捕获的原始图像在烹饪图像库313中示出,且由温度传感器记录的原始温度数据在结构化数据显示区域314中示出。当选择来自烹饪图像库313的图像(例如,图像313-3)时,在食物轮廓调节区域316中显示图像。用户可选择轮廓(例如,默认饼干形状)并将轮廓拖到在轮廓调节区域316中显示的图像313-3,以勾画图像313-3中示出的食物的轮廓。例如,用户可将矩形轮廓拖到图像313-3中示出的每个饼干上。用户可进一步调节轮廓的形状(例如,通过移动轮廓手柄)以匹配饼干的形状。用户可重复该过程:勾画针对不同烹饪进度水平选择的每个图像中的不同食物的轮廓。用户还可对图像313-3进行注释,以指示图像313-3中示出的饼干小于通过将图像313-3拖到烹饪进度水平注释区域315中标记为“三分熟”的熟度水平(例如,框315-2)或者通过将框315-2拖到图像313-3而烹饪得到的饼干的一半。在一些实施例中,如果图像中的多个食物需要用不同的烹饪进度水平标记,则用户可将对应于适当的烹饪进度水平的框单独拖到每一个食物上,以单独注释食物。在一些实施例中,如果一组食物具有相同烹饪进度水平,则用户可选择包括具有相同烹饪进度水平的所有食物的图像的一部分,并将图像的所选择的部分拖到表示对应的烹饪进度水平的框中。作为用户在注释用户界面上输入的结果,每一个图像子集中的每个食物用相应的烹饪进度水平标记。
在完成数据采集和数据注释之后,注释数据可发送到注释站(例如,注释站128),在注释站处,可在批准注释数据之前审阅或进一步注释注释数据。一旦批准注释数据,则批准数据可发送到训练集服务器120或训练模型服务器122。关于训练集、训练模型、训练集服务器120和训练模型服务器122的进一步细节,在下面针对本公开的其它部分提供。在一些实施例中,每个数据包包括对应于图像中所包括的食物类型的一组预设烹饪进度水平中的每个烹饪进度水平的相应图像,图像中所包括的每个食物具有对应的食物类型、(可选烹饪方法)、对应于图像中的食物位置的一组位置坐标、图像中的食物的轮廓的描述、以及图像中的食物的对应烹饪进度水平。针对图7描述了数据采集和注释方面的更多细节。
图4示出了根据一些实施例的食物制备系统的训练模型服务器122的框图。
训练模型服务器112被配置成基于从注释站128接收的注释数据或从训练集服务器120接收的训练集(其可包括注释数据),开发图像处理模型(例如,食物身份确定模型123、食物位置和轮廓确定模型124以及食物烹饪进度确定模型126)。训练模型服务器112还被配置成使用图像处理模型来实时地确定从烹饪器具接收的图像的食物身份、位置、轮廓和烹饪进度水平,且可选地根据所获得的图像处理结果提供控制指令。
在一些实施例中,训练模型服务器112包括模型训练模块410(例如,用于训练食物身份确定模型123、食物位置和轮廓确定模型124以及食物烹饪进度确定模型126)和图像处理模块420,图像处理模块420使用已训练的图像处理模型来实时地确定从烹饪器具接收的图像的食物身份、位置、轮廓和烹饪进度水平。在一些实施例中,图像处理模块420是计算系统160的一部分,例如,用作服务器侧位置和轮廓确定模块149”和服务器侧烹饪进度监控模块153”或供服务器侧位置和轮廓确定模块149”和服务器侧烹饪进度监控模块153”使用。在一些实施例中,图像处理模块420的一些或全部功能在计算系统130和/或烹饪器具140或140’中实现。
在一些实施例中,训练模型服务器112还包括多个流水线服务模块430,流水线服务模块430包括用于定位模型的预处理模块431、用于熟度模型的预处理模块432、图像划分模块433、图像分组模块434和特征提取模块435,这些模块供模型训练模块410和图像处理模块420使用以执行训练和/或图像处理功能的预处理和中间步骤。关于其它模块的功能以及用于各种类型的确定的图像处理流水线,将更详细地讨论用于定位模型的预处理模块431、用于熟度模型的预处理模块432、图像划分模块433、图像分组模块434和特征提取模块435的更多细节。
在一些实施例中,模型训练模块410还包括身份模型训练模块412、定位模型训练模块414和熟度模型训练模块416。在一些实施例中,图像处理模块420还包括食物身份确定模块422、食物位置和轮廓确定模块424以及烹饪进度水平确定模块426。
在一些实施例中,用于定位模型的预处理模块431被配置成从训练集服务器120请求和接收要包括在位置和轮廓确定模型124中的每种食物类型的注释图像,并准备从用户设备或器具接收的测试图像,使得测试图像可作为输入提供给位置和轮廓确定模型。在一些实施例中,用于定位模型的预处理模块431向食物身份确定模块422提供测试图像,以使用食物身份确定模型123来确定测试图像中的食物的身份,并将食物身份的结果提供给食物位置和轮廓确定模块424,以减少使用食物位置和轮廓确定模型124确定位置和轮廓的计算时间。
在一些实施例中,用于熟度模型的预处理模块432被配置成从训练集服务器120请求和接收要包括在位置和轮廓确定模型中的每种食物类型的注释图像,并准备从用户设备或器具接收的测试图像,使得测试图像可作为输入提供给烹饪进度水平确定模型126。在一些实施例中,用于熟度模型的预处理模块432向图像划分模块431和图像分组模块433提供输入图像(例如,训练图像和测试图像),以使多个图像上对应于相同食物的图像部分相关,并使用特征提取模块435给烹饪进度水平确定模型126准备输入。在一些实施例中,图像划分模块431被配置成基于来自定位模型124的食物位置和轮廓确定结果,将注释图像或测试图像划分成对应于各个食物的单独图像。在一些实施例中,图像分组模块433被配置成在烹饪过程中采集每个食物的单独图像、根据食物类型和/或根据食物身份(例如,在烹饪过程期间在烹饪器具中的相同位置处检测到的食物)对单独图像进行分类。
在一些实施例中,身份模型训练模块412被配置成基于从训练集服务器120接收的预处理的注释训练图像,训练和更新食物身份确定模型123。在一些实施例中,定位模型训练模块414被配置成基于由用于定位模型的预处理模块431提供的预处理的训练图像,训练和更新定位模型。在一些实施例中,熟度模型训练模块416被配置成基于由用于熟度模型的预处理模块433提供的预处理的差异特征张量,训练和更新熟度模型。
在一些实施例中,食物身份确定模块422被配置成在测试图像由用于定位模型的预处理模块431预处理之后,利用身份确定模型123来确定测试图像中的食物的身份。在一些实施例中,食物位置和轮廓确定模块424被配置成在测试图像由用于定位模型的预处理模块431预处理之后,利用定位模型124来确定测试图像中的食物的位置和轮廓。在一些实施例中,烹饪进度水平确定模块426被配置成基于由用于熟度模型的预处理模块433提供的预处理的差异特征张量,利用熟度模型来确定测试图像中的食物的烹饪进度水平。
训练模块服务器112的其它功能和组件针对本公开的其它部分来描述,和/或根据本公开对于本领域技术人员来说显而易见。
图5A示出了根据一些实施例的对应于食物制备系统的烹饪过程的注释图像的图。图5提供在烹饪过程期间由相机(例如,一个或多个第二传感器412)捕获并封装到训练图像集中的图像(例如,图像520-1、520-2、520-3、520-4、520-5和520-6)的示例。六个图像已(例如,由用户)注释,且六个图像中的每一个包括对应的结构化数据(例如,温度)、时间戳和注释的烹饪进度水平。在一些实施例中,可针对图像中的每个食物(例如,布朗尼512、布朗尼514等)来注释烹饪进度水平。在一些实施例中,可针对图像中的每种食物类型(例如,布朗尼、饼干等)来注释烹饪进度水平。在一些实施例中,可针对整个图像注释整体烹饪进度水平。在图5A所示的示例中,在用于两个布朗尼(例如,布朗尼512和514)和三个饼干(例如,饼干510、516和518)的烹饪过程的25分钟的总烹饪时间内,以5分钟的间隔记录图像。图像520-6示出了在25分钟的烹饪时间的五个食物的图像。注释数据指示饼干已烧焦(通过深色来证明)且布朗尼被烹饪。注释数据还指示“过度烹饪”的总熟度水平。在一些情况下,总熟度水平是图像中所示的所有食物的熟度水平的加权平均值。该数据包中的图像以及相关联的注释数据(例如包括食物身份数据、食物位置和轮廓数据、烹饪进度水平数据),可添加到例如用于训练食物位置和轮廓确定模型124的训练语料库中。
图5B示出了根据一些实施例的食物制备系统的图像划分和分组过程的框图。执行分组过程以在烹饪过程期间使每个单独的食物的图像相关,从而给每个食物生成数据集。数据集可用于训练烹饪进度水平确定模型124。
在第一示例中,训练集服务器120或训练模型服务器112从用户设备、器具或注释站接收图5中的数据包中的六个注释图像。在数据包表示训练图像集的情况下,对于每一个接收到的图像,食物的身份以及每个图像中的食物的位置和轮廓是已知的(例如,作为注释数据),划分模块423基于图像的注释数据中的轮廓,将包含两个布朗尼(例如,布朗尼512和514)和三个饼干(例如,饼干510、516和518)的图像分成五个单独的图像:每个食物有一个图像(例如,图像520-1分成五个单独的图像:饼干510-1,布朗尼512-1,布朗尼514-1,饼干515-1和饼干518-1)。对数据包中的每个图像重复该划分过程,得到总共30个单独的图像。分组模块424将所有布朗尼图像分类为布朗尼食物类型,并将所有饼干图像分类为饼干食物类型(例如,在30个单独的图像中,存在12个布朗尼图像和18个饼干图像)。分组模块424还通过基于食物在包含多个食物的原始未划分图像中的位置使图像相关,将图像分组成对应于每个食物的相应图像集(例如,图像集530包含6个饼干图像510,图像集540包含6个布朗尼图像512等)。由分组过程输出的图像集对应于单个食物,并包括表示在食物经过烹饪过程(开始到结束)时食物的状态的图像。图像集还具有对应的结构化数据(例如温度),注释和时间戳包括在图像集中,使得图像集的每个图像可与温度、流逝的烹饪时间和熟度水平(如用户所注释的)相关。在一些实施例中,如该示例中所示,用于一个烹饪过程的注释的图像包可转换成多于一个训练图像集(例如,在该示例中,一个烹饪过程产生两个布朗尼图像集即图像集530和531,以及三个饼干图像集540、541和542,总共五个图像集)。图5B示出了用于布朗尼食物类型的五个图像集(例如,图像集540-544)。如上所述,图像集540和541来自相同烹饪过程。图像集542、534和535可以来自用于其它烹饪过程的不同的注释数据包。
然后,图像数据集540、541、542、543和544可由训练模型服务器使用,以训练烹饪进度水平确定模型125。
在一些实施例中,在开始训练之前,图像数据集540、541、542、543和544均由特征提取模块431处理。例如,对于包括处于各种熟度水平的单个布朗510-1的图像的图像数据集540,特征提取模块421使用图像数据集540中的图像来生成六个差异特征张量,六个差异特征张量包括基于图像510-1和图像510-1(同一图像)的第一差异特征张量、基于图像510-1和510-2的第二差异特征张量、基于图像510-1和图像510-3的第三差异特征张量、基于图像510-1和510-4的第四差异特征张量、基于图像510-1和510-5的第五差异特征张量、以及基于图像510-1和510-6的第六差异特征张量。六个差异特征张量中的每一个用对应于用于生成差异特征张量的两个图像中的后一个图像的注释数据进行注释。用于每个差异特征张量的注释数据包括用于生成差异特征张量的两个图像中的后一个图像的相应烹饪进度水平、烹饪时间、温度、热图等。基于特征提取模块435的结果,熟度模型训练模块416可训练和更新熟度模型126,以提高系统确定不同食物类型的烹饪进度水平的能力。
图5C示出了根据一些实施例的用于确定食物身份、食物位置和轮廓以及食物的烹饪进度水平的图像处理流水线500。在一些实施例中,在从烹饪器具接收测试图像501-1之后,由训练模型服务器112执行图像处理流水线500中的过程。如果测试图像501-1是在烹饪过程中拍摄的第一图像,则第一图像用于给烹饪过程的图像中的每个食物建立基线状态。在一些实施例中,给烹饪过程建立唯一的会话标识符并将唯一的会话标识符返回到烹饪器具,且将唯一的标识符分配给在第一图像中识别的每个食物。例如,在烹饪过程开始时,接收第一测试图像以及其它对应的结构化数据(例如,温度、烹饪方法设置、时间、重量等),分别使用身份模型123和定位模型124对第一测试图像执行食物身份确定以及食物位置和轮廓确定。
在一些实施例中,如图5C所示,食物身份确定与食物位置和轮廓确定并行地执行。在一些实施例中,来自食物身份确定模型123的食物识别结果和基线熟度水平(例如,“原始”或“0”)作为约束(例如,作为识别和烹饪进度水平输出值的结果)提供给位置和轮廓确定模型124,同时测试图像501作为输入。测试图像501中的食物位置和轮廓由位置和轮廓确定模型124确定。
如图5C所示,在一些实施例中,位置和轮廓确定模型124包括卷积神经网络(CNN)503,CNN 503将测试图像501作为输入并输出测试图像的特征图。位置和轮廓确定模型还包括区域建议网络504(例如,另一CNN),区域建议网络504将特征图作为输入并输出测试图像的一个或多个感兴趣区域(ROI)。位置和轮廓确定模型124还包括一个或多个ROI对准层505,随后是多个完全连接的激活层,这些激活层包括用于身份确定输出的第一激活层506-1、用于位置确定输出的第二激活层506-2、用于轮廓确定输出的第三激活层506-3、以及用于烹饪进度水平确定输出的第四激活层506-4。每个激活层506具有对应的损失函数,且在每次通过模型期间,通过其对应的损失函数来评估不同激活层的结果,并相应地调节模型124的参数,以减少不同层的误差并实现不同结果层的结果的最终收敛。在一些实施例中,更快的RCNN用于ROI对准来实现定位模型,定位模型被修改以在结束时包括用于四种不同类型的结果的四个不同的卷积层。可选地,不使用食物身份和烹饪进度水平的结果,且仅提供进一步的约束以提高位置和轮廓确定的精确度和更快的收敛速度。
如图5C所示,一旦确定测试图像中的食物的位置和轮廓,就可以产生每个食物的基线图像。对于这一点,可使用卷积神经网络(例如,CNN)生成每个食物的基线特征张量,且可相对于食物的基线图像来确定在相同烹饪过程中随后接收的图像中的每个食物的食物烹饪进度水平。
继续该示例,假设在相同烹饪过程期间在一段时间之后从相同烹饪器具接收第二测试图像501-2。基于分配给烹饪过程的烹饪过程的会话标识符,将第二测试图像与第一测试图像相关联。假设在烹饪过程期间食物保持在测试图像501-1和501-2中基本上相同的位置,则不需要再次对第二测试图像501-2中的食物执行食物身份确定。第二测试图像501-2提供给位置和轮廓确定模型123作为输入,且分别从层506-1、506-2、506-3和506-4输出第二测试图像501-2中每个食物的食物身份、食物位置、食物轮廓和烹饪进度水平的结果。在一些实施例中,来自位置和轮廓确定模型124的烹饪进度水平结果由烹饪进度水平确定模型126使用,作为模型的开始值,以减少运行时间并提高收敛速度。
在一些实施例中,一旦确定第二测试图像501-2中的各个食物的位置和轮廓,就可产生每个食物的图像。对于这一点,可使用相同的卷积神经网络(例如,CNN)生成处于当前烹饪进度水平的每个食物的特征张量,卷积神经网络用于生成相同食物的基线特征张量。通过食物的当前特征张量和基线特征张量相减来确定每个食物的差异特征张量。如果确定第一测试图像中的相应食物和第二测试图像中的相应食物在两个图像中的位置坐标和轮廓基本上相同,则确定这两个相应食物是相同的食物。一旦对第二测试图像中的每个食物确定差异特征张量,则差异特征张量作为输入提供给烹饪进度水平确定模型126,以确定在第二测试图像中捕获的食物的当前烹饪进度水平。
当从相同烹饪过程接收附加的测试图像时,根据上文阐述的过程来确定每个食物的烹饪进度水平,且对于每个食物,基线特征张量不变。对于整个图像或足够数量的食物,一旦从测试图像中确定预设烹饪进度水平(例如,完成90%),则训练模型服务器相应地生成警报或控制指令,并将警报或控制指令发送到器具以呈现给用户或调节器具的操作。
图6示出了根据一些实施例的食物制备系统的训练模型服务器的烹饪进度水平确定模块426的框图。
烹饪进度水平确定模块426被配置成确定由烹饪器具(例如,器具110、112、114)烹饪的食物的熟度。在一些实施例中,烹饪进度水平确定模块426由烹饪器具或智能家庭环境的服务器实现,而不是由训练模型服务器实现。
在一些实施例中,烹饪进度水平确定模块426包括可选的图像预处理模块610,图像预处理模块610被配置成预处理图像以供分析。如果预处理模块432不存在于设备上(例如,当模块426在器具上实现时,与训练模型服务器122相反),则图像预处理模块610的功能类似于图4中的预处理模块432。
在一些实施例中,烹饪进度水平确定模块426还包括图像相关模块612,图像相关模块612被配置成识别测试图像的多个部分,并将多个部分中的每一个与对应的食物标识符相关,食物标识符已分配给来自相同烹饪过程的基线图像中的相应食物。在一些实施例中,图像相关模块612利用食物位置和轮廓确定模型124来确定测试图像和基线图像中的食物的位置和轮廓,并将在基本上相同的位置处的食物与两个图像中与对应于相同食物的图像轮廓基本上相同的轮廓相关。在相同烹饪过程中对应于相同食物的图像部分由图像相关模块612识别并如这样标记。
在一些实施例中,烹饪进度水平确定模块426还包括张量提取模块614,张量提取模块614被配置成基于测试图像中对应于食物的部分,对相同烹饪过程的每个测试图像(包括基线测试图像)中的每个食物生成特征张量。在一些实施例中,张量提取模块614进一步通过从基线图像中的相同食物的特征张量中减去当前处理的测试图像中的食物的特征张量,对测试图像中的每个食物生成差异特征张量。
在一些实施例中,烹饪进度水平确定模块426还包括输出模块616,输出模块616用于将对应于测试图像中的每个食物的差异特征张量和对应于测试图像或食物的其它相关注释数据(例如,温度、烹饪方法、重量、热图等)输入烹饪进度水平确定模型126中,并获得测试图像中的每个食物的烹饪进度水平的输出结果。
在一些实施例中,烹饪进度水平确定模块426将结果发送到器具功能控制模块,其中基于烹饪进度水平确定模块426输出的烹饪进度水平生成控制指令或警报。
在一个示例中,智能烤箱可以在每2分钟记录结构化和非结构化原始数据的烹饪过程中烹饪一批饼干。当在第6分钟记录原始数据时,利用烹饪进度水平确定模块126的烹饪进度监控模块149可勾画所记录的原始图像的轮廓并划分所记录的原始图像,如上所述,智能烤箱中的饼干当前处于“未充分烹饪的”的熟度水平。在该烹饪过程中,可对智能烤箱所记录的每一组原始数据重复该过程。在一些实施例中,智能烤箱在食物的烹饪或再加热期间继续捕获食物的图像,对食物的熟度和外观进行分级,并基于食物的当前外观和/或所确定的食物熟度水平来自动调节烹饪温度和烹饪时间。在一些实施例中,当食物的图像指示食物已烹饪到适当量的熟度时,智能烤箱生成警报,且应该从烹饪室中取出。在一些实施例中,当智能烤箱确定饼干具有“已烹饪”的熟度水平时,智能烤箱可向用户发送警报(例如,以音频警报或发送到用户设备的文本消息的形式)。在一些实施例中,当智能烤箱确定饼干具有“已烹饪”的熟度水平时,智能烤箱自动关闭。在一些实施例中,当智能烤箱确定饼干具有“已烹饪”的熟度水平时,智能烤箱将饼干移动到智能烤箱的预定“冷却区域”。
在本公开的其它部分中描述了食物制备系统的其它细节,为了简洁起见,这里不再重复。应当理解,已描述的特定组件和已描述的操作的顺序仅仅是示例性的,并不旨在指示所描述的组件和顺序是系统的唯一组件或可执行操作的唯一顺序。本领域的普通技术人员将认识到,系统可包括比所描述的组件更多或更少的组件,且认识到对本文描述的操作进行重新排序的各种方式。另外,应当注意,本文描述的各个实施例的细节还可以以与本文描述的其它实施例类似的方式应用。
图7是根据一些实施例的在食物制备系统中采集和注释数据的方法700的流程图。在一些实施例中,方法700由具有一个或多个处理器和存储器的计算系统(例如,计算系统130、160或130’)执行。
根据一些实施例,计算系统与烹饪器具(例如,器具110、112、114、140或140’)通信地耦合并被配置成控制烹饪器具的一个或多个功能。在一些实施例中,计算系统是与智能烹饪器具(例如器具140’,诸如智能烤箱、智能微波、智能烧烤器,智能炉灶等)中的烹饪器具集成的控制单元,且计算系统控制烹饪器具(例如,器具200)的烹饪功能和相机(例如,一个或多个第二传感器142)的功能。在一些实施例中,计算系统与烹饪器具(例如器具140,烹饪器具是智能烹饪器具并具有执行烹饪器具的控制功能的内置控制单元)分开实现,并通过网络(例如网络190,诸如家庭的局域网或广域网)与烹饪器具通信。烹饪器具包括:食物支撑平台,被配置成支撑食物(例如,食物支撑平台210,例如烤炉或烤箱中的支架,炉灶面上的锅,微波炉中的板,空气炸锅中的篮等);一个或多个第一传感器(例如,一个或多个第一传感器141),用于捕获结构化数据,结构化数据包括在烹饪器具操作期间对应于食物的温度数据(例如,温度传感器用于确定烹饪室内的温度、或烹饪表面上的温度和/或食物内部的温度);一个或多个第二传感器(例如,一个或多个第二传感器142),用于捕获非结构化数据,非结构化数据包括在烹饪器具操作期间对应于食物的图像数据(例如,由相机(例如,一个或多个RGB相机和/或一个或多个红外相机、一个或多个深度相机等)捕获的图像,其视场指向食物支撑平台210);以及一个或多个加热单元,被配置成在烹饪器具操作期间加热放置在食物支撑平台上的食物。
计算系统还包括一个或多个处理器和存储指令的存储器。当指令由一个或多个处理器执行时,计算系统被配置成激活(702)一个或多个第一传感器和一个或多个第二传感器,以在烹饪器具中的第一烹饪过程期间捕获第一烹饪数据(例如,响应于检测到烹饪器具中的第一烹饪过程开始(例如,检测到烹饪器具的烹饪室的门打开,检测到烹饪器具的加热单元正在打开,检测到烹饪器具的启动按钮正在激活等))。捕获第一烹饪数据包括在第一烹饪过程期间捕获一系列温度值以及在第一烹饪过程期间捕获一系列图像。一系列温度值中的每一个温度值和一系列图像中的每一个图像由各自的时间戳记录。
计算系统还被配置成经由耦合到计算系统的显示生成组件(例如,触摸屏、显示器、平视显示器、投影仪等),在第一注释用户界面(例如,由烹饪器具的制造商提供的应用程序或网页界面中显示的注释用户界面300)中显示(704)一系列图像的至少一个子集(例如,对应于烹饪器具中的食物类型的不同熟度水平的图像)。第一注释用户界面包括根据第一烹饪过程的时间线显示的一系列图像的子集中的每一个图像(例如,图像子集是在第一烹饪过程期间以相等的时间间隔(例如,总烹饪时间除以数字(例如,20或100),或每1分钟,或每10秒等)拍摄的图像)。在一些实施例中,基于来自先前图像的图像中的食物的显著外观变化来选择图像(例如,自动处理确定沿着时间线拍摄的连续图像之间的总像素差值,且如果该差值超过阈值,则选择图像来显示)。在一些实施例中,用户从第一烹饪过程的完整时间线手动地选择图像(例如,用户看到在第一烹饪过程期间沿着时间线拍摄的所有图像,并将某些图像拖到对应于不同烹饪进度水平的各个位置(例如,10个位置用于对应于10个熟度水平的图像)。第一注释用户界面还包括多个输入区域,用于指定一系列图像的子集中的食物的相应烹饪进度水平(例如,输入区域是图像子集中的每一个图像(例如,来自沿着烹饪时间线的5个不同时间点的图像)的文本输入区域)。在一些实施例中,输入区域是对应于10个不同的熟度水平的图像位置,用户可从所显示的图像时间线将对应的烹饪图像拖到这些图像位置(例如,当食物烹饪过程水平变化较快时,用户可在烹饪的后期阶段选择更多的图像)。例如,注释用户界面可包括在烹饪过程期间捕获的图像的可浏览列表。用户可检查每个图像,并从列表中选择表示不同熟度水平的图像。用户可将熟度标签(例如,生的,一分熟,三分熟,五分熟,七八分熟,完全熟;或0%烹饪,10%烹饪,...90%烹饪,100%烹饪等)拖到所选择的图像。在一些实施例中,如果图像中存在多个食物(例如,在饼干表的不同区域上存在多个饼干),则可选地允许用户将相应的熟度标签拖到图像中的每个饼干上。计算系统还被配置成接收(706)第一用户输入,第一用户输入指定一系列图像的子集中的食物的相应烹饪进度水平(例如,根据注释用户界面提供的选项,用户手动输入图像子集中的每个图像中的每个食物的熟度水平,或者图像子集中的每种类型的食物的熟度水平,或者图像子集中的食物的熟度水平;或者用户从在烹饪过程期间捕获的所有图像中拖拉选择多个预设熟度水平中的每个熟度水平的图像)。在一些实施例中,用户还可输入图像中的区域中的每个食物或多个食物(例如,图像可包括不同区域中的多种类型的食物)的身份标签(例如,杏仁饼干、柠檬饼干、南瓜、鱼、鸡腿等)。在一些实施例中,还向用户提供给图像中的每个食物提供和/或调节轮廓的机会。计算系统被配置成将具有对应温度数据和第一用户输入所指定的烹饪进度水平的图像子集(例如,根据图像的对应时间戳和温度数据来识别)进行分组(例如,通过使用公共文件名组件,和/或包括在同一文件夹中)。计算系统还被配置成将具有对应温度数据和烹饪进度水平的图像子集发送(708)到训练数据语料库的服务器(例如,训练集服务器120和/或训练模型服务器122),以用于训练智能烹饪器具。
在一些实施例中,计算系统还被配置成经由耦合到计算系统的显示生成组件,在第二注释用户界面(例如,在由烹饪器具的制造商提供的应用程序或网页界面中显示的注释用户界面300)中显示一系列图像的子集中的相应图像(例如,对应于图像组中的第一熟度水平的图像)。在一些实施例中,第二注释用户界面具有与第一注释用户界面相同的界面(例如,相同的外观和功能)。第二注释用户界面包括对应于不同食物形状的多个轮廓工具。计算系统还被配置成接收第二用户输入,第二用户输入使用多个轮廓工具给一系列图像的子集中所显示的相应图像中的每个食物指定相应的轮廓。在一些实施例中,注释用户界面向多个默认食物轮廓提供频繁使用的形状(例如,基于食物身份和/或形状的用户规范选择的形状,或基于各种图像处理和深度学习技术的自动成分识别)。用户可选地将适当的食物轮廓拖到图像中的每个食物。在一些实施例中,食物轮廓可通过一个或多个把手(例如,附接到多边形形状或起始形状的拐角的把手,或附接到圆形形状的边缘的把手,附接到椭圆形形状的轴线的把手,或围绕自由形状附接的把手等)来调节。在一些实施例中,提供标准化的不规则食物形状,且允许用户调节形状的尺寸和方向。例如,如果用户指定食物身份“鸡腿”,并提供标准化鸡腿形状作为选项,则用户可将该形状拖到图像中捕获的每个特定鸡腿,并调节标准形状的尺寸和/或方向,以适合图像中的鸡腿的形状和方向。在另一示例中,如果用户指定食物身份“烘烤的马铃薯楔块”,并提供标准化马铃薯楔块形状作为注释界面中的选项,则用户可将楔块形状拖到图像中捕获的每个特定马铃薯楔块,并调节标准形状的尺寸和/或方向,以适合图像中的马铃薯楔块的形状和方向。在一些实施例中,食物轮廓注释在与熟度注释不同的时间完成,例如由不同的人完成(例如,熟度评估需要更多的烹饪专业知识和更低的灵巧性,而轮廓注释需要更少的烹饪专业知识和更高的灵巧性)。在一些实施例中,由家里的各个用户(例如,使用烹饪器具做家庭烹饪)以分布式方式执行熟度注释,且轮廓注释对于那些用户来说太繁琐,并经由图像处理或由雇用人员自动完成。在一些实施例中,在同一用户界面会话中一起完成熟度注释和轮廓注释,稍后由专业人员或雇用人员进一步细化轮廓注释。在一些实施例中,在用户已指定图像子集的第一图像中的食物的轮廓之后,在图像子集中紧接着第一图像的第二图像上呈现相同轮廓,且用户可手动调节在第二图像上自动呈现的这些轮廓,以指定第二图像的轮廓。然后,在图像子集中紧接着第二图像的第三图像上自动呈现调节后的轮廓,且用户可进一步手动调节这些轮廓以指定第三图像的轮廓,如此类推。
在一些实施例中,在将图像子集发送到训练数据语料库的服务器(例如,训练集服务器120和/或训练模型服务器122)以用于训练智能烹饪器具之后接收第二用户输入。在训练数据语料库的服务器处,通过第二用户输入所指定的轮廓数据、对应温度数据以及第一用户输入所指定的烹饪进度水平,对图像子集进行分组。例如,在一些实施例中,器具制造商给烹饪器具的用户提供社交网络应用程序以上传用户的烹饪图像,且还将烹饪图像中的食物的不同进度水平标记为用户与社交网络平台上的其他人交互的一部分。单独的家庭烹饪对食物身份和熟度水平的标记感有趣,但是他们可能不对提供和/或查看在线发布的轮廓注释感兴趣。在这种情况下,用不同的熟度水平注释的图像呈现给受训练人员(例如,具有或不具有由自动轮廓检测算法生成的初步轮廓),以在训练数据语料库的服务器处生成对应于图像子集的轮廓数据。
在一些实施例中,在将图像子集发送到训练数据语料库的服务器(例如,训练集服务器120和/或训练模型服务器122)以用于训练智能烹饪器具之前接收第二用户输入。在将图像子集发送到训练数据语料库的服务器之前,通过第二用户输入所指定的轮廓数据、对应温度数据以及第一用户输入所指定的烹饪进度水平,对图像子集进行分组。例如,在一些实施例中,器具制造商给烹饪器具的用户提供社交网络应用程序以上传用户的烹饪图像,且还将烹饪图像中的食物的不同进度水平标记为用户与社交网络平台上的其他人交互的一部分。制造商可选地还允许用户提供食物的粗略轮廓,且食物轮廓稍后可(例如,由使用相同注释界面的雇用人员)细化和调节。在一些实施例中,第二注释用户界面用作审阅界面,且在完成审阅之后,图像子集包括在具有对应温度、轮廓和烹饪进度水平数据的训练语料库中。在一些实施例中,训练语料库包括每种类型的食物的图像,其特征在于烹饪方法(例如,烘烤、烘烤、蒸煮、煮沸、烘焙、煎炸、炒、微波、再加热、融化、软化、除霜、摊开等),成分识别(例如,饼干、蛋糕、马铃薯、比萨饼、牛排、鱼、鸡腿、西兰花、胡萝卜等)和可选的成分形状(例如,圆形、碎片、细条、立方体形、碎末、切碎、扁平、丁状等)。基于这些特征将每个图像子集索引为组。在一些实施例中,成分识别、烹饪方法识别和/或形状识别由各种深度学习方法自动执行,并用于索引训练语料库的目的。
在一些实施例中,一个或多个第二传感器包括:一个或多个热传感器(例如,热传感器包括热成像传感器的二维阵列,或者单个热传感器或一行热传感器,热传感器可在烹饪平台上扫描以生成食物支撑表面的二维热图),用于在烹饪器具操作期间捕获对应于食物支撑平台的热图像。在烹饪器具中的第一烹饪过程期间捕获第一烹饪数据包括:捕获对应于一系列图像的一系列温度图(例如,当每个RGB图像由相机拍摄时,热传感器还捕获对应的图像图)。
在一些实施例中,在将图像子集发送到训练数据语料库的服务器之前,通过对应温度数据和第一用户输入所指定的烹饪进度水平,对图像子集进行分组。
在一些实施例中,使用一系列热图、由轮廓数据注释的一系列图像和熟度水平数据来训练熟度确定模型。例如,食物支撑平台的每个部分的温度读数被映射到分布在食物支撑平台的不同位置处的食物的轮廓和熟度水平。在一些实施例中,每个食物轮廓可对应于一个熟度水平和多个温度读数(例如,食物的不同部分可具有稍微不同的温度读数)。在一些实施例中,RGB图像与其对应的热图之间的空间关系可在装运烹饪器具之前被校准,且该校准存储在服务器处并用于在图像子集中的每个RGB图像与其对应的热图之间产生像素级映射。与RGB图像中的给定食物区域和对应熟度水平相关的温度数据部分与轮廓数据和熟度数据一起用于训练模型。在一些实施例中,熟度确定模型(例如,烹饪进度水平确定模型126)是神经网络,针对在第一烹饪过程开始时拍摄的图像(例如,用轮廓和温度图数据注释)和食物基线图像(例如,用轮廓和温度图数据注释)之间的差异来训练神经网络。使用差异数据作为神经网络的输入,针对熟度水平专门训练神经网络,相对于必须生成和拟合多个输出的另一模型提高了熟度评估的精确度。
在一些实施例中,烹饪器具包括多个加热单元,多个加热单元可独立调节以加热食物支撑平台的不同部分。
在一些实施例中,计算机系统还被配置成:接收第三用户输入,第三用户输入给图像子集中的相应图像的第一部分指定第一食物身份和给图像子集中的相应图像的第二部分指定第二食物身份。计算机系统还被配置成:将图像子集中的每个图像划分为对应于相应图像的第一部分和第二部分的相应图像部分。通过对应温度数据和第一用户输入所指定的烹饪进度水平,对图像子集进行分组包括:分别对图像子集中对应于第一食物身份的相应图像部分和图像子集中对应于第二食物身份的相应图像部分进行分组,每个分组具有给相应图像部分中的食物指定的对应温度和烹饪进度水平。例如,如果图像子集中的图像包括每个图像的两个不同部分中的烘烤马铃薯和牛排(例如,图像的左半部分上的马铃薯,以及图像的右半部分上的牛排),则子集中的每个图像从中间划分,且包含马铃薯的半个图像与仅包括马铃薯的其他半个图像分组,包含牛排的半个图像与仅包括牛排的其他半个图像分组。在每个组中,通过半个图像中的食物的轮廓数据和对应温度数据,来包括半个图像。在训练语料库中,两个组作为单独的训练数据组进行处理,并在不同的食物下进行索引。
应当理解,已经描述了图7中的操作的特定顺序仅仅是示例性的,而不是旨在指示所描述的顺序是可执行操作的唯一顺序。本领域的普通技术人员将认识到对本文描述的操作进行重新排序的各种方式。
图8是根据一些实施例的在食物制备系统中确定食物位置和轮廓的方法800的流程图。
在一些实施例中,方法800在具有一个或多个处理器和存储器的计算系统(例如,计算系统130、160或130’)处执行。计算系统通信地耦合到至少第一烹饪器具。在一些实施例中,计算系统是服务器(例如,计算系统160、训练模型服务器122、训练集服务器120),通过网络(例如,网络190)(例如,家庭的局域网或广域网)连接到一个或多个智能烹饪器具(例如,器具110、114、116、140)(例如,智能烤炉、智能微波炉、智能烤肉箱、智能炉灶、智能烘烤箱、智能烤肉炉、智能蒸汽器、智能烤锅、智能炸锅等)。在一些实施例中,计算系统是与智能烹饪器具(例如,器具140’)中的烹饪器具集成的控制单元(例如,计算系统130’),并控制烹饪器具的烹饪功能和相机的功能。在一些实施例中,由服务器执行的一些功能可在智能烹饪器具的控制单元上实现。例如,在服务器处针对包含各种类型的食物的图像,充分训练食物身份、位置和/或轮廓确定模型之后,该模型可下载到各个智能烹饪器具,且在烹饪过程期间,可在各个智能烹饪器具处本地执行对在各个智能烹饪器具中烹饪的食物的烹饪进度水平的评估,而不必与服务器连接。例如,基于在烹饪过程期间由智能烹饪器具拍摄的图像,并使用已存储在智能烹饪器具中的受训练的食物身份、位置和/或轮廓确定模型来执行烹饪进度评估。
在方法800中,计算系统获得(802)多个训练图像,多个训练图像中的每一个训练图像包含一个或多个食物类型的相应食物。
计算系统获取(804)对应于多个训练图像中的每一个训练图像所包括的每一个食物的相应注释数据,其中所述每一个训练图像中的所述每一个食物的相应注释数据包括对应于所述每一个食物的相应食物类型的食物类型标签、对应于所述每一个图像内的所述每一个食物的相应位置的一组位置坐标、对应于所述每一个图像内的所述每一个食物的相应边界的轮廓的描述、以及对应于所述每一个图像中所表示的所述每一个食物的烹饪进度水平标签。例如,在一些实施例中,根据在本说明书的其它部分(例如,关于图3和7)中阐述的方法来注释每个图像。
计算系统使用多个训练图像,以相应注释数据作为地面真值,来训练(806)图像处理模型(例如,食物位置和轮廓确定模型124),其中图像处理模型包括多个特征提取层(例如,CNN 503)、区域建议网络(例如,RPN 504)和评估网络506,并且其中,评估网络具有四个预测头(例如506-1、506-2、506-3和506-4),这四个预测头对应于(1)食物类型、(2)位置坐标、(3)轮廓和(4)在输入图像中识别的相应食物的烹饪进度水平。在一些实施例中,图像处理模型是包括多个特征提取层的深度学习模型,深度学习模型将多个训练图像中的每一个训练图像作为输入并输出多个训练图像的相应特征图;区域提议网络将相应特征图作为输入并输出相应特征图中建议的感兴趣区域;评估网络将来自多个特征提取层的相应特征图和来自区域建议网络的相应建议的感兴趣区域作为输入,并输出训练图像的四种类型的评估结果。
在一些实施例中,区域建议网络和评估网络与不同的损失函数并行地进行训练。区域建议网络和评估网络的目的不同,基于不同的损失函数的训练也不同。在一些实施例中,图像处理模型是在评估网络中具有附加输出层的Faster R-CNN(区域卷积神经网络),附加输出层包括对应于烹饪进度水平的输出层。
在一些实施例中,评估网络包括四个激活层,每一个激活层对应于四个预测头中对应于(1)食物类型、(2)位置坐标、(3)轮廓和(4)烹饪进度水平的相应预测头,并且其中,四个激活层在评估网络中按照(1)食物类型、接下来(2)位置坐标、接下来(3)轮廓、接下来(4)烹饪进度水平的顺序排列。在一些实施例中,可实现不同预测头的顺序。评估网络的主要目的是获取图像中的食物的位置坐标和轮廓。食物类型是所考虑的第一个约束条件,烹饪进度水平是通过不同层在评估过程中所考虑的最后一个约束条件,但是这些层的结果不具有高精确度,且主要用于约束训练过程,使得用于定位和轮廓确定的训练可更快地收敛。利用食物类型和烹饪进度水平的附加地面真值信息,同样使得食物位置和轮廓结果更精确。在一些实施例中,可使用专门训练以确定食物类型和/或食物的烹饪进度水平的其它技术或其它模型来确定食物类型和/或烹饪进度水平。
在一些实施例中,计算系统使用多个训练图像,使注释数据的相应部分对应于食物类型标签,来训练专用于确定食物类型的第二图像处理模型(例如,食物身份确定模型123)。在一些实施例中,第二图像处理模型是包括多个子网络的深度学习神经网络,多个子网络包括对应于粗略食物类别的多个粗略类别网络,且多个粗略类别网络中的每一个包括对应于独立食物类型的多个详细类别网络。在一些实施例中,当评估从烹饪器具接收的测试图像时,使用第二图像处理模型执行食物类型确定,并使用第一图像处理模型执行位置和轮廓确定。即使第一图像处理模型还输出食物类型结果和烹饪进度水平结果以及食物位置和轮廓结果,食物类型和烹饪进度水平结果也不用于影响烹饪器具操作(例如,不用于改变烹饪器具的加热单元和机械单元,不在用户设备上或烹饪器具上的显示面板上输出给用户)。
在一些实施例中,计算系统使用多个训练图像,使注释数据的相应部分对应于多个训练图像中的食物的烹饪进度水平标签,来训练专用于确定相应食物的烹饪进度水平的第三图像处理模型(例如,烹饪进度水平确定模型126)。在一些实施例中,第三图像处理模型是针对对应于不同烹饪进度水平的不同特征张量训练的神经网络,例如,如在本申请的其它部分中更详细地描述的。在一些实施例中,当评估从烹饪器具接收的测试图像时,使用第三图像处理模型执行烹饪进度水平确定,并使用第一图像处理模型执行位置和轮廓确定。可选地,食物类型对于烹饪器具的用户来说是已知的,并由用户输入。即使第一图像处理模型还输出食物类型结果和烹饪进度水平结果以及食物位置和轮廓结果,来自第一图像处理模型的食物类型和烹饪进度水平结果也不用于影响烹饪器具的操作(例如,不用于改变烹饪器具的加热单元和机械单元,不在用户设备上或烹饪器具上的显示面板上输出给用户)。相反,使用第三图像处理模型确定的烹饪进度水平用于影响烹饪器具的操作(例如,改变烹饪器具的加热单元和机械单元,并在用户设备上或烹饪器具上的显示面板上输出给用户)。
在一些实施例中,计算系统建立图像处理流水线(例如,图5C中所示的图像处理流水线500),图像处理流水线包括第一图像处理模型(例如,食物位置和轮廓确定模型124),接着包括第三图像处理模型(例如,烹饪进度水平确定模型126)。
在一些实施例中,计算系统获取对应于第一烹饪器具内的第一烹饪过程开始的第一原始测试图像(例如,由第一烹饪器具内的、覆盖第一烹饪器具的整个烹饪表面的传感器拍摄的图像)。计算系统获取对应于第一烹饪器具内的第一烹饪过程中的第一时间点(例如,对应于第一食物的当前烹饪进度水平的时间)的第二原始测试图像(例如,由第一烹饪器具内的、覆盖第一烹饪器具的整个烹饪表面的传感器拍摄的图像)。计算系统使用第一图像处理模型(例如,位置和轮廓确定模型)对第一原始测试图像(例如,基线原始图像)和第二原始测试图像(例如,最近捕获的原始图像)进行图像分析,以确定第一原始测试图像和第二原始测试图像中的多个食物的位置和轮廓(例如,使用在说明书的后续部分中阐述的图像分析模型或其它图像分析模型)。计算系统使用第三图像处理模型(例如,烹饪进度水平确定模型)对第一原始测试图像和第二原始测试图像中对应于第一原始测试图像和第二原始测试图像中的每个特定食物的相应部分进行图像分析。例如,假设食物在烹饪过程期间倾向于停留在相同位置,即使食物的形状和尺寸可随着时间稍微变化也是如此,则使从每个原始测试图像识别的食物的位置坐标相关。第一基线图像是对应于第一食物的第一原始图像的相应部分的副本,且第一测试图像是对应于第一食物的第二原始图像的相应部分的副本。在更具体的示例中,如果在第一烹饪器具中同时烹饪多个花生酱饼干和两个鸡腿,则在烹饪过程期间的不同时间点对所捕获的图像进行图像分析,以使用第一图像处理模型(例如,基于具有ROI对准和四个预测头的Faster R-CNN的模型)来确定饼干和鸡腿的位置和轮廓。对图像进行分割,且独立地分析对应于每个饼干和每个鸡腿的相应图像部分,以使用第三图像处理模型(例如,基于对应于不同烹饪进度水平的不同特征张量的深度学习的模型)分别确定每个饼干和每个鸡腿的熟度水平。
在一些实施例中,还使用对应于多个训练图像的多个热图,使注释数据的相应部分对应于多个训练图像中的食物的烹饪进度水平标签,来训练第三图像处理模型(例如,烹饪进度水平确定模型126)。
应当理解,已经描述了图8中的操作的特定顺序仅仅是示例性的,而不是旨在指示所描述的顺序是可执行操作的唯一顺序。本领域的普通技术人员将认识到对本文描述的操作进行重新排序的各种方式。
图9是根据一些实施例的在食物制备系统中确定烹饪进度水平的方法900的流程图。
方法900由计算系统(例如,计算系统130、160、130’)执行。计算系统包括一个或多个处理器和存储器。计算系统通信地耦合到至少第一烹饪器具(例如,器具110、112、114、140或140’)。在一些实施例中,计算系统是服务器(例如,计算系统160或训练模型服务器122),通过网络(例如,家庭的局域网或广域网)连接到一个或多个智能烹饪器具(例如,智能烤炉、智能微波炉、智能烤肉箱、智能炉灶、智能烘烤箱、智能烤肉炉、智能蒸汽器、智能烤锅、智能炸锅等)。在一些实施例中,计算系统是与智能烹饪器具中的烹饪器具集成的控制单元(例如,计算系统130’),并控制烹饪器具的烹饪功能和相机的功能。在一些实施例中,由服务器执行的一些功能可在智能烹饪器具的控制单元上实现。例如,在服务器处针对各种类型的食物,充分训练烹饪进度水平确定模型之后,该模型可下载到各个智能烹饪器具,且在烹饪过程期间,可在各个智能烹饪器具处本地执行对在各个智能烹饪器具中烹饪的食物的烹饪进度水平的评估,而不必与服务器连接。例如,基于在烹饪过程期间由智能烹饪器具拍摄的图像,并使用已存储在智能烹饪器具中的受训练的烹饪进度水平确定模型来执行烹饪进度评估。
在方法900中,计算系统获取(902)对应于第一烹饪器具内的第一食物的初始烹饪进度水平的第一基线图像(例如,响应于检测到第一烹饪过程开始(例如,用户按压烤箱上的开始按钮,或者当用户关闭烤箱门时)由第一智能烹饪器具捕获基线图像)。计算系统获取(904)对应于第一烹饪器具内的第一食物的当前烹饪进度水平的第一测试图像。例如,智能烤箱被配置成在第一烹饪过程开始之后每10秒钟捕获图像(例如,结合其它传感器数据,诸如温度、重量图、热图等),且第一测试图像是由第一烹饪器具周期性捕获的一系列图像中最近捕获的图像。在一些实施例中,对当前烹饪进度水平的确定还可在用户请求时即时执行。例如,用户可处理第一家用器具上的按钮,或者处理移动设备(例如,电话或平板设备)上呈现的用户界面上的按钮,移动设备耦合到第一家用器具,并请求智能烹饪器具立即拍摄图像,且使第一烹饪器具或耦合到第一烹饪器具的服务器对图像执行烹饪进度评估。如果用户不希望在烹饪过程期间多次拍摄图像(例如,为了节省能量和延长相机的寿命),而是仅仅几次检查烹饪过程朝向烹饪过程结束的状态以达到期望的熟度水平,则这可能是期望的。计算系统生成(906)对应于第一测试图像的第一测试特征张量。生成第一测试特征张量包括:获取对应于第一基线图像的第一基线特征张量,第一基线特征张量使用第一特征提取模型从第一基线图像提取(例如,第一基线特征张量仅需要从第一基线图像提取一次,并用作所有后续测试图像特征张量的基线特征张量);使用第一特征提取模型提取对应于第一测试图像的相应特征张量;和基于对应于第一测试图像的相应特征张量与对应于第一基线图像的第一基线特征张量之间的差来计算差异特征张量。差异特征张量用作对应于第一测试图像的第一测试特征张量。计算系统使用第一测试特征张量作为烹饪进度确定模型(例如,烹饪进度水平确定模型126)的输入,来确定第一烹饪器具内的第一食物的当前烹饪进度水平,烹饪进度确定模型已针对对应于第一食物的实例的训练图像的差异特征张量以各种烹饪进度水平来训练。
在一些实施例中,计算系统使用对应于多个食物组的训练图像(例如,用于烘烤的马铃薯的训练图像、用于花生酱饼干的训练图像、用于牛排的训练图像、用于巧克力饼干片的训练图像等)来训练烹饪进度确定模型。训练图像至少包括第一食物组(例如,花生酱饼干)和第二食物组(例如,鸡腿)。第一食物(例如,当前在第一烹饪器具中烘烤的花生酱饼干片)是第一食物组(例如,花生酱饼干)的实例,而不是第二食物组(例如,鸡腿)的实例。对应于多个食物组中的每一个食物组的图像包括多个图像集,每个图像集包括处于多个烹饪进度水平中的每一个烹饪进度水平的食物组的实例的相应图像。例如,对于花生酱饼干组,训练图像包括500个图像集,500个图像集中的每个集包括在从开始到结束的烹饪过程中的特定花生酱饼干的图像,且用于特定花生酱饼干的图像集包括针对多个烹饪进度水平中的每个烹饪进度水平的相应图像。
在一些实施例中,使用对应于多个食物组的训练图像来训练烹饪进度确定模型包括:对于多个食物组中的相应食物组的多个图像集中的每个图像集(例如,对于花生酱饼干组的500个图像集中的每个图像集),计算系统生成对应于图像集中的每个图像的相应特征张量(例如,使用基于多个预设图像过滤器的特征提取过程)(例如,对于在花生酱饼干组的500个图像集中的特定图像集中捕获的特定花生酱饼干,存在10个图像对应于10个预设烹饪进度水平),相应特征张量包括对应于针对初始烹饪进度水平标记的图像(例如,在特定花生酱饼干的烹饪过程开始时拍摄的第一基线图像)的相应特征张量、以及对应于针对多个烹饪进度水平中的每个后续烹饪进度水平标记的图像(例如,在烹饪过程期间的9个不同时间点拍摄的特定花生酱饼干的图像,这9个不同时间点对应于在初始烹饪进度水平之后的9个不同的预设烹饪进度水平)的相应特征张量。然后,对于多个食物组中的相应食物组的多个图像集中的所述每一个图像集,对于多个烹饪进度水平中的每一个烹饪进度水平(例如,对于10个预设烹饪进度水平中的每一个烹饪进度水平),计算系统通过针对烹饪进度水平标记的图像的相应特征张量与针对初始烹饪进度水平标记的图像的相应特征张量进行比较(例如,相减)来获取相应的差异特征张量。例如,对于初始烹饪进度水平,差值为零;对于烹饪进度水平1,差值是从对应于烹饪进度水平x/10的图像中提取的特征张量和从图像集中的基线图像中提取的特征张量之间的差值。计算系统使用多个烹饪进度水平中的每一个烹饪进度水平的相应差异特征张量,作为处于所述每一个烹饪进度水平的相应食物组的训练输入。例如,训练输入包括用于花生酱饼干组的500个图像集中的每一个的10个差异特征张量,且基于那些其它食物目组的食物的实例的图像,以类似的方式获得对应于其它食物组中的每一个的训练输入。
在一些实施例中,为了生成对应于图像集中的每个图像的相应特征张量,计算系统获取图像集中的所述图像的对应热成像图,和基于图像和所述图像的对应热成像图,生成对应于图像的相应特征张量。例如,当拍摄烹饪表面的原始图像时,第一器具可选地还拍摄烹饪表面的热图像。原始图像中对应于处于特定烹饪进度水平的特定食物的部分用作图像,且热图像中对应于同时拍摄的特定食物的部分用于生成图像的相应特征张量。例如,特定花生酱饼干的热图像可以以与相同花生酱饼干的RGB图像相同的方式处理,以相对于在烹饪过程开始时拍摄的花生酱饼干的基线热图像生成差异特征张量。饼干的热图像的差异特征张量和处于当前烹饪进度水平的饼干的RGB图像的差异特征张量合并,以形成该饼干的测试特征张量。相应地,烹饪进度确定模型(例如,熟度模块600、熟度确定模块611、熟度模型126和烹饪进度监控模块149)需要用使用RGB图像和对应的热图像生成的差异特征张量来训练。
在一些实施例中,计算系统获取对应于第一烹饪器具内的第一烹饪过程开始的第一原始图像(例如,由第一烹饪器具内的、覆盖第一烹饪器具的整个烹饪表面的传感器拍摄的图像)。计算系统还获取对应于第一烹饪器具内的第一烹饪过程中的第一时间点(例如,对应于第一食物的当前烹饪进度水平的时间)的第二原始图像(例如,由第一烹饪器具内的、覆盖第一烹饪器具的整个烹饪表面的传感器拍摄的图像)。计算系统对第一原始图像(例如,基线原始图像)和第二原始图像(例如,最近捕获的原始图像)进行图像分析,以确定第一原始图像和第二原始图像中的多个食物的位置和轮廓(例如,使用在说明书的后续部分中阐述的图像分析模型或其它图像分析模型)。计算系统基于对第一原始图像和第二原始图像进行图像分析,来识别第一原始图像和第二原始图像中对应于第一食物的相应部分(例如,假设食物在烹饪过程期间倾向于停留在相同位置,即使食物的形状和尺寸可随着时间稍微变化也是如此,则使从每个原始图像识别的食物的位置坐标相关),其中第一基线图像是第一原始图像中对应于第一食物的相应部分的副本,且第一测试图像是第二原始图像中对应于第一食物的相应部分的副本。例如,如果在第一烹饪器具中同时烹饪多个花生酱饼干和两个鸡腿,则在烹饪过程期间的不同时间点对所捕获的图像进行图像分析,以确定饼干和鸡腿的位置和轮廓。对图像进行分割,且独立地分析对应于每个饼干和每个鸡腿的相应图像部分,以分别确定每个饼干和每个鸡腿的熟度水平。
在一些实施例中,为了对第一原始图像和第二原始图像进行图像分析,计算系统使用卷积神经网络对第一原始图像和第二原始图像进行图像分析,卷积神经网络通过四个约束来训练。这四个约束包括食物位置、食物类型、食物轮廓和食物烹饪进度水平中的一个或多个。
在一些实施例中,计算系统使用烹饪进度水平确定模型确定第一烹饪器具内具有相同类型的多个食物中的每一个食物各自的当前烹饪进度水平(例如,确定第一烹饪器具内的每个花生酱饼干的熟度水平),并基于第一烹饪器具内具有相同类型的多个食物各自的当前烹饪进度水平,输出第一烹饪器具内具有相同类型的多个食物的整体烹饪进度水平。例如,如果烤箱中的10个花生酱饼干中的8个完成80%,且烤箱中的10个花生酱饼干中的2个完成90%,则计算系统使得第一烹饪器具显示“花生酱饼干:整体(8.5/10)熟度水平”。在一些实施例中,整体烹饪进度水平是相同类型的所有食物的烹饪进度水平的平均值。在一些实施例中,整体烹饪进度水平是相同类型的大多数食物的烹饪进度水平。在另一示例中,在所有饼干的图像中的每个饼干旁边显示各自熟度水平。
在一些实施例中,计算系统使用烹饪进度确定模型确定第一烹饪器具内具有两种或更多种不同食物类型的相应食物中的每一个食物各自的当前烹饪进度水平(例如,确定第一烹饪器具中的每一个花生酱饼干和每一个鸡腿的熟度水平)。计算系统基于第一烹饪器具内具有两种或更多种不同类型的相应食物各自的当前烹饪进度水平,输出第一烹饪器具内两种或更多种不同食物类型中的每一个食物类型各自的烹饪进度水平。例如,如果烤箱中的10个花生酱饼干的整体熟度水平为80%,且烤箱中的两个鸡腿的整体熟度水平为30%,则计算系统使第一烹饪器具显示“花生酱饼干:整体(8/10)熟度水平;鸡腿:整体(3/10)熟度水平。在另一示例中,在所有饼干和鸡腿的图像中的每个饼干和每个鸡腿旁边显示各自熟度水平。
在一些实施例中,计算系统使用烹饪进度水平确定模型确定第一烹饪器具内的每一个食物各自的当前烹饪进度水平。计算系统识别第一烹饪器具内的相应加热区域,相应加热区域对应于与第一烹饪器具内的一个或多个其它加热区域不同的烹饪进度水平(例如,与烤箱架的其它部分中的八个饼干相比,烤箱架的内部中间部分中的两个饼干被较少地烹饪)。该计算相对于针对第一烹饪器具内的一个或多个其它加热区域的加热功率,来调节针对相应加热区域的加热功率(例如,增加烤箱架的内部中间部分上方的加热单元的功率)。在一些实施例中,加热区域由烹饪器具内的多个加热单元的位置预先限定,且每个区域的整体烹饪进度水平基于区域内的各个食物的烹饪进度水平来确定(例如,当加热区域大于食物的尺寸且每个加热区域包括多个食物时,这较为有用)。在一些实施例中,基于食物的烹饪进度水平来限定加热区域,具有相同烹饪进度水平的相同食物类型的相邻食物被分组到相同区域中(例如,当加热元件较小且每个食物对应于多个加热元件时,这较为有用)。
在一些实施例中,根据确定第一烹饪器具内的第一食物的当前烹饪进度水平对应于比相同类型的其它食物的当前烹饪进度水平更提前的烹饪进度水平,计算系统执行命令以使得第一食物被输送到第一烹饪器具内的冷区域。例如,当确定食物在烹饪器具内的其它食物之前达到期望熟度水平时,第一烹饪器具包括机械机构以将食物输送到冷“停放”区域,而停止或减慢食物的烹饪。
在一些实施例中,根据确定第一烹饪器具内的第一食物的当前烹饪进度水平对应于预设烹饪进度水平,计算系统生成用户警报。例如,警报包括第一家用器具上或用户的移动设备上的第一食物的当前状态的图像。警报包括两个后续烹饪进度水平的图像,以供用户选择期望的烹饪进度水平作为第一食物的最终期望的烹饪进度水平。例如,当饼干已达到80%熟度时,给予用户机会来在软饼干(完成95%)或硬饼干(完成100%)之间进行选择,作为饼干的最终期望状态,。一旦达到期望状态,则烹饪器具自动停止烹饪过程,例如,通过将饼干输送到烤箱的冷部分或者停止烤箱的加热功率来停止烹饪过程。在一些实施例中,用户警报可显示在食物制备系统的器具的显示器上(例如,器具200的显示器220向用户显示警报)。在一些实施例中,用户警报可由食物制备系统的用户设备显示(例如,用户设备B113向用户显示警报,指示在器具B 112中已达到期望烹饪进度)。
应当理解,已经描述了图7中的操作的特定顺序仅仅是示例性的,而不是旨在指示所描述的顺序是可执行操作的唯一顺序。本领域的普通技术人员将认识到对本文描述的操作进行重新排序的各种方式。
图10是根据一些实施例的示例性烹饪器具1000的框图。例如,烹饪器具1000可用作各个实施例中的器具110、112、114、140、140’、200、201、202、203、204。烹饪器具1000包括一个或多个处理单元(CPU)1002、一个或多个网络接口1004、存储器1006以及用于互连这些组件(有时称为芯片组)的一个或多个通信总线1008。烹饪器具1000还包括用户界面1010。用户界面1010包括能够呈现媒体内容的一个或多个输出设备1012,输出设备1012包括一个或多个扬声器和/或一个或多个视觉显示器。用户界面1010还包括一个或多个输入设备1014,输入设备1014包括方便用户输入的用户界面组件,例如键盘、鼠标、语音命令输入单元或麦克风、触摸屏显示器、触敏输入板、手势捕获相机或其它输入按钮或控件。在一些实施例中,烹饪器具1000还包括传感器(例如,传感器141、142),传感器感测烹饪器具1000的操作环境信息。传感器包括但不限于一个或多个热传感器、光传感器、一个或多个相机、湿度传感器、一个或多个运动传感器、一个或多个生物传感器(例如,皮肤电流电阻传感器、脉搏血氧计等)、重量传感器、光谱仪和其它传感器。此外,烹饪器具1000包括食物制备操作单元1026(例如,基于电、感应、气体、辐射等的加热装置)。存储器1006包括非易失性存储器,例如一个或多个磁盘存储设备、一个或多个光盘存储设备、一个或多个闪存设备或者一个或多个其它非易失性固态存储设备。可选地,存储器1006包括远离一个或多个处理单元1002的一个或多个存储设备。存储器1006,或者可选地,存储器1006内的非易失性存储器,包括非暂时性计算机可读存储介质。在一些实现中,存储器1006或存储器1006的非暂时性计算机可读存储介质存储如下程序、模块和数据结构,或者其子集或超集:
·操作系统1016,包括用于处理各种基本系统服务和用于执行硬件相关任务的程序;
·网络通信模块1018,用于经由一个或多个网络接口1004(有线或无线)连接到外部服务;
·用于实现信息呈现的呈现模块1020;
·输入处理模块1022,用于检测来自一个或多个输入设备1014中的一个输入设备的一个或多个用户输入或交互,并解释检测到的输入或交互;
·食物制备控制单元1024,控制烹饪器具1000、包括但不限于如本文所述的器具140或140’的模块。
以上所标识的元件中的每一个元件可存储在一个或多个先前提及的存储设备中,且对应于用于执行上述功能的指令集。以上所标识的模块或程序(即指令集)不需要实现为单独的软件程序、过程、模块或数据结构,因此这些模块的各个子集可在各种实现中组合或以其他方式重新排列。在一些实现中,存储器1006可选地存储以上所标识的模块和数据结构的子集。此外,存储器1006可选地存储上面没有描述的附加模块和数据结构。
图11是根据一些实施例的示例性服务器1100的框图。例如,服务器1100可用作各个实施例中的服务器120、122或计算系统160。服务器1100包括一个或多个处理单元(CPU)1102、一个或多个网络接口1104、存储器1106以及用于互连这些组件(有时称为芯片组)的一个或多个通信总线1108。服务器1100还包括用户界面1110。用户界面1110包括能够呈现媒体内容的一个或多个输出设备1112,输出设备1112包括一个或多个扬声器和/或一个或多个视觉显示器。用户界面1110还包括一个或多个输入设备1114,输入设备1114包括方便用户输入的用户界面组件,例如键盘、鼠标、语音命令输入单元或麦克风、触摸屏显示器、触敏输入板、手势捕获相机或其它输入按钮或控件。存储器1106包括非易失性存储器,例如一个或多个磁盘存储设备、一个或多个光盘存储设备、一个或多个闪存设备或者一个或多个其它非易失性固态存储设备。可选地,存储器1106包括远离一个或多个处理单元1102的一个或多个存储设备。存储器1106,或者可选地,存储器1106内的非易失性存储器,包括非暂时性计算机可读存储介质。在一些实现中,存储器1106或存储器1106的非暂时性计算机可读存储介质存储如下程序、模块和数据结构,或者其子集或超集:
·操作系统1116,包括用于处理各种基本系统服务和用于执行硬件相关任务的程序;
·网络通信模块1118,用于经由一个或多个网络接口1104(有线或无线)连接到外部服务;
·用于实现信息呈现的呈现模块1120;
·输入处理模块1122,用于检测来自一个或多个输入设备1114中的一个输入设备的一个或多个用户输入或交互,并解释检测到的输入或交互;
·食物制备控制单元1124,控制服务器1100、包括但不限于如本文所述的计算系统160、服务器120和/或服务器122的模块。
以上所标识的元件中的每一个元件可存储在一个或多个先前提及的存储设备中,且对应于用于执行上述功能的指令集。以上所标识的模块或程序(即指令集)不需要实现为单独的软件程序、过程、模块或数据结构,因此这些模块的各个子集可在各种实现中组合或以其他方式重新排列。在一些实现中,存储器1106可选地存储以上所标识的模块和数据结构的子集。此外,存储器1106可选地存储上面没有描述的附加模块和数据结构。
图12是根据一些实施例的示例性设备1200的框图。例如,设备1200可用作各个实施例中的用户设备111、113、115、计算系统130、注释站128。设备1200包括一个或多个处理单元(CPU)1202、一个或多个网络接口1204、存储器1206以及用于互连这些组件(有时称为芯片组)的一个或多个通信总线1208。设备1200还包括用户界面1210。用户界面1210包括能够呈现媒体内容的一个或多个输出设备1212,输出设备1212包括一个或多个扬声器和/或一个或多个视觉显示器。用户界面1210还包括一个或多个输入设备1214,输入设备1214包括方便用户输入的用户界面组件,例如键盘、鼠标、语音命令输入单元或麦克风、触摸屏显示器、触敏输入板、手势捕获相机或其它输入按钮或控件。存储器1206包括非易失性存储器,例如一个或多个磁盘存储设备、一个或多个光盘存储设备、一个或多个闪存设备或者一个或多个其它非易失性固态存储设备。可选地,存储器1206包括远离一个或多个处理单元1202的一个或多个存储设备。存储器1206,或者可选地,存储器1206内的非易失性存储器,包括非暂时性计算机可读存储介质。在一些实现中,存储器1206或存储器1206的非暂时性计算机可读存储介质存储如下程序、模块和数据结构,或者其子集或超集:
·操作系统1216,包括用于处理各种基本系统服务和用于执行硬件相关任务的程序;
·网络通信模块1218,用于经由一个或多个网络接口1204(有线或无线)连接到外部服务;
·用于实现信息呈现的呈现模块1220;
·输入处理模块1222,用于检测来自一个或多个输入设备1214中的一个输入设备的一个或多个用户输入或交互,并解释检测到的输入或交互;
·食物制备控制单元1224,控制服务器1200、包括但不限于如本文所述的计算系统130的模块。
以上所标识的元件中的每一个元件可存储在一个或多个先前提及的存储设备中,且对应于用于执行上述功能的指令集。以上所标识的模块或程序(即指令集)不需要实现为单独的软件程序、过程、模块或数据结构,因此这些模块的各个子集可在各种实现中组合或以其他方式重新排列。在一些实现中,存储器1206可选地存储以上所标识的模块和数据结构的子集。此外,存储器1206可选地存储上面没有描述的附加模块和数据结构。
虽然上面描述了特定实施例,但是应当理解,并不是旨在将本申请限于这些特定实施例。相反,本申请包括在所附权利要求的精神和范围内的替换、修改和等同物。阐述了许多具体细节,以提供对本文所呈现的主题的透彻理解。然而,对于本领域的普通技术人员将显而易见:可以在没有这些具体细节的情况下实践本主题。在其它情况下,没有详细描述公知的方法、过程、组件和电路,以免不必要地模糊实施例的各方面。
Claims (63)
1.一种计算系统,所述计算系统与烹饪器具通信地耦合并被配置成控制所述烹饪器具的一个或多个功能,其中:
所述烹饪器具包括:食物支撑平台,被配置成支撑食物;一个或多个第一传感器,用于捕获结构化数据,所述结构化数据包括在所述烹饪器具操作期间对应于食物的温度数据;一个或多个第二传感器,用于捕获非结构化数据,所述非结构化数据包括在所述烹饪器具操作期间对应于食物的图像数据;以及一个或多个加热单元,被配置成在所述烹饪器具操作期间加热放置在所述食物支撑平台上的食物;和
所述计算系统包括一个或多个处理器和存储指令的存储器,所述指令在由所述一个或多个处理器执行时使所述处理器执行操作,所述操作包括:
激活所述一个或多个第一传感器和所述一个或多个第二传感器,以在所述烹饪器具中的第一烹饪过程期间捕获第一烹饪数据,包括在所述第一烹饪过程期间捕获一系列温度值以及在所述第一烹饪过程期间捕获一系列图像,其中所述一系列温度值中的每一个温度值和所述一系列图像中的每一个图像由各自的时间戳记录;
经由耦合到所述计算系统的显示生成组件,在第一注释用户界面中显示所述一系列图像的至少一个子集,其中所述第一注释用户界面包括:
根据所述第一烹饪过程的时间线显示的所述一系列图像的子集中的每一个图像;和
多个输入区域,用于指定所述一系列图像的子集中的食物的相应烹饪进度水平;
接收第一用户输入,所述第一用户输入指定所述一系列图像的子集中的食物的相应烹饪进度水平;
对具有对应温度数据和所述第一用户输入所指定的烹饪进度水平的图像子集进行分组;和
将所述具有对应温度数据和烹饪进度水平的图像子集发送到训练数据语料库的服务器,以用于训练智能烹饪器具。
2.根据权利要求1所述的计算系统,其中,所述操作包括:
经由耦合到所述计算系统的显示生成组件,在第二注释用户界面中显示所述一系列图像的子集中的相应图像,其中所述第二注释用户界面包括对应于不同食物形状的多个轮廓工具;和
接收第二用户输入,所述第二用户输入使用所述多个轮廓工具给所述一系列图像的子集中所显示的相应图像中的每个食物指定相应的轮廓。
3.根据权利要求2所述的计算系统,其中:
在将所述图像子集发送到所述训练数据语料库的服务器,以用于训练智能烹饪器具之后接收所述第二用户输入,和
在所述训练数据语料库的服务器处,通过所述第二用户输入所指定的轮廓数据、所述对应温度数据以及所述第一用户输入所指定的烹饪进度水平,对所述图像子集进行分组。
4.根据权利要求2所述的计算系统,其中:
在将所述图像子集发送到所述训练数据语料库的服务器,以用于训练智能烹饪器具之前接收所述第二用户输入,和
在将所述图像子集发送到所述训练数据语料库的服务器之前,通过所述第二用户输入所指定的轮廓数据、所述对应温度数据以及所述第一用户输入所指定的烹饪进度水平,对所述图像子集进行分组。
5.根据权利要求1所述的计算系统,其中:
所述一个或多个第二传感器包括:一个或多个热传感器,用于在所述烹饪器具操作期间捕获对应于所述食物支撑平台的热图像;和
所述在所述烹饪器具中的第一烹饪过程期间捕获第一烹饪数据包括:捕获对应于所述一系列图像的一系列温度图。
6.根据权利要求5所述的计算系统,其中,在将所述图像子集发送到所述训练数据语料库的服务器之前,通过所述对应温度数据和所述第一用户输入所指定的烹饪进度水平,对所述图像子集进行分组。
7.根据权利要求6所述的计算系统,其中,使用所述一系列热图、由所述轮廓数据注释的所述一系列图像和所述熟度水平数据来训练熟度确定模型。
8.根据权利要求1所述的计算系统,其中,所述烹饪器具包括多个加热单元,所述多个加热单元能够独立调节以加热所述食物支撑平台的不同部分。
9.根据权利要求1所述的计算系统,其中,所述操作包括:
接收第三用户输入,所述第三用户输入给所述图像子集中的相应图像的第一部分指定第一食物身份和给所述图像子集中的相应图像的第二部分指定第二食物身份;和
将所述图像子集中的每个图像划分为对应于所述相应图像的第一部分和第二部分的相应图像部分,其中通过对应温度数据和所述第一用户输入所指定的烹饪进度水平,对所述图像子集进行分组包括:
分别对所述图像子集中对应于所述第一食物身份的相应图像部分和所述图像子集中对应于所述第二食物身份的相应图像部分进行分组,每个分组具有给所述相应图像部分中的食物指定的相应温度和烹饪进度水平。
10.所述计算系统包括根据权利要求1-9的任意组合所述的特征。
11.一种采集和注释训练数据的方法,包括:
计算系统与烹饪器具通信地耦合并被配置成控制所述烹饪器具的一个或多个功能,其中所述烹饪器具包括:食物支撑平台,被配置成支撑食物;一个或多个第一传感器,用于捕获结构化数据,所述结构化数据包括在所述烹饪器具操作期间对应于食物的温度数据;一个或多个第二传感器,用于捕获非结构化数据,所述非结构化数据包括在所述烹饪器具操作期间对应于食物的图像数据;以及一个或多个加热单元,被配置成在所述烹饪器具操作期间加热放置在所述食物支撑平台上的食物,在所述计算系统处:
激活所述一个或多个第一传感器和所述一个或多个第二传感器,以在所述烹饪器具中的第一烹饪过程期间捕获第一烹饪数据,包括在所述第一烹饪过程期间捕获一系列温度值以及在所述第一烹饪过程期间捕获一系列图像,其中所述一系列温度值中的每一个温度值和所述一系列图像中的每一个图像由各自的时间戳记录;
经由耦合到所述计算系统的显示生成组件,在第一注释用户界面中显示所述一系列图像的至少一个子集,其中所述第一注释用户界面包括:
根据所述第一烹饪过程的时间线显示的所述一系列图像的子集中的每一个图像;和
多个输入区域,用于指定所述一系列图像的子集中的食物的相应烹饪进度水平;
接收第一用户输入,所述第一用户输入指定所述一系列图像的子集中的食物的相应烹饪进度水平;
对具有对应温度数据和所述第一用户输入所指定的烹饪进度水平的图像子集进行分组;和
将所述具有对应温度数据和烹饪进度水平的图像子集发送到训练数据语料库的服务器,以用于训练智能烹饪器具。
12.根据权利要求11所述的方法,所述方法包括:
经由耦合到所述计算系统的显示生成组件,在第二注释用户界面中显示所述一系列图像的子集中的相应图像,其中所述第二注释用户界面包括对应于不同食物形状的多个轮廓工具;和
接收第二用户输入,所述第二用户输入使用所述多个轮廓工具给所述一系列图像的子集中所显示的相应图像中的每个食物指定相应的轮廓。
13.根据权利要求12所述的方法,其中:
在将所述图像子集发送到所述训练数据语料库的服务器,以用于训练智能烹饪器具之后接收所述第二用户输入,和
在所述训练数据语料库的服务器处,通过所述第二用户输入所指定的轮廓数据、所述对应温度数据以及所述第一用户输入所指定的烹饪进度水平,对所述图像子集进行分组。
14.根据权利要求12所述的方法,其中:
在将所述图像子集发送到所述训练数据语料库的服务器,以用于训练智能烹饪器具之前接收所述第二用户输入,和
在将所述图像子集发送到所述训练数据语料库的服务器之前,通过所述第二用户输入所指定的轮廓数据、所述对应温度数据以及所述第一用户输入所指定的烹饪进度水平,对所述图像子集进行分组。
15.根据权利要求11所述的方法,其中:
所述一个或多个第二传感器包括:一个或多个热传感器,用于在所述烹饪器具操作期间捕获对应于所述食物支撑平台的热图像;和
所述在所述烹饪器具中的第一烹饪过程期间捕获第一烹饪数据包括:捕获对应于所述一系列图像的一系列温度图。
16.根据权利要求15所述的方法,其中,在将所述图像子集发送到所述训练数据语料库的服务器之前,通过所述对应温度数据和所述第一用户输入所指定的烹饪进度水平,对所述图像子集进行分组。
17.根据权利要求16所述的方法,其中,使用所述一系列热图、由所述轮廓数据注释的所述一系列图像和所述熟度水平数据来训练熟度确定模型。
18.根据权利要求11所述的方法,其中,所述烹饪器具包括多个加热单元,所述多个加热单元能够独立调节以加热所述食物支撑平台的不同部分。
19.根据权利要求11所述的方法,所述方法包括:
接收第三用户输入,所述第三用户输入给所述图像子集中的相应图像的第一部分指定第一食物身份和给所述图像子集中的相应图像的第二部分指定第二食物身份;和
将所述图像子集中的每个图像划分为对应于所述相应图像的第一部分和第二部分的相应图像部分,其中通过对应温度数据和所述第一用户输入所指定的烹饪进度水平,对所述图像子集进行分组包括:
分别对所述图像子集中对应于所述第一食物身份的相应图像部分和所述图像子集中对应于所述第二食物身份的相应图像部分进行分组,每个分组具有给所述相应图像部分中的食物指定的相应温度和烹饪进度水平。
20.根据权利要求11-19的任意组合所述的方法。
21.一种非暂时性计算机可读存储介质,所述非暂时性计算机可读存储介质包括指令,所述指令在由计算系统的一个或多个处理器执行时使得所述处理器执行操作,所述计算系统与烹饪器具通信地耦合并被配置成控制所述烹饪器具的一个或多个功能,其中所述烹饪器具包括:食物支撑平台,被配置成支撑食物;一个或多个第一传感器,用于捕获结构化数据,所述结构化数据包括在所述烹饪器具操作期间对应于食物的温度数据;一个或多个第二传感器,用于捕获非结构化数据,所述非结构化数据包括在所述烹饪器具操作期间对应于食物的图像数据;以及一个或多个加热单元,被配置成在所述烹饪器具操作期间加热放置在所述食物支撑平台上的食物,并且所述操作包括:
激活所述一个或多个第一传感器和所述一个或多个第二传感器,以在所述烹饪器具中的第一烹饪过程期间捕获第一烹饪数据,包括在所述第一烹饪过程期间捕获一系列温度值以及在所述第一烹饪过程期间捕获一系列图像,其中所述一系列温度值中的每一个温度值和所述一系列图像中的每一个图像由各自的时间戳记录;
经由耦合到所述计算系统的显示生成组件,在第一注释用户界面中显示所述一系列图像的至少一个子集,其中所述第一注释用户界面包括:
根据所述第一烹饪过程的时间线显示的所述一系列图像的子集中的每一个图像;和
多个输入区域,用于指定所述一系列图像的子集中的食物的相应烹饪进度水平;
接收第一用户输入,所述第一用户输入指定所述一系列图像的子集中的食物的相应烹饪进度水平;
对具有对应温度数据和所述第一用户输入所指定的烹饪进度水平的图像子集进行分组;和
将所述具有对应温度数据和烹饪进度水平的图像子集发送到训练数据语料库的服务器,以用于训练智能烹饪器具。
22.根据权利要求19所述的计算机可读存储介质,其中,所述操作包括根据权利要求11-19所述的方法的任意组合。
23.一种在智能烹饪器具中定位食物的方法,所述方法包括:
计算系统具有一个或多个处理器和存储器并通信地耦合到至少第一烹饪器具,在所述计算系统处:
获取多个训练图像,所述多个训练图像中的每一个训练图像包含一个或多个食物类型的相应食物;
获取对应于所述多个训练图像中的每一个训练图像所包括的每一个食物的相应注释数据,其中所述每一个训练图像中的所述每一个食物的相应注释数据包括对应于所述每一个食物的相应食物类型的食物类型标签、对应于所述每一个图像内的所述每一个食物的相应位置的一组位置坐标、对应于所述每一个图像内的所述每一个食物的相应边界的轮廓的描述、以及对应于所述每一个图像中所表示的所述每一个食物的烹饪进度水平标签;和
使用所述多个训练图像,以所述相应注释数据作为地面真值,来训练图像处理模型,其中所述图像处理模型包括多个特征提取层、区域建议网络和评估网络,并且其中,所述评估网络具有四个预测头,所述四个预测头对应于(1)食物类型、(2)位置坐标、(3)轮廓和(4)在输入图像中识别的相应食物的烹饪进度水平。
24.根据权利要求23所述的方法,其中,所述区域建议网络和所述评估网络以不同的损失函数并行训练。
25.根据权利要求24所述的方法,其中,所述评估网络包括四个激活层,每一个激活层对应于所述四个预测头中对应于(1)食物类型、(2)位置坐标、(3)轮廓和(4)烹饪进度水平的相应预测头,并且其中,所述四个激活层在所述评估网络中按照(1)食物类型、接下来(2)位置坐标、接下来(3)轮廓、接下来(4)烹饪进度水平的顺序排列。
26.根据权利要求23所述的方法,所述方法包括:
使用所述多个训练图像,使所述注释数据的相应部分对应于所述食物类型标签,来训练专用于确定食物类型的第二图像处理模型。
27.根据权利要求23所述的方法,所述方法包括:
使用所述多个训练图像,使所述注释数据的相应部分对应于所述多个训练图像中的食物的烹饪进度水平标签,来训练专用于确定相应食物的烹饪进度水平的第三图像处理模型。
28.根据权利要求27所述的方法,所述方法包括:
建立图像处理流水线,所述图像处理流水线包括所述第一图像处理模型,接着包括所述第三图像处理模型;
获取对应于所述第一烹饪器具内的第一烹饪过程开始的第一原始测试图像;
获取对应于所述第一烹饪器具内的所述第一烹饪过程中的第一时间点的第二原始测试图像;
使用所述第一图像处理模型对所述第一原始测试图像进行图像分析,以确定所述第一原始测试图像和所述第二原始测试图像中的多个食物的位置和轮廓;和
使用所述第三图像处理模型对所述第一原始测试图像和所述第二原始测试图像中对应于所述第一原始测试图像和所述第二原始测试图像中的每个特定食物的相应部分进行图像分析。
29.根据权利要求28所述的方法,其中,还使用对应于所述多个训练图像的多个热图,使所述注释数据的相应部分对应于所述多个训练图像中的食物的烹饪进度水平标签,来训练所述第三图像处理模型。
30.根据权利要求23-29的任意组合所述的方法。
31.一种计算系统,所述计算系统与至少第一烹饪器具通信地耦合并被配置成控制所述烹饪器具的一个或多个功能,所述计算系统包括:
一个或多个处理器;和
存储指令的存储器,所述指令在由所述一个或多个处理器执行时使所述处理器执行操作,所述操作包括:
获取多个训练图像,所述多个训练图像中的每一个训练图像包含一个或多个食物类型的相应食物;
获取对应于所述多个训练图像中的每一个训练图像所包括的每一个食物的相应注释数据,其中所述每一个训练图像中的所述每一个食物的相应注释数据包括对应于所述每一个食物的相应食物类型的食物类型标签、对应于所述每一个图像内的所述每一个食物的相应位置的一组位置坐标、对应于所述每一个图像内的所述每一个食物的相应边界的轮廓的描述、以及对应于所述每一个图像中所表示的所述每一个食物的烹饪进度水平标签;和
使用所述多个训练图像,以所述相应注释数据作为地面真值,来训练图像处理模型,其中所述图像处理模型包括多个特征提取层、区域建议网络和评估网络,并且其中,所述评估网络具有四个预测头,所述四个预测头对应于(1)食物类型、(2)位置坐标、(3)轮廓和(4)在输入图像中识别的相应食物的烹饪进度水平。
32.根据权利要求31所述的计算系统,其中,所述区域建议网络和所述评估网络以不同的损失函数并行训练。
33.根据权利要求32所述的计算系统,其中,所述评估网络包括四个激活层,每一个激活层对应于所述四个预测头中对应于(1)食物类型、(2)位置坐标、(3)轮廓和(4)烹饪进度水平的相应预测头,并且其中,所述四个激活层在所述评估网络中按照(1)食物类型、接下来(2)位置坐标、接下来(3)轮廓、接下来(4)烹饪进度水平的顺序排列。
34.根据权利要求31所述的计算系统,其中,所述操作包括:
使用所述多个训练图像,使所述注释数据的相应部分对应于所述食物类型标签,来训练专用于确定食物类型的第二图像处理模型。
35.根据权利要求31所述的计算系统,其中,所述操作包括:
使用所述多个训练图像,使所述注释数据的相应部分对应于所述多个训练图像中的食物的烹饪进度水平标签,来训练专用于确定相应食物的烹饪进度水平的第三图像处理模型。
36.根据权利要求35所述的计算系统,其中,所述操作包括:
建立图像处理流水线,所述图像处理流水线包括所述第一图像处理模型,接着包括所述第三图像处理模型;
获取对应于所述第一烹饪器具内的第一烹饪过程开始的第一原始测试图像;
获取对应于所述第一烹饪器具内的所述第一烹饪过程中的第一时间点的第二原始测试图像;
使用所述第一图像处理模型对所述第一原始测试图像进行图像分析,以确定所述第一原始测试图像和所述第二原始测试图像中的多个食物的位置和轮廓;和
使用所述第三图像处理模型对所述第一原始测试图像和所述第二原始测试图像中对应于所述第一原始测试图像和所述第二原始测试图像中的每个特定食物的相应部分进行图像分析。
37.根据权利要求36所述的计算系统,其中,还使用对应于所述多个训练图像的多个热图,使所述注释数据的相应部分对应于所述多个训练图像中的食物的烹饪进度水平标签,来训练所述第三图像处理模型。
38.所述计算系统具有根据权利要求31-37的特征的任意组合。
39.一种非暂时性计算机可读存储介质,所述非暂时性计算机可读存储介质存储指令,所述指令在由一个或多个处理器执行时使得所述处理器执行操作,所述操作包括:
计算系统与至少第一烹饪器具通信地耦合并被配置成控制所述烹饪器具的一个或多个功能,在所述计算系统处:
获取多个训练图像,所述多个训练图像中的每一个训练图像包含一个或多个食物类型的相应食物;
获取对应于所述多个训练图像中的每一个训练图像所包括的每一个食物的相应注释数据,其中所述每一个训练图像中的所述每一个食物的相应注释数据包括对应于所述每一个食物的相应食物类型的食物类型标签、对应于所述每一个图像内的所述每一个食物的相应位置的一组位置坐标、对应于所述每一个图像内的所述每一个食物的相应边界的轮廓的描述、以及对应于所述每一个图像中所表示的所述每一个食物的烹饪进度水平标签;和
使用所述多个训练图像,以所述相应注释数据作为地面真值,来训练图像处理模型,其中所述图像处理模型包括多个特征提取层、区域建议网络和评估网络,并且其中,所述评估网络具有四个预测头,所述四个预测头对应于(1)食物类型、(2)位置坐标、(3)轮廓和(4)在输入图像中识别的相应食物的烹饪进度水平
40.根据权利要求15所述的计算机可读介质,其中,所述操作包括根据权利要求23-29所述的方法的任意组合。
41.一种确定食物的烹饪进度水平的方法,所述方法包括:
计算系统具有一个或多个处理器和存储器并通信地耦合到至少第一烹饪器具,在所述计算系统处:
获取对应于所述第一烹饪器具内的第一食物的初始烹饪进度水平的第一基线图像;
获取对应于所述第一烹饪器具内的第一食物的当前烹饪进度水平的第一测试图像;
生成对应于所述第一测试图像的第一测试特征张量,包括:
获取对应于所述第一基线图像的第一基线特征张量,所述第一基线特征张量使用第一特征提取模型从所述第一基线图像提取;
使用所述第一特征提取模型提取对应于所述第一测试图像的相应特征张量;和
基于对应于所述第一测试图像的相应特征张量与对应于所述第一基线图像的第一基线特征张量之间的差来计算差异特征张量,其中所述不同的特征张量用作对应于所述第一测试图像的第一测试特征张量;和
使用所述第一测试特征张量作为烹饪进度确定模型的输入,来确定所述第一烹饪器具内的第一食物的当前烹饪进度水平,所述烹饪进度确定模型已针对对应于所述第一食物的实例的训练图像的差异特征张量以各种烹饪进度水平来训练。
42.根据权利要求41所述的方法,所述方法包括:
使用对应于多个食物组的训练图像来训练所述烹饪进度确定模型,所述训练图像至少包括第一食物组和第二食物组,其中:
所述第一食物是所述第一食物组的实例,而不是所述第二食物组的实例,
对应于所述多个食物组中的每一个食物组的图像包括多个图像集,每个图像集包括处于所述多个烹饪进度水平中的每一个烹饪进度水平的所述食物组的实例的相应图像。
43.根据权利要求42所述的方法,其中,使用对应于多个食物组的训练图像来训练所述烹饪进度确定模型包括:
对于所述多个食物组中的相应食物组的所述多个图像集中的每个图像集:
生成对应于所述图像集中的每个图像的相应特征张量,所述相应特征张量包括对应于针对所述初始烹饪进度水平标记的图像的相应特征张量、以及对应于针对所述多个烹饪进度水平中的每个后续烹饪进度水平标记的图像的相应特征张量;和
对于所述多个烹饪进度水平中的每一个烹饪进度水平,通过针对所述烹饪进度水平标记的图像的相应特征张量与针对所述初始烹饪进度水平标记的图像的相应特征张量进行比较来获取相应的差异特征张量;和
使用所述多个烹饪进度水平中的每一个烹饪进度水平的相应差异特征张量,作为处于所述每一个烹饪进度水平的相应食物组的训练输入。
44.根据权利要求43所述的方法,其中,生成对应于所述图像集中的每个图像的相应特征张量进一步包括:
获取所述图像集中的所述图像的对应热成像图;和
基于所述图像和所述图像的对应热成像图,生成对应于所述图像的相应特征张量。
45.根据权利要求41所述的方法,所述方法包括:
获取对应于所述第一烹饪器具内的第一烹饪过程开始的第一原始图像;
获取对应于所述第一烹饪器具内的所述第一烹饪过程中的第一时间点的第二原始图像;
对所述第一原始图像和所述第二原始图像进行图像分析,以确定所述第一原始图像和所述第二原始图像中的多个食物的位置和轮廓;和
基于对所述第一原始图像和所述第二原始图像进行图像分析,来识别所述第一原始图像和所述第二原始图像中对应于所述第一食物的相应部分,其中所述第一基线图像是所述第一原始图像中对应于所述第一食物的相应部分的副本,且所述第一测试图像是所述第二原始图像中对应于所述第一食物的相应部分的副本。
46.根据权利要求45所述的方法,其中,对所述第一原始图像和所述第二原始图像进行图像分析包括:
使用卷积神经网络对所述第一原始图像和所述第二原始图像进行图像分析,所述卷积神经网络通过四个约束来训练,所述四个约束包括食物位置、食物类型、食物轮廓和食物烹饪进度水平。
47.根据权利要求41所述的方法,所述方法包括:
使用所述烹饪进度水平确定模型确定所述第一烹饪器具内具有相同类型的多个食物中的每一个食物各自的当前烹饪进度水平;和
基于所述第一烹饪器具内具有相同类型的多个食物各自的当前烹饪进度水平,输出所述第一烹饪器具内具有相同类型的多个食物的整体烹饪进度水平。
48.根据权利要求41所述的方法,所述方法包括包括:
使用所述烹饪进度水平确定模型确定所述第一烹饪器具内具有两种或更多种不同食物类型的相应食物中的每一个食物各自的当前烹饪进度水平;和
基于所述第一烹饪器具内具有两种或更多种不同类型的相应食物各自的当前烹饪进度水平,输出所述第一烹饪器具内两种或更多种不同食物类型中的每一个食物类型各自的烹饪进度水平。
49.根据权利要求41所述的方法,所述方法包括:
使用所述烹饪进度水平确定模型确定所述第一烹饪器具内的每一个食物各自的当前烹饪进度水平;和
识别所述第一烹饪器具内的相应加热区域,所述相应加热区域对应于与所述第一烹饪器具内的一个或多个其它加热区域不同的烹饪进度水平;和
相对于针对所述第一烹饪器具内的一个或多个其它加热区域的加热功率,来调节针对所述相应加热区域的加热功率。
50.根据权利要求41所述的方法,所述方法包括:
根据确定所述第一烹饪器具内的第一食物的当前烹饪进度水平对应于比相同类型的其它食物的当前烹饪进度水平更提前的烹饪进度水平,执行命令以使得所述第一食物被输送到所述第一烹饪器具内的冷区域。
51.根据权利要求41所述的方法,所述方法包括:
根据确定所述第一烹饪器具内的第一食物的当前烹饪进度水平对应于预设烹饪进度水平,向用户产生警报。
52.根据权利要求41-51的任意组合所述的方法。
53.一种计算系统,所述计算系统通信地耦合到至少第一烹饪器具,包括:
一个或多个处理器;和
存储指令的存储器,所述指令在由所述一个或多个处理器执行时使所述处理器执行操作,所述操作包括:
获取对应于所述第一烹饪器具内的第一食物的初始烹饪进度水平的第一基线图像;
获取对应于所述第一烹饪器具内的第一食物的当前烹饪进度水平的第一测试图像;
生成对应于所述第一测试图像的第一测试特征张量,包括:
获取对应于所述第一基线图像的第一基线特征张量,所述第一基线特征张量使用第一特征提取模型从所述第一基线图像提取;
使用所述第一特征提取模型提取对应于所述第一测试图像的相应特征张量;和
基于对应于所述第一测试图像的相应特征张量与对应于所述第一基线图像的第一基线特征张量之间的差来计算差异特征张量,其中所述不同的特征张量用作对应于所述第一测试图像的第一测试特征张量;和
使用所述第一测试特征张量作为烹饪进度确定模型的输入,来确定所述第一烹饪器具内的第一食物的当前烹饪进度水平,所述烹饪进度确定模型已针对对应于所述第一食物的实例的训练图像的差异特征张量以各种烹饪进度水平来训练。
54.根据权利要求52所述的计算系统,其中,所述操作包括:
使用对应于多个食物组的训练图像来训练所述烹饪进度确定模型,所述训练图像至少包括第一食物组和第二食物组,其中:
所述第一食物是所述第一食物组的实例,而不是所述第二食物组的实例,
对应于所述多个食物组中的每一个食物组的图像包括多个图像集,每个图像集包括处于所述多个烹饪进度水平中的每一个烹饪进度水平的所述食物组的实例的相应图像。
55.根据权利要求53所述的计算系统,其中,使用对应于多个食物组的训练图像来训练所述烹饪进度确定模型包括:
对于所述多个食物组中的相应食物组的所述多个图像集中的每个图像集:
生成对应于所述图像集中的每个图像的相应特征张量,所述相应特征张量包括对应于针对所述初始烹饪进度水平标记的图像的相应特征张量、以及对应于针对所述多个烹饪进度水平中的每个后续烹饪进度水平标记的图像的相应特征张量;和
对于所述多个烹饪进度水平中的每一个烹饪进度水平,通过针对所述烹饪进度水平标记的图像的相应特征张量与针对所述初始烹饪进度水平标记的图像的相应特征张量进行比较来获取相应的差异特征张量;和
使用所述多个烹饪进度水平中的每一个烹饪进度水平的相应差异特征张量,作为处于所述每一个烹饪进度水平的相应食物组的训练输入。
56.根据权利要求54所述的计算系统,其中,生成对应于所述图像集中的每个图像的相应特征张量进一步包括:
获取所述图像集中的所述图像的对应热成像图;和
基于所述图像和所述图像的对应热成像图,生成对应于所述图像的相应特征张量。
57.根据权利要求52所述的计算系统,其中,所述操作包括:
获取对应于所述第一烹饪器具内的第一烹饪过程开始的第一原始图像;
获取对应于所述第一烹饪器具内的所述第一烹饪过程中的第一时间点的第二原始图像;
对所述第一原始图像和所述第二原始图像进行图像分析,以确定所述第一原始图像和所述第二原始图像中的多个食物的位置和轮廓;和
基于对所述第一原始图像和所述第二原始图像进行图像分析,来识别所述第一原始图像和所述第二原始图像中对应于所述第一食物的相应部分,其中所述第一基线图像是所述第一原始图像中对应于所述第一食物的相应部分的副本,且所述第一测试图像是所述第二原始图像中对应于所述第一食物的相应部分的副本。
58.根据权利要求56所述的计算系统,其中,对所述第一原始图像和所述第二原始图像进行图像分析包括:
使用卷积神经网络对所述第一原始图像和所述第二原始图像进行图像分析,所述卷积神经网络通过四个约束来训练,所述四个约束包括食物位置、食物类型、食物轮廓和食物烹饪进度水平。
59.根据权利要求52所述的计算系统,其中,所述操作包括:
使用所述烹饪进度水平确定模型确定所述第一烹饪器具内具有相同类型的多个食物中的每一个食物各自的当前烹饪进度水平;和
基于所述第一烹饪器具内具有相同类型的多个食物各自的当前烹饪进度水平,输出所述第一烹饪器具内具有相同类型的多个食物的整体烹饪进度水平。
60.根据权利要求52所述的计算系统,其中,所述操作包括:
使用所述烹饪进度水平确定模型确定所述第一烹饪器具内具有两种或更多种不同食物类型的相应食物中的每一个食物各自的当前烹饪进度水平;和
基于所述第一烹饪器具内具有两种或更多种不同类型的相应食物各自的当前烹饪进度水平,输出所述第一烹饪器具内两种或更多种不同食物类型中的每一个食物类型各自的烹饪进度水平。
61.所述计算系统具有根据权利要求53-60的特征的任意组合。
62.一种计算机可读存储介质,所述计算机可读存储介质存储指令,所述指令在由一个或多个处理器执行时使所述处理器执行操作,所述操作包括:
在与至少第一烹饪器具耦合的计算系统处:
获取对应于所述第一烹饪器具内的第一食物的初始烹饪进度水平的第一基线图像;
获取对应于所述第一烹饪器具内的第一食物的当前烹饪进度水平的第一测试图像;
生成对应于所述第一测试图像的第一测试特征张量,包括:
获取对应于所述第一基线图像的第一基线特征张量,所述第一基线特征张量使用第一特征提取模型从所述第一基线图像提取;
使用所述第一特征提取模型提取对应于所述第一测试图像的相应特征张量;和
基于对应于所述第一测试图像的相应特征张量与对应于所述第一基线图像的第一基线特征张量之间的差来计算差异特征张量,其中所述不同的特征张量用作对应于所述第一测试图像的第一测试特征张量;和
使用所述第一测试特征张量作为烹饪进度确定模型的输入,来确定所述第一烹饪器具内的第一食物的当前烹饪进度水平,所述烹饪进度确定模型已针对对应于所述第一食物的实例的训练图像的差异特征张量以各种烹饪进度水平来训练。
63.根据权利要求62所述的计算机可读存储介质,其中,所述操作包括根据权利要求41-51所述的方法的任意组合。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2018/110283 WO2020077501A1 (en) | 2018-10-15 | 2018-10-15 | System and method for collecting and annotating cooking images for training smart cooking appliances, locating food items in smart cooking appliances, and determining cooking progress of food items in smart cooking appliances |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113194792A true CN113194792A (zh) | 2021-07-30 |
CN113194792B CN113194792B (zh) | 2022-05-20 |
Family
ID=70282864
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880100142.1A Active CN113194792B (zh) | 2018-10-15 | 2018-10-15 | 训练烹饪器具、定位食物以及确定烹饪进度的系统和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US12102259B2 (zh) |
CN (1) | CN113194792B (zh) |
WO (1) | WO2020077501A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113723498A (zh) * | 2021-08-26 | 2021-11-30 | 广东美的厨房电器制造有限公司 | 食物熟度识别方法、装置、系统、电器、服务器及介质 |
CN115089030A (zh) * | 2022-08-22 | 2022-09-23 | 广东海新智能厨房股份有限公司 | 基于智能控温加热的烤箱及智能控温加热方法 |
WO2024087032A1 (en) * | 2022-10-25 | 2024-05-02 | Jiu Tai Group Co., Ltd. | Temperature control method and system for cooking apparatus, cooking apparatus, and storage medium |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110399804A (zh) * | 2019-07-01 | 2019-11-01 | 浙江师范大学 | 一种基于深度学习的食品检测识别方法 |
US11000152B2 (en) * | 2019-08-08 | 2021-05-11 | Pepsico, Inc. | System and method for operating a heating element of an appliance |
KR20210020702A (ko) * | 2019-08-16 | 2021-02-24 | 엘지전자 주식회사 | 인공지능 서버 |
KR20190105531A (ko) * | 2019-08-26 | 2019-09-17 | 엘지전자 주식회사 | 인공지능 기반 조리 제어 방법 및 지능형 디바이스 |
KR20210056173A (ko) * | 2019-11-08 | 2021-05-18 | 엘지전자 주식회사 | 인공지능 조리 기기 |
KR20210067442A (ko) * | 2019-11-29 | 2021-06-08 | 엘지전자 주식회사 | 객체 인식을 위한 자동 레이블링 장치 및 방법 |
US11871082B2 (en) * | 2019-12-30 | 2024-01-09 | MyFitnessPal, Inc. | Methods and apparatus for media playback based on cue points |
WO2021184003A1 (en) | 2020-03-13 | 2021-09-16 | June Life, Inc. | Method and system for sensor maintenance |
US12016487B2 (en) | 2020-07-15 | 2024-06-25 | June Life, Llc | Method and system for foodstuff identification |
US20220047109A1 (en) * | 2020-08-14 | 2022-02-17 | June Life, Inc. | System and method for targeted heating element control |
US12070156B2 (en) | 2021-03-19 | 2024-08-27 | Haier Us Appliance Solutions, Inc. | System and method for detecting food items and managing cooking timers on a cooktop appliance |
KR20230011181A (ko) * | 2021-07-13 | 2023-01-20 | 삼성전자주식회사 | 조리 기기 및 그의 제어 방법 |
CN113521757A (zh) * | 2021-07-22 | 2021-10-22 | 浙江理工大学科技与艺术学院 | 基于图像识别的桌面烹饪游戏系统 |
US11544925B1 (en) | 2021-09-01 | 2023-01-03 | GOPIZZA Inc. | Kitchen system with food preparation station |
US12050662B2 (en) * | 2021-09-07 | 2024-07-30 | Whirlpool Corporation | Generative food doneness prediction |
CN113647797B (zh) * | 2021-09-09 | 2023-06-09 | 广东美的厨房电器制造有限公司 | 烹饪设备及其控制方法、装置、存储介质 |
US20230134081A1 (en) * | 2021-10-28 | 2023-05-04 | Haier Us Appliance Solutions, Inc. | Systems and methods for monitoring a cooking operation using a camera |
WO2023105033A1 (en) * | 2021-12-10 | 2023-06-15 | BSH Hausgeräte GmbH | Display apparatus of cooking appliance and cooking appliance |
WO2023105023A1 (en) * | 2021-12-10 | 2023-06-15 | BSH Hausgeräte GmbH | Method for displaying cooking state of cooking appliance and cooking appliance and control system therefor |
CN114720646B (zh) * | 2022-04-07 | 2023-12-15 | 手拉手纳米科技(嘉兴)有限公司 | 基于大数据的食品油炸锅的智能优化分析方法 |
US20230408104A1 (en) * | 2022-06-15 | 2023-12-21 | Haier Us Appliance Solutions, Inc. | Cooking appliance and method for image capture |
US11928769B2 (en) | 2022-07-20 | 2024-03-12 | Samsung Electronics Co., Ltd. | Employing controlled illumination for hyperspectral or multispectral imaging of food in an appliance |
WO2024100458A1 (en) * | 2022-11-10 | 2024-05-16 | Sagar Harshadrai Damania | A smart cooking station and a method of operation |
DE102022212181A1 (de) | 2022-11-16 | 2024-05-16 | BSH Hausgeräte GmbH | Bestimmen einer Vorhersagequalität einer Restdauer eines Betriebsablaufs |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006001854A2 (en) * | 2004-06-14 | 2006-01-05 | Ghislain, Lucien, P. | Thermal conductivity mask for producing patterns |
CN102802473A (zh) * | 2010-02-08 | 2012-11-28 | 刘信羽 | 一种在自动或半自动烹饪设备中完成的烹饪方法 |
JP2014163541A (ja) * | 2013-02-21 | 2014-09-08 | Osaka Gas Co Ltd | 加熱調理システム及び加熱調理システム用アプリケーションプログラム |
CN104042124A (zh) * | 2014-06-05 | 2014-09-17 | 宁波方太厨具有限公司 | 一种智能烤箱及其工作控制方法 |
EP2822355A1 (en) * | 2013-07-03 | 2015-01-07 | ELECTROLUX PROFESSIONAL S.p.A. | Cooking hob and operation method thereof |
CN205447921U (zh) * | 2016-03-03 | 2016-08-10 | 沈阳英林特电器有限公司 | 一种智能烹饪系统 |
KR20170061476A (ko) * | 2015-11-26 | 2017-06-05 | 오윤수 | 증기 응축용 압력솥 |
CN107249403A (zh) * | 2014-12-22 | 2017-10-13 | 厨师步骤有限公司 | 食物制备指导系统 |
CN107909605A (zh) * | 2017-10-23 | 2018-04-13 | 广东美的厨房电器制造有限公司 | 烹饪设备的控制方法、装置、存储介质和服务器 |
CN108463780A (zh) * | 2015-11-16 | 2018-08-28 | 厨师步骤有限公司 | 数据整合和个性化远程控制的烹饪设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160124770A (ko) * | 2014-02-20 | 2016-10-28 | 엠비엘 리미티드 | 로봇식 요리용 키친에서의 음식 준비를 위한 방법 및 시스템 |
US20170011649A1 (en) * | 2015-07-10 | 2017-01-12 | Samsung Electronics Co., Ltd. | Recipe system |
CN107468048B (zh) * | 2017-09-30 | 2020-10-02 | 广东美的厨房电器制造有限公司 | 烹饪器具及其控制方法 |
CN107912964A (zh) * | 2017-11-07 | 2018-04-17 | 佛山市云米电器科技有限公司 | 智能烹饪的方法及装置 |
-
2018
- 2018-10-15 WO PCT/CN2018/110283 patent/WO2020077501A1/en active Application Filing
- 2018-10-15 CN CN201880100142.1A patent/CN113194792B/zh active Active
-
2021
- 2021-04-13 US US17/229,745 patent/US12102259B2/en active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006001854A2 (en) * | 2004-06-14 | 2006-01-05 | Ghislain, Lucien, P. | Thermal conductivity mask for producing patterns |
CN102802473A (zh) * | 2010-02-08 | 2012-11-28 | 刘信羽 | 一种在自动或半自动烹饪设备中完成的烹饪方法 |
JP2014163541A (ja) * | 2013-02-21 | 2014-09-08 | Osaka Gas Co Ltd | 加熱調理システム及び加熱調理システム用アプリケーションプログラム |
EP2822355A1 (en) * | 2013-07-03 | 2015-01-07 | ELECTROLUX PROFESSIONAL S.p.A. | Cooking hob and operation method thereof |
CN104042124A (zh) * | 2014-06-05 | 2014-09-17 | 宁波方太厨具有限公司 | 一种智能烤箱及其工作控制方法 |
CN107249403A (zh) * | 2014-12-22 | 2017-10-13 | 厨师步骤有限公司 | 食物制备指导系统 |
CN108463780A (zh) * | 2015-11-16 | 2018-08-28 | 厨师步骤有限公司 | 数据整合和个性化远程控制的烹饪设备 |
KR20170061476A (ko) * | 2015-11-26 | 2017-06-05 | 오윤수 | 증기 응축용 압력솥 |
CN205447921U (zh) * | 2016-03-03 | 2016-08-10 | 沈阳英林特电器有限公司 | 一种智能烹饪系统 |
CN107909605A (zh) * | 2017-10-23 | 2018-04-13 | 广东美的厨房电器制造有限公司 | 烹饪设备的控制方法、装置、存储介质和服务器 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113723498A (zh) * | 2021-08-26 | 2021-11-30 | 广东美的厨房电器制造有限公司 | 食物熟度识别方法、装置、系统、电器、服务器及介质 |
CN115089030A (zh) * | 2022-08-22 | 2022-09-23 | 广东海新智能厨房股份有限公司 | 基于智能控温加热的烤箱及智能控温加热方法 |
CN115089030B (zh) * | 2022-08-22 | 2022-11-22 | 广东海新智能厨房股份有限公司 | 基于智能控温加热的烤箱及智能控温加热方法 |
WO2024087032A1 (en) * | 2022-10-25 | 2024-05-02 | Jiu Tai Group Co., Ltd. | Temperature control method and system for cooking apparatus, cooking apparatus, and storage medium |
Also Published As
Publication number | Publication date |
---|---|
US20210228022A1 (en) | 2021-07-29 |
WO2020077501A1 (en) | 2020-04-23 |
US12102259B2 (en) | 2024-10-01 |
CN113194792B (zh) | 2022-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113194792B (zh) | 训练烹饪器具、定位食物以及确定烹饪进度的系统和方法 | |
KR102329592B1 (ko) | 재료 인식을 기반으로 하는 음식 준비 방법 및 시스템 | |
US10819905B1 (en) | System and method for temperature sensing in cooking appliance with data fusion | |
US11339971B2 (en) | Oven with automatic control of pan elevation | |
US20230269832A1 (en) | Configurable cooking systems and methods | |
JP6839203B2 (ja) | リモート制御された調理機器のためのデータの集約及び個人化 | |
JP2022101582A (ja) | ロボット調理キッチン内の食品調製のための方法及びシステム | |
US11069045B2 (en) | Food preparation assistance using image processing | |
US8419434B2 (en) | Interactive recipe preparation using interactive cooking device to communicate with kitchen appliances | |
US20210259453A1 (en) | Cooking device and system | |
SE544194C2 (en) | Meal preparation orchestrator | |
CN108665134A (zh) | 用于监控食品制备的装置和方法 | |
US20220273139A1 (en) | System and Method for Optimal Food Cooking or Heating Operations | |
JP2019219766A (ja) | 分析装置、分析システム、及び分析プログラム | |
CN111897381A (zh) | 一种烤箱控制方法、装置及烤箱 | |
US20170103676A1 (en) | Cognitive Personalized Nutrition Analysis Based on Image and Sensor Driven Data | |
CN110865150A (zh) | 食物烤制监控方法及系统 | |
JP2021063608A (ja) | 加熱調理システム | |
CN107184079A (zh) | 智能烹饪系统及智能烹饪方法 | |
TWM580757U (zh) | Automated food conditioning system | |
WO2022065074A1 (ja) | 情報処理装置、情報処理方法、およびプログラム | |
WO2024203509A1 (ja) | 調理支援システム、調理支援方法及び調理支援プログラム | |
KR102611452B1 (ko) | 인공지능(ai) 기반 비대면 qsc 점검 솔루션 시스템 | |
CN208371489U (zh) | 智能烹饪系统 | |
CN114282091A (zh) | 食材管理方法、装置、设备和存储介质 |
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 |