Color undercolor detection
By automatically identifying colored backgrounds using machine learning models and color warmth classifiers, and combining this with a production image database, the unreliability of colored background identification in existing technologies is solved, enabling automated and accurate product recommendations. This technology is applicable to fields such as cosmetics, clothing, paint, and construction.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-01-09
- Publication Date
- 2026-03-27
AI Technical Summary
In the existing technology, color-coded identification methods are unreliable, unpredictable, labor-intensive and expensive, making it difficult to provide accurate color selection advice in fields such as cosmetics, clothing, paint and construction.
The system uses machine learning models and color warmth classifiers to automatically identify colored backgrounds from images, and combines them with a production image database to provide interactive content recommendations. It uses models trained on surface images and recommendation modules to automatically determine and match background color values.
It enables repeatable, automated labeling with a colored background, improving the accuracy and efficiency of product selection, reducing manual intervention and costs, and is suitable for design and shopping scenarios in multiple industries.
Smart Images

Figure CN116805373B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present disclosure relates generally to computerized digital image analysis. More particularly, but not by way of limitation, the present disclosure relates to programming techniques for accurately identifying color undertones in digital images and automatically providing interactive content such as other images selected based on the color undertones. BACKGROUND
[0002] In color perception, an undertone is a soft color seen through another color and modifying it. Such an undertone can thus be described as an impression, based on color or chromatic, of an environmental scene or object that is different from the specific, easily identifiable colors present in the scene or object. For example, the identification of color undertones can be used to provide visually more prominent color choices for makeup, clothing, paint, interior architecture, exterior architecture, and landscapes. Undertone identification is also important when selecting appropriate lighting for photography, videography, and film production design. SUMMARY
[0003] Certain aspects and features of the present disclosure relate to color undertone detection. For example, a method involves receiving an image file and generating an image warmth profile from the image file using a color warmth classifier. The method also includes applying a machine learning model trained on surface images to the image warmth profile to generate an inferred undertone value for the image file. The method further includes comparing, using a recommendation module and the inferred undertone value, image color values to a plurality of pre-existing color values corresponding to a production image database, and responsive to the comparison, causing interactive content including at least one production image selection from the production image database to be provided to a recipient device.
[0004] Other embodiments of this aspect include corresponding computer systems, apparatus, and computer programs recorded on one or more computer storage devices, each configured to perform the actions of the methods.
[0005] The present disclosure is not intended to identify any key or essential feature of the claimed subject matter, nor is it intended to be used to determine the scope of the claimed subject matter. The subject matter should be understood by reference to the entire specification of the disclosure, all or part of any or all drawings, and each claim. BRIEF DESCRIPTION OF DRAWINGS
[0006] The features, embodiments and advantages of the present disclosure will be better understood when read with reference to the following detailed description taken in conjunction with the accompanying drawings, in which:
[0007] Figure 1 is a diagram illustrating an example of a computing environment for color undertone detection, in accordance with certain embodiments.
[0008] Figure 2 is a block diagram of an example of a system for color undertone detection according to certain embodiments.
[0009] Figure 3 is a flowchart of an example of a process for color undertone detection according to some embodiments.
[0010] Figure 4 is a block diagram of an example of a system used in color undertone detection according to certain embodiments.
[0011] Figure 5 is a block diagram of an example of another system used in color undertone detection according to certain embodiments.
[0012] Figure 6 is a block diagram of an example of an additional system used in comparative color undertone detection according to certain embodiments.
[0013] Figure 7 is a flowchart of another example of a process for comparative undertone detection according to some embodiments.
[0014] Figure 8 is a diagram of an example of a computing system that can implement aspects of color undertone detection according to certain embodiments. DETAILED DESCRIPTION
[0015] As noted above, undertone identification can be important in evaluating makeup, clothing, paint, and architectural environments, and in selecting or adjusting lighting in various endeavors. One currently available approach for undertone determination involves presenting a sample and possible information about the sample to a person selecting a product or configuring an environment. The presentation can be accompanied by computer-generated questions, and answers to the questions can be fed into a rules-based undertone determination algorithm. For example, this technique can be used to provide product recommendations in an online shopping environment.
[0016] Another currently available approach for undertone determination involves providing experienced, compensated experts at, for example, a cosmetics counter in a department store to observe a sample, skin, and / or lighting and provide an evaluation of the presented undertone, possibly with computerized or printed guidance. The results produced by these approaches can be subjective, leading to unpredictable and sometimes undesirable results. For example, two pieces of clothing can exhibit matching colors, suggesting that the clothing will provide a pleasing appearance when worn together; however, the clothing can combine to be visually unattractive because their undertones are incompatible. As another example, makeup, hair color, etc. can be selected based on the colors that are clearly exhibited, but can prove to be visually unattractive to a given individual because of undertone mismatch.
[0017] Expert assessments can be subject to unique biases and experiences of the expert in skin tone, hair color, personal style, or cultural experience. Training and experience in shade detection for cosmetic selection is largely retained for certain skin tones. Experts who understand how to detect shade are often trained on a lighter palette, and these experts often do not know how to assess shade when it comes to darker skin tones.
[0018] Current approaches for shade identification and shade-aware product selection are therefore unreliable, unpredictable, labor-intensive, and / or expensive. Embodiments described herein address these problems by providing repeatable, automated, machine learning-based identification of shade in images of surfaces, objects, or scenes. This accurate computerized shade identification can be used in product selection for purchase or design projects. A machine learning model trained on images of surfaces is applied to an image warmth profile produced from an input image using a color warmth classifier. The machine learning model uses the image warmth profile to produce an inferred shade value for the image. This inferred shade value can be compared, directly or indirectly, to color values from a production image database, production images being, for example, images of products available for purchase, or images for lighting selection for set design. These techniques provide automated selection of products or objects that are compatible with existing environments or surfaces in color and / or shade.
[0019] For example, an interactive shopping application is loaded with an image of a shopper whose skin tone is expected to select the appropriate cosmetics or clothing. This interactive application is also connected to a production image database that includes images of available products indexed to pre-existing color values. These pre-existing color values can optionally be provided based on the shade determined by the same machine learning techniques used to determine the inferred shade of the shopper's skin. The shopping application can search the database, and a recommendation engine compares image color values, such as the inferred shade value from the input image or colors mapped to that value, to pre-existing values from the database to recommend a product or a range of products. The shopper can shop with confidence, as the automated color shade determination facilitates selection from the most compatible shade of product.
[0020] The above-described interactive shopping application can be implemented via the web, with the input image provided by the shopper using a webcam or a camera built into an interactive computing device, such as a smart mobile phone or tablet computer. Such interactive computing devices can also be referred to herein as a recipient device. The interactive shopping application can alternatively be deployed to a kiosk or even to a desktop, laptop or tablet computer accessible to the shopper or a salesperson in a retail establishment. Lighting characteristics, such as the color temperature of the light that captures the input image, can be important to accurately determining the inferred undertone value. In a web-based application, automatic color temperature detection can be used, or the shopper can be asked to input information about the lighting at the place where the image was captured (e.g., natural light, incandescent, fluorescent). The same techniques can be used in a retail establishment, or standardized light sources can be provided in the area where the shopper's image is to be captured.
[0021] The machine learning techniques described herein can be used to reliably, repeatably, and efficiently identify the color undertones of images from many different industries and works in use. Examples include cosmetics, textiles, interior design, exterior design, flooring, architecture, industrial design, and entertainment. The undertones can be identified without a large expense or expensive human labor, and to make informed design or product selections.
[0022] As used herein, the term "undertone" is a soft color that is seen through another color and modifies another color. Such an undertone can thus be described as an impression, based on color or chromatic, of an environmental scene or object that is different from a particular, easily identified color present in the scene or object. The term "undercolor" is synonymous with the term "undertone." The phrase "chromatic undertone" in the context of the present disclosure is also synonymous with the term "undertone," as the word "chromatic" is used only to distinguish the term "undertone" as used herein from the term as used in the field of audio processing or other fields.
[0023] The phrase "inferred base color value" as used herein is a stored digital representation of a base color determined from a digital image of an object or environment that has been captured independent of any control or calibration of the digital imaging process for the computing system that makes the base color determination as described herein. For example, a base color determined from a digital image captured from a smart mobile phone used by a customer of an online shopping platform can be analyzed to determine an inferred base color value for anything captured in the image. The actual base color of the object or environment depicted in the image cannot be determined directly by the computing system because the computing system lacks knowledge of all the variables involved in creating the image. A "machine learning model trained on surface images" is a machine learning model that has been trained using a large number of surface images exhibiting a variety of base colors under different lighting conditions for use in determining an inferred base color value for a new image.
[0024] A "production image" is an image of a product or some other alternative selection that can be determined to be compatible or potentially compatible with an inferred base color. For example, if color base detection as described herein is being used to present compatible products available in an online shopping platform, a database of production images of various available products and a subset of these images can be accessed or a "production image selection" can be offered and displayed via an interactive computing device. Outside of an online shopping environment, a "production image" can be an image of a finished product or prop available to a theatrical production designer. A "production image" can be an image of the product itself or it can also be an image designed to represent the appearance of the product in use. For example, for a cosmetic product, a production image can be an image of a model with the cosmetic product on their face.
[0025] Figure 1is a diagram illustrating an example of a computing environment 100 for color undertone detection according to certain embodiments. The computing environment 100 includes a server computing system 101 executing an interactive application 102 and an interactive computing device 138. The interactive computing device 138 includes a presentation device 108 controlled at least sometimes based on the interactive application 102 and a camera 140 used to capture images that are stored as camera image files 132 to be sent to an interface module 130 of the server computing system 101. In this example, the interactive application 102 includes a surface image trained machine learning model 110, a recommendation module 114, and a color warmth classifier 122. The color warmth classifier 122 produces image warmth profiles 112 from the image files and these image warmth profiles are at least temporarily stored for the server computing system 101 to determine an inferred undertone value and use the inferred undertone value to make a recommendation. The inferred undertone value 111 is stored by the interactive application 102 during making the recommendation. The recommendation in this example is provided in the form of a production image selection 136 to be provided to the interactive computing device 138 using the interface module 130 and displayed on the presentation device 108.
[0026] Still referring to Figure 1 , the production images in the production image selection 136 are a subset of images in a production image database 106 that the interactive application 102 accesses through the network 104. A workstation 146 is used to manage and curate the images in the production image database and pre-existing color values 120 for objects or scenes represented in the production images. The pre-existing color values 120 can be stored in the server computing system 101 for use by the recommendation module 114 in making recommendations to be included in the production image selection 136. These pre-existing undertone values can be updated as the production image database is updated. For example, the server computing system can be a real or virtual web server implementing an online shopping platform that is accessed to provide a shopping experience through the interactive computing device 138. Production imaging and undertone mapping can be performed by the workstation 146 as new items are added to the merchant's inventory or existing items are removed or changed. These activities will result in updates to the production image database 106, which can require updates to the stored pre-existing undertone and / or color values 120. Mapping will be discussed further with reference to Figure 2 , and results in pairing of undertone values with color information about the stored images.
[0027] Figure 2is a block diagram of an example of a system 200 for color undertone detection according to certain embodiments. The system 200 includes two process paths, each leading to a recommendation 202 implemented by the recommendation module 114. The upper process path in this example illustrates the processing of one or more uploaded images 204 from a computing device accessing the interactive application 102. These images can be uploaded via a website, or alternatively, can be provided (“uploaded”) to a computing device for implementing the system 200 locally, such as a tablet computer, notebook computer, or desktop computer at a makeup counter in a department store or at a service counter in a paint store. The provided images are subjected to image segmentation and color warmth classification in block 206 of the system 200. Block 206 in this example includes a segmentation network and a color warmth classifier 122. The type of image segmentation used will depend on the nature, colors, and undertones of the images involved, and for certain uses, image segmentation can not be needed at all.
[0028] If image segmentation is used, any of a variety of types of AI image segmentation or other non-AI types of segmentation can be used. For example, segmentation can be accomplished using a deep learning segmentation network included in block 206. Examples of segmentation types include panoptic segmentation and semantic segmentation. Segmentation of the image can isolate items, portions of items, or portions of people, which are known to provide more effective measurements of undertones of interest. For example, in makeup selection, certain parts of the body are known to provide more easily discernible undertones for a person’s skin color. The underside of the wrist is one such area, as is well known. Segmentation can be used to selectively identify the wrist of a person from the person’s hand, arm, etc. The color warmth classification provides a numerical indication of the color warmth class in the image in the form of an image warmth profile. For segmented images, the image warmth profile includes color warmth values indexed to the segmented image portions. Otherwise, the color warmth value can be a single value for the entire image. Additional details of examples of color warmth classification are discussed below with respect to Figure 5
[0029] Continuing Figure 2 , the image warmth profile is output by block 206 as a common spectrometer 208. The common spectrometer is a specified numerical description of the color warmth of various segments of a particular type of object. In this context, “specified” means that the same, standardized value selection is used across various image segments for both uploaded images 204 and production images in the environment in which the system 200 is used. These values are stored in a file, which is referred to herein as a common spectrometer. The common spectrometer 208 is provided to a machine learning characterization block 210 to produce one or more inferred undertone values for the image file using a machine learning model 110 trained on surface images.
[0030] To provide a more accurate determination, the lighting factor module 212 provides a lighting factor to the surface trained machine learning model. As one example, the lighting factor is a light source color characteristic. The lighting factor can be received via input to the interactive computing device. Such input can include a selection from various light source types in which the uploaded image was captured, such as daylight, fluorescent light, incandescent light, etc. Alternatively, another process can be used to analyze the image and automatically determine the lighting factor, as is implemented with digital cameras that provide automatic white balancing. An AI system can be used to provide the light source color characteristic. For example, some smart mobile phones include an AI system in which a trained machine learning model is applied to multiple images of a scene taken together in the background as part of the camera function to determine the light source color characteristic.
[0031] Still referring to Figure 2 , the inferred undertone is provided to an optional mapping module 214. The mapping module 214 maps the undertone(s) to color(s) using a value mapping of colors known to be compatible with certain undertones. As an example, such mapping can utilize prior expert / high confidence mappings by using supervised machine learning for prediction and / or assignment. If the system 200 is used in an environment where recommendations will be made based on comparison of undertones to undertones, the mapping function is not needed. However, generally, there are multiple directly identifiable colors that are compatible with a certain undertone, and these identifiable colors, if present in the production image, can be suitable as available selections on the interactive computing device 138. In some examples, as a way to filter many production images corresponding to a large product inventory or available design options, the system can provide adjustable filtering features to limit or expand the number of compatible colors. The recommendation module 114 performs the recommendation function 202, compares the image color values (color or undertone values) produced above to pre-existing color values corresponding to production images in the database 106, and in this example, the production image selection is provided to the interactive computing device 138 as the selected product image 216. The recommendation function 202 can utilize a machine learning recommendation algorithm.
[0032] Figure 2The bottom portion of FIG. 2 illustrates portions of the system 200 that are used to create the production image database 106 from product images. Product images 218 are provided to an image segmentation and color warmth classification block 220 of the system 200. The block 220 includes a color warmth classifier and can also perform image segmentation similar to that described above with respect to block 206. An image warmth profile for each product image is output by the block 220 as a common spectrometer 222. The common spectrometer 222 is provided to a machine learning characterization block 224 to produce one or more inferred undertone values for the product image file using another surface image trained machine learning model. The inferred undertones from the product image are output by the machine learning characterization block 224 to a mapping module 226 so that pre-existing color values from the product image can be compared to the image color values to produce a recommendation. If needed, the mapping module 226 maps the undertones to colors using color value mapping as previously described, optionally using supervised machine learning as previously described. As with the top portion of the system 200 described above, an illumination factor 228 is provided to the surface trained machine learning model in block 224. However, in this case, the illumination factor can be a fixed stored value since the product images 218 will typically be able to be captured in a more controlled and consistent environment.
[0033] Figure 3 is a flowchart of an example of a process 300 for a color undertone detection system according to some embodiments. In this example, a computing device performs the process by executing suitable program code, for example, computer program code that is executable to provide an interactive application such as the interactive application 102. At block 302, the computing device running the interactive application receives an image file from the interactive computing device or directly through the interface module. At block 304, the computing device produces an image warmth profile from the image file by using a color warmth classifier. The image warmth profile can include image warmth category values for multiple segments or features of the input image, or the profile can include a single value for the entire image. At block 306, the computing device applies a surface image trained machine learning model to the image warmth profile to produce an inferred undertone value corresponding to the image file.
[0034] At block 308 of process 300, the computing device uses a recommendation module and an inferred background color value to compare an image color value corresponding to an input image with pre-existing color values corresponding to production images in a production image database. In some examples, the image color value is the inferred background color value. In other examples, supervised machine learning as described above may be used, where the image color value is a color mapped to the inferred background color value. At block 310, in response to the comparison, the computing device provides interactive content to a receiving device, such as interactive computing device 138. The interactive content includes at least one production image selection from the production image database. In some embodiments, for example, utilizing a web-based system, interactive application 102 runs on a computing device separate from the interactive computing device. In other embodiments, the interactive application runs on an interactive computing device. In such embodiments, Figure 1 The computing device 101 and the computing device 138 can be the same computing device.
[0035] Figure 4 This is a block diagram of an example of a system 400 used in color background detection according to certain embodiments. System 400 provides an inferred background color based on an input image. Additional modules and / or algorithms are used to make purchase choices or other selections based on the inferred background color. Once the inferred background color is obtained using system 400, it can be used for any purpose. System 400 includes an image processing algorithm 402 that provides information about the image to a machine learning model 404 trained on the surface image, which in turn provides the inferred background color. In this example, machine learning model 404 also receives a copy of the input image itself.
[0036] Supplementary information about the conditions under which the input image was captured, or about the subject, environment, or surface associated with the input image, can be fed into a machine learning model 404 trained on the surface image to improve the accuracy of inferred background color detection. The input of illumination factors from the illumination factor module has been discussed. Standardization questions in the survey can also be used to prompt additional input. For example, in a system used to evaluate recommended background colors for cosmetics or clothing, responses to questions such as what color visible veins on a human body appear and / or how human skin reacts to sunlight can be used. This information is used as supplementary data to make inferred background color determinations to improve accuracy. Another example of supplementary information that can be used in various situations is an indication of which neutral colors (white, gray, black) are present in the image. Information about the image source can also be used, such as whether the image was captured as a still image or from a frame of a video clip.
[0037] Figure 5 It is used in color background detection according to certain embodiments. Figure 4A block diagram of an example of the image processing algorithm 402 of the system 400. To provide information for color warmth classification, a color temperature analysis is performed by the system. Warm colors typically have an orange, yellow, or red undertone, while cool colors have a green, blue, or purple undertone. To this end, the input image is transformed from the given representation (typically RGB values) at which the input image is input, to hue saturation value (HSV). In this example, a linear transformation module 502 is used to transform the image from RGB space to HSV space. The HSV space is a perceptual space in which the Euclidean distance between pixel values corresponds to a difference in perceived color. The hue value (referred to as the H channel) is used to provide the HSV values to a distance module 504. The Euclidean distance is calculated using the distance between the hue of the input image and the hue of the stored samples corresponding to the visual spectrum (purple, blue, green, yellow, orange, red). A color warmth classifier 506 provides an image warmth for an unsegmented image or an image warmth profile for a segmented image. In the case of a segmented image, the image warmth can be described as an image warmth category for the image or for each segment of the plurality of segments. The HSV color space characterizes colors based on saturation and color value. Other color spaces using different descriptive frameworks can be used.
[0038] The color warmth classifier can express the image warmth as a continuous number by using floating point values in order to achieve high accuracy and granularity. However, processing efficiency can be improved by expressing it as a discrete value. Such an implementation can be convenient for systems implemented using less capable hardware, for example in systems in which image processing occurs on a mobile computing device. For example, the discrete values can include numerical indicators for warm, very warm, neutral, cool, very cool, etc. In this case, the system design would need to include thresholds at which the color warmth would shift from one category to another. The system can then treat colors and / or color warmth as corresponding to ranges of numbers when performing certain calculations, which can result in a larger production image selection being returned without using additional filtering.
[0039] Figure 6 A block diagram illustrating a system 600 used in chromatic undertone detection, in accordance with certain embodiments. The system 600 utilizes images of various surfaces ("surface images") to train a machine learning model 602 to produce a surface image trained machine learning model 404. A curated set of training images 604 is selected for the purpose of training, such that the surface image trained machine learning model 404 infers the undertone(s) in an input image. In some examples, the training set is curated offline at a point in time prior to the interactive application being deployed. At least some software version updates can be provided for an updated, trained model.
[0040] The training set includes images of public surfaces. For each training image in the training set 604, the image is transformed to the HSV color space using a linear transformation. The HSV values are used to compute the Euclidean distance between the hue of the training image and the hue of stored samples corresponding to the visual spectrum (the same as used when analyzing new images). The training set includes images of various surfaces with various backgrounds. Each surface is imaged under a range of lighting conditions, and each image is stored with the identified background and lighting factors. The images in the training set are processed by the same image processing algorithms used to process images input to the interactive application, and the image warmth color vectors are generated. The image warmth color vectors are used, along with the lighting factor values, as training data for the machine learning model.
[0041] The deployed surface image trained machine learning model can be retrained manually or automatically at regular intervals. For example, new curated images can be input to improve the performance of the training model, manually initiating retraining. Alternatively, feedback regarding the production images provided for selection via the recipient device can be obtained via the same or different interactive computing device, and can be used to automatically retrain the model over time to provide more accurate determinations of the inferred background.
[0042] Figure 7 is a flowchart of another example of a process 700 for a color background detection system according to some embodiments. In this example, a computing device performs the process by executing suitable program code, for example, computer program code for an interactive application such as the application 102. At block 702, the computing device trains a learning model with training images of surfaces including a range of backgrounds under various lighting conditions. At block 704, the computing device running the interactive application receives an image file from an interactive computing device such as the interactive computing device 138 or directly through an interface module such as the interface module 130. Optionally, the computing device can also receive supplemental information. The input of lighting factors from the lighting factor module has been discussed. Standardization issues in the investigation can also be used to prompt additional input. For example, what color does a person's body present and how does a person's skin react to sunlight.
[0043] Another example of supplemental information that can be used in various situations is an indication of what neutral colors (white, gray, black) are present in the image. Optionally, to improve background identification, the system can prompt that an image including such neutral colors be provided. The image can be a person wearing a white or black shirt, and this information can be recorded through investigation of supplemental information including other prompts for gathering information.
[0044] In Figure 7At block 706, the computing device transforms the image file using a color space module to HSV. At block 708, the computing device segments the image file using a segmentation network, defining a plurality of image segments. At block 710, the computing device generates an image warmth profile using a color warmth classifier, using HSV for color warmth categories in the image segments. The image warmth profile is defined using a public spectrometer. At block 712, the computing device accesses an illumination factor module to obtain an illumination factor for the input image, e.g., a light source color characteristic corresponding to a type of light in the image file.
[0045] Continuing Figure 7 At block 714, a machine learning model trained on surface images is applied to the image warmth profile, taking into account the illumination factor, to generate an inferred undertone for the image file. The functionality included in blocks 706 through 714 can be used in implementing steps for generating an inferred undertone value for the image file, all of which are discussed Figure 7 At block 716, the computing device optionally maps the inferred undertone or inferred undertint to a color using supervised machine learning as previously described, to generate an image color value. For example, the image color value can correspond to one or more potential colors of an item represented in the production image. At block 718, a recommendation module of the computing device compares the image color value to pre-existing color values corresponding to production images in a database.
[0046] At block 720, responsive to the comparison, the computing device causes interactive content including at least one production image selection from the database to be provided to the interactive computing device. The functionality included in blocks 716 through 720 can be used in implementing steps for causing interactive content including production image selections to be provided to the interactive computing device, all of which are discussed Figure 7 At block 720, responsive to the comparison, the computing device causes interactive content including at least one production image selection from the database to be provided to the interactive computing device. The functionality included in blocks 716 through 720 can be used in implementing steps for causing interactive content including production image selections to be provided to the interactive computing device, all of which are discussed
[0047] At Figure 7At block 722 in FIG. 7, the surface-image-trained machine learning model is optionally retrained using feedback corresponding to production image selections. For example, if the received input indicates that a production image shows poor compatibility with an inferred undertone, that data point can be considered to retrain or update the training of the surface-image-trained machine learning model. In some examples, over time, such input provides feedback confirming or rejecting many production image selections, and such feedback is used to automatically retrain the model and improve its performance over time.
[0048] Figure 8 A computing system 800 performing an interactive application 102 having color undertone detection capabilities in accordance with embodiments described herein is depicted. The system 800 includes a processing device 802 communicably coupled to one or more memory components 804. The processing device 802 executes computer executable program code stored in the memory components 804. Examples of the processing device 802 include a processor, microprocessor, application specific integrated circuit (“ASIC”), field programmable gate array (“FPGA”), or any other suitable processing device. The processing device 802 can include any number of processing devices, including a single processing device. The memory components 804 include any suitable non-transitory computer readable medium for storing data, program code, or both. Computer readable media can include any electrical, optical, magnetic, or other storage devices capable of providing processor with computer readable instructions or other program code. Non-limiting examples of computer readable media include magnetic disks, memory chips, ROM, RAM, ASICs, optical storage such as CD and DVD ROMs, magnetic tape or other magnetic storage, or any other medium that the processing device can read from or write to. Computer readable instructions can include processor-specific instructions generated by a compiler or an interpreter from code written in any suitable computer programming language including, for example, C, C++, C#, Visual Basic, Java, Python, Perl, JavaScript, and ActionScript.
[0049] Still referring to Figure 8 The computing system 800 can also include a number of external or internal devices, such as input or output devices, for example. For example, the computing system 800 is shown with one or more input / output (“I / O”) interfaces 806. The I / O interfaces 806 can receive input from input devices such as a camera instruction to capture an image to be provided as an image file or provide output to output devices (not shown), for example, to display production image selections. One or more buses 808 are also included in the computing system 800. The buses 808 communicably couple one or more components of a respective one of the computing system 800.
[0050] The processing device 802 executes program code (executable instructions) that configures the computing system 800 to perform one or more of the operations described herein. The program code includes, for example, the interactive application 102 or other suitable application that performs one or more of the operations described herein. The program code can reside in the memory component 804 or any suitable computer-readable media and can be executed by the processing device 802 or any other suitable processing device. The memory component 804, during operation of the computing system, has its various portions accessed as needed by executable portions of the interactive application, such as the machine learning model 110, the recommendation module 114, the color warmth classifier 122, and / or the editing interface 130. The memory component 804 is also used to temporarily store the inferred undertone values 111, the image warmth profiles 112, and the pre-existing color values 120, as well as Figure 8 other information or data structures shown or not shown in FIG. 8. If the production image database is to be maintained locally on the computing system 800, the memory component 804 can also store the production image database 106.
[0051] Figure 8 The system 800 also includes a network interface device 812. The network interface device 812 includes any device or group of devices suitable for establishing a wired or wireless data connection to one or more data networks. Non-limiting examples of the network interface device 812 include an Ethernet network adapter, a wireless network adapter, and the like. The system 800 can use the network interface device 812 to communicate with one or more other computing devices (e.g., another computing device executing other software, not shown) via a data network (not shown). The network interface device 812 can also be used to communicate with a network or cloud storage that serves as a repository of production images for use by the interactive application 102. Such a network or cloud storage can also include updated or archived versions of the interactive application for distribution and installation.
[0052] According to Figure 8 In some embodiments, the computing system 800 also includes Figure 8 The presentation device 815 depicted in FIG. 8. The presentation device 815 can include any device or group of devices suitable for providing visual, audible, or other suitable sensory output. In an example, the presentation device 815 displays the production image selection. Non-limiting examples of the presentation device 815 include a touchscreen, a monitor, a separate mobile computing device, and the like. In some aspects, the presentation device 815 can include a remote client computing device that communicates with the computing system 800 using one or more data networks. The system 800 can be implemented as a single computing device, such as a notebook computer or a mobile computer. Alternatively, as an example, the various devices included in the system 800 can be profiled and interconnected through an interface or network with a central or host computing device that includes one or more processors.
[0053] Many specific details are set forth herein to provide a thorough understanding of the claimed subject matter. However, it will be appreciated that the claimed subject matter can be practiced without these specific details. In other instances, well-known methods, devices or systems have not been described in detail so as not to obscure the claimed subject matter.
[0054] Unless specifically stated otherwise, as apparent from the following discussions, it is appreciated that throughout the specification discussions utilizing terms such as "processing," "computing," "calculating," "determining," and "identifying" or the like, refer to the action or processes of a computing device, such as one or more computers or a similar electronic computing device or devices, that manipulate or transform data represented as physical, electronic or magnetic quantities, in the memories, registers, or other information storage devices, transmission devices, or display devices of the computing platform.
[0055] The system or systems discussed herein are not limited to any particular hardware architecture or configuration. A computing device can include any suitable arrangement of components that provides a result conditioned on one or more inputs. A suitable computing device includes a general-purpose multi-purpose computer system accessing stored software that configures the computer system, from a general purpose computing device, to a special purpose computing device implementing one or more implementations of the present subject matter. Any suitable programming, scripting, or other type of language or combination of languages can be used to implement the teachings contained herein in software to be used in programming or configuring a computing device.
[0056] Embodiments of the methods disclosed herein can be performed in the operation of such computing devices. The order of the blocks presented in the above examples can be altered— e.g., blocks can be reordered, combined, and / or split into sub-blocks. Certain blocks or processes can be performed in parallel.
[0057] The use of "configured to" or "based on" herein means the open and inclusive language that does not exclude devices that are adapted to perform additional tasks or steps. Where a device, system, component, or module is described as being configured to perform certain operations or functions, such configuration can be accomplished, e.g., by designing electronic circuits to perform the operation, by programming programmable electronic circuits (such as microprocessors) to perform the operation such as by executing computer instructions or code, or by processing of data by processors or cores programmed to perform the code or instructions stored on non-transitory storage media, or any combination thereof. Processes can communicate using a variety of techniques, including but not limited to conventional techniques for interprocess communication, and different pairs of processes can use different techniques of communication, or the same pair of processes can use different techniques of communication at different times. The headings, lists, and numbering herein are for ease of explanation only and do not imply limitations.
[0058] While the subject matter has been described in detail with respect to specific aspects thereof, it will be appreciated that those skilled in the art, upon attaining an understanding of the foregoing, can readily produce alterations, variations and / or equivalents thereof without departing from the scope of the present subject matter. Accordingly, it should be understood that the present disclosure has been presented for purposes of example, but not limitation, and as such it is recognized that additions, changes and / or omissions can be made to the present subject matter without departing from the spirit and scope of the present subject matter.
Claims
1. A method comprising: receiving an image file; prompting for additional input with respect to the image file; receiving an indication of a presence of a neutral color in the image file in response to the prompting; generating an image warmth profile using a color warmth classifier, the image warmth profile comprising color warmth values indexed to segmented portions of an image from the image file; applying a surface image trained machine learning model to the image warmth profile using the indication of a neutral color to produce an inferred undertone value for the image file; comparing an image color value to a plurality of pre-existing color values corresponding to a database of production images using a recommendation module and the inferred undertone value; selecting at least one production image from the database of production images in response to the comparing, the at least one production image being associated with a pre-existing color value corresponding to the image color value; and causing interactive content comprising the at least one production image from the database of production images to be provided to a recipient device in response to the selecting.
2. The method of claim 1, further comprising: using an illumination factor module to access light source color characteristics corresponding to the image file, wherein the light source color characteristics are used in producing the inferred undertone value.
3. The method of claim 1, further comprising: using a color space module to transform the image file into hue saturation values, wherein the image warmth profile is produced using the hue saturation values.
4. The method of claim 1, further comprising: training a machine learning model with training images comprising a range of undertones under a plurality of lighting conditions to produce the surface image trained machine learning model.
5. The method of claim 4, further comprising: retraining the surface image trained machine learning model using the image file and feedback corresponding to the at least one production image.
6. The method of claim 1, further comprising: segmenting the image file to define the segmented portions using a segmentation network, wherein the image warmth profile further comprises image warmth categories corresponding to the segmented portions.
7. The method of claim 1, further comprising: producing a common spectrometer using the color warmth classifier, the common spectrometer defining the image warmth profile using a standard selection across values for the segmented portions for both the image file and the production images; and mapping undertones to colors using a mapping module to produce the image color value using the inferred undertone value.
8. A system comprising: a memory component; a processing device coupled to the memory component for performing operations of receiving an image file, prompting for additional input with respect to the image file, receiving an indication of a presence of a neutral color in the image file as the additional input, and causing interactive content comprising at least one production image to be transmitted or displayed in response to receiving the image file: a color warmth classifier configured to produce an image warmth profile from the image file, the image warmth profile comprising color warmth values indexed to segmented portions of an image from the image file; a surface image trained machine learning model configured to produce an inferred undertone value for the image file using an image warmth profile using the image warmth profile and the indication of a neutral color; and a recommendation module configured to compare an image color value to a plurality of pre-existing color values corresponding to a database of production images using the inferred undertone value. a recommendation module configured to determine an image color value from the inferred undertone value, compare the image color value to a plurality of pre-existing color values corresponding to a database of production images, and select the at least one production image based on the comparison.
9. The system of claim 8, further comprising an illumination factor module configured to provide light source color characteristics corresponding to the image file, wherein the light source color characteristics are used in generating the inferred undertone value.
10. The system of claim 8, further comprising a color space module configured to transform the image file into hue saturation values, wherein the image warmth profile is generated using the hue saturation values.
11. The system of claim 8, wherein the surface image trained machine learning model is configured with training images comprising a range of undertones under a plurality of lighting conditions.
12. The system of claim 8, further comprising a segmentation network configured to segment the image file to define the segmented portions, wherein the image warmth profile further comprises image warmth categories corresponding to the segmented portions.
13. The system of claim 8, wherein the color warmth classifier is configured to generate a common spectrometer that defines the image warmth profile using a standard selection across values for the segmented portions for both the image file and the production images.
14. The system of claim 8, further comprising a mapping module configured to map undertones to colors to generate image color values using the inferred undertone value.
15. A non-transitory computer-readable medium storing executable instructions that, when executed by a processing device, cause the processing device to perform operations comprising: receiving, using an interactive computing device, an image file; prompting for additional input with respect to the image file; receiving, in response to the prompt, an indication of a presence of a neutral color in the image file; generating, using the indication of the neutral color, an inferred undertone value for the image file; and 16. The non-transitory computer readable medium of claim 15, wherein the steps for generating the inferred undercolor value further comprise: providing, for display to the interactive computing device, interactive content comprising production images selected based on a comparison of the inferred undertone value to pre-existing color values from a database of production images.
17. The non-transitory computer readable medium of claim 16, wherein the steps for generating the inferred undercolor value further comprise: applying a surface image trained machine learning model to an image warmth profile to generate the inferred undertone value for the image file. segmenting the image file to define a plurality of image segments, wherein the image warmth profile comprises image warmth categories corresponding to the plurality of image segments.
18. The non-transitory computer-readable medium of claim 16, wherein the executable instructions further cause the processing device to train a machine learning model with training images comprising a range of undertones under a plurality of lighting conditions to generate the surface image trained machine learning model.
19. The non-transitory computer readable medium of claim 18, wherein the executable instructions further cause the processing device to: retrain the surface image trained machine learning model using the image file and feedback corresponding to the production image.
20. The non-transitory computer readable medium of claim 15, wherein the steps for causing interactive content comprising production images to be provided further comprise: map the base color to a color to produce an image color value using the inferred base color value.
Citation Information
Patent Citations
Deriving a skin profile from an image
US11010894B1
Skin undertone determining method and an electronic device
US20190035111A1