Patent Description:
Cooking apparatus may implement cooking processes such as roasting, grilling, frying, air frying, etc., to cook food. When cooking food, consumers may use a recipe which indicates the approximate required cooking time and heating temperature to determine when the food is likely to be completely cooked. For example, when baking a certain type of cake, the recipe may indicate that the cake needs to be cooked for <NUM> minutes with a heating temperature of <NUM>. However, consumers cannot be sure whether the cake is undercooked or overcooked in this time. There are some tips like checking the cake <NUM> minutes prior to the time indicated in the recipe by inserting a probe into the cake to check whether there is some raw cake dough stuck to the probe after removing the probe. However, this may not be considered to be convenient. In some cases, the checking period may be in the range of more than <NUM> minutes, which means the cake might be done more than <NUM> minutes earlier or more than <NUM> minutes later than expected by the recipe.

Some control technologies exist to check how well cooked a food item is as a result of a cooking process. A doneness level may be defined for the food item to indicate by how much food item has been cooked. Examples of doneness level may include: raw, undercooked, cooked, overcooked, burnt, etc. Each doneness levels may be achieved during a certain phase of the cooking process. In an example control technology, a scale may be used to detect a weight change during the cooking process where the weight change may indicate how well cooked the food item is (e.g., moisture lost due to cooking may reduce the weight of the food item). While the doneness of some food can be checked using weight change, some food types and/or cooking processes may not be compatible with this technology. For example, some cooking processes use water bathing, or use hot air such as in an air fryer. In these cases, any detected weight loss may not provide an accurate indications of whether the food item is cooked.

When food is cooking, there may be a change of visual features such as color, texture, size, etc. Computer vision technology may have utility in the food industry. For example, computer-vision may be used for food quality detection in a commercial setting e.g., to remove rotten fruits, maintain the final consistent food quality, like cookies, etc. However, these technologies may not be used during the cooking process itself. The food industry may carefully control parameters such as heating time, temperature, ingredients, recipe, etc., in order to obtain a consistent cooking result without needing to monitor the cooking process itself. In contrast, in the consumer home cooking environment, the food ingredients, temperature, cooking time, recipe used, cooking skill, type of cooking apparatus used, etc., may vary by consumer. Thus, the consumer may not have a consistent cooking experience no matter how closely they follow a recipe. Thus, the consumer may need to check the cooking process, which may be burdensome or even ruin the cooking process. <CIT> discloses a cooking simulation software for calculating and providing data to be used for later real-time cooking, such as temperature for the cooking, time. The software receives input of several parameters (e.g. food type, weight, dimension information/size, consumers sensory preference, final cooking level, or nutrition, health target), the oven information (size, heating method, heating capacity, etc.), time to consume the food. Said input is provided by user input and/or detection, and is used in several mathematical modellings which are generally about math-physics equations of heat, water, material (food, oven,any physical accessory, size the oven, etc.), which are the main function of the simulation software running on powerful computers or mobile devices. An input to this system is the user preferred food quality which could be one of several images of cooking levels which consumers could select one among them. It could be a full image of the food or simply a zone of the food. The only purpose of said images is to be used for consumer selection or input for calculating data to be used for later real-time cooking.

Certain aspects or embodiments described herein relate to identifying a phase of a cooking process based on a color of a food item. Certain aspects or embodiments may reduce or obviate certain problems associated with checking how well cooked a food item is during a cooking process in various settings.

A computer-implemented cooking method according to the invention is disclosed in claim <NUM> as a first aspect. The method comprises receiving first image data corresponding to a view of a food item at a first time of a cooking process implemented by a cooking apparatus. A perimeter of the food item visible in the view encloses a first area of the food item. The method further comprises receiving second image data corresponding to the view of the food item at a second time of the cooking process. The method further comprises selecting a region of interest in the view. The region of interest maps to a second area of the food item. The second area is less than the first area. The method further comprises identifying a phase of the cooking process based on a comparison of a first color of the food item at the first time with a second color of the food item at the second time. The first color is derived from a part of the first image data that corresponds to the region of interest. The second color is derived from a part of the second image data that corresponds to the region of interest.

Some embodiments relating to the first and the other aspects are now described.

In some embodiments, the method comprises comprising determining whether or not the identified phase of the cooking process corresponds to an expected phase of the cooking process based on recipe instructions for the food item and/or historical cooking data for the food item.

In some embodiments, the recipe instructions comprise a cooking temperature and a cooking time at the cooking temperature for each phase of the cooking process. The historical cooking data may comprise the cooking temperature and the cooking time at the cooking temperature used to cook the food item previously in the cooking process.

In some embodiments, the method comprises instructing the cooking apparatus to modify the cooking process in response to the recipe instructions being indicative of a different cooking temperature and/or cooking time at the cooking temperature to use for the identified phase of the cooking process or a subsequent phase of the cooking process.

In some embodiments, the method comprises instructing the cooking apparatus to modify the cooking process in response to the identified phase of the cooking process being indicative of a deviation from the expected phase of the cooking process.

In some embodiments, the phase comprises an expanding phase in which the food item expands as a result of the cooking process.

In some embodiments, the phase comprises a shrinking phase in which the food item shrinks as a result of the cooking process.

In some embodiments, the phase comprises a size stable phase in which the food item stays the same size.

In some embodiments, the phase comprises a pigmentation change phase in which a pigmented component of the food item escapes from the food item or undergoes a chemical change as a result of the cooking process.

In some embodiments, the phase comprises a doneness phase in which the cooking process is completed and/or browning of the food item occurs as a result of the cooking process.

In some embodiments, the first color is derived from pixel intensity data associated with the part of the first image data that corresponds to the region of interest, and the second color is derived from pixel intensity data associated with the part of the second image data that corresponds to the region of interest.

In some embodiments, the method comprises deriving the first color from the pixel intensity data for the part of the first image data that corresponds to the region of interest. The method may further comprise deriving the second color from the pixel intensity data for the part of the second image data that corresponds to the region of interest. The method may further comprise comparing the first color with the second color to determine a color change between the first and second times. The method may further comprise identifying the phase by comparing the color change with a threshold indicative of the phase of the cooking process.

In some embodiments, the first and second color is represented by a color channel of a color model for representing color of the food item.

In some embodiments, the color model is a red-green-blue, RGB, color model. In some embodiments, the first and second color is represented by a single color channel of the RGB color model.

In some embodiments, the method comprises applying a function to: the pixel intensity data for the part of the first image data to derive the first color; and the pixel intensity data for the part of the second image data to derive the second color.

In some embodiments, the function comprises an averaging function to compute an average pixel intensity value corresponding to the first color or second color. The average pixel intensity value corresponding to the first color or second color may be computed from the pixel intensity data of a set of pixels corresponding to the part of the first image data or second image data, respectively. The set of pixels may be associated with the color channel.

