This disclosure relates to optical processing systems.
Determining cleanliness of various items is important in many different industries. For example, developers of cleaning agents judge the effectiveness of a newly developed cleaning agent based on how clean a ware becomes after applying the cleaning agent. Restaurateurs determine cleanliness of dishes, glasses, cooking utensils, and eating utensils for sanitary and aesthetic purposes, e.g., to determine whether a particular ware is suitable for use or whether the ware must be re-washed after a first washing. Launderers may similarly determine whether laundry is clean for aesthetic purposes, e.g., to determine whether to re-wash a particular laundry item.
In many industries, a trained expert judges the cleanliness of an item via a visual inspection process and provides feedback as to the cleanliness of the item. In an attempt to quantify the meaning of the term “cleanliness,” standardized cleanliness scales for different industries have been developed. In that case, an expert may provide a cleanliness rating as a numeric value on a standardized cleanliness scale. However, the use of experts requires reliance on subjectivity, as well as the time and expense to train a person to become an expert at determining cleanliness of a particular item.
In general, this disclosure describes techniques for automatically determining cleanliness of surfaces, such as surfaces of wares. The wares may include, for example, dishes, glasses, stainless steel coupons, fabric swatches, Tosi plates, ceramic tiles, or other materials. The techniques include capturing a digital image of the surface being inspected, or a portion thereof, and analyzing the image to determine an average luminosity value for the surface. For certain types of wares, a higher luminosity value may be indicative of cleanliness, thus higher luminosity values indicate that the surface of the ware is relatively clean, whereas lower luminosity values indicate that the surface is relatively soiled. For other types of wares, a lower luminosity value may be indicative of cleanliness.
An inspection system for performing the techniques of this disclosure may include a light-tight housing, a camera within the housing to capture a digital image of the ware being inspected, and a processor or other control unit to process the captured digital image. The inspection system may provide an environment particularly tailored for the particular ware being inspected, which may include providing suitable lighting, camera settings (e.g., aperture and exposure time), and camera position relative to the ware. In this manner, the inspection system may produce an luminosity value according to controlled environmental settings. The inspection system may therefore avoid producing inaccurate luminosity values based on a change in environment, rather than based on cleanliness of the ware being inspected. In some examples, the inspection system may receive an identification of the ware to be inspected and the control unit may send one or more signals that automatically adjust the environment according to the received identification.
Additionally, techniques are described for automatically controlling a washing apparatus based on images of wares to be washed by the washing apparatus. For example, each ware may be associated with a profile that includes a visual signature of the ware and one or more wash cycle characteristics, such as a wash cycle time period, an amount of detergent to apply during the wash cycle, and/or a cleanliness value threshold. In one example, the washing apparatus may be automatically disabled when the wash cycle time period elapses. In another example, cleanliness values are periodically calculated for the wares. After the cleanliness values for each of the wares are determined to exceed a respective cleanliness threshold value, the washing apparatus may be automatically disabled.
In one example, a method includes receiving, with a computing device, a digital image of a ware, calculating a luminosity value for the ware from the digital image, and determining, with the computing device, a cleanliness value for the ware from the calculated luminosity value.
In another example, a system includes a camera to capture a digital image of a ware, a light source to illuminate the ware, a housing to enclose the ware, the camera, and the light source in a light-tight environment, and an analysis computer to receive the digital image, calculate a luminosity value for the ware from the digital image, and determine a cleanliness value for the ware from the calculated luminosity value.
In another example, a computer-readable medium, such as a computer-readable storage medium, contains, e.g., is encoded with, instructions that cause a programmable processor to receive a digital image of a ware, calculate a luminosity value for the ware from the digital image, and determine a cleanliness value for the ware from the calculated luminosity value.
In another example, a method includes detecting, with an item recognition module of a control unit, a visual signature of a ware to be washed by a washing apparatus coupled to the control unit in an image captured by a camera controlled by the control unit, selecting an item profile corresponding to the detected visual signature, enabling the washing apparatus, and automatically disabling, with the control unit, the washing apparatus after the ware is determined to be clean in accordance with the selected item profile.
In another example, a system includes a camera configured to capture an image of one or more wares to be washed by a washing apparatus, a computer-readable medium comprising a plurality of item profiles, each of the item profiles comprising a visual signature and one or more wash cycle characteristics, and a control unit configured to retrieve the image, detect one of the visual signatures of the plurality of item profiles in the image, select the one of the item profiles corresponding to the detected visual signature, enable the washing apparatus, and automatically disable the washing apparatus after the ware is determined to be clean in accordance with the selected one of the item profiles.
In another example, a computer-readable storage medium is encoded with instructions for causing a programmable processor to detect a visual signature of a ware to be washed by a washing apparatus coupled to the programmable processor in an image captured by a camera coupled to the programmable processor, select an item profile corresponding to the detected visual signature, enable the washing apparatus, and automatically disable the washing apparatus after the ware is determined to be clean in accordance with the selected item profile.
The details of one or more examples are set forth in the accompanying drawings and the description below. Other features, objects, and advantages will be apparent from the description and drawings, and from the claims.
Housing 10 may fully enclose camera 16, LED arrays 20, 24A, 24B, and ware 30 to provide a light-tight environment. That is, housing 10 may be configured to prevent external light sources from penetrating housing 10 and to prevent light emitted by LED arrays 20, 24A, 24B from escaping housing 10. Because system 2 may analyze surfaces of many different types of wares of widely varying materials, shapes and sizes, the lighting conditions, camera angles and other factors that result in an image from which meaningful cleanliness data may be obtained may be quite different for each type of ware. Therefore, the physical configuration of system 2 may be customized for each type of ware or other surface that may be analyzed.
As one example, interior surface of housing 10 may be configured according to the specific ware 30 selected for analysis. For example, the interior surface of housing 10 may be colored black when ware 30 comprises a glass or dishware. In another example, the interior surface of housing 10 may be colored white when ware 30 comprises a stainless steel coupon. Housing 10 may comprise a plurality of interchangeable liners or sheets of various colors for modifying the internal color of housing 10. In this manner, the environment provided by system 2 may be configured according to the ware 30 being analyzed.
Each of LED arrays 20, 24A, 24B may comprise arrays of one or more LEDs. LEDs in an array may be wired in parallel. In some examples, other suitable light sources may be used instead of LEDs for LED arrays 20, 24A, 24B. That is, in other examples, other light sources may be used in addition to or instead of LED arrays. In the example of
Any or all of LED arrays 20, 24A, 24B may be used to illuminate the interior of housing 10. In some examples, LED arrays 20, 24A, 24B are selectively activated according to the type of ware 30 being analyzed. Likewise, LED array 20 may be positioned according to the type of ware 30 being analyzed. For example, when ware 30 comprises a glass or a stainless steel coupon, LED array 20 may be positioned directly above ware 30, with LED arrays 24A and 24B deactivated. As another example, when ware 30 comprises dishware, LED array 20 may be positioned behind ware 30 (relative to camera 16), and LED actuator 22 may configure the angle of LED array 20 to be aimed at ware 30, with LED arrays 24A and 24B deactivated. As another example, when ware 30 comprises one or more fabric swatches or one or more ceramic tiles, LED array 20 may be deactivated and LED arrays 24A, 24B may be activated.
Camera 16 may comprise a digital camera. Settings of camera 16, such as the aperture (iris size), exposure time (shutter speed) and gain may be configured according to a type of ware 30 being analyzed. In the example of
The position of camera 16 relative to ware 30 may be determined by the type of ware 30 being analyzed. In general, the position of camera 16 should be such that the field of view of camera 16 is filled by the portion of ware 30 to be analyzed. For example, different varieties of glasses may be analyzed by system 2. Types of glasses include stemless glasses, stemmed glasses, and marked glasses (e.g., etched glasses). When ware 30 comprises a stemmed glass, camera 16 may be positioned such that the field of view includes as much of the bowl of the glass as possible and excludes the stem. When ware 30 comprises a stemless glass, the field of view may include the whole glass. When ware 30 comprises a marked glass, the field of view may include an unmarked portion of the glass and exclude the marked portion of the glass.
In the example of
Analysis computer 40 generally analyzes a digital image of a ware, e.g., ware 30, to determine a luminosity value for the surface of the ware. In other examples, analysis computer 40 may instead determine an intensity value or a brightness value for the ware. Analysis computer 40 may further correlate the luminosity value for the ware to a cleanliness value, a stain value, a fade value, or other value. Conventional methods for analyzing cleanliness of a glass, for example, include assigning a numeric value to the glass as a cleanliness value on a scale of one to five, with one being clean and five being soiled. Analysis computer 40 may therefore automatically assign a cleanliness value on a scale of one to five as a correlated value with the luminosity value. The range of the luminosity value may, in some examples, exceed the range of the cleanliness value. For example, analysis computer 40 may calculate a luminosity value on a scale from 0 to 255, where 0 represents “black” and 255 represents “white.” The cleanliness value may generally correspond to spotting, filming, soiling, and/or staining on a variety of wares, such as glasses, dishes, utensils, instruments, or other wares. Stain values may be calculated for wares such as fabric swatches, ceramic tiles, or stainless steel coupons. Fade values may also be calculated for colored fabric swatches that indicate how much of the color of the fabric swatches has faded or how much color is remaining. In general, the luminosity value is a measure of brightness. Therefore, a relatively less expensive monochromatic camera may be used to perform the techniques of this disclosure, without requiring the use of a color camera or a colorimeter. However, in some examples, a color camera may be incorporated into system 2, rather than a monochromatic camera. Additional measurements and calculations may also be made using the color camera and/or a colorimeter, e.g., for particular types of wares, to distinguish between soiling types on the ware, or for other purposes.
In some examples, analysis computer 40 may be configured to analyze a previously captured image of ware 30. In other examples, analysis computer 40 may control camera 16 to capture and retrieve a digital image of ware 30, and then automatically calculate a luminosity value and produce the cleanliness value from the calculated luminosity value. Additionally, in some examples, analysis computer 40 may control camera actuator 18, LED actuator 22, arm actuator 28, ware actuator 32, and/or LED arrays 20, 24A, 24B to provide an environment for capturing a digital image of ware 30. Analysis computer 40 may be configured with a plurality of different types of wares and corresponding environmental settings for each type of ware. Therefore, analysis computer 40 may receive an identification of a type of ware to analyze and automatically configure camera actuator 18, LED actuator 22, arm actuator 28, ware actuator 32, and/or LED arrays 20, 24A, 24B according to the environment settings corresponding to the received ware type identification.
Analysis computer 40 may be configured with environment settings for each type of ware 30 to be analyzed. Analysis computer 40 may be pre-configured with these environment settings or a user may customize the environment settings of analysis computer 40. In general, the environment settings are determined such that analysis computer 40 calculates a proper luminosity value for control wares of a particular type. For example, for a particular type of glass, a user may determine environment settings that cause analysis computer 40 to calculate a luminosity value of 0 for a control glass of that type that is known to be clean and that cause analysis computer 40 to calculate a luminosity value of 255 for a control glass of that type that is known to be soiled. The control clean glass may comprise a glass that one or more experts judge to have a cleanliness value of 1 (on a scale of 1 to 5) and the control soiled glass may comprise a glass that the one or more experts judge to have a cleanliness value of 5 (on a scale of 1 to 5). Once these environment settings are determined, the determined environment settings may be used for analysis of all wares of that particular type.
Control unit 46 also includes analysis module 48 and environment control module 50 in the example of
User interface 42 comprises one or more interface devices, such as a display, keyboard, mouse, graphical user interface (GUI), command line interface, light pen, touch screen, stylus, or other devices for presenting and receiving information to and from a user. Control unit 46 may cause a display of user interface 42 to present information regarding an analysis of ware 30, such as a calculated luminosity value or a cleanliness value. Control unit 46 may also cause the display to present the captured digital image of ware 30. In some examples, control unit 46 may cause the display to simultaneously present representations of a plurality of wares, such as a graphical representation of each of the wares that indicates the cleanliness value for each of the plurality of wares.
System interface 44 may also include interfaces for electronically manipulating one or more of camera actuator 18, ware actuator 32, arm actuator 28, LED actuator 22, camera 16, and/or LED arrays 20, 24A, 24B. System interface 44 may receive signals from environment control module 50 and/or control unit 46 to manipulate one or more of these components of system 2 and transmit an electrical signal to the corresponding component. For example, system interface 44 may send signals to move camera actuator 18, ware actuator 32, arm actuator 28, and/or LED actuator 22. System interface 44 may also send signals to camera 16 to change settings of the camera (e.g., aperture and/or shutter speed settings), signals to cause camera 16 to capture a digital image, or signals to retrieve one or more digital images from camera 16. System interface 44 may further send signals to enable or disable LEDs of LED arrays 20, 24A, 24B.
Analysis computer 40 may store environment settings for one or more types of wares in environment settings database 60. For each type of ware, analysis computer 40 may store an entry in environment settings database 60. Analysis computer 40 may store new entries in environment settings database 60 for new types of wares. A user may interact with analysis computer 40 via user interface 42 to add, view, modify, or delete entries of analysis computer 40. Each entry of environment settings database 60 may include settings for a position of camera 16, a position and angle of LED array 20, whether LED array 20 is enabled or disabled, whether LED arrays 24A, 24B are enabled or disabled, a position for ware actuator 32, and a position for arm 14.
In some examples, each entry of environment settings database 60 may also include instructions to display to a user via user interface 42, such as a color to use on the internal walls of housing 10. In examples without ware actuator 32, entries of environment settings database 60 may include instructions to display to the user as to a position or location of ware 30. The user may therefore read the instructions and place ware 30 in the proper position.
Analysis module 48 analyzes digital images retrieved from camera 16 by environment control module 50. In some examples, analysis module 48 may also analyze digital images stored on a computer-readable medium (not shown) of analysis computer 40, for example, a hard disk, an optical disk, a floppy disk, a flash drive, a Secure Digital card, or other computer-readable medium. In general, analysis module 48 analyzes the digital image to calculate a luminosity value for the digital image. In some examples, analysis module 48 calculates the luminosity value from all of the digital image, while in other examples, analysis module 48 calculates the luminosity value from only a portion of the digital image, i.e., a region of interest of the digital image. Calculating the luminosity value from a region of interest may exclude non-ware portions of the digital image, glare from the light source(s), or other portions of the digital image that should not be factored into the calculation of the luminosity value. In some examples, analysis module 48 may calculate a plurality of luminosity values each corresponding to different regions of the digital image, e.g., to calculate luminosity values for each swatch of a fabric swatch array or each tile of a group of ceramic tiles.
Analysis module 48 may calculate a region of interest of a digital image according to particular instructions. Analysis module 48 may also receive a definition of a region of interest from a user. In some examples, the region of interest may correspond to the entire digital image. In any case, analysis module 48 calculates a luminosity value based on an average of values of pixels in the region of interest. When the digital image comprises a black-and-white image, each pixel may have a value in a numeric range, e.g., 0 to 255, where 0 represents black and 255 represents white. Analysis module 48 may calculate a luminosity value by calculating the average pixel value of the pixels in the region of interest. Analysis module 48 may also calculate a histogram with bins ranging from 0 to 255, where each bin stores a value representative of the number of pixels in the region of interest with a pixel value of the corresponding bin. For example, if there are 8 pixels with a value of “18,” bin 18 of the histogram would store a value of “8.” In some examples, analysis module 48 may cause user interface 42 to display a graphical representation of the histogram. Analysis module 48 may calculate a luminosity value using the average of the pixel values or the histogram. Analysis module 48 may also calculate other statistics, such as a standard deviation of the pixel luminosity values.
Analysis module 48 may also calculate luminosity values for color digital images. In some examples, each pixel of a color digital image may comprise values for red, green, and blue (RGB). Analysis module 48 may convert color digital images in the RGB domain to the YCbCr (or YUV) domain, where Y represents luminosity and Cb and Cr represent color information for the pixel. Analysis module 48 may then use the Y-values of pixels as pixel luminosity values and calculate an average of the pixel luminosity values in the region of interest using the methods described above, e.g., an average over the pixels or by calculating a histogram. Analysis module 48 may also calculate luminosity values for each pixel in the RGB domain directly.
Analysis module 48 may further determine a cleanliness value for ware 30 based on the calculated luminosity value. For certain types of wares, a higher luminosity value indicates that the ware is clean, whereas for other types of wares, a lower luminosity value indicates that the ware is clean. Analysis computer 40 may store correlations for the type of ware being analyzed in environment settings database 60. Each entry of environment settings database 60 may further include one or more thresholds for luminosity values that define cleanliness of the ware for luminosity values. For example, for a particular type of glass, the thresholds may correspond to the conventional ratings of 1 to 5, e.g., a first threshold at 50, a second threshold at 101, a third threshold at 152, and a fourth threshold at 204. In this example, analysis module 48 may determine that a glass with a luminosity value between 0 and 50 has a cleanliness value of 1, a glass with a luminosity value between 51 and 101 has a cleanliness value of 2, a glass with a luminosity value between 102 and 153 has a cleanliness value of 3, a glass with a luminosity value between 154 and 203 has a cleanliness value of 4, and a glass with a luminosity value between 204 and 255 has a cleanliness value of 5. In the above example, the functional relationship between luminosity values and cleanliness values is linear. In other examples, the functional relationship between luminosity values and cleanliness values may be, for example, quadratic, exponential, logarithmic, or another mathematical relationship.
Analysis module 48 may cause user interface 42 to display or otherwise present the determined cleanliness value for ware 30 to a user. User interface 42 may also present other data, such as the luminosity value, calculated statistics for the region of interest, a representation of a histogram, a comparison between two or more wares, or other information.
In general, each of actuator control modules 52 sends electrical signals to a corresponding actuator to control the actuator. Each of actuator control modules 52 may also include logic in hardware and/or software to determine when to stop sending an electrical signal to the corresponding actuator in order to properly position the actuator. For example, one of actuator control modules 52 may apply a specific voltage or current to the corresponding actuator for a specific amount of time to move the actuator a desired amount. As another example, one of actuator control modules 52 may send different signals to the corresponding actuator based on the desired amount of movement, e.g., when the actuator is capable of calculating distance of movement and/or current position.
Camera control module 54 sends one or more electrical signals to camera 16 (
LED control module 56 may send electrical signals to LED arrays 20, 24A, 24B to enable and/or disable LED arrays 20, 24A, 24B. In some examples, LED control module 56 may send an electrical signal to toggle one or more of LED arrays 20, 24A, 24B on or off. In other examples, LED control module 56 continuously sends an electrical signal to one or more of LED arrays 20, 24A, 24B that are to be turned on and does not send an electrical signal to the other LED arrays to that are to be turned off. LED control module 56 may also provide a specific voltage and/or current to LED arrays 20, 24A, 24B. For example, LED control module 56 may enable LED array 20 by providing 0.23 amps and 2.2 volts to LED array 20.
Initially, control wares of the type being analyzed (glasses, in this example) are obtained (82). In the example method of
An environment for capturing digital images of a ware may include lighting settings such as direct or diffused lighting, distance of a light source from ware 30, angle of direct lighting to ware 30, camera aperture, camera shutter speed, internal color of housing 10 (
The operator may then capture a first image of the control clean ware (86) and a second image of the control soiled ware (88). The operator may then use analysis computer 40 to calculate a first luminosity value for the first image and a second luminosity value for the second image (90). In general, the method of
After receiving an identification of the type of ware being analyzed, analysis computer 40 may automatically configure the environment of system 2 to capture an image of ware 30 according to the identified type of ware to be analyzed (112). For example, environment control module 50 of analysis computer 40 may query environment settings database 60 with the identification of the ware type to retrieve environment settings from environment settings database 60. Environment control module 50 may then automatically adjust elements of system 2 according to the retrieved environment settings. For example, environment control module 50 may send one or more electrical signals via system interface 44 to camera actuator 18 to position camera 16 at an appropriate height, to ware actuator 32 to position ware 30 an appropriate distance from camera 16, to LED actuator 22 and arm actuator 28 to position LED array 20 at an appropriate position, to one or more of LED arrays 20, 24A, 24B to enable and/or disable LED arrays 20, 24A, 24B, and to camera 16 to adjust aperture settings, shutter speed settings, and zoom settings. Analysis computer 40 may further display instructions via user interface 42 to the user to adjust certain elements of the environment. For example, the display may include instructions to configure an internal color of housing 10 and a position for ware 30 in examples that do not include ware actuator 32.
After the environment has been configured, analysis computer 40 may send an electrical signal to camera 16 to capture a digital image of ware 30 (114). Analysis computer 40 may then retrieve the captured digital image from camera 16. In other examples, an operator or other user may manually capture a digital image and transfer the image to analysis computer 40.
After analysis computer 40 has received a digital image of the ware to be analyzed, analysis computer 40 may determine a region of interest of the digital image to analyze (116). In some examples, the region of interest may comprise the entire digital image. In other examples, a user may configure the region of interest. For example, analysis computer 40 may display the captured digital image and receive a selection of the image from the user as the region of interest. In other examples, analysis computer 40 may be configured to automatically select the region of interest. For example, analysis computer 40 may be configured to detect boundaries of ware 30 in the digital image.
Analysis module 48 of analysis computer 40 may then calculate a luminosity value for the region of interest (118). For example, analysis module 48 may determine luminosity values for pixels in the region of interest, e.g., on a scale from 0 to 255, where 0 represents black and 255 represents white. Analysis module 48 may then calculate an average luminosity value for the region of interest as the luminosity value, e.g., according to the method of
Analysis module 48 may then correlate the calculated luminosity value with a cleanliness value for the type of ware 30 (120). For example, for a certain type of glass, luminosity values less than 20 may correlate to a cleanliness value of 1, less than 50 may correlate to a cleanliness value of 2, less than 100 may correlate to a cleanliness value of 3, less than 200 may correlate to a cleanliness value of 4, and 200 or greater may correlate to a cleanliness value of 5. Analysis module 48 may then output the cleanliness value correlated to the luminosity value (122), e.g., by displaying the cleanliness value via user interface 42.
In general, the method of
Initially, analysis module 48 constructs a histogram with 256 bins labeled 0 to 255, where the bins each correspond to a numeric value and initializes each of the 256 bins to a value of zero (130). Although the example method of
Analysis module 48 may then determine whether all of the pixels in the region of interest have been analyzed (136). If not (“NO” branch of 136), analysis module 48 may analyze a next pixel of the region of interest and modify the histogram using the luminosity value of that next pixel. When all of the pixels in the region of interest have been analyzed (“YES” branch of 136), analysis module 48 calculates a luminosity value for the region of interest.
In the example of
The following pseudocode for the function averageLuminosity presents one example implementation of a method for calculating a luminosity value for a region of interest of a digital image of a ware being analyzed. In the pseudocode, averageLuminosity returns an integer value representative of the calculated luminosity value. Picture[ ][ ] is a two-dimensional integer array that stores pixels of the digital image of a ware for analysis. A region of interest (ROI) is defined in terms of boundaries within the array picture[ ][ ].
In the example of
User interface 150 includes check boxes 154 that allow a user to enable or disable direct lighting and diffused lighting. Direct lighting may correspond to LED array 20 (
When the check box for direct lighting is not checked, user interface 150 may present height text box 156 and angle text box 158 as grayed out and not allow a user to enter data in either height text box 156 or angle text box 158. User interface 150 may also gray out labels “Height” and “Angle” associated with height text box 156 and angle text box 158 when the check box for direct lighting is unchecked. When the check box for direct lighting is checked, as shown in
In the example of
User interface 150 also allows a user to modify camera settings for camera 16 to capture an image of a ware of type “Restaurant X Glass.” In the example of
In the example of
User interface 150 also allows a user to define a basic type for the ware in ware type text box 166. In some examples, analysis computer 40 may populate the text boxes of user interface 150 with default values based on the type information entered in ware type text box 166. In some examples, ware type text box 166 may instead comprise a drop-down menu or other user interface object for selecting a generic type for the ware. User interface 150 additionally presents ware distance text box 168, which defines how far ware 30 should be from camera 16 when capturing an image of ware 30. In some examples, analysis computer 40 causes ware actuator 32 to position ware 30 at a distance according to the data entered in ware distance text box 168. In examples that do not include ware actuator 32, analysis computer 40 may instead cause user interface 42 to display an indication of where to place ware 30 when capturing an image of ware 30.
In the example of
User interface 150 also allows a user to define an interior color of housing 10 to use when capturing an image of a ware of type “Restaurant X Glass.” In the example of
User interface 150 also presents save button 174, load button 176, and cancel button 178. When a user selects save button 174, user interface 150 sends data from the text boxes to control unit 46, which in turn stores associated data to environment settings database 60. When the value of name text box 152 is not a current entry in environment settings database 60, control unit 46 creates a new entry in environment settings database 60 for the data from user interface 150. However, when an entry for the value of name text box 152 already exists in environment settings database 60, control unit 46 updates the entry according to the data received from user interface 150. When a user selects load button 176, user interface 150 may receive an identification of a ware type to load, send the identification to control unit 46, receive data for the loaded ware type from environment settings database 60 via control unit 46, and populate the fields according to the data received from environment settings database 60. A user may also cancel modifications to a new or existing ware type by selecting cancel button 178.
System 200 includes washing apparatus 202, window 206, housing 208, lights 210A, 210B, camera 212, and analysis computer 214. Some examples may include only one of lights 210A, 210B, rather than both lights 210A, 210B as shown in
Window 206 may comprise a substantially transparent or translucent material such as glass, plexiglass, plastic, or other material that allows light to pass. Camera 212 may be positioned such that camera 212 is able to capture an image of one or more wares 204, or a portion thereof. In one example, camera 212 may be positioned to capture an image of one ware that is determined to be representative of wares 204 generally. Lights 210A and/or 210B are positioned such that the ware is properly illuminated. Housing 208 provides a light-tight environment for camera 212 and washing apparatus 202. A user may customize an interior color of housing 208, e.g., white or black, in some examples.
In some examples, system 200 may exclude housing 208. For example, analysis computer 214 and camera 212 may be configured such that a light-tight environment is not necessary. A user may configure analysis computer 214 and camera 212 such that analysis computer 214 determines that a control clean ware is clean and that a control soiled ware is soiled, which may involve modifying lights 210A, 210B and settings of camera 212 without including housing 208.
Analysis computer 214 may control washing apparatus 202, lights 210A, 210B, and camera 212. For example, analysis computer 214 may send electrical signals to enable and/or disable either or both of lights 210A, 210B, to enable or disable washing apparatus 202, to modify settings of camera 212, to cause camera 212 to capture an image, and to retrieve an image from camera 212.
In one example, analysis computer 214 may receive a command from a user (not shown) to start washing apparatus 202. The user may initially place wares 204 in washing apparatus 202. In turn, analysis computer 214 may send an electrical signal to washing apparatus 202 to begin washing wares 204. After washing apparatus 202 begins operating, analysis computer 214 may send signals to cause camera 212 to begin capturing images of wares 204. Analysis computer 214 may analyze images of wares 204 to calculate a cleanliness value for wares 204, e.g., using the techniques described above of calculating a luminosity value for wares 204 and correlating the luminosity value with a cleanliness value.
Analysis computer 214 may further be configured with a threshold cleanliness value. When analysis computer 214 determines that the calculated cleanliness value for wares 204 exceeds the threshold, analysis computer 214 may automatically disable washing apparatus 202. While analysis computer 214 determines that the calculated cleanliness value does not exceed the threshold, analysis computer 214 causes washing apparatus 202 to continue the washing process. In this manner, analysis computer 214 may ensure that wares 204 are washed only until they are clean, rather than for a predetermined cycle time. Therefore analysis computer 214 may prevent system 200 from using excess washing chemicals, excess water, and excess electricity, and may continue to wash wares 204 until analysis computer 214 determines that wares 204 are clean.
Alternatively, the user may activate washing apparatus 202 manually and send a command to analysis computer 214 to begin analyzing digital images captured by camera 212. Analysis computer 214 may then output a signal to the user when analysis computer 214 determines that wares 204 are clean, e.g., that the cleanliness value of wares 204 exceeds the threshold. The signal may comprise one or more of flashing a light, producing an audible sound by activating a buzzer or beeper or by playing a recording over speakers, displaying a message via a display of a user interface, or other signal. The user may then turn off washing apparatus 202 upon receiving the signal.
Each of fabric swatches 232 may comprise substantially identical pieces of fabric. Fabric swatch arrays such as fabric swatch array 230 may be used to test the efficacy of various cleaning agents, which may include testing removal of soiling, removal of stains, or whether the cleaning agents cause fading in the coloring of fabric swatches 232. Similarly, fabric swatch array 230 may be used to test the efficacy of a particular type of fabric, e.g., resistance to soiling and staining and resistance to fading. In some examples, each of fabric swatches 232 may comprise different pieces of fabric to test the effects of a particular type of soiling on each of the fabrics or to test the effects of a particular chemical agent applied to each of the fabrics.
In one example, where each of fabric swatches 232 comprises substantially identical pieces of fabric, each of fabric swatches 232 may be soiled using a different soiling or staining agent, such as topsoil, grass, lipstick, wine, foodstuffs, or other such soiling agents. One of fabric swatches 232, e.g., fabric swatch 232A, may be left unsoiled as a control swatch. Fabric swatch array 230 may then be washed in a fabric washing machine using particular chemical cleaning product(s) for which analysis is desired.
After washing fabric swatch array 230, fabric swatch array 230 may be used as part of system 2 (
In some examples, a user may highlight each of fabric swatches 232, and select a region of interest thereof. In some examples, a user may highlight each of fabric swatches 232, and analysis computer 40 may automatically calculate a region of interest. In other examples, analysis computer 40 may be configured to automatically discriminate between fabric swatches 232 and background fabric 238 for fabric swatch array 230 and to automatically calculate a region of interest.
For example, analysis computer 40 may be configured to identify the boundaries of each of fabric swatches 232. After identifying the boundaries of one of fabric swatches 232, e.g., fabric swatch 232A, analysis computer 40 may calculate a coordinate system respective to that swatch. For fabric swatch 232A, for example, analysis computer 40 calculates x-axis 234A and y-axis 236A. Analysis computer 40 may be configured such that the intersection of the x-axis and the y-axis is located at the center of the fabric swatch. In the example of
After calculating the coordinate system, analysis computer 40 may calculate a region of interest centered at the intersection of the x-axis and the y-axis. The region of interest may comprise the entire image of the respective one of fabric swatches 232, or only a portion thereof. After determining the region of interest, analysis computer 40 calculates a luminosity value for the region of interest, and correlates the luminosity value with a cleanliness value for the corresponding one of fabric swatches 232. Analysis computer 40 may apply these techniques to each of fabric swatches 232 to calculate individual cleanliness values for each of fabric swatches 232. Moreover, in some examples, analysis computer 40 may calculate an average cleanliness value for fabric swatch array 230 by calculating an average of the cleanliness values of each of fabric swatches 232.
In some examples, analysis computer 40 may calculate initial cleanliness values for each of fabric swatches 232 after fabric swatches 232 are soiled but before fabric swatches 232 are cleaned. After cleaning of fabric swatches 232, analysis computer 40 may recalculate cleanliness values for each of fabric swatches 232. In this manner, analysis computer 40 may assist a user in determining the efficacy of a laundering agent or other chemical agent, e.g., by demonstrating a change in the cleanliness value of a soiled fabric swatch after the fabric swatch has been cleaned by the chemical agent. Similar techniques to those discussed with respect to
The example system of
Analysis computer 40 also generally determines a number of pixels that exceed a particular threshold luminosity value, in the example of
In particular, analysis computer 40 determines a threshold luminosity value corresponding to staining or soiling of the surface being analyzed (256). As discussed above, analysis computer 40 may either be configured with this value or may dynamically determine the value, e.g., from one or more control wares corresponding to the surface to be analyzed. Analysis computer 40 may then determine a number of pixels that exceed the threshold. In other examples, in which analysis computer 40 is configured with a minimum threshold and a maximum threshold, analysis computer 40 determines a number of pixels that fall within the minimum threshold and the maximum threshold. That is, in such examples, analysis computer 40 may determine a number of pixels for which a luminosity value exceeds a minimum threshold luminosity value and does not exceed a maximum threshold luminosity value.
Analysis computer 40 next determines a weighting value to apply to each of the calculated luminosity value and the number of pixels that exceed (or fall between) the threshold value(s) (260). The weighting value may comprise a percentage value w, e.g., a value between 0 and 1 inclusive, where the value w is applied to one of the two determined values (e.g., the luminosity value), and the difference between 1 and w is applied to the other (e.g., the number of pixels above/within the threshold value(s)). In this manner, analysis computer 40 may calculate a rating value by applying the weighting value to the luminosity value and the number of pixels above/within the threshold value(s) (262). For example, assuming that the luminosity value is L and the number of pixels above a threshold is N, and that the weighting value is w, analysis computer 40 may calculate the rating value R as:
R=w*N+(1−w)*L
In some examples, the rating value R may further be correlated with a cleanliness value. For example, as discussed above, various rating values may be determined for control clean wares and control stained wares to determine a correlation between rating values and cleanliness values. Then for an experimental surface of a ware corresponding to the same ware type as one of the control wares (that is, a surface with an unknown cleanliness value), analysis computer 40 may calculate a rating value and correlate the rating value with the cleanliness values to determine a cleanliness value for the experimental surface.
In other examples, rather than measuring an absolute number of pixels with luminosity values that exceed a threshold or are within a threshold, analysis computer 40 may determine a percentage of pixels in the region of interest for which luminosity values exceed or are within a threshold. Analysis computer 40 may then determine that the percentage is representative of a percentage of the surface that is stained or soiled.
In the example of
Analysis computer 40 may further retrieve weighting values for each of the pixel count value and the luminosity value. In the example of
In general, analysis computer 40 may retrieve values from low text box 284, high text box 286, pixel count weight text box 288, and luminosity weight text box 290 when a user selects “Run Test” button 298. Analysis computer 40 may also, in accordance with the method of
In the example of
Analysis unit 354 is configured to identify one or more of items 352 and to automatically configure washing apparatus 350 according to the identification. In particular, control unit 356 controls camera 372 and light source 374 to capture an image of wares 352. Analysis unit 354 may be configured to recognize particular items or types of items based on visual characteristics of the items. In particular, control unit 356 may execute camera interface module 366 to cause camera 372 to capture an image of wares 352. Item recognition module 364 may process the image of wares 352 to identify each of wares 352. Camera interface module 366 and light interface module 368 may be configured to operate in manners similar to camera control module 54 and LED control module 56 (
Item profiles 370 may comprise profiles for various wares that may be washed by washing apparatus 350. Each of the profiles may comprise, for example, a visual signature representative of the item, characteristics of a wash cycle to apply to the item, e.g., length of wash cycle, amount of detergent to apply, amount of water to apply, concentration of detergent to apply, a rinse time, a fresh water flush indicator, a conveyor speed (for dish machines having a conveyor), a wash water temperature (or a wash solution temperature), a rinse water temperature (or rinse solution temperature, e.g., when rinse aid is applied to the rinse water), an amount of rinse aid to apply to the rinse water, a wash water or wash solution volume, a rinse water or rinse solution volume, or other such characteristics.
For example, item profiles 370 may include a first profile for a glass, a second profile for a plate, and a third profile for flatware. Each profile may be associated with various washing characteristics, such as, for example, a wash cycle time, a type of chemical to apply during the wash cycle, an amount of chemical to apply during the wash cycle, an amount of water to apply during the wash cycle, a water spraying pattern (e.g., when to begin spraying water, how much water to spray, a rate at which to spray the water, periods of time to stop or modify the spray rate), or other such washing characteristics. Each profile may also include a visual identification pattern, also referred to as a visual signature, that may be used to determine whether wares 352 include the item.
In some examples, a profile comprises a fresh water flush indicator that indicates how often rinse water stored in a sump should be flushed and replaced with fresh water. This value may be expressed as a period of time, e.g., a number of hours, a number of wash cycles, or a combination thereof. For example, a fresh water flush indicator stored in a profile for a pot may indicate that rinse water used for rinsing pots (which tend to be relatively more soiled) should be changed relatively more frequently than a fresh water flush indicator stored in a profile for a drinking glass. In some examples, control unit 356 may be configured with a timer or other mechanism for determining when to flush and refill a fresh water sump. In some examples, the fresh water flush indicator of a profile may express a modification to the timer. For example, a profile for a glass may comprise a fresh water flush indicator having a value of zero, indicating that the timer should not be modified when a glass having the profile is washed. As another example, a profile for a pot may comprise a fresh water flush indicator having a value of three, indicating that the timer should be adjusted such that the timer is three units (e.g., minutes, hours, wash cycles, or the like) closer to flushing and refilling the fresh water sump.
Item recognition module 364 may apply one or more of the profiles from item profiles 370 to determine whether wares 352 comprises any of the items corresponding to item profiles 370. For example, item recognition module 364 may iterate through each item of item profiles 370 to retrieve a visual signature associated with the item and analyze the image of wares 352 to determine whether the visual signature occurs in the image. When item recognition module 364 identifies the visual signature of the item in the image, item recognition module 364 determines that the item is present in wares 352.
As one example method for identifying items based on a visual signature, a glass may be detected based on detecting a round shape with a particular illumination reflection pattern resembling a circle or crescent.
As another example, a plate may be detected based on detecting a reflection pattern from the rim of the plate.
In some examples, item recognition module 364 is configured to determine that wares 352 consist of glasses when camera 372 captures an image of wares 352 and item recognition module 364 identifies only one or more glass reflection patterns 452. When item recognition module 364 determines that wares 352 consist of glasses only, item recognition module 364 may inform apparatus interface module 362 that wares 352 consist only of glasses. Apparatus interface module 362 may accordingly cause washing apparatus 350 to perform a wash cycle that is optimized for glasses. In one example, apparatus interface module 362 may retrieve wash cycle characteristics associated with the profile for glasses from item profiles 370 and apply the wash cycle. As an example, an optimal wash cycle for glasses may comprise a relatively short, hot rinse with minimal or no detergent.
In another example, apparatus interface module 362 may inform cleanliness evaluation module 360 that wares 352 consist of glasses. Cleanliness evaluation module 360 may retrieve a glass cleanliness threshold from the glass profile of item profiles 370. Cleanliness evaluation module 360 may periodically cause camera 372 to capture an image of wares 352 and evaluate the cleanliness of wares 352, e.g., as described above with respect to the method of
In some examples, item recognition module 364 may be configured to determine that wares 352 consists of plates when camera 372 captures an image of wares 352 and item recognition module 364 identifies only one or more plate reflection patterns 456. When item recognition module 364 determines that wares 352 consist of plates only, item recognition module 364 may inform apparatus interface module 362 that wares 352 consist of only plates. Accordingly, apparatus interface module 362 causes washing apparatus 350 to deliver a wash cycle that is optimized for plates. In one example, an optimal wash cycle for plates may comprise a relatively longer washing period comprising a first portion during which detergent is applied and a second portion comprising a hot rinse. Alternatively, a similar process may be performed to that described above by which cleanliness evaluation module 360 may determine when the plates are clean and cause apparatus interface module 362 to automatically disable washing apparatus 350 when wares 352 are determined to be clean.
When camera 372 captures an image of wares 352 and item recognition module 364 identifies at least one glass reflection pattern 452 and at least one plate reflection pattern 456, item recognition module 364 may inform apparatus interface module 362 that wares 352 include both plates and glasses. Accordingly, apparatus interface module 362 may select a wash cycle that will result in all of wares 352 being thoroughly cleaned. That is, apparatus interface module 362 may determine whether the wash cycle optimized for plates, or the wash cycle optimized for glasses, will more thoroughly clean For the example wash cycles discussed above, analysis unit 354 may select the plate wash cycle when both glasses and plates are detected in wares 352.
As discussed above, in some examples, apparatus interface module 362 may be configured to control washing apparatus 350 by selecting a predetermined wash cycle based on identified wares of wares 352 and causing washing apparatus 350 to apply the wash cycle to wares 352. In other examples, apparatus interface module 362 may interact with cleanliness evaluation module 360 to monitor progress of a washing procedure by washing apparatus 350 to automatically disable washing apparatus 350 after cleanliness evaluation module 360 has determined that each of wares 352 are clean. For example, cleanliness evaluation module may periodically cause camera 372 to capture an image of wares 352 via camera interface module 366. Cleanliness evaluation module may then calculate a cleanliness value of each detected one of wares 352. Apparatus interface module 362 may disable washing apparatus 350 when each of the calculated cleanliness values exceeds a respective threshold cleanliness value. The threshold cleanliness values may be customized to the type of ware. For example, glasses may correspond to a first cleanliness value, while plates may correspond to a second cleanliness value. Accordingly, when cleanliness evaluation module 362 determines that wares 352 comprises both plates and glasses, apparatus interface module 362 may cause washing apparatus 350 to continue the washing procedure until each of the cleanliness values for the glasses exceeds the first cleanliness value and each of the cleanliness values for the plates exceeds the second cleanliness value.
User interface module 358 may receive input via user interface 376 from a user. For example, user interface 376 may comprise one or more buttons, displays, touch-screens, computer interfaces (e.g., universal serial bus (USB) or serial interfaces), knobs, levers, or other means for receiving and/or providing information from/to a user. For example, user interface 376 may receive an indication from a user that a wash cycle should begin. Although in some examples, user interface 376 may comprise an interface for programming a wash cycle, in general, control unit 356 is configured to automatically determine a wash cycle based on visual recognition of wares 352.
A user may also provide one or more item profiles to be stored as item profiles 370 via user interface 376. User interface module 358 may be configured to cause user interface 376 to retrieve a representation of a visual signature for a particular item and/or wash characteristics for the item. User interface module 358 may also enable a user to review, modify, or delete existing item profiles of item profiles 370. In some examples, control unit 356 may be configured such that a user may place a control ware in washing apparatus 350 and item recognition module 364 may automatically determine a visual signature for the item. In other examples, a user may upload a visual signature for the item via user interface 376. User interface module 358 may retrieve the uploaded visual signature and store the visual signature, along with other item profile information, in item profiles 370.
Although depicted as a central, integrated component of washing apparatus 350, in some examples, one or more components of analysis unit 354 may comprise independent, stand-alone hardware unit that can be attached, affixed, coupled, or integrated with washing apparatus 350. As one example, analysis computer 214 of
Upon receiving the indication to begin the wash cycle, camera interface module 360 causes camera 372 to capture an image of wares 352 in washing apparatus 350 (402). Camera interface module 360 may also communicate with light interface module 368 to coordinate illumination via light source 374 and image capture via camera 372. Light source 374 may illuminate wares 352 and camera 372 may capture an image of wares 352. Camera interface module 366 may then provide the image to item recognition module 370.
Item recognition module 364 may analyze the image to select one or more item profiles from item profiles 370 corresponding to recognized items in the image (404). For example, item recognition module 364 may iterate through each profile of item profiles 370 and extract a visual signature of the item from the item profile. Item recognition module 364 may then determine whether the visual signature occurs in the image. When item recognition module 364 determines that the visual signature occurs in the image, item recognition module 364 selects the corresponding one of item profiles 370. Item recognition module 364 may continue to iterate through item profiles 370 until all visual signatures have been attempted.
Control unit 356 may then select a wash cycle to apply to wares 352 based on a maximum wash cycle of the selected ones of item profiles 370 (406). Each item profile may correspond to a hierarchical ordering. For example, glasses may correspond to a low level on the hierarchy, plates may correspond to a middle level on the hierarchy, and pots and pans may correspond to a high level on the hierarchy. Control unit 356 may select a wash cycle corresponding to the highest level of the hierarchy represented by the selected ones of the item profiles. For example, in accordance with the example hierarchy described above, when only profiles corresponding to the low level of the hierarchy are selected, control unit 356 may select a wash cycle that comprises a quick, hot rinse, but when at least one profile corresponding to the high level of the hierarchy are selected, control unit 356 may select a wash cycle that comprises a relatively long washing period with a relatively high amount of detergent.
After selecting a wash cycle, apparatus interface module 362 enables washing apparatus according to the selected wash cycle (408). Apparatus interface module 362 may also control particular elements of the wash cycle such as water temperature, water spraying patterns, amount of water to spray during the wash cycle, amount of detergent to apply during the wash cycle, length of the wash cycle, rinsing patterns to apply during the wash cycle, or other elements. Control unit 356 may be configured to determine that wares 352 are clean after the selected wash cycle expires. Accordingly, apparatus interface module 362 may automatically disable washing apparatus 350 after the selected wash cycle expires (410). In this manner, washing apparatus 350 may reduce wasted resources, such as detergent, water, and/or electricity, for items that do not require as much of those resources to become clean. Moreover, analysis unit 354 may automatically select the appropriate wash cycle based on visual signatures of wares 352, which may avoid user error in selecting an inappropriate wash cycle so that the reduction in resources may be more likely to occur.
Upon receiving the indication to begin the wash cycle, camera interface module 360 causes camera 372 to capture an image of wares 352 in washing apparatus 350 (422). Camera interface module 360 may also communicate with light interface module 368 to coordinate illumination via light source 374 and image capture via camera 372. Light source 374 may illuminate wares 352 and camera 372 may capture an image of wares 352. Camera interface module 366 may then provide the image to item recognition module 370.
Item recognition module 364 may analyze the image to select one or more item profiles from item profiles 370 corresponding to recognized items in the image (424). For example, item recognition module 364 may iterate through each profile of item profiles 370 and extract a visual signature of the item from the item profile. Item recognition module 364 may then determine whether the visual signature occurs in the image. When item recognition module 364 determines that the visual signature occurs in the image, item recognition module 364 selects the corresponding one of item profiles 370. Item recognition module 364 may continue to iterate through item profiles 370 until all visual signatures have been attempted.
After selecting each item profile, apparatus interface module 362 may enable washing apparatus 350 (426). After a period of time, cleanliness evaluation module 360 may cause camera interface module 366 to retrieve an image of wares 352 using camera 372. Cleanliness evaluation module 360 may evaluate cleanliness values for each of the items in the image (428). For example, each item profile may include a method for determining cleanliness, such as a threshold cleanliness value which must be exceeded for an item of that type to be considered clean. Accordingly, cleanliness evaluation module 360 may determine whether cleanliness values for each item of wares 352 exceeds a corresponding cleanliness threshold value (430).
While at least one of wares 352 is not determined to be clean (“NO” branch of 430), that is, while at least one cleanliness value is determined not to exceed a corresponding cleanliness threshold, washing apparatus 350 continues to wash wares 352. Cleanliness evaluation module 360 may then periodically reevaluate cleanliness of each of wares 352. After cleanliness evaluation module 360 determines that the cleanliness values for each of wares 352 exceeds a corresponding cleanliness threshold (“YES” branch of 430), cleanliness evaluation module 360 informs apparatus interface module 362 that wares 352 are clean. Accordingly, apparatus interface module 362 may then automatically disable washing apparatus 350 (432).
Various techniques described in this disclosure may be implemented, at least in part, in hardware, software, firmware or any combination thereof. For example, various aspects of the described techniques may be implemented within one or more processors, including one or more microprocessors, digital signal processors (DSPs), application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), or any other equivalent integrated or discrete logic circuitry, as well as any combinations of such components. The term “processor” or “processing circuitry” may generally refer to any of the foregoing logic circuitry, alone or in combination with other logic circuitry, or any other equivalent circuitry. A control unit comprising hardware may also perform one or more of the techniques of this disclosure.
Such hardware, software, and firmware may be implemented within the same device or within separate devices to support the various operations and functions described in this disclosure. In addition, any of the described units, modules or components may be implemented together or separately as discrete but interoperable logic devices. Depiction of different features as modules or units is intended to highlight different functional aspects and does not necessarily imply that such modules or units must be realized by separate hardware or software components. Rather, functionality associated with one or more modules or units may be performed by separate hardware or software components, or integrated within common or separate hardware or software components.
Instructions to perform certain techniques described in this disclosure may also be embodied or encoded in a computer-readable medium, such as a computer-readable storage medium. Instructions embedded or encoded in a computer-readable medium may cause a programmable processor, or other processor, to perform the method, e.g., when the instructions are executed. Computer readable storage media may include random access memory (RAM), read only memory (ROM), programmable read only memory (PROM), erasable programmable read only memory (EPROM), electronically erasable programmable read only memory (EEPROM), flash memory, a hard disk, a CD-ROM, a floppy disk, a cassette, magnetic media, optical media, or other computer readable media.
Various examples have been described. These and other examples are within the scope of the following claims.
This application is a continuation-in-part of application Ser. No. 12/493,730, filed Jun. 29, 2009, which is incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
Parent | 12493730 | Jun 2009 | US |
Child | 12604893 | US |