Food redistribution
By computer analysis of food image data during cooking and automatically adjusting the food position, the problem of uneven browning of food surfaces in the cooking device is solved, the cooking control accuracy and user convenience are improved, and a more uniform food cooking effect is achieved.
Patent Information
- Application Number
- CN202480001198.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-06-28
- Filing Date
- 2024-03-28
- Publication Date
- 2024-12-27
AI Technical Summary
The problem of uneven browning of food surfaces during the cooking process by existing cooking devices requires users to actively intervene in inspection and adjustment, and depends on personal experience and time, resulting in inconvenience and unreliability.
Through a computer-implemented method, the camera captures image data of food, analyzes the brightness level range, calculates the difference parameters to judge the inhomogeneity of the food surface, and automatically adjusts the food position through the movable element to achieve more uniform cooking.
It reduces the unevenness of the browning of food surface during cooking, improves the control accuracy and user convenience of the cooking process, reduces the computational complexity, and provides a low-cost method for evaluating food browning.
Smart Images

Figure CN119213260A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to a computer-implemented method, a non-transitory machine-readable medium, and a cooking device for monitoring a cooking process implemented by a cooking device. Background Art
[0002] Certain food types may have different browning rates in different areas of the food. Therefore, some foods may have a certain degree of non-uniformity in the browning of the food surface. This effect can be attributed to the inherent characteristics of the food, such as its shape or uneven temperature distribution within the cooking area. Therefore, the consumer may need to actively pause the cooking device after a period of time to check the state of the food surface and take remedial measures. This approach requires user intervention and relies on personal experience with specific food types and cooking devices. However, due to various factors, such as food quantity, food freshness, seasoning and toppings, and the relative position of the food on the cooking surface, user intervention may be unreliable. Summary of the invention
[0003] Certain aspects or embodiments described herein relate to an improved method for monitoring a cooking process implemented by a cooking device.Certain aspects or embodiments may reduce or eliminate certain problems associated with achieving a specified level of uniformity in the surface appearance of food.
[0004] In a first aspect, a computer-implemented method of monitoring a cooking process implemented by a cooking device is described. The method includes receiving a data set indicating the appearance of food undergoing a cooking process. The data set is derived from image data corresponding to a view of the food undergoing the cooking process. The food in the view is mapped to a set of pixels in the image data. A set of image parameter values derived from the set of pixels represents a range of brightness levels. The method also includes determining a first value representing a first subset of image parameter values. The first subset includes image parameter values in a highest subrange of brightness levels in the range of brightness levels. The method also includes determining a second value representing a second subset of image parameter values. The second subset includes image parameter values in a lowest subrange of brightness levels in the range of brightness levels. The method also includes, in response to a difference parameter calculated based on a difference between the first value and the second value exceeding a threshold indicating that the food has an uneven surface appearance due to the cooking process, indicating that a movable element of the cooking device is to move to cause a redistribution of the food relative to the movable element.
[0005] In a second aspect, a non-transitory machine-readable medium is described. The non-transitory machine-readable medium stores instructions that can be read and executed by a processor to implement the method of the first aspect.
[0006] In a third aspect, a cooking device for implementing a cooking process is described. The cooking device includes: a cooking chamber for containing food; a housing defining the cooking chamber; an air circulation system for circulating an air flow inside the cooking chamber; a camera for capturing images during the cooking process; a movable element for moving food; and a controller. The controller is configured to implement the method of the first aspect.
[0007] Certain aspects or embodiments described herein may provide various technical benefits. For example, certain embodiments may provide improved monitoring to facilitate reducing non-uniformity of food surface browning during the cooking process. Further, certain embodiments may facilitate enhanced control of the cooking process to reduce non-uniformity in browning. Further, certain embodiments may improve user convenience, for example, by reducing user monitoring and / or intervention during the cooking process. Further, certain embodiments may provide a method of assessing food browning with low computational complexity.
[0008] These and other aspects of the invention will be apparent from and elucidated with reference to the embodiments described hereinafter. BRIEF DESCRIPTION OF THE DRAWINGS
[0009] Exemplary embodiments of the present invention will now be described, by way of example only, with reference to the following drawings, in which:
[0010] Figure 1 A method for monitoring a cooking process implemented by a cooking device according to an embodiment;
[0011] Figure 2 is a schematic diagram of a cooking ecosystem according to an embodiment;
[0012] Figure 3 is a schematic diagram of a cooking device for implementing a cooking process according to an embodiment;
[0013] Figure 4 is a schematic representation of a set of food images that have been cooked to different degrees according to an embodiment;
[0014] Figure 5 relates to a method of monitoring a cooking process implemented by a cooking device according to some embodiments;
[0015] Figure 6 is a graph depicting experimental data providing difference parameters according to an embodiment;
[0016] Figure 7 is a schematic diagram of a machine-readable medium for implementing various embodiments; and
[0017] Figure 8is a schematic diagram of an apparatus for implementing various embodiments. DETAILED DESCRIPTION
[0018] As previously mentioned, certain foods may experience uneven surface browning during the cooking process. This effect can be observed in some cooking devices (such as air fryers). For example, when cooking French fries, some areas of the fries may be darker in browning color than other areas of the fries due to the different cooking speeds of different areas. A variety of factors may affect the level of browning unevenness, such as cooking temperature, type and design of cooking device, location and amount of food, type of food, initial temperature state of food, etc. Currently, users need to intervene to reduce browning unevenness. For example, a user can interrupt the cooking process, visually inspect the uneven browning of the food, possibly turn the food over, and then continue the cooking process. This may be considered inconvenient for the user and depends on the user's skills and / or availability to regularly check the food during the cooking process.
[0019] Therefore, there is a need for an improved method to deal with uneven browning of foods.
[0020] Figure 1 A computer-implemented method 100 of monitoring a cooking process implemented by a cooking device according to an embodiment is provided. An example of such a cooking device will be described in more detail below.
[0021] As used herein, a "cooking process" refers to the process of applying heat to food to cause a change in the food. Such heating may result in a mere increase in temperature of the food, or a more significant change in the food, such as may be achieved using cooking methods such as baking, roasting, grilling, frying, air frying, etc.
[0022] As used herein, a "cooking device" refers to any device capable of applying heat to food to perform the above-described cooking process. The cooking device may apply heat to the food in one or more ways (e.g., by conduction, convection, and / or radiation). Examples of cooking devices include ovens, microwave ovens, stoves, air fryers, etc.
[0023] The method 100 may be implemented by, for example, a processor of a cooking device or another entity including a processor, as described in more detail below.
[0024] Method 100 includes receiving a data set indicating the appearance of a food undergoing a cooking process at block 102. The data set is derived from image data corresponding to a view of the food undergoing a cooking process. The food in the view is mapped to a set of pixels in the image data. A set of image parameter values derived from the set of pixels represents a range of brightness levels.
[0025] Food can be a single food item or multiple food items.
[0026] The following section provides additional details of the above-described image data, followed by a description of additional details of method 100 .
[0027] Image data may be acquired during the cooking process, for example using a camera described in more detail below. The image data corresponds to a view of the food at a certain moment during the cooking process. Multiple image data (e.g., multiple frames) may be acquired during the cooking process. The view of the food may refer to the field of view of the camera used to acquire the image.
[0028] In some cases, the image data may be raw imaging data provided by a camera. For example, the received image data may not have been subjected to any image processing and may be in the same format as output by the camera circuitry. In some cases, the image data may be processed (e.g., processed from a raw format, compressed, or modified by the camera's circuitry or any other available processing circuitry).
[0029] In some cases, the image data may indicate red, green, blue (RGB) values (or another color space) for each pixel of the image data. In some cases, the image data may be in a different color space, such as the Commission Internationale de l'Eclairage (CIE) L*a*b* (CILAB) color space. In some cases, the image data may be in a different color space, such as the Hue-Saturation-Value (HSV) color space. The CIELAB and HSV color spaces (among similar types of color spaces) may be more convenient than the RGB color space for certain operations, such as certain segmentation operations, as described below.
[0030] Image parameter values (e.g., RGB values, LAB values, HSV values, etc.) derived from image data can refer to values that can be used to represent brightness / darkness, color, etc. observed in a view. For example, a pixel set of a camera can register the observed intensity at each pixel of the camera, where each pixel maps to a position in the view. Thus, the pixel intensities registered by the pixel set can represent the observed view in terms of brightness and / or color. Thus, image parameter values can refer to pixel intensity values (e.g., from raw image data) or image processing values (such as color coordinates in a color space).
[0031] Thus, the data set indicates the appearance of the food at least in terms of brightness. Brightness refers to the perceived reflectivity of the food (e.g., as observed by a camera). Other terms such as "intensity" can be used to represent the detected brightness. Brightness can be represented in a variety of different ways. For example, the L* axis of the CIELAB color space can indicate brightness in a range of 0 to 100. An L* value of 100 indicates that the value measured by the pixel is the brightest possible value (and corresponds to white). An L* value of 0 indicates that the value measured by the pixel is the darkest possible value (and corresponds to black). In another example, the RGB color space can indicate brightness (for a particular color) via pixel intensity values in a range of 0 to 255. A pixel intensity value of 255 indicates that the color intensity measured by the pixel is at the highest level detectable by the pixel. A pixel intensity value of 0 indicates that the color intensity measured by the pixel is at the lowest level detectable by the pixel.
[0032] Accordingly, the food in the view is mapped to a set of pixels (in some cases, this is a subset of the total number of pixels of the camera used to acquire the image data). The image parameter value derived from the set of pixels represents the range of brightness levels observed in the portion of the view corresponding to the food (e.g., between 0 and 100 in the case of the CIELAB color space). For example, if the food has a light appearance (e.g., in the early stages of the cooking process), the set of image parameter values may indicate that the relevant pixels detect a relatively light appearance of the food. Later in the cooking process, the food may have a darker appearance due to browning. This means that the set of image parameter values obtained at a later stage may indicate that the relevant pixels detect a relatively darker appearance of the food (e.g., a lower L* value than at an earlier stage of the cooking process).
[0033] Thus, during the cooking process, the appearance of the food at a particular time is indicated by a set of image parameter values representing a range of brightness levels corresponding to that appearance.
[0034] In some cases, the dataset may be organized in a way that facilitates processing of the dataset. For example, image parameter values may be sorted / ranked according to value.
[0035] The following sections describe additional details of method 100 .
[0036] The method 100 includes determining a first value representing a first subset of image parameter values at block 104. The first subset includes image parameter values in a highest sub-range of brightness levels in the range of brightness levels.
[0037] The first subset of image parameter values may refer to a specified proportion of the set of image parameter values that are in a highest sub-range of the ordered / ranked set of brightness levels represented by the set of image parameter values. As a simplified example, if the data set includes the following L* values [75, 77, 81, 81, 83, 84, 85, 87, 88, 89, 90, 91, 92, 92, 93], and the specified proportion is 25%, then the highest sub-range includes L* values [92, 92, 92, 93]. As described below, the size of the specified proportion may depend on the implementation.
[0038] Block 104 also includes determining a second value representing a second subset of image parameter values. The second subset includes image parameter values in a lowest sub-range of brightness levels in the range of brightness levels.
[0039] The second subset of image parameter values may refer to a specified proportion of the set of image parameter values that are in a lowest sub-range of the ordered / ranked set of brightness levels represented by the set of image parameter values. With further reference to the simplified example above, if the data set includes L* values [75, 77, 81, 81, 83, 84, 85, 87, 88, 89, 90, 91, 92, 92, 93], and the specified proportion is 25%, then the lowest sub-range includes L* values [75, 77, 81, 81]. As described below, the size of the specified proportion may depend on the implementation.
[0040] A "first value" may refer to a quantity derived from the image parameter values of the first subset, the quantity representing the appearance of the food registered by the first subset of pixels mapped to the food (at the time of image acquisition). A "second value" may refer to a corresponding quantity derived from the image parameter values of the second subset, the second subset representing the appearance of the food registered by the second subset of pixels mapped to (different locations of) the food. In some cases, the quantity may be the average (mean, median, or mode) of the image parameter values of the first or second subset, respectively. However, other statistics may be derived from the image parameter values.
[0041] The difference parameter can be calculated based on the difference between the first value and the second value. In some cases, the difference parameter refers to the absolute percentage difference between the first value and the second value (although the difference parameter can be expressed in different ways, such as a ratio or a fraction). In some cases, the difference parameter value can be the numerical difference between the first value and the second value. In some cases, the first value and the second value can be referred to as the first difference value and the second difference value, respectively.
[0042] If the difference parameter exceeds a threshold value indicating that the food has an uneven surface appearance due to the cooking process, this may indicate that the food has such an uneven surface appearance (e.g., uneven surface browning). Such a threshold value may be predetermined for each food type. For example, for each food type, a threshold value between acceptable and unacceptable browning unevenness may be determined experimentally.
[0043] In response to the difference parameter exceeding the threshold value (i.e., indicating that the food has an unacceptably uneven surface appearance during cooking), the method 100 also includes (at block 106) indicating that a movable element of the cooking device is to be moved. The movement of the movable element is configured to cause a redistribution of the food relative to the movable element. Examples of such movable elements are described in more detail below.
[0044] The force of movement of the movable element (which in some cases may support the food on the surface of the movable element or otherwise contact the food) is sufficient to redistribute the food relative to the movable element. That is, the food may be moved in some manner, such as rotated, translated, or otherwise offset from its original position and orientation relative to the movable element. In other words, before being moved by the movable element, the food may have a first position and orientation relative to a reference point of the cooking device (e.g., defined relative to a surface of the movable element or another location). After being moved by the movable element, the food may have a second position and orientation relative to the reference point.
[0045] The redistribution of food relative to the movable element can allow different areas of the food to move so that an area on the food that is cooked at a slower speed may be cooked at a faster speed than another area on the same food (or vice versa). For example, the first part of the cooking device may have a higher temperature, higher airflow, etc. than the second part of the cooking device. The area on the food located in the first part may brown faster than another area on the food located in the second part of the cooking device. By moving the food around, the possibility of the food area located in the first part of the cooking device being moved to the second part of the cooking device is greater. Similarly, the possibility of another area of the food in the second part of the cooking device being moved to the first part of the cooking device is greater. In this way, after the food is redistributed and then undergoes a cooking process, a food area with a low browning level may brown faster than another area of the food with a high browning level. In some cases, the food may be redistributed multiple times during the cooking process. The result may be that all areas of the food have a uniform browning level over the entire surface of the food.
[0046] Thus, method 100 and certain other embodiments described herein may provide one or more technical benefits, such as described below, and may be understood with reference to the entire disclosure.Other technical benefits will be apparent from the overall content of the disclosure and with reference to the embodiments described herein.
[0047] Technical benefits of method 100 and / or related embodiments may include the following. Certain embodiments may provide improved monitoring to facilitate reducing non-uniformity of food surface browning during the cooking process. Further, certain embodiments may facilitate enhanced control of the cooking process to reduce non-uniformity in browning. Further, certain embodiments may improve user convenience, for example, by reducing user monitoring and / or intervention during the cooking process. Further, certain embodiments may provide a low computational complexity method for assessing food browning.
[0048] An embodiment related to the method 100 is described below.
[0049] Figure 2 is a schematic diagram of a cooking ecosystem 200 according to an embodiment. Certain embodiments described herein (e.g., method 100) may be implemented in certain portions of the cooking ecosystem 200. The cooking ecosystem 200 depicts various devices and entities that may be deployed as part of the cooking ecosystem 200. As described below, in some scenarios, not every device or entity depicted may be required.
[0050] The cooking ecosystem 200 includes a cooking device 202 for cooking food 204 (the food may include a single food item such as steak, or multiple food items such as French fries). The cooking device 202 includes a controller 206 for controlling the cooking process. For example, the controller 206 can control a heating element (not shown) of the cooking device 202 (e.g., controlling the cooking temperature and / or cooking time of the cooking device 202). The controller 206 is communicatively coupled to a camera 208 for capturing images. The camera 208 is positioned so that an area of interest associated with the food 204 is within the field of view of the camera 208. This particular configuration is an example. For example, the camera 208 may or may not be inside the cooking device 202, but even if the camera 208 is outside the cooking device 202, the food 204 is still within its field of view.
[0051] In some cases, the cooking ecosystem 200 includes a cloud computing service 210 that is communicatively coupled to the controller 206. The cloud computing service 210 can provide data storage and / or data processing services. The cloud computing service 210 can provide computing resources if there are not enough available computing resources in any connected device. In some cases, the cloud computing service 210 can provide updates and other services for the cooking device 202.
[0052] In some cases, the cooking ecosystem 200 includes a user device 212 that is communicatively coupled to the controller 206. The user device 212 can refer to any computing device associated with a user (e.g., a user of the cooking apparatus 202). Examples of the user device 212 include: a smartphone, a smart watch, a tablet, an Internet of Things (IoT) device, etc. In some cases, the user device 212 can be communicatively coupled to the cloud computing service 210.
[0053] In some cases, user device 212 may include an interface (not shown) to facilitate user interaction with user device 212 .
[0054] In some cases, cooking apparatus 202 may include an interface (not shown) to facilitate user interaction with cooking apparatus 202 .
[0055] Examples of such interfaces may include, for example, output devices that provide visual information (e.g., a display) and / or audible information (e.g., a speaker) to a user. Other examples of such interfaces may include input devices (e.g., a camera, a microphone, a touch-sensitive component such as a touch screen, buttons, etc.) that allow a user to input instructions to control cooking device 202. In some cases, the user interface may facilitate user control of user device 212 and / or cooking device 202 via user input to the interface (e.g., by a user touching an interface such as a touch-sensitive component or by a user speaking, gesturing, or otherwise indicating control instructions that can be detected by an interface (such as a camera or microphone)).
[0056] Any one or combination of the controller 206, the cloud computing service 210, and the user device 212 can be used to implement the method 100 and other embodiments described herein. For example, in some cases, the controller 206 can implement the method 100 and related embodiments. In this regard, the controller 206 can include a processor (not shown) for implementing the method 100 and related embodiments. In other cases, processing circuits associated with various devices and entities of the cooking ecosystem 200 can implement the method 100 and related embodiments.
[0057] Figure 3 3 is a schematic diagram of a cooking device 300 for implementing a cooking process according to an embodiment. The cooking device 300 can implement the functions of certain embodiments described herein, such as Figure 1 Certain features of the cooking device 300 may be related to Figure 2 The features of the cooking device 202 correspond to or have similar functions.
[0058] The cooking device 300 includes a cooking chamber 302 for accommodating food 304. The cooking device 300 also includes a housing 306 that defines the cooking chamber 302. The cooking device 300 also includes an air circulation system 308 for circulating an air flow inside the cooking chamber 302. Therefore, in this regard, the cooking device 300 can have a form similar to a fan oven or an air fryer. The cooking device 300 also includes a camera 310 for capturing images ("views" associated with the food 304) during the cooking process. The captured images can correspond to or be used to derive the first image data and the second image data.
[0059] The cooking device 300 also includes a controller 312, for example corresponding to Figure 2 In this embodiment, the controller 312 is configured to implement the method 100. In a further embodiment, the controller 312 is configured to implement embodiments related to the method 100.
[0060] The cooking device 300 also includes a light 314 that illuminates the food 304. The light 314 can be turned on and off by the controller 312. Some embodiments may not include such a light 314 (for example, if there is enough ambient light available and / or the camera 310 is sensitive enough). The light 314 may include a light emitting diode (LED), a halogen lamp, etc. The light 314 is mounted in the upper area of the cooking chamber 302, but may also be located elsewhere. In some cases, there may be multiple lights 314. Such lights 314 can be appropriately positioned to produce uniform illumination toward the food 304. The camera 310 can be appropriately positioned so that it has the food 304 within its field of view and so that the illumination provided by the light 314 provides the camera 310 with an appropriate level of illumination to image the food 304.
[0061] Cooking device 300 also includes a movable element 316 (such as a baking tray, basket, paddle, or other device capable of applying force relative to food 304 to cause it to move). In this case, movable element 316 is configured to support food 304 on the surface of movable element 316. Cooking device 300 also includes a handle 318 that is coupled to movable element 316. A user can use handle 318 to remove movable element 316 from cooking device 300 and apply a force to movable element 316 sufficient to cause food 304 to be redistributed. For example, a user can shake movable element 316.
[0062] The cooking device 300 also includes an interlock 320 that is configured to detect the position of the movable element 316. If the user removes the movable element 316, the interlock 320 detects the removal and causes the cooking device 300 to stop generating heat and / or stop circulating airflow. Similarly, if the movable element 316 is replaced, the interlock 320 detects the replacement and restarts to generate heat and / or circulate airflow to continue the cooking process. The interlock 320 may be communicatively coupled to the controller 312 to facilitate control of heat generation and airflow circulation. In some embodiments, such an interlock 320 may not be required.
[0063] In some embodiments, cooking device 300 is configured to allow a user to cause movement of movable element 316 to cause redistribution of food 304 relative to movable element 316. Indicating that movable element is to be moved may include generating an indication of an interface for use by the user. The indication may allow the user to determine whether to cause movement of movable element 316.
[0064] For example, an interface (e.g., an interface of the cooking apparatus 300 itself or of the user device 212) may receive an indication (generated by a processor implementing a method according to an embodiment). The user may then determine whether to cause movement of the movable element 316 based on the indication. Such an indication may be considered a suggestion to the user to move the movable element 316. The user may decide to accept or ignore the indication that the movable element 316 is to be moved. This decision may be based on their own personal preferences or experience.
[0065] To cause movable element 316 to move, the user may take appropriate action depending on the configuration of cooking device 300 .
[0066] In some embodiments, cooking device 300 is configured to move movable element 316 to cause redistribution of food 304 relative to movable element 316. For example, a powered actuator (not shown) (such as an electric motor) may be part of cooking device 300 that may be controlled by controller 312. Such a powered actuator may be configured to exert a force on movable element 316 to cause redistribution of food 304 relative to movable element 316. Instructing movable element 316 to move may include causing cooking device 300 to move movable element 316 (e.g., by instructing the powered actuator to move movable element 316 as desired).
[0067] In some embodiments, food 304 is supported on a surface of movable element 316. Movement of movable element 316 causes food 304 to move about (eg, shift position and / or orientation) on the surface.
[0068] In some embodiments, the cooking device 300 is a consumer cooking device that a consumer can purchase and use at home.
[0069] Where the method 100 is implemented, the controller 312 is configured to monitor the cooking process by implementing blocks 102 , 104 , and 106 of the method 100 and / or related embodiments.
[0070] although Figure 3 The controller 312 of the cooking device 300 is described as implementing the method 100, but in some cases, other devices or entities (such as Figure 2 As shown) can implement at least some of the functions of method 100 (and related embodiments).
[0071] Figure 4 is a schematic representation of a set of images (a) to (d) of food that has been cooked to different degrees according to embodiments described herein. The images may correspond to the views of the food mentioned above.
[0072] In image (a), the food (in this case, French fries) is randomly distributed on the surface and is not cooked.
[0073] In image (b), the food has been partially cooked. Although the food has become somewhat browned (as shown by the light shading), some areas of the food (as shown by the black areas) are more cooked than other areas of the food. The difference between the light shaded areas and the black areas on the food is such that the threshold of non-uniformity has been exceeded. Therefore, the food will be redistributed on the surface of the movable element.
[0074] In image (c), the food has been redistributed due to the uneven browning.
[0075] In image (d), the food has been cooked to the browning level specified by the consumer (indicated by the darker shades). Because the food is redistributed before excessive browning occurs in certain areas of the food, the surface appearance of the food has a substantially uniform level of browning across the surface. Thus, the automatic redistribution of the food on the movable element when a threshold is exceeded can prevent certain areas of the food from browning too much.
[0076] Currently, consumers can judge the level of doneness of food by observing the color of the surface of the food. Consumers can determine the color difference by visually judging and comparing the lightest and darkest areas of the food during cooking, thereby assessing the degree of uneven browning level. This is an effective technology because for many types of food (such as frozen French fries, fish fillets, toast slices, pork belly slices, etc., the surface color signal is closely related to the level of food doneness. The embodiments described herein can provide a more convenient method for detecting uneven browning during cooking. Accordingly, consumers may not need to care about exactly when they should pause the cooking device to redistribute the food to prevent uneven browning. Certain embodiments described herein can provide users with improved information about when to redistribute food to reduce uneven browning (i.e., promote more uniform browning). For example, uneven browning can be easily detected, thereby providing users with improved information to make more informed decisions about when to redistribute food. The burden on users can be reduced because they can pay less attention to visually checking the status of the browning level of food.
[0077] The brightness (or brightness or intensity) of the detected food area may affect the implementation of the embodiments described herein. For example, since the L channel value in the CIELAB color space is related to the brightness of a single color, some embodiments may involve extracting the L channel value derived from the captured RGB value of the pixel. This method may include real-time food image analysis to determine the food browning level. A lighter color means a lighter browning level, regardless of the color type. For example, baked foods usually have yellow and brown colors. Therefore, the brightness of brown is very relevant to the food browning level. Many vegetables are green. Therefore, lighter and darker greens represent lighter and darker browning levels, respectively. After obtaining the L value of the pixel of the food image, some embodiments described herein can measure the uneven browning by calculating the absolute percentage difference of the L value of two pixel subsets with the darkest and brightest L values, respectively. In order to make the calculated difference represent the uneven browning perceived by the human eye under ambient light as much as possible, the L* value can be obtained by color calibration from the RGB color space of the ambient light environment to the standard CIELAB color space.
[0078] Some embodiments related to the above are now described.
[0079] In some embodiments, the first subset includes one or more image parameter values derived from a first subset of pixels mapped to the food. The second subset includes one or more image parameter values derived from a second subset of pixels mapped to the food.
[0080] In some embodiments, the difference parameter is based on an absolute difference between the first value and the second value.The absolute difference may be based on a ratio of the difference between the first value and the second value to the first value.
[0081] In some embodiments, the difference parameter is an absolute percentage difference. It should be noted that the "second value" refers to an area that is darker than the "first value". Therefore, in terms of the (e.g., average) L values of the first subset and the second subset, the L* value of the first subset is higher than the L* value of the second subset. The absolute percentage difference can be calculated as (first value minus second value) / first value. In some embodiments, the first subset can refer to food portions mapped to pixels that are aligned with a relatively bright appearance. The second subset can refer to food portions mapped to pixels that are aligned with a relatively darker appearance (than the first subset).
[0082] In some embodiments, the difference parameter is calculated by subtracting a reference difference from an absolute difference derived from a data set. The reference difference is an absolute difference derived from a reference data set that indicates the appearance of the food at an earlier time in the cooking process.
[0083] In some embodiments, the earlier time is a predefined time period after the cooking process begins. The predefined time period may be based on the type of food and / or the cooking temperature achieved by the cooking device.
[0084] In some embodiments, the image parameter value set includes a set of coordinates in a color space. The set of coordinates includes one or more coordinate components (wherein the coordinate components may refer to, for example, the L* axis, a* axis, and b* axis of the CIELAB color space). The set of coordinates includes a coordinate component representing a brightness level, such as the L* axis of the CIELAB color space.
[0085] In some embodiments, the first subset includes less than 25% of the total number of image parameter values in the set of image parameter values (i.e., derived from the set of pixels mapped to the food). The second subset includes less than 25% of the total number. Therefore, the total number of image parameter values refers to the number of pixels mapped to the food. The first subset refers to pixels corresponding to less than 25% of the total number (aligned with the brightness level in the highest sub-range). The second subset refers to pixels corresponding to less than 25% of the total number (aligned with the brightness level in the lowest sub-range). Therefore, in general, to determine the first value and the second value, less than 50% of the total number of pixels mapped to the food can be used.
[0086] In some embodiments, the first value is based on an average of the image parameter values in the first subset. Further, the second value is based on an average of the image parameter values in the second subset. The average value may refer to a mean, a mode, or a median. That is, the first value may be calculated by determining an average image parameter value of the image parameter values in the first subset. Further, the second value may be calculated by determining an average image parameter value of the image parameter values in the second subset.
[0087] In some embodiments, the image parameter values are derived from pixel intensity values registered in a region of interest segmented from the image data. The region of interest includes pixels that map to visible food in the view. The image data can be segmented to identify a set of pixels that map to food (i.e., the region of interest). Segmentation can be performed in various ways (e.g., by using Otsu's thresholding technique). Segmentation techniques can include artificial intelligence (AI) techniques and non-AI techniques.
[0088] In some embodiments, the method includes removing one or more image parameter values from a set of image parameter values used to determine the first value and the second value. The one or more image parameter values are removed based on a criterion indicating that the one or more image parameter values to be removed from the set are abnormal relative to other image parameter values. This may be useful in situations where certain image parameter values do not provide useful information for determining the first value or the second value. For example, some pixels may be aligned with very high brightness levels (such as reflected light from a shiny surface of food). By setting the criteria appropriately, the image parameter values of these pixels may be removed from the set of image parameter values. In this way, the first value and the second value may be determined more accurately based on pixels that provide an accurate representation of the brightness levels.
[0089] In some embodiments, the criterion is that one or more image parameter values having brightness levels above or below a threshold are to be removed.
[0090] In some embodiments, the criterion is that one or more image parameter values having one or more color space values above or below a threshold value are to be removed.
[0091] For example, a threshold value may be defined within a range of image parameter values. An upper threshold value may be set to remove image parameter values that are too bright (e.g., a threshold value of 95 may be defined for the L* value, thereby removing L* values of 96 to 100 from the image parameter value set) or image parameter values that exceed a specific color (e.g., a* values and / or b* values or other color space values above a predefined threshold value are removed from the image parameter value set). A lower threshold value may be set to remove image parameter values that are too dark (e.g., a threshold value of 5 may be defined for the L* value, thereby removing L* values of 0 to 4 from the image parameter value set) or image parameter values that exceed a specific color (e.g., a* values and / or b* values or other color space values below a predefined threshold value are removed from the image parameter value set). The threshold value may be determined based on experiments. In some cases, the threshold value may be defined based on the type of food.
[0092] In some embodiments, the criterion is that one or more image parameter values in the ordered sequence of the set of image parameter values are to be removed, the one or more image parameter values having a brightness level increased or decreased by a specified value or factor compared to adjacent image parameter values in the ordered sequence.
[0093] In some embodiments, the criterion is that one or more image parameter values in the ordered sequence of the set of image parameter values are to be removed, the one or more image parameter values having one or more color space values increased or decreased by a specified value or factor compared to adjacent image parameter values in the ordered sequence.
[0094] For example, a sudden change in image parameter values between adjacent (continuous) image parameter values in an ordered sequence of image parameter values may indicate a potential error in the image parameter values. If the change increases or decreases by a specified value or factor, the image parameter value may be removed. For example, assuming that an ordered set of image parameter values in a set has the following brightness (or color) values [88, ..., 88, 89, ..., 89, 90, ...90, 95 ...], there is a sudden change in brightness (or color) values from 90 to 95. If the threshold is set to a change of 5 or more, the image parameter values in the ordered sequence starting from 95 are to be removed from the image parameter value set. Instead of specifying an explicit number (such as a change of 5% or more), a factor such as a 5% change may be specified. The change from 90 to 95 is a 5.6% change, and therefore the image parameter values in the ordered sequence starting from 95 are to be removed from the image parameter value set. Therefore, some of the corresponding pixels may cause errors because they cannot accurately represent the appearance of food, so they may be excluded. This pixel removal method can help remove any pixels that were not removed by the segmentation process.
[0095] In some embodiments, the set of image parameter values is derived from modified image data obtained by performing image correction on the image data to reduce color distortion and / or illumination non-uniformity present in the image data.
[0096] Some other potential implementation details are described below.
[0097] Figure 5 A method 500 is directed to monitoring a cooking process implemented by a cooking device, such as cooking device 300, according to some embodiments. As described above, method 500 may be implemented by, for example, a processor of cooking device 300 or another entity. The blocks of method 500 are summarized as follows. Certain blocks may be omitted (according to some embodiments) or performed in a different order than shown.
[0098] At block 502 of method 500, image acquisition is performed to obtain image data used in the methods described herein. Images may be acquired repeatedly during the cooking process. In some cases, image acquisition may be performed periodically (e.g., at regular intervals) during the cooking process.
[0099] In some embodiments, at block 504 of method 500, image correction and / or image preparation (if necessary) may be performed on the acquired image. Various types of image correction may be performed, such as grayscale correction and / or color correction. Image preparation may include selecting one or more regions of interest mapped to the image data of the food (e.g., by using segmentation).
[0100] In some embodiments, L* values of CIELAB values of pixels in the image data portion may be obtained to facilitate browning level control. However, some cooking devices 300 may have uneven lighting (e.g., due to lighting design in the cooking device and any ambient lighting) and / or color distortion.
[0101] Grayscale correction may be performed to reduce brightness non-uniformity (caused by uneven lighting). This may include detecting RGB values on a neutral card imaged by the camera relative to a reference point in the image. In some embodiments, for pixels in a region, an offset relative to the reference point may be calculated. The offset may be used to generate a linear transformation function that transforms the pixel intensity value of each pixel to correct for brightness non-uniformity.
[0102] In some cases, the image correction and / or image preparation obtained at block 504 may be applied to any subsequently acquired image (e.g., at block 508). If the food is redistributed, segmentation may need to be performed again. If image correction was actually required in the first place, it may or may not need to be performed again.
[0103] Further, some cooking devices 300 may have non-ideal color imaging, which means that color correction may be needed to eliminate color distortion of the imaging system. In some embodiments, color correction can be performed using a polynomial or neural network model to transform color values to correct color distortion in the image. Grayscale correction can be implemented before color correction is implemented (if necessary).
[0104] In some embodiments, a region of interest may be identified in an image. The region of interest may correspond to a subset of pixels of a set of pixels that form the entire image. The region of interest may include food regions and non-food regions. Thus, some pixels in the region of interest may be mapped to food in the view (i.e., food pixels), and other pixels in the region of interest may not be mapped to food in the view (i.e., non-food pixels such as food backgrounds). In some embodiments, the region of interest is predefined for the view (e.g., based on the manufacturer's knowledge of where food may be located in the view). In some embodiments, the region of interest is manually selected by a user, for example, via a user interface (such as a graphical user interface (not shown)). In some embodiments, a user may select a sub-region of interest from a predefined region of interest (e.g., only for intensive monitoring of uneven browning in a sub-region).
[0105] In some embodiments, segmentation can be performed on the acquired image (or in some cases, on a region of interest, as described above) to identify pixels in the image that map to one or more food locations in the view (i.e., "food pixels"). In some embodiments, segmentation employs grayscale thresholding, where the threshold is determined by Otsu's method or another appropriate method. Thus, portions of the image that map to food can be distinguished from portions of the image that map to non-food areas (such as parts of a cooking device visible in the view that are not covered by food). According to embodiments described herein, segmentation can indicate which pixels of the image data should be used to perform uneven browning level detection.
[0106] After executing the blocks 502 and 504 of method 500, the uneven browning level detection according to some embodiments described herein is performed. It is found through experiments that after cooking for a period of time, the unevenness of the browning level begins to increase significantly. Therefore, according to the embodiments described herein, a delay can be specified to indicate the start time for initiating uneven browning detection. The delay can be a predefined time period depending on the food condition (for example, if the food is frozen, the delay can be longer than if the food is fresh). Therefore, a timer can be implemented at block 506 of method 500 so that the subsequent steps of method 500 are implemented after the predefined time period. For example, during the predefined time period after the start of the cooking process, the food is usually not significantly browned. Further, if the user has redistributed the food during the cooking process, after the user redistributes the food, according to the timer, a certain amount of time may need to pass. Using such a timer can avoid unnecessarily frequently redistributing food during the cooking process. The following blocks are executed after the delay.
[0107] At block 506 of method 500, a check is performed to determine whether uneven browning detection needs to be implemented (e.g., assuming a predefined time period has passed). For example, the consumer may have manually redistributed the food before the start time for initiating uneven browning detection. In some cases, certain foods may generally brown in a uniform manner, and therefore, uneven browning detection may not need to be initiated.
[0108] If no (uneven browning detection does not need to be implemented), method 500 proceeds to block 514 where other processes may be implemented. For example, other types of cooking monitoring or process control may be implemented, or certain blocks of method 500 may need to be repeated. Such other types of cooking process control may include browning level control and / or other types of control for controlling a cooking device and / or a cooking process.
[0109] If yes (uneven browning detection is to be achieved), method 500 proceeds to block 508. At block 508, if the condition is met, image data is acquired and used as follows. A first value is calculated from a first subset of image parameter values mapped to a set of foods. Further, a second value is calculated from a second subset of image parameter values mapped to a set of foods. The first value may be an average of the image parameter values in the first subset. Similarly, the second value may be an average of the image parameter values in the second subset.
[0110] The condition may be whether a predefined time period has passed. If so, the condition is satisfied. The predefined time period may be based on one or more factors, such as the type of food, the amount of food being cooked, the cooking temperature of the food, and / or the initial temperature state (e.g., frozen or fresh). It may not be necessary to start uneven browning detection for a period of time after initiating the cooking process, as browning is not expected to be significant within the predefined time period. Delaying the start of uneven browning detection may reduce the overall use of computing resources during the cooking process.
[0111] In the experiment, the proportion in the first subset was selected to be 10% of the total number of image parameter values mapped to food. Similarly, the proportion in the second subset was selected to be 10% of the total number of image parameter values mapped to food. Therefore, a total of 20% of the total number of image parameter values were selected to calculate the difference parameter. In the experiment, the image parameter values in the set mapped to food were sorted / graded according to the value (e.g., from brightest to darkest). The first subset was selected to be the 10% brightest image parameter values (i.e., the 10% of pixels that recorded the highest L* values). The second subset was selected to be the 10% darkest image parameter values (i.e., the 10% of pixels that recorded the lowest L* values). It was found that using a 10% selection at each end of the scale provides acceptable results. However, other percentages, such as less than 25%, can be used.
[0112] After the first value and the second value have been calculated, the method 500 proceeds to box 510. At box 510, if the conditions described with respect to box 508 are met, the absolute value of the percentage difference between the first value and the second value is calculated. If it is time to start detecting uneven browning levels, the calculated percentage difference (based on the first acquired image) is the initial value of the percentage difference. For images acquired after the first acquired image, the initial value is subtracted from the absolute percentage difference (calculated from each subsequently acquired image). The subtracted absolute percentage difference is used to represent the real-time unevenness of the browning level. In this case, the difference parameter is based on the absolute difference between the first value and the second value minus the initial value of the absolute difference. This can be expressed as follows:
[0113] Difference parameter (i) = ((first value (i) - second value (i)) / first value (i)) - ((first value (0) - second value (0)) / first value (0),
[0114] Wherein the difference parameter (i) refers to the difference parameter of the i-th image data (or frame) acquired after the start of the uneven browning detection, the first value (i) / the second value (i) refers to the first value / the second value respectively calculated from the i-th image data acquired after the start of the uneven browning detection, and the first value (0) / the second value (0) refers to the initial (zeroth) image data acquired at the start of the uneven browning detection.
[0115] In each calculation of the difference parameter after the initial value is calculated, the method 500 executes block 512. At block 512, the difference parameter is compared to a (preset) threshold value, which indicates that the food has an uneven surface appearance due to the cooking process. If the difference parameter is greater than the threshold value, the method 500 indicates that the movable element of the cooking device 300 is to be moved to cause a redistribution of the food 304 relative to the movable element 316, as described above.
[0116] Once the food has been redistributed, method 500 proceeds to block 514 where other cooking monitoring / control operations may be performed. In some cases, method 500 implemented by one or more of blocks 502 to 512 may be repeated (e.g., after a predefined time period has elapsed). For example, some foods may require multiple redistributions during the cooking process to ensure even browning.
[0117] Experimental studies implementing certain embodiments described herein are now described.
[0118] Figure 65 is a graph depicting experimental data (air frying frozen French fries) that provides a difference parameter in accordance with an embodiment. The graph indicates time on the x-axis and the difference parameter on the y-axis. The difference parameter is calculated using the expression described with respect to box 510. The predefined time period is set to 800 seconds. The 800 second time period is selected to start the uneven browning detection process because it has been found that a significant increase in uneven browning (indicated by the difference parameter) typically occurs after this time period. After 800 seconds, the difference parameter signal shows an upward trend, which means that the brightness difference between the brightest pixel and the darkest pixel becomes larger and larger. When the difference parameter signal exceeds the (pre-set) threshold of 0.02 at approximately 1905 seconds, an indication is triggered that the movable element (i.e., the basket of the air fryer) is to be moved, as shown in FIG. Figure 6 At this time, uneven browning (similar to Figure 4 (b)). Therefore, the fries are redistributed by shaking the basket (similar to Figure 4 (c)), and the cooking process continued. After about 53 minutes of cooking, it was found that the French fries had a relatively uniform browning level (similar to Figure 4 (d)). In a comparative experiment, no basket shaking was performed. In this case, a significant level of uneven browning resulted.
[0119] Figure 7 700 is a schematic diagram of a non-transitory machine-readable medium 700 for implementing various embodiments described herein. As used herein, the term "non-transitory" does not include transitory propagating signals. The machine-readable medium 700 stores instructions 702 that can be read and executed by a processor 704 to implement the methods of any embodiment described herein (e.g., method 100 and / or related embodiments). The machine-readable medium 700 and / or the processor 704 can be used by Figure 2 or Figure 3 It can be implemented by any one of the controller 206, cloud computing service 210, user device 212 and / or controller 312.
[0120] Figure 8 8 is a schematic diagram of an apparatus 800 for implementing various embodiments described herein. The apparatus 800 may be Figure 2 or Figure 3 It can be implemented by any one of the controller 206, cloud computing service 210, user device 212 and / or controller 312.
[0121] The device 800 includes a processor 802. The processor 802 is configured to communicate with an interface 804. The interface 804 can be any interface (wireless or wired) that implements a communication protocol to facilitate the exchange of data (e.g., image data, cooking device control instructions, etc.) with other devices (such as another part of the cooking ecosystem 200).
[0122] The apparatus 800 also includes a memory 806 (eg, non-transitory or otherwise) that stores instructions 808 that are readable and executable by the processor 802 to implement various embodiments described herein (eg, the method 100 or any related embodiments).
[0123] Any model described herein may be implemented by a processing circuit for implementing the methods described herein. Therefore, some blocks of the method may involve the use of such a model in order to provide the described functionality. The model may be based on machine learning (ML) or non-ML based (where ML is an artificial intelligence (AI) technique). However, some embodiments described herein involve the use of non-ML based models, which can avoid the need to use a large amount of computing resources and / or implement local processing.
[0124] While the invention has been illustrated and described in detail in the drawings and foregoing description, such illustration and description are to be considered illustrative or exemplary and not restrictive; the invention is not limited to the disclosed embodiments.
[0125] One or more features described in one embodiment may be combined with or substituted for features described in another embodiment.
[0126] The embodiments of the present disclosure may be provided as a method, system, or a combination of machine-readable instructions and processing circuits. Such machine-readable instructions may be included in or on a non-transitory machine (e.g., computer) readable storage medium (including but not limited to disk storage, CD-ROM, optical storage, flash memory, etc.) having a computer-readable program code.
[0127] The present disclosure is described with reference to the flowcharts and block diagrams of the methods, devices and systems according to the embodiments of the present disclosure. Although the above flowcharts show a specific execution order, the execution order may be different from that described. The frame described in one flowchart may be combined with the frame of another flowchart. It should be understood that each frame in the flowchart and / or block diagram and the combination of frames in the flowchart and / or block diagram may be implemented by machine-readable instructions.
[0128] Machine-readable instructions can be executed, for example, by a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing device to implement the functions described in the specification and the drawings. Specifically, a processor or a processing circuit or a module thereof can execute machine-readable instructions. Therefore, the functional modules of the apparatus and other devices described herein can be implemented by a processor that executes machine-readable instructions stored in a memory or a processor that operates according to instructions embedded in a logic circuit. The term "processor" will be broadly interpreted to include a CPU, a processing unit, an ASIC, a logic unit, or a programmable gate array, etc. These methods and functional modules can all be performed by a single processor, or divided between several processors.
[0129] Such machine-readable instructions may also be stored in a computer-readable memory, which may direct a computer or other programmable data processing device to operate in a particular mode.
[0130] Such machine-readable instructions may also be loaded onto a computer or other programmable data processing device to cause the computer or other programmable data processing device to perform a series of operations to produce a computer-implemented process, so that the instructions executed on the computer or other programmable device implement the functions specified by the blocks in the flowchart and / or block diagram.
[0131] Furthermore, the teachings herein may be implemented in the form of a computer program product, which is stored in a storage medium and includes a plurality of instructions for causing a computer device to implement the methods described in the embodiments of the present disclosure.
[0132] Elements or steps described with respect to one embodiment may be combined with or replaced with elements or steps described with respect to another embodiment. Other variations of the disclosed embodiments may be understood and implemented by those skilled in the art in implementing the claimed invention based on a study of the drawings, the present disclosure and the appended claims. In the claims, the word "comprising" does not exclude other elements or steps, and the indefinite article "a" or "an" does not exclude pluralities. A single processor or other unit may implement the functions of several items listed in the claims. The simple fact that certain measures are stated in mutually different dependent claims does not mean that a combination of these measures cannot be advantageously utilized. The computer program may be stored or distributed on a suitable medium (such as an optical storage medium or solid-state medium provided with or as part of other hardware), but may also be distributed in other forms (such as via the Internet or other wired or wireless telecommunications systems). Any reference numerals in the claims should not be interpreted as limiting the scope.
Claims
1. A computer-implemented method (100) for monitoring a cooking process performed by a cooking device, the method comprising: receiving (102) a data set indicative of an appearance of a food undergoing the cooking process, wherein the data set is derived from image data corresponding to a view of the food undergoing the cooking process, wherein the food in the view maps to a set of pixels in the image data, and wherein a set of image parameter values derived from the set of pixels represents a range of brightness levels; Confirm (104): a first value representing a first subset of values of the image parameter, wherein the first subset includes values of the image parameter in a highest sub-range of brightness levels in the range of brightness levels; and a second value representing a second subset of the image parameter values, wherein the second subset includes the image parameter values in a lowest sub-range of brightness levels in the range of brightness levels; as well as In response to a difference parameter calculated based on the difference between the first value and the second value exceeding a threshold indicating that the food has an uneven surface appearance due to the cooking process, indicating (106) that a movable element of the cooking device will move to cause a redistribution of the food relative to the movable element; wherein the indicating (106) that the movable element will move includes generating an indication of an interface for use by the user, or causing the cooking device to move the movable element.
2. The computer-implemented method of claim 1, wherein the food is supported on a surface of the movable element, and wherein movement of the movable element causes the food to move around on the surface.
3. A computer-implemented method according to any one of claims 1 to 2, wherein the first subset includes one or more image parameter values derived from a first subset of pixels mapped to the food, and wherein the second subset includes one or more image parameter values derived from a second subset of pixels mapped to the food. 4 . The computer-implemented method of claim 1 , wherein the difference parameter is based on an absolute difference between the first value and the second value.
5. A computer-implemented method according to any one of claims 1 to 4, wherein the set of image parameter values comprises a set of coordinates in a color space, wherein the set of coordinates comprises one or more coordinate components, and wherein the set of coordinates comprises a coordinate component representing the brightness level.
6. The computer-implemented method of any one of claims 1 to 5, wherein the first subset includes less than 25% of a total number of the image parameter values in the image parameter value set, and wherein the second subset includes less than 25% of the total number.
7. The computer-implemented method of any one of claims 1 to 6, wherein the first value is based on an average of the image parameter values in the first subset, and wherein the second value is based on an average of the image parameter values in the second subset.
8. A computer-implemented method according to any one of claims 1 to 7, wherein the image parameter values are derived from pixel intensity values registered in a region of interest segmented from the image data, and wherein the region of interest includes pixels mapped to the food visible in the view.
9. A computer-implemented method according to any one of claims 1 to 8, the method comprising removing one or more image parameter values from the set of image parameter values used to determine the first value and the second value, wherein the one or more image parameter values are removed based on a criterion indicating that the one or more image parameter values to be removed are abnormal relative to other image parameter values in the set.
10. The computer-implemented method of claim 9, wherein the criteria is one or more of: One or more image parameter values having brightness levels above or below a threshold are to be removed; One or more image parameter values in the ordered sequence of the set of image parameter values are to be removed, the one or more image parameter values having a brightness level increased or decreased by a specified value or factor compared to adjacent image parameter values in the ordered sequence; One or more image parameter values having one or more color space values above or below a threshold are to be removed; One or more image parameter values in the ordered sequence of the set of image parameter values are to be removed, the one or more image parameter values having one or more color space values increased or decreased by a specified value or factor compared to adjacent image parameter values in the ordered sequence.
11. A computer-implemented method according to any one of claims 1 to 10, wherein the set of image parameter values is derived from modified image data, the modified image data being obtained by performing image correction on the image data to reduce color distortion and / or lighting non-uniformity present in the image data.
12. A non-transitory machine-readable medium (700) storing instructions (702) that can be read and executed by a processor (704) to implement the method of any one of claims 1 to 11.
13. A cooking device (300) for performing a cooking process, the cooking device comprising: A cooking chamber (302) for accommodating food (304); a housing (306) defining the cooking chamber; an air circulation system (308) for circulating air flow inside the cooking chamber; a camera (310) for capturing images during the cooking process; a movable element (316) for moving the food; as well as A controller (312), the controller being configured to: receiving (102) a data set indicative of an appearance of a food undergoing the cooking process, wherein the data set is derived from image data corresponding to a view of the food undergoing the cooking process, wherein the food in the view maps to a set of pixels in the image data, and wherein a set of image parameter values derived from the set of pixels represents a range of brightness levels; Confirm (104): a first value representing a first subset of values of the image parameter, wherein the first subset includes values of the image parameter in a highest sub-range of brightness levels in the range of brightness levels; and a second value representing a second subset of the image parameter values, wherein the second subset includes the image parameter values in a lowest sub-range of brightness levels in the range of brightness levels; as well as In response to a difference parameter calculated based on the difference between the first value and the second value exceeding a threshold indicating that the food has an uneven surface appearance due to the cooking process, indicating (106) that a movable element of the cooking device will move to cause a redistribution of the food relative to the movable element; wherein the indicating (106) that the movable element will move includes generating an indication of an interface for use by the user, or causing the cooking device to move the movable element.