In some embodiments, the function comprises a weighting function to compute a weighted pixel intensity value corresponding to the first color or second color. The weighted pixel intensity value corresponding to the first color or second color may be computed from a weighted combination of the pixel intensity data of a plurality of subsets of the set of pixels corresponding to the part of the first image data or second image data, respectively. Each subset may be associated with a different color channel.

In some embodiments, the method comprises using a segmentation model to segment the first image data to identify the perimeter and/or at least part of the first area of the food item. The method may further comprise selecting the region of interest in the segmented first image data. The method may further comprise using the same region of interest in the second image data.

In some embodiments, the method comprises selecting the region of interest based on a selection rule. In some embodiments, the selection rule indicates a location of the region of interest to use for the food item. In some embodiments, the selection rule indicates a shape of the region of interest. In some embodiments, the selection rule indicates the location and/or shape based on a positioning rule about positioning of the region of interest with respect to a segmented part of the first and second image data. In some embodiments, the selection rule indicates the location and/or shape based on a type of the food item. In some embodiments, the selection rule indicates the location and/or shape based on a design of the cooking apparatus.

In some embodiments, the method is implemented by a processor of the cooking apparatus.

A non-transitory machine readable medium according to the invention is described in claim <NUM>. The non-transitory machine readable medium stores instructions readable and executable by a processor to implement the cooking method of the first aspect or any one of the related embodiments.

A cooking apparatus for implementing a cooking process according to the invention is described in claim <NUM>.

The cooking apparatus comprises a cooking chamber for receiving a food item. The cooking apparatus further comprises a housing defining the cooking chamber. The cooking apparatus further comprises an air circulation system for circulating air flow inside the cooking chamber. The cooking apparatus further comprises a camera for capturing images during the cooking process. The cooking apparatus further comprises a controller configured to implement the cooking apparatus of the first aspect or any one of the related embodiments.

Certain aspects or embodiments described herein may provide various technical benefits such as improving the accuracy of identifying a phase of a cooking process, reducing compute resources needed to identify a phase of the cooking process, providing a simple but reliable way to identify the phase of the cooking process without resorting to complex methods for checking doneness (e.g., such as machine learning methods), facilitating local processing of the identification of the phase of the cooking process to reduce the cost of the compute resources needed in the cooking apparatus and/or reduce the need to rely on a cloud-based system or a communication network in order to verify how well a food item has been cooked, etc..

Exemplary embodiments of the invention will now be described, by way of example only, with reference to the following drawings, in which:.

As referred to herein, a "cooking process" refers to applying heat to a food item to cause a change in the food item. Such application of heat may result in a mere warming of the food item, or a more substantial change in the food item such as may be achieved by using cooking methods such as roasting, grilling, frying, air frying, etc..

As referred to herein, a "cooking apparatus" refers to any device capable of applying heat to a food item, in order to complete the cooking process as referred to above. Heat may be applied to the food item by the cooking apparatus in one or multiple ways such as by conduction, convection or radiation. Examples of cooking apparatus include: an oven, microwave oven, hob, air fryer, etc..

It can be difficult to check how well cooked a food item is during a cooking process. For example, there may be challenges with checking the doneness level of a food item during a cooking process in various settings such as at home or in a dedicated food preparation factory. Although certain technologies exist for this purpose, they may be difficult and/or costly to implement due to their complexity and/or they may not be feasible for a user/consumer to implement at home. Certain embodiments described herein may reduce or obviate certain problems associated with checking how well cooked a food item is during a cooking process.

<FIG> refers to a cooking method <NUM> according to an embodiment. The cooking method <NUM> is computer-implemented e.g., by a processor of a cooking apparatus, as described in more detail below. Image data may be obtained by a camera during the cooking process. The image data depicts at least part of a food item during the cooking process. Changes to the color of the food item during the cooking process are detected via the image data. Thus, the method <NUM> is implemented to identify a phase of a cooking process based on a color of the food item.

The method <NUM> comprises, at block <NUM>, receiving first image data corresponding to a view of a food item at a first time of a cooking process implemented by a cooking apparatus. A perimeter of the food item visible in the view encloses a first area of the food item.

As described in more detail below, a camera may image at least part of the food item within its field of view. Within this field of the view, a perimeter of the food item may be visible to the camera. The perimeter may refer to an outer edge of the food item according to the view (i.e., a different perimeter may be visible if the food item is imaged from a different direction). In other words, the perimeter of the food item visible to the camera may correspond to the angular size of the food item according to the view of the food item as observed by the camera. This means that the visible part of the food item imaged by the camera may map to part (i.e., a subset of pixels) of a detection area (i.e., the complete set of pixels for forming the image) of the camera. In some cases, part of the food item may be within the field of view but another part of the food item may be outside the field of view or the other part of the food item may be partially obscured by another object such as another food item. Whichever part of the food item is visible to the camera, a perimeter of the food item may be visible. This perimeter encloses a first area of the food item where the first area may correspond to the angular size of the food item. Thus, the first area may map to a certain subset of pixels of the camera. Thus, within the image data, certain pixels may provide a record of the pixel intensity values indicative of the color of the food item at the time during the cooking process when the food item was imaged.

The method <NUM> further comprises, at block <NUM>, receiving second image data corresponding to the view of the food item at a second time of the cooking process. The second image data may be acquired by the same camera as used to acquire the first image data although, in some cases, it may be possible for a different camera to acquire the first and second image data though this may add complexity.

The method <NUM> further comprises, at block <NUM>, selecting a region of interest in the view. The region of interest maps to a second area of the food item. The second area is less than the first area. That is, if the first area corresponds to the angular size of the food item visible to the camera, the second area is less than the angular size of the food item. If the first area maps to a (first) subset of pixels of the camera, then the second area maps to a second subset of pixels of the camera.

According to the invention, the second subset of pixels is a subset of the first subset of pixels (e.g., where the region of interest is within the first area). In some cases, at least one of the second subset of pixels is selected from the first subset of pixels and at least one other of the second subset of pixels is selected from another pixel that does not map to the food item (e.g., if the region of interest includes the perimeter of the food item). There are various ways to select the region of interest. Examples of ways to select the region of interest is described in more detail below.

The method <NUM> further comprises, at block <NUM>, identifying a phase of the cooking process. The identifying is based on a comparison of a first color of the food item at the first time with a second color of the food item at the second time. The first color is derived from a part of the first image data that corresponds to the region of interest. The second color is derived from a part of the second image data that corresponds to the region of interest.

The first and second color may be derived from the pixel intensity values recorded for the pixels corresponding to the region of interest at the first and second times (i.e., from the first and second image data, respectively). There are various ways to derive the color, based on the format of the image data. For example, if the image data comprises pixel intensity values for the red, green and blue (RGB) channels, the first and second colors may be derived from the pixel intensity values for at least one of the RGB channels. Not all of the pixels may record the same pixel intensity values. Therefore, a function may be applied (as described in more detail below) in order to derive the first and second color. In another example, a different color model may be used to represent color in the region of interest. For example, the hue-saturation-value (HSV) color model may be used by the first and second image data. In some cases, the raw imaging data from the camera (which may be in the RGB format) may be conveniently used to avoid extra processing needed for transforming to different color coordinates. However, in some cases, the colors may still be derived from image-processed image data.

Method <NUM> and certain other embodiments described herein may provide various technical benefits such as improving the accuracy of identifying a phase of a cooking process, reducing compute resources needed to identify a phase of the cooking process, providing a simple but reliable way to identify the phase of the cooking process without resorting to complex methods for checking doneness (e.g., such as machine learning methods), facilitating local processing of the identification of the phase of the cooking process to reduce the cost of the compute resources needed in the cooking apparatus and/or reduce the need to rely on a cloud-based system or a communication network in order to verify how well a food item has been cooked, etc..

According to the method <NUM>, the area of the region of interest is smaller than the visible area of the food item, as defined by its perimeter. Thus, the data size of pixel intensity values derived from the region of interest is less than the data size of pixel intensity values derived from the visible area of the food item. Using data from fewer pixels than the total available pixels corresponding to the visible area of the food item may reduce the compute resources (including processing and/or memory resources) needed to identify the phase of the cooking process due to the reduced data size. The color comparison of block <NUM> may be relatively simple to compute so that the method <NUM> may provide a simple but reliable way to identify the phase. In some cases, local processing (e.g., by a processor of the cooking apparatus) may be made possible due to the relative simplicity of the color comparison. In some cases, the processing and memory needed to implement the method <NUM> and other embodiments may be relatively straightforward and/or cost effective to provide in a cooking apparatus. For example, the relative simplicity and accuracy of the method <NUM> and other embodiments described herein may obviate the need to rely on more complex technologies for identifying the phase based on color such as certain machine (learning) vision technologies, which may need more processing and memory resource and may be less cost effective or straightforward to implement in a consumer device such as a cooking apparatus. By using the same region of interest in both the first and second image data (e.g., the region of interest corresponds to a fixed/same subset of pixels in both the first and second image data), fewer compute resources may be needed because there may be no need to duplicate certain processes such as segmentation and/or region of interest identification, as described in more detail below. That is, once the region of interest is selected for the first image data, there may be no need to re-identify and/or re-select the region of interest for the second image data, which may reduce usage of compute resources. In some cases that do not fall under the scope of the claims, the region of interest could change/be re-selected between the first and second image data but this implies increased use of compute resources.

<FIG> is a schematic drawing of a cooking ecosystem <NUM> according to an embodiment. Certain embodiments described herein (e.g., cooking method <NUM>) may be implemented in certain parts of the cooking ecosystem <NUM>. The cooking ecosystem <NUM> depicts various devices and entities which may be deployed as part of the cooking ecosystem <NUM>. Not every device or entity depicted may be needed in some scenarios, as explained below.

The cooking ecosystem <NUM> comprises a cooking apparatus <NUM> for cooking a food item <NUM>. The cooking apparatus <NUM> comprises a camera <NUM> for capturing images and a controller <NUM> for controlling the cooking process. For example, the controller <NUM> may control a heating element (not shown) of the cooking apparatus <NUM> (e.g., to control the cooking temperature of the cooking apparatus <NUM>). The controller <NUM> is communicatively coupled to the camera <NUM> for capturing images. The camera <NUM> is positioned such that a region of interest associated with the food item <NUM> is within a field of view of the camera <NUM>. This particular configuration is an example. For example, the camera <NUM> may or may not be inside the cooking apparatus <NUM> but may still have the food item <NUM> within its field of view, even if the camera <NUM> is external to the cooking apparatus <NUM>.

In some cases, the cooking ecosystem <NUM> comprises a cloud computing service <NUM> communicatively coupled to the controller <NUM>. A cloud computing service <NUM> may provide data storage and/or data processing services. The cloud computing service <NUM> may provide computing resource where there is insufficient computing resource available in any connected devices. In some cases, the cloud computing service <NUM> may provide updates and other services for the cooking apparatus <NUM>.

In some cases, the cooking ecosystem <NUM> comprises a user equipment <NUM> communicatively coupled to the controller <NUM>. A user equipment <NUM> may refer to any computing device associated with a user (e.g., of the cooking apparatus <NUM>). Examples of user equipment <NUM> include: a smartphone, smartwatch, tablet, Internet of Things (IoT) device, etc. In some cases, the user equipment <NUM> may be communicatively coupled to the cloud computing service <NUM>.

Any one or combination of the controller <NUM>, cloud computing service <NUM> and the user equipment <NUM> may be used to implement the cooking method <NUM> and other embodiments described herein. The controller <NUM> of the cooking apparatus of the invention implements the cooking method <NUM> and related embodiments. In this regard, the controller <NUM> may comprise a processor (not shown) for implementing the cooking method <NUM> and related embodiments. In other cases, processing circuitry associated with the various devices and entities of the cooking ecosystem <NUM> may implement the cooking method <NUM> and related embodiments.

<FIG> is a schematic drawing of a cooking apparatus <NUM> for implementing a cooking process according to an embodiment. The cooking apparatus <NUM> may implement the functionality of certain embodiments described herein such as described in relation to the cooking method <NUM> of <FIG>. Certain features of the cooking apparatus <NUM> may correspond to or have similar functionality to features of the cooking apparatus <NUM> of <FIG>.

The cooking apparatus <NUM> comprises a cooking chamber <NUM> for receiving a food item <NUM>. The cooking apparatus <NUM> further comprises a housing <NUM> defining the cooking chamber <NUM>. The cooking apparatus <NUM> further comprises an air circulation system <NUM> for circulating air flow inside the cooking chamber <NUM>. Therefore, in this regard, the cooking apparatus <NUM> may have a similar form to a fan oven or an air fryer. The cooking apparatus <NUM> further comprises a camera <NUM> for capturing images (of the "view" associated with the food item <NUM>) during the cooking process. The captured images may correspond to or be used to derive the first and second image data.

The cooking apparatus <NUM> further comprises a controller <NUM> such as corresponding to the controller <NUM> of <FIG>. In this embodiment, the controller <NUM> is configured to implement the cooking method <NUM>.

Thus, the controller <NUM> is configured to receive, at block <NUM>, first image data corresponding to a view of a food item at a first time of a cooking process implemented by a cooking apparatus. A perimeter of the food item visible in the view encloses a first area of the food item.

The controller <NUM> is further configured to receive, at block <NUM>, second image data corresponding to the view of the food item at a second time of the cooking process.

The controller <NUM> is further configured to select, at block <NUM>, a region of interest in the view. The region of interest maps to a second area of the food item. The second area is less than the first area.

The controller <NUM> is further configured to identify, at block <NUM>, a phase of the cooking process based on a comparison of a first color of the food item at the first time with a second color of the food item at the second time. The first color is derived from a part of the first image data that corresponds to the region of interest. The second color is derived from a part of the second image data that corresponds to the region of interest.

Although <FIG> describes that the controller <NUM> of the cooking apparatus <NUM> implements the cooking method <NUM>, in some cases, other devices or entities (such as depicted by <FIG>) may implement at least some of the functionality of the cooking method <NUM> (and related embodiments).

<FIG> schematically depict example images <NUM> of an example food item <NUM> during a cooking process (i.e., each image depicts a "view" of the food item <NUM>) at the first and second times, respectively. In accordance with certain embodiments described herein, a region of interest <NUM> is selected. As shown by <FIG>, this region of interest <NUM> is a box/window corresponding to a portion of the visible area of the food item <NUM> (although a different shape of region of interest could be used). A perimeter <NUM> of the food item <NUM> is visible in the view of the food item <NUM>. The perimeter <NUM> defines a first area of the food item <NUM> (i.e., the angular size of the food item <NUM>), which maps to a first subset of pixels of the camera (e.g., camera <NUM>) used to image the food item <NUM>. The region of interest <NUM> maps to a second subset of pixels of the camera (in this case, the second subset of pixels includes pixels that are also within the first subset).

It is apparent that the example food item <NUM> has shrunk between the first and second times based on a comparison of <FIG>. Not all food types may shrink during a cooking process. Some food types may expand and some may stay the same size. Thus, the nature of the changes to the food item (e.g., color, size, texture, etc.) may depend on the food type, the cooking process being implemented and/or the phase of the cooking process. Since a color change to the food item may be visible to the camera, it may be possible to identify a phase of the cooking process in accordance with various embodiments described herein.

An example implementation of a cooking method (e.g., based on the cooking method <NUM>) according to an embodiment is now described with reference to <FIG>.

In this example implementation, a region of interest is selected. The region of interest may correspond to a subset of the pixels of the camera (at least one of which corresponds to a pixel that maps to a visible part of the food item). For example, a region of interest of size <NUM> by <NUM> pixels (which equals <NUM> pixels) may provide suitable pixel intensity data to implement various embodiments described herein. For a 1080p camera with pixel resolution <NUM> by <NUM> pixels (which equals <NUM> Megapixels), the subset of <NUM> pixels represents a small proportion of the overall number of pixels. Other camera pixel resolutions and region of interest sizes may be used to implement the embodiments described herein.

In some cases, the selection of the region of interest may be performed based on a pre-defined protocol or rule (e.g., a "selection rule") for selecting the region of interest within an image. For example, once the perimeter has been identified, the selection of the region of interest may be based on a geometrical consideration (that is, a coordinate defining a location of the region of interest within the area of the food item could be selected with respect to the coordinates of the perimeter). For example, the selection rule may specify the size/shape of the region of interest, as well as the location (e.g., based on a "positioning rule") with respect to the perimeter of the food item. In one example, a location defining the region of interest could be a center pixel, top-left-hand pixel, etc., of the region of interest. The size of the region of interest could be pre-set (e.g., a certain number of pixels in the horizontal and vertical directions with respect to the location). The location could then be set with respect to the detected perimeter of the food item. For example, the uppermost and lowermost pixels of the perimeter may be identified (to determine the apparent (vertical) height of the food item in the image). The vertical location (e.g., y coordinate) of the region of interest could then be set at some predefined point (e.g., one third from the bottom, half-way up, etc., along the height of the food item) along the vertical (y-axis) direction. Similarly, the most left-hand point and most righthand point of the perimeter may be identified (to determine the apparent (horizontal) width of the food item in the image). The horizontal location (e.g., x coordinate) of the region of interest could then be set at some predefined point (e.g., half-way across the width of the food item, etc.) along the horizontal direction.

In some cases, the location could be at some point on the food item that is considered useful for performing color analysis. Some cooking apparatus may include an illumination system which may lead to saturated colors (e.g., white) on the part of the food item directly facing the illumination system. However, the side of the food item may be less saturated. The location of the region of interest may then be selected as being on the side of the food item. This location could be determined in a pre-defined manner based on knowledge of the illumination system and camera system position with respect to the location of the food item. If the camera is above and to the side of the food item in the cooking chamber (so that it images the top and side of the food item) and the illumination system provides illumination towards the top of the food item, then selecting the region of interest at a location that is in the lower-half of the area of the food item within the view of the camera may yield less-saturated colors. This example arrangement is represented by <FIG> where the region of interest <NUM> is in the lower half of the food item <NUM>. In some cases, the shape of the food item may influence which location on the food item is appropriate for the region of interest. In some cases, the region of interest may be selected based on which pixels of the image data do not appear to be too saturated or too dark (e.g., based on a maximum and minimum pixel intensity threshold, respectively). In some cases, the region of interest could be selected at random from the identified area of the food item. The above description refers to various ways to select the region of interest. However, various other possible ways to select the region of interest exist.

Thus, in some embodiments, selecting the region of interest is based on a rule (e.g., a "selection rule"). The selection rule may specify a location and/or size of the region of interest with respect to the perimeter of the food item. The selection rule may specify a positioning rule which may specify the location of the region of interest with respect to at least one coordinate (e.g., pixel) of the perimeter. The positioning rule may specify a first distance (e.g., in pixels) from the location to a first coordinate of the perimeter. The positioning rule may specify a second distance from the location to a second coordinate of the perimeter (where the second coordinate may be on the opposite side of the visible part of the food item). The first and second distance may be the same or different. The selection rule may specify the size of the region of interest (e.g., number of pixels and/or the shape of the region of interest).

In some cases, a plurality of regions of interest are selected in the view. In some cases, a plurality of food items may be visible in the view. At least one of the food items may have at least one associated region of interest monitored during the cooking process. In some cases, the selection of the region of interest may be based on the food type (for example, different positions/sizes of regions of interest may be needed for different types of food). In some cases, the region of interest may be selected before or at the beginning of the cooking process.

In this example implementation, a mean color value is derived from the subset of pixels at each time interval (e.g., at the first time, second time, third time and so on). In some cases, the pixel intensity values for a single color channel (such as the green channel) in the region of interest may be used to determine the mean color value (e.g., by adding up all of the green pixel intensity values in the region of interest and divide by the total number of green pixels in the region of interest). Using a single color channel may save compute resources compared with the case of using a plurality of color channels. In some cases, a plurality of color channels (e.g., selected from RGB, etc.) may be used to derive the color e.g., based on a function as described below. The first and second colors are determined for the first and second times, respectively. However, the comparison according to block <NUM> of the method <NUM> may be performed repeatedly during the cooking process (e.g., at a regular interval such as every <NUM> minutes during the cooking process, although another interval could be used or irregular intervals could be used).

If the "first time" is the start of the cooking process and the "second time" is the end of the first time interval (e.g., after <NUM> minutes), the comparison of the first and second color data at the first and second times may be performed. The comparison may be repeated for each successive time interval. For example, the next comparison may be between the second time and a third time (e.g., <NUM> minutes later). Thus, where reference is made to a comparison "between a first time and second time", this refers to a comparison between the start and end of any time interval of the cooking process (e.g., between <NUM> and <NUM> minutes, between <NUM> and <NUM> minutes, between <NUM> and <NUM> minutes, etc.). In other similar words, the comparison may be performed repeatedly during the cooking the process and the comparison is based on two successively acquired image data (at the start and end of a time interval). However, in some cases, the comparison at each time interval could be made with the start color (i.e., t = <NUM>).

Different food types may need different monitoring intervals. For example, the second time could be <NUM> minutes after the cooking process has started for meat, or <NUM> minutes after the cooking process has started for cake. After the second time, the next time at which an image is acquired could be after a different time interval has elapsed such as every <NUM> minutes (e.g., to increase the likelihood of detecting overcooking, which may be more likely at a later phase of the cooking process).

In this example implementation, the comparison of the first and second color refers to calculating the change of the color value and comparing the change with a pre-set threshold (e.g., based on the food type) to identify the corresponding cooking phase. In some cases, the cooking process may be modified for the identified phase (e.g., a change of temperature and/or cooking time may be implemented to speed up/slow down the cooking the process).

Various cooking phases may be observed for different food types.

For bakery-type food such as cookies, bread, cake, etc., example cooking phases include a food size growing phase (where the food item expands), a size stable phase (where the food item has stopped expanding) and a doneness phase (with different doneness levels, which might be indicated by browning level or cooking time).

For meat-type food such as chicken breast, salmon, etc., example cooking phases include a red/yellow pigment disappearing phase (e.g., where juices run out of the meat or chemical changes take place), a color stable phase (where the color does not change significantly) and a doneness phase (with different doneness levels, which might be indicated by browning level or cooking time).

Further phases are possible for these and other types of food. Any of these phases may or may not be indicated by a color change.

Another example implementation of a cooking method (e.g., based on the cooking method <NUM>) according to an embodiment is now described with reference to <FIG>. This example implementation may include at least one element that corresponds to or is similar to at least one element of the example implementation described previously.

In this example implementation, segmentation may be performed on the image data to segment food item(s) from the background. Segmentation may be performed initially as part of the identification of the region of interest. A segmentation model may be used to implement the segmentation. However, other methods such as user selection via a user interface may be used to indicate the position and/or size of the region of interest. Image-based segmentation may be performed using various techniques, which may include machine learning-based and non-machine learning-based segmentation models. Examples of non-machine learning-based models include boundary detection e.g., by using a threshold to identify an abrupt transition in pixel intensity values within an image where such an abrupt transition may be indicative of a perimeter of a food item.

In this example implementation, identification of the region of interest may be performed e.g., according to any of the examples described above.

In this example implementation, the identification of the phase may be used to separate/distinguish between different cooking phases in accordance with various embodiments described herein. In this example implementation, there are three phases that can be identified by computing the change of color in the region of interest periodically e.g., every <NUM> mins.

In a first phase, initial cooking occurs. For meat-type of food, the color may gradually change from red/yellow into white. For starch type of food, the size of the food item may expand or grow. In the first phase, the detected color change may be large e.g., by more than a specified pixel intensity value (e.g., more than <NUM>). For example, where pixel intensity values are on a scale of <NUM> to <NUM>, a pixel intensity value change of more than <NUM> may indicate that the cooking process could be in the first phase.

In a second phase, the color and/or size of the food item may be stable. For meat type of food, the surface color may become and stay white. For bakery food, the growing may stop during the second phase. In the second phase, the color change may be small e.g., the pixel intensity value change may be less than the specified pixel intensity value (e.g., <NUM> or less than <NUM>).

In a third phase, the food is cooked and its color might become browned depending on the doneness levels. In this third phase, some food may develop into a darker color for different doneness level. In some cases, the color change in the third phase may be greater than about <NUM> pixel intensity values to have noticeable color difference. For different doneness level, it may be possible to use a certain pixel intensity value difference to identify different doneness levels, or a prolonged cooking time could be used to identify the doneness levels.

<FIG> refers to a cooking method <NUM> according to an embodiment. The cooking method <NUM> is computer-implemented e.g., by a processor of a cooking apparatus, as described above. The method <NUM> may implement the method <NUM> and/or various other embodiments described herein. <FIG> refers to an example of baking bread. Certain parameter values (e.g., time intervals mentioned below) may be varied depending on the type of food being cooked. The blocks of the method <NUM> are now described with reference to the description of the method <NUM> and other embodiments described herein. Certain blocks of the method <NUM> may be omitted or performed in a different order to that depicted by <FIG>, in accordance with various embodiments described herein.

The method <NUM> starts at block <NUM> (e.g., the cooking process may be started at this point in time).

The method <NUM> proceeds to block <NUM> where the food type is identified. This could be automatically identified e.g., by machine vision or input by a user via a user interface associated with the cooking apparatus. In this embodiment, bread is being cooked. However, in other embodiments, if a different food type is identified, the cooking method may be varied appropriately.

The method <NUM> proceeds to block <NUM> where the food item is segmented from the background (e.g., using a segmentation model as described previously).

The method <NUM> proceeds to block <NUM> where the region of interest is selected.

The method <NUM> proceeds to block <NUM> where the cooking time, t, is obtained (i.e., the elapsed time of the cooking process).

The method <NUM> proceeds to block <NUM> where a check is made as to whether the cooking time, t, is equal to or greater than a preset starting time (e.g., that depends on the type of food). For bread, this could be <NUM> minutes. If "no", the method <NUM> returns to block <NUM>.

Otherwise, if "yes", the method <NUM> proceeds to block <NUM> where the color information (e.g., pixel intensity values) is extracted from the region of interest of the first image data. After a specified period of time (e.g., <NUM> minutes after obtaining the first image data, at which time the second image data is obtained), the color information (e.g., pixel intensity values) is extracted from the region of interest of the second image data.

The method <NUM> proceeds to block <NUM> where the first color and second color are derived from the average pixel intensity value for the color channel in the region of interest (for each of the first and second image data, respectively). Use of a single color channel such as green has been found to provide sufficient information to implement the method <NUM> and may reduce usage of compute resources instead of using multiple color channels. Thus, the mean color is calculated for the region of interest (for each of the first and second image data, respectively). That is, the mean color at the first time corresponds to the first color and the mean color at the second time corresponds to the second color.

The method <NUM> proceeds to block <NUM> where difference between the first and second color is computed (i.e., the difference between the average pixel intensity values is computed for the color channel).

The method <NUM> proceeds to block <NUM> where a comparison between the average pixel intensity values (e.g., for the green) channel with a predefined threshold value is made. The threshold value may be indicative of the phase of the cooking process. As described previously, a change in color by a specified pixel intensity value may indicate a certain phase of the cooking process. If the change is above or below a threshold, this may indicate a transition to another phase of the cooking process. In the example of cooking bread, the first phase may be a growing phase in which there is a large change in color over the time interval. Thus, the comparison with the threshold in the first phase may indicate that the cooking process is still in the first phase (e.g., if the color change is above a first threshold associated with the first phase). However, if the comparison with the threshold in the first phase indicates that the cooking process has transitioned to a second phase (e.g., if the color change is below the first threshold), this may indicate that the cooking process is in the second "size stable" phase. During the second phase, a comparison of the color change with a second threshold associated with the second phase may indicate that the cooking process is still in the second phase (e.g., if the color change is less than the second threshold). However, if the comparison of the color change with a second threshold associated with the second phase indicates that the cooking process has transitioned to a third phase (e.g., if the color change exceeds the second threshold), this may indicate that the cooking process has entered the doneness cooking phase where food becomes more and more well-cooked. Thus, in some embodiments, a different threshold may be defined depending on the phase of the cooking process. The use of more than one threshold may enable a distinction to be made between the different phase of the cooking process.

In other similar words, an observed color change (or lack of color change) may be indicative of the cooking process being in a particular phase or indicate a transition to the next phase of the cooking process, depending on whether or not the color change is above or below a threshold associated with the cooking process. For example, the transition from the first (e.g., size growing and/or color-changing) phase to the second (e.g., size stable and/or color stable) phase could be indicated if the color change is below a (first) threshold (i.e., equal to or above the first threshold may indicate the cooking process is still in the first phase). However, the transition from the second phase to the third phase could be indicated if the color change is equal to or above a second threshold (i.e., below the second threshold may indicate the cooking process is still in the second phase). The threshold(s) associated with the cooking process may be based on the food type since the timing and/or magnitude of the color change observed during the cooking process may depend on the food type. Thus, in some cases, the food type may be determined (e.g., input by a user, detected by machine vision, etc.) and a rule for this food type may be selected for the cooking process, where the rule specifies the threshold(s) to apply during the cooking process.

If the comparison with the threshold is not indicative of a transition to another phase (i.e., "no"), the method <NUM> may proceed again to block <NUM> via block <NUM> where another specified period of time (e.g., <NUM> minutes) is allowed to elapse before making the next comparison (e.g., if the first and second image data is compared previously, then the next comparison is based on the second and third image data where the third image data is acquired <NUM> minutes after the second image data). However, if the transition to another phase is indicated (i.e., "yes"), the method <NUM> proceeds to block <NUM> where a strategy is implemented to decide how to complete the cooking process.

For example, once the second phase is identified (i.e., the stable color/size phase), the next phase may be the doneness phase where the food may become more browned. Thus, the cooking process may be controlled such that the degree of browning meets a consumer expectation or corresponds to a recipe.

In one example, the strategy may be to keep cooking for another period of time (e.g., for <NUM> minutes) depending on the heating temperature and/or heating efficiency of the cooking apparatus.

In another example, the strategy is to stop cooking when the color change crosses a threshold (e.g., goes above or below the threshold). For example, if the food is browning, the amount of acceptable browning may be defined by a threshold. Thus, when this threshold is crossed, the cooking process may be stopped or at least the temperature reduced. In case there is some variation in the recipe, ingredients, food preparation by the consumer, etc., this strategy may increase the likelihood of a consistent result and/or prevent overcooking of the food item.

In another example, a hybrid of the previous examples may be implemented. For example, the color change of the food item may be compared with the threshold. However, if the time to reach this color change is longer than a certain predefined time, t, the cooking process may be stopped.

The method <NUM> may be modified according to food type. For example, some foods such as steak may be acceptably cooked even if rare (thus, not all cooking phases may be observed).

<FIG> are graphs representative of experimental data collected during a cooking process implemented according to various embodiments. <FIG> refers to the observed color changes over time in a region of interest when cooking white bread (in this regard, reference can be made to the method <NUM>). <FIG> refers to the observed color changes over time in a region of interest when cooking cookies. <FIG> refers to the observed color changes over time in a region of interest when cooking a steak. A same or similar approach to method <NUM> may be implemented for cooking the cookie or steak although the thresholds may be set at different levels based on the food types. In each graph, the effect of the pixel intensity value change is cumulative. For example, if the change is "-<NUM>" between <NUM> and <NUM> minutes, and the change is "-<NUM>" between <NUM> and <NUM> minutes, then the total change between <NUM> and <NUM> minutes is "-<NUM>".

In <FIG> there are three phases associated with cooking bread in which the mean pixel intensity value for the green channel of the region of interest was monitored. In phase <NUM> (from <NUM> to <NUM> minutes), the change in pixel intensity value after each time interval is large (e.g., of order <NUM> to <NUM>) due to the size growing phase of the cooking process. In phase <NUM> (from <NUM> to <NUM> minutes), the change in pixel intensity value after each time interval is small (e.g., of order <NUM> to <NUM>) due to the size stable phase of the cooking process where the growing stops and the surface of the bread begins to brown. In phase <NUM> (from <NUM> to <NUM> minutes), the change in pixel intensity value after each time interval is large (e.g., of order <NUM> to <NUM>) due to increased browning of the surface of the bread. From <NUM> minutes, the surface of the bread was golden brown. Based on preference of doneness level, the cooking process could be stopped at around <NUM> minutes (e.g., based on this cooking time being a preset time or based on a predefined measure of the browning color indicated by the color derived from the image data).

In <FIG> there are three phases associated with cooking cookies in which the mean pixel intensity value for the green channel of each of a plurality of regions of interest was monitored. In phase <NUM> (from <NUM> to <NUM> minutes), the change in pixel intensity value after each time interval is large (e.g., of order <NUM>) due to the size growing phase of the cooking process. In phase <NUM> (from <NUM> to <NUM> minutes), the change in pixel intensity value after each time interval is small (e.g., of order <NUM>) due to the size stable phase of the cooking process where the growing stops and the surface of the cookies begin to brown. In phase <NUM> (from <NUM> to <NUM> minutes), the change in pixel intensity value after each time interval is large (e.g., of order <NUM> to <NUM>) due to increased browning of the surface of the cookies. From <NUM> minutes, the surface of the cookies began to develop deep-colored browning levels. Based on preference of doneness level, the cooking process could be stopped at around <NUM> minutes, or earlier for a doughier texture. In this example, three regions of interest were selected for the color change analysis and the results were found to be the same for distinguishing between and identifying the cooking phases for each cookie.

In <FIG> there are three phases associated with cooking steak in which the mean pixel intensity value for the green channel of the region of interest was monitored. In phase <NUM> (from <NUM> to <NUM> minutes), the change in pixel intensity value after each time interval is large (e.g., of order <NUM> to <NUM>) due to the pigment change caused by the cooking process (in particular, the loss of red pigment). In phase <NUM> (from <NUM> to <NUM> minutes), the change in pixel intensity value after each time interval is small (e.g., of order <NUM> to <NUM>) due to the color stable phase of the cooking process where the rate of pigment change decreases. In phase <NUM> (from <NUM> to <NUM> minutes), the change in pixel intensity value after each time interval is large (e.g., of order ±<NUM> to ±<NUM>) due to increased browning of the surface of the steak. Depending on user preference, the cooking process could be stopped in any of the phases depending on whether the user wants a rare, medium or well-done steak.

In some cases, it has been found that the green channel provides more accurate and/or sensitive color change information compared with other color channels such as red or blue (which may sometimes appear very bright or very dark, irrespective of the phase of the cooking process), hence why the green channel was used in the above experiments. However, the other color channels may still be suitable for use in measuring color change information. For example, different cooking apparatus setups with different illumination systems and/or cameras may have different sensitivities for different color channels. Further, the color channel(s) that may be used may depend on the food type. Each food tyupe may have a different spectral reflectance to the food types used in the experiments described herein.

Other experimental data has demonstrated that the approach of the various embodiments described herein can be applied to other food types such as chicken breast, chicken wing, salmon, etc., in order to identify the cooking phases and facilitate enhanced monitoring of the cooking process.

<FIG> refers to a cooking method <NUM> according to various embodiments. The cooking method <NUM> is computer-implemented e.g., by a processor of a cooking apparatus, as described previously. The method <NUM> implements the cooking method <NUM> as well as further embodiments described below (some of which are referred to previously). Certain blocks of the method <NUM> may be omitted or performed in a different order to that shown by <FIG> according to the various embodiments.

In some embodiments, the cooking method <NUM> comprises, at block <NUM>, using a segmentation model to segment the first image data to identify the perimeter and/or at least part of the first area of the food item. The cooking method <NUM> further comprises, at block <NUM>, selecting the region of interest in the segmented first image data. The cooking method <NUM> further comprises, at block <NUM>, using the same region of interest in the second image data. Using the same region of interest in the images acquired subsequently to the first image data may avoid the need to re-segment the image data and perform any re-selection of the region of interest since the same pixels are used between images, which may save compute resource.

In some embodiments, the phase comprises an expanding phase in which the food item expands (e.g., grows) as a result of the cooking process.

In some embodiments, the phase comprises a size stable phase in which the food item stays the same size. This may be approximate and there may be some size change, however the size change in the size stable may be less than in the size change phase.

In some embodiments, the phase comprises a pigmentation change phase in which a pigmented component of the food item escapes from the food item and/or undergoes a chemical change as a result of the cooking process.

In some embodiments, the first color is derived from pixel intensity data (i.e., pixel intensity value(s)) associated with the part of the first image data that corresponds to the region of interest. Further, the second color is derived from pixel intensity data associated with the part of the second image data that corresponds to the region of interest.

In some embodiments, the cooking method <NUM> comprises, at block <NUM>, deriving the first color from the pixel intensity data (i.e., pixel intensity value(s)) for the part of the first image data that corresponds to the region of interest. The cooking method <NUM> further comprises, at block <NUM>, deriving the second color from the pixel intensity data for the part of the second image data that corresponds to the region of interest. The cooking method <NUM> further comprises, at block <NUM>, comparing the first color with the second color to determine a color change between the first and second times. The cooking method <NUM> further comprises, at block <NUM>, identifying the phase by comparing the color change with a threshold indicative of the phase of the cooking process.

In some embodiments, the color model is a red-green-blue, RGB, color model. In some embodiments, the first and second color is represented by a single color channel of the RGB color model (e.g., green). Using a single color channel may reduce compute resources needed to implement certain embodiments described herein. In some embodiments, a plurality of color channels may be used (e.g., red plus blue, red plus green, green plus blue, red plus green plus blue, etc.). For example, a function may be applied as described below in order to derive the first and second color from the plurality of color channels. In some embodiments, the color model may be the HSV color model or any other appropriate color model that may be used to represent color in image data.

In some embodiments, a function is applied to the pixel intensity data for the part of the first image data to derive the first color. The function is further applied to the pixel intensity data for the part of the second image data to derive the second color.

In some embodiments, the function comprises an averaging function to compute an average (e.g., mean) pixel intensity value corresponding to the first color or second color. The average pixel intensity value corresponding to the first color or second color is computed from the pixel intensity data of a set of pixels corresponding to the part of the first image data or second image data, respectively. The set of pixels is associated with the color channel. For example, the function may add up the pixel intensity values for the color channel in the region of interest and then divide the total pixel intensity value by the number of pixels for the color channel in order to compute the mean pixel intensity value. Some embodiments refer to use of a single color channel such as green. However, in some embodiments, the pixel intensity data from a plurality color channels could be used to compute the average pixel intensity value.

In some embodiments, the function comprises a weighting function to compute a weighted pixel intensity value corresponding to the first color or second color. The weighted pixel intensity value corresponding to the first color or second color is computed from a weighted combination of the pixel intensity data of a plurality of subsets of the set of pixels corresponding to the part of the first image data or second image data, respectively. Each subset is associated with a different color channel. The average pixel intensity value for every channel in the RGB color model yields a value corresponding to the color grey. Therefore, the weighting function may be to bias towards at least one of the color channels such as green. For example, a greater weight may be applied to the green channel instead of the red and/or blue channel. In some cases, a first subset of the set of pixels comprises the red pixels, a second subset of the set of pixels comprises the green pixels, a third subset of the set of pixels comprises the blue pixels. Thus, by weighting the pixel intensity values in at least one of these channels (i.e., at least one of the subsets), this weighting may yield a bias towards at least one of these colors.

In some embodiments, the cooking method <NUM> comprises, at block <NUM>, determining whether or not the identified phase of the cooking process corresponds to an expected phase of the cooking process based on recipe instructions for the food item and/or historical cooking data for the food item.

In some embodiments, the recipe instructions comprise a cooking temperature and a cooking time at the cooking temperature for each phase of the cooking process. The historical cooking data comprises the cooking temperature and the cooking time at the cooking temperature used to cook the food item previously in the cooking process.

For example, the user may have an expectation of how well cooked a food item is during a cooking process. This expectation may be based on recipe instructions and/or historical cooking data, which may indicate the expected color at an expected time of the cooking process for the cooking temperature.

In some embodiments, the cooking method <NUM> comprises, at block <NUM>, instructing the cooking apparatus to modify the cooking process.

In some embodiments, the modification of the cooking process may be in response to the recipe instructions being indicative of a different cooking temperature and/or cooking time at the cooking temperature to use for the identified phase of the cooking process or a subsequent phase of the cooking process.

In some embodiments, the modification of the cooking process may be in response to the identified phase of the cooking process being indicative of a deviation from the expected phase of the cooking process.

In some embodiments, selecting the region of interest is based on a selection rule that indicates a location of the region of interest to use for the food item.

In some embodiments, selecting the region of interest is based on a selection rule that indicates a shape of the region of interest.

In some embodiments, the selection rule indicates the location and/or shape based on a positioning rule about positioning of the region of interest with respect to a segmented part of the first and second image data. For example, the segmented part may be indicative of the perimeter of the food item and the positioning rule may specify the location of the region of interest with respect to the perimeter.

In some embodiments, the selection rule indicates the location and/or shape based on a type of the food item. For example, different types of food items have a different form (e.g., big, small, irregular surface, smooth surface, symmetrical shape, asymmetrical shape, etc.). This may mean that certain areas on the surface of the food item are preferred locations for the region of interest. Based on knowledge of the type of food item, the selection rule may indicate the most appropriate location and/or shape of the region of interest.

In some embodiments, the selection rule indicates the location and/or shape based on a design of the cooking apparatus. For example, the design of the cooking apparatus may refer to the size of the cooking chamber, positioning of the illumination system, positioning of the camera, etc. Based on knowledge of the design, the selection rule may indicate the most appropriate location and/or shape of the region of interest.

In some embodiments, the cooking method <NUM> is implemented by a processor (e.g., a processor of the controller <NUM>) of the cooking apparatus.

<FIG> is a schematic drawing of a non-transitory machine-readable medium <NUM> for implementing various embodiments described herein. As used herein, the term "non-transitory" does not encompass transitory propagating signals. The machine-readable medium <NUM> stores instructions <NUM> readable and executable by a processor <NUM> to implement the method of any of the embodiments described herein (e.g., cooking methods <NUM>, <NUM>, <NUM> and/or related embodiments). The machine-readable medium <NUM> and/or the processor <NUM> may be implemented by any of the controller <NUM>, cloud computing service <NUM>, user equipment <NUM> and/or controller <NUM> of <FIG> or <FIG>.

<FIG> is a schematic drawing of apparatus <NUM> for implementing various embodiments described herein. The apparatus <NUM> may be implemented by any of the controller <NUM>, cloud computing service <NUM>, user equipment <NUM> and/or controller <NUM> of <FIG> or <FIG>.

The apparatus <NUM> comprises a processor <NUM>. The processor <NUM> is configured to communicate with an interface <NUM>. The interface <NUM> may be any interface (wireless or wired) implementing a communications protocol to facilitate exchange of data (e.g., image data, cooking apparatus control instructions, etc.) with other devices such as another part of the cooking ecosystem <NUM>.

The apparatus <NUM> further comprises a memory <NUM> (e.g., non-transitory or otherwise) storing instructions <NUM> readable and executable by the processor <NUM> to implement various embodiments described herein (e.g., cooking method <NUM> or any of the associated embodiments).

Any of the models described herein may be implemented by the processing circuitry for implementing the cooking methods described herein. Thus, certain blocks of the cooking methods may involve use of such models in order to provide the stated functionality. The models may be ML-based or non-ML-based. However, certain embodiments described herein refer to use of non-ML-based models, which may avoid the need to use extensive compute resources and/or enable local processing.

One or more features described in one embodiment may be combined with or replace features described in another embodiment within the scope of the appended claims.

Embodiments in the present disclosure can be provided as methods, systems or as a combination of machine-readable instructions and processing circuitry. Such machine-readable instructions may be included on a non-transitory machine (for example, computer) readable storage medium (including but not limited to disc storage, CD-ROM, optical storage, flash storage, etc.) having computer readable program codes therein or thereon.

The present disclosure is described with reference to flow charts and block diagrams of the method, devices, and systems according to embodiments of the present disclosure. Although the flow charts described above show a specific order of execution, the order of execution may differ from that which is depicted. Blocks described in relation to one flow chart may be combined with those of another flow chart. It shall be understood that each block in the flow charts and/or block diagrams, as well as combinations of the blocks in the flow charts and/or block diagrams can be realized by machine readable instructions.

The machine-readable instructions may, for example, be executed by a general-purpose computer, a special purpose computer, an embedded processor, or processors of other programmable data processing devices to realize the functions described in the description and diagrams. In particular, a processor or processing circuitry, or a module thereof, may execute the machine-readable instructions. Thus, functional modules of apparatus and other devices described herein may be implemented by a processor executing machine readable instructions stored in a memory, or a processor operating in accordance with instructions embedded in logic circuitry. The term 'processor' is to be interpreted broadly to include a CPU, processing unit, ASIC, logic unit, or programmable gate array etc. The methods and functional modules may all be performed by a single processor or divided amongst several processors.

Such machine-readable instructions may also be stored in a computer readable storage that can guide the computer or other programmable data processing devices to operate in a specific mode.

Such machine-readable instructions may also be loaded onto a computer or other programmable data processing devices, so that the computer or other programmable data processing devices perform a series of operations to produce computer-implemented processing, thus the instructions executed on the computer or other programmable devices realize functions specified by block(s) in the flow charts and/or in the block diagrams.

Further, the teachings herein may be implemented in the form of a computer program product, the computer program product being stored in a storage medium and comprising a plurality of instructions for making a computer device implement the methods recited in the embodiments of the present disclosure.

Claim 1:
A computer-implemented cooking method (<NUM>), comprising:
receiving (<NUM>) first image data corresponding to a view of a food item at a first time of a cooking process implemented by a cooking apparatus, wherein a perimeter of the food item visible in the view encloses a first area of the food item, the method being characterized by
receiving (<NUM>) second image data corresponding to the view of the food item at a second time of the cooking process;
selecting (<NUM>) a region of interest in the view, wherein the region of interest maps to a second area of the food item, and wherein the second area is less than the first area; and
identifying (<NUM>) a phase of the cooking process based on a comparison of a first color of the food item at the first time with a second color of the food item at the second time, wherein the first color is derived from a part of the first image data that corresponds to the region of interest, and wherein the second color is derived from a part of the second image data that corresponds to the region of interest.