Abstract:
One embodiment of the present invention provides a system for recognizing and classifying clothes. During operation, the system captures at least one image of a clothing item. The system further determines a region on the captured image which corresponds to a torso and/or limbs. The system also determines at least one color composition, texture composition, collar configuration, and sleeve configuration of the clothing item. Additionally, the system classifies the clothing item into at least one category based on the determined color composition, texture composition, collar configuration, and sleeve configuration. The system then produces a result which indicates the classification.

Description:
COLOR DRAWINGS 
       [0001]    The patent or application file contains at least one drawing executed in color. Copies of this patent or patent application publication with color drawing(s) will be provided by the Office upon request and payment of the necessary fee. 
       BACKGROUND 
       [0002]    1. Field 
         [0003]    The present disclosure relates to vision systems. More specifically, the present disclosure relates to an intelligent fashion exploration system based on clothes recognition. 
         [0004]    2. Related Art 
         [0005]    Shopping for clothes is a common activity which can be carried out online or in physical stores. A common practice in a physical store is to search the inventory for items of interest, select a few for comparison, and try them on to decide which, if any, to purchase. The shopper examines the clothes according to how well they fit physically, and also how well they fit the image of herself that she wants others to perceive. That is, the shopper not only checks whether a garment fits her body, but also whether it fits her style. 
         [0006]    In essence, fashion decisions are driven by a person&#39;s goals for self-expression within her social context, which is determined by many complex and subtle factors. A particular article of clothing may present a different aesthetic depending on how it is coordinated with other articles. A particular style may be considered “cool” or “inappropriate” in different occasions and contexts. In addition, a particular item may go “in” and “out” of fashion over time and among different demographic segments. 
         [0007]    Online shopping typically involves technologies for direct searching and recommending items related to a garment, using techniques such as collaborative filtering (identifying clusters of people with similar interest) and recommendation based on content similarity (calculating the similarity of various attributes of content). However, these systems have only limited ability to suggest items that a person might find “fashionable” because the sense of fashion is one of “low semanticity” which varies with context and individual perceptions. Such recommendations can be helpful, but often do not capture a person&#39;s particular perceptions of “fashion.” 
       SUMMARY 
       [0008]    One embodiment of the present invention provides a system for recognizing and classifying clothes. During operation, the system captures at least one image of a clothing item. The clothing item may optionally be worn by a person. The system further determines a region on the captured image which corresponds to a torso and/or limbs. The system also determines at least one color composition, texture composition, collar configuration, and sleeve configuration of the clothing item. The system can further determine placket configuration, pattern complexity, and pattern placement. Additionally, the system classifies the clothing item into at least one category based on the determined color composition, texture composition, collar configuration, and sleeve configuration. The system then produces a result which indicates the classification. 
         [0009]    In a variation on this embodiment, the clothing item is worn by a person, and determining the region on the captured image which corresponds to the person&#39;s torso and/or limbs involves producing a clean foreground map from the image and applying one or more bounding boxes to the image, wherein a respective bounding box encloses a part of the person&#39;s body. 
         [0010]    In a variation of this embodiment, determining the color of the clothing item involves generating a color histogram in red, green, and blue channels. The system further compares the color histogram of the clothing item with a previously stored color histogram of another clothing item, thereby facilitating determination of a color match between the two clothing items. 
         [0011]    In a variation of this embodiment, the system crops a set of image patches within the torso region of a number of clothing items, represents a respective patch in a multi-dimension vector, and generates a number of eigen patches by applying a principal component analysis (PCA) to the patches corresponding to different clothing items. Furthermore, determining the texture of the clothing item involves projecting a multi-dimension vector which represents a patch for the clothing item to the eigen patches and then building a histogram of the projected vectors associated with the patches for the clothing item. The system then compares the projected-vector histogram for the patches associated with the clothing item with those of different clothing items. 
         [0012]    In a variation of this embodiment, determining the collar configuration involves identifying a bounding box which substantially encloses a collar region of the clothing item and applying Harris corner detection to the bounding box for the collar region. 
         [0013]    In a variation of this embodiment, the clothing item is worn by a user, and determining the sleeve configuration involves identifying a skin tone of the person&#39;s face, comparing the color of the pixels on the image which correspond to the person&#39;s arm, and determining the length of the person&#39;s exposed arm based on the color comparison. 
         [0014]    In a variation of this embodiment, the system determines the number and/or location of buttons of the clothing item, and/or the length and distribution of the placket. 
         [0015]    In a variation of this embodiment, the system recognizes one or more logos on the clothing item. 
         [0016]    In a variation of this embodiment, the clothing item is worn by a user, and the system analyzes the person&#39;s demographic information. 
         [0017]    In a further variation, analyzing the person&#39;s demographic information involves determining the person&#39;s hair color and complexion. 
         [0018]    In a variation of this embodiment, the result indicates a match between the clothing item and a previously stored clothing item based on their respective color, pattern, and/or other factors, thereby facilitating recommendation of similar or different clothes. 
     
    
     
       BRIEF DESCRIPTION OF THE FIGURES 
         [0019]      FIG. 1  illustrates exemplary modules of a clothes-recognition system in accordance with one embodiment of the present invention. 
           [0020]      FIG. 2A  illustrates an exemplary cleaned foreground map in accordance with one embodiment of the present invention. 
           [0021]      FIG. 2B  illustrates the application of a body bounding box and a torso bounding box to a person&#39;s image in accordance with one embodiment of the present invention. 
           [0022]      FIG. 3A  illustrates a set of exemplary clothes-retrieval results based on color matching in accordance with one embodiment of the present invention. 
           [0023]      FIG. 3B  illustrates a set of exemplary clothes-retrieval results based on eigen-patch analysis in accordance with one embodiment of the present invention. 
           [0024]      FIG. 4A  illustrates a set of exemplary Harris corner points detected in the Red channel on non-collar clothes with t c =500 (left) and t c =2000 (right) in accordance with one embodiment of the present invention. 
           [0025]      FIG. 4B  illustrates a set of exemplary Harris corner points detected in the Red channel on clothes with collar with t c =500 (left) and t c =2000 (right) in accordance with one embodiment of the present invention. 
           [0026]      FIG. 5A  illustrates an exemplary face detection and arm-skin detection on long-sleeved clothes in accordance with one embodiment of the present invention. 
           [0027]      FIG. 5B  illustrates an exemplary face detection and arm-skin detection on short-sleeved clothes in accordance with one embodiment of the present invention. 
           [0028]      FIG. 6  illustrates the performance of the collar-recognition mechanism in accordance with one embodiment of the present invention. 
           [0029]      FIG. 7  illustrates the performance of the sleeve recognition mechanism in accordance with one embodiment of the present invention. 
           [0030]      FIG. 8  illustrates an exemplary computer system that facilitates a clothes-recognition system in accordance with one embodiment of the present invention. 
       
    
    
     DETAILED DESCRIPTION 
       [0031]    The following description is presented to enable any person skilled in the art to make and use the invention, and is provided in the context of a particular application and its requirements. Various modifications to the disclosed embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the present invention. Thus, the present invention is not limited to the embodiments shown, but is to be accorded the widest scope consistent with the claims. 
         [0032]    The data structures and code described in this detailed description are typically stored on a computer-readable storage medium, which may be any device or medium that can store code and/or data for use by a computer system. This includes, but is not limited to, volatile memory, non-volatile memory, magnetic and optical storage devices such as disk drives, magnetic tape, CDs (compact discs), DVDs (digital versatile discs or digital video discs), or other media capable of storing computer readable media now known or later developed. 
       Overview 
       [0033]    One embodiment of the present invention provides a visual system that facilitates intelligent fashion exploration based on clothes recognition. The system can display images of others wearing outfits of both similar and different styles to the one being tried on by the person. The display can help the person determine whether the style she is trying on is close to a presentation of self that she would want to project. More specifically, embodiments of the present invention facilitate real-time clothes detection and recognition. 
         [0034]    Clothes recognition can be employed as a contextual cue for the purpose of human identification and face recognition. In embodiments of the present invention, a system is provided to recognize the clothing items and match them to images of other clothes. More specifically, the clothes-recognition system in embodiments of the present invention find matches to clothes from images captured by video as the shopper interacts with the system. 
         [0035]    Generally, clothes can be matched based on global color and texture features, which are believed to be two important factors in an individual shopper&#39;s fashion taste. The present system uses not only these two features for similar and dissimilar fashion styles retrieval, but also a number of additional matching criteria for identifying a particular style of clothing, such as the presence and shape of collar (e.g., buttoned-down shirt versus crew neck), presence and number of buttons (e.g., polo shirt versus dress shirt), presence and complexity of patterns (e.g., thin plaid versus wide stripes), sleeve length, and trouser length. 
         [0036]    Ideally, a complete clothes recognition system addresses several computer vision and machine learning problems. For example, the system identifies the salient features to the human and machine perception (e.g., color, collar, sleeve, button, etc.) for clothes style definition, how to select and combine these features for clothes recognition, what is the contextual information affecting the person&#39;s tastes, and how to integrate this information for better clothes retrieval. Embodiments of the present invention are not only useful for the recognition of clothes and fashion, but also valuable for the solution of related object recognition problems. 
         [0037]    Embodiments of the present invention perform color, texture, and pattern analysis for clothes matching. The system also employs machine learning to classify the clothes into different categories. In some embodiments, the system only matches clothes that belong to the same category (e.g., all T-shirts). 
         [0038]      FIG. 1  illustrates exemplary modules of a clothes-recognition system in accordance with one embodiment of the present invention. The system can perform a number of image-processing and pattern-recognition functions as part of the color, texture, and pattern analysis. These functions include collar recognition, sleeve recognition, trousers-length recognition, belt recognition, button detection, and demographic recognition. 
       Clothes Detection 
       [0039]    In order to recognize the clothes, such as shirts, which the customer is wearing, the system first detects the location of the clothes within an image. When the system is given an image of a person wearing clothes, the detection of shirts is equivalent to the detection of the torso part of the human body. In the fitting room of a clothing retail store, shoppers, wearing clothes, typically stand upright in front of a mirror. The present clothes-detection system captures a relatively large torso region from the person&#39;s image. 
         [0040]    In one embodiment, the clothes-detection system can operate in real time by employing a clothes-detection algorithm with light computational cost. Since the system can extract the human body region by motion tracking, the approximate torso portion can be efficiently detected by segmenting within a bounding box of the whole body. 
         [0041]    In one embodiment, the system separates the background from the foreground so that a contour of the person&#39;s body can be identified.  FIG. 2A  illustrates an exemplary cleaned foreground map in accordance with one embodiment of the present invention. Given the cleaned foreground map, the system then applies a bounding box, which is represented by the blue box in  FIG. 2B , to the person&#39;s body. The system then extracts the approximate torso part, which is represented by the green box in  FIG. 2B , using heuristic ratios within the bounding box. This clothes-detection mechanism is sufficiently robust to different clothes localizations and the recognition results have proven satisfactory using this segmentation method. 
       Clothes Matching Based on Color and Texture 
       [0042]    In one embodiment, the system uses color information for clothes matching. During operation, the system computes a color histogram in Red, Green, and Blue (RGB) channels from the segmented torso part. The system then compares the histogram with the histograms of other clothing items. The system further measures the similarity between two pieces of clothes by applying the φ 2  test between two histograms. The details of φ 2  tests can be found in Chernoff H, Lehmann E. L., “The use of maximum likelihood estimates in φ2 tests for goodness-of-fit,”  The Annals of Mathematical Statistics  1954; 25:579-586, which is incorporated by reference herein. 
         [0043]    The system then retrieves the most similar and/or the most dissimilar clothes from the same category and display their images to the person for comparison.  FIG. 3A  illustrates a set of exemplary clothes-retrieval results based on color matching in accordance with one embodiment of the present invention. 
         [0044]    Besides color, clothing texture is also identified as a significant cue for clothes recognition due to its connection with fabric and pattern. In order to explore color and texture information simultaneously for clothes recognition, the system employs an “Eigen-Patch” approach. 
         [0045]    In the Eigen-Patch approach, instead of building histograms on the RGB values on each pixel, the system crops overlapping small image patches within the torso region and represents each patch by a multi-dimensional vector. In one embodiment, all the patches from all the clothes are stacked. The system then performs a Principal Component Analysis (PCA) to the feature stack to reduce the feature dimension and extract the most significant features from the clothes. PCA is a mathematical tool for statistical pattern recognition and its details are described in Fukunaga, K, “Introduction to Statistical Pattern Recognition,” Elsevier 1990, which is incorporated by reference herein. 
         [0046]    The system then projects the small patches to the first k principal components (referred to as “eigen patches”) which are obtained from the PCA. Next, the system builds histograms on the projected feature vectors. In one embodiment, the system builds n histogram bins in each dimension by evenly dividing the interval between the maximal and minimal values observed in the dataset along this dimension. For a previously unseen clothing item, the system applies the same process to the torso patches to compute the corresponding eigen-patch histogram. The system then compares the histogram with all the histograms of other clothing items based on χ2 test to find similar and dissimilar clothes.  FIG. 3B  illustrates a set of exemplary clothes-retrieval results based on eigen-patch analysis in accordance with one embodiment of the present invention. 
       Collar Recognition 
       [0047]    In one embodiment, the system uses a supervised learning algorithm to classify the clothes into different categories. In general, a collar on a shirt is an important cue to discriminate between formal shirts (e.g., dress shirts and polo shirts) and casual shirts (e.g., t-shirts and sweaters). Although it is very easy for human eyes to determine the existence of collar, recognizing it automatically from a camera is not a trivial problem. 
         [0048]    Typically, collars have more salient corners than non-collar clothes. Therefore, the system combines low-level interest point detector with simple classifier to extract collar information from the camera images. The first step is to detect the corner points from the RGB channels of clothes images using Harris corner detector, the details of which are described in Harris, C. and Stephens, M., “A combined corner and edge detector,” Proceedings of the 4th Alvey Vision Conference: pages 147-151. 1988, which is incorporated by reference herein. 
         [0049]    The Harris detector uses the second moment matrix for feature detection. This matrix describes the gradient distribution in a local neighborhood of a point x: 
         [0000]    
       
         
           
             
               
                 
                   M 
                   = 
                   
                     μ 
                      
                     
                       ( 
                       
                         x 
                         , 
                         
                           σ 
                           I 
                         
                         , 
                         
                           σ 
                           D 
                         
                       
                       ) 
                     
                   
                 
               
             
             
               
                 
                   = 
                   
                     [ 
                     
                       
                         
                           
                             μ 
                             11 
                           
                         
                         
                           
                             μ 
                             12 
                           
                         
                       
                       
                         
                           
                             μ 
                             21 
                           
                         
                         
                           
                             μ 
                             22 
                           
                         
                       
                     
                     ] 
                   
                 
               
             
             
               
                 
                   = 
                   
                     
                       σ 
                       D 
                       2 
                     
                      
                     
                       
                         g 
                          
                         
                           ( 
                           
                             σ 
                             I 
                           
                           ) 
                         
                       
                       · 
                       
                         [ 
                         
                           
                             
                               
                                 
                                   I 
                                   x 
                                   2 
                                 
                                  
                                 
                                   ( 
                                   
                                     x 
                                     , 
                                     
                                       σ 
                                       D 
                                     
                                   
                                   ) 
                                 
                               
                             
                             
                               
                                 
                                   I 
                                   x 
                                 
                                  
                                 
                                   
                                     I 
                                     y 
                                   
                                    
                                   
                                     ( 
                                     
                                       x 
                                       , 
                                       
                                         σ 
                                         D 
                                       
                                     
                                     ) 
                                   
                                 
                               
                             
                           
                           
                             
                               
                                 
                                   I 
                                   x 
                                 
                                  
                                 
                                   
                                     I 
                                     y 
                                   
                                    
                                   
                                     ( 
                                     
                                       x 
                                       , 
                                       
                                         σ 
                                         D 
                                       
                                     
                                     ) 
                                   
                                 
                               
                             
                             
                               
                                 
                                   I 
                                   y 
                                   2 
                                 
                                  
                                 
                                   ( 
                                   
                                     x 
                                     , 
                                     
                                       σ 
                                       D 
                                     
                                   
                                   ) 
                                 
                               
                             
                           
                         
                         ] 
                       
                     
                   
                 
               
             
           
         
       
     
         [0050]    The local image derivatives along x and y axis, I x  and I y , are computed with Gaussian kernels of scale σ D . The derivatives are then averaged in the neighborhood of the point by smoothing with a Gaussian window of scale σ 1  (in one embodiment, σ D =σ 1 =6). This matrix represents two principal signal changes in a neighborhood of the point. This property enables the extraction of corner points—the points where both curvatures are significant, that is, the signal change is significant in orthogonal directions. The Harris measure at point x is given by: 
         [0000]        c =(μ 11   2 ·μ 22   2 −μ 12   2 )*(μ 11   2 +μ 22   2 ) 
         [0051]    The Harris measure is an indicator of the “strength of corneness” at point x, that is, how distinctive the corner is. After the system computes the Harris measure at each pixel within the neck region, the peak points are detected using non-maximal suppression with a radius r (in one embodiment, r=9). If the Harris measure at a peak point x is higher than a threshold t c , x is identified as a Harris corner point. The Harris corner detector is applied to each of the RGB channels.  FIG. 4A  illustrates a set of exemplary Harris corner points detected in the Red channel on non-collar clothes with t c =500 (left) and t c =2000 (right) in accordance with one embodiment of the present invention. Similarly,  FIG. 4B  illustrates a set of exemplary Harris corner points detected in the Red channel on clothes with collar with t c =500 (left) and t c =2000 (right) in accordance with one embodiment of the present invention. 
         [0052]    Similar to clothes detection, the neck part of the human body can be detected by segmenting within the bounding box of the human body (the green boxes shown in  FIGS. 4A and 4B ). Then, based on our assumption, the system can determine the presence of collar based on the number of Harris corner points detected from all the channels within the neck part. 
         [0053]    Suppose that N clothing items {C 1 , C 2 , . . . , C N } are described by their features: the number of Harris corners detected in the neck parts: X={x 1 , x 2 , . . . , x N }. The system the assigns different labels to the clothing items that have (indicated by a value of +1) or do not have (indicated by a value of −1) collars: 
         [0000]    Y={y 1 , y 2 , . . . , y N }, y n ε{+1, −1}. Collar recognition is then formulated as a supervised learning problem. In one embodiment, the system employs a Decision Stump classifier to solve this problem. A Decision Stump is a machine learning model consisting of a Decision Tree with only a single branch. A Decision Stump d classifies the examples that has feature values smaller than or equal to its threshold t d  to its right branch (−1), and classifies the others to its left branch (+1). The learning of the Decision Stump involves sorting the feature values and then searching for the threshold t* on the feature values that maximize the drop in impurity. The learned decision stump classifier can be applied to new clothing items efficiently by performing a threshold test. More details on Decision Stump can be found in Opelt, A., Pinz, A., Fussenegger, M., and Auer, P., “Generic object recognition with boosting,”  PAMI , vol. 28, No. 3, pp. 416-431, 2006 and Duda, R. O., Hart, P. E., and Stork, D. G., “Pattern classification,” 2 nd  Ed., John Wiley &amp; Sons, 2001, both of which are incorporated by reference herein. 
       Sleeve Recognition 
       [0054]    Sleeve length is another important factor for clothes recognition. It is also mentioned in the Wikipedia definition for “shirt” as a significant cue to discriminate between polo-shirts, T-shirts, sweat shirts (short-sleeved or none-sleeve) from dress shirts or jackets (long-sleeved). In order to recognize these two categories, it is assumed that long-sleeved clothes usually expose less skin area on arms than short-sleeved or none-sleeved clothes do. In one embodiment, the sleeve-recognition is divided into two sub-problems: skin detection and sleeve classification. 
         [0055]    Generic skin detection is a difficult problem due to the difference in skin types and lighting conditions. In one embodiment, the system takes advantage of the fact that the skin tone of one&#39;s face is usually similar to the skin tone of her arms. Therefore, the system first applies an efficient face detector to detect the location of the person&#39;s face from his frontal view image, as shown in the green boxes in  FIGS. 5A and 5B . For details of one exemplary face detector, see Kienzle, W., Bakir, G., Franz, M., and Scholkopf, B., “Face detection—efficient and rank deficient,”  NIPS , pp. 673-680, 2005, which is incorporated by reference herein. 
         [0056]    The system then clusters the RGB values of the extracted facial pixels using Gaussian Mixture Modeling. (See Duda, R. O., Hart, P. E., and Stork, D. G., “Pattern classification,” 2 nd  Ed., John Wiley &amp; Sons, 2001.) In one embodiment, the number of clusters is empirically set to 2. Hence, it is expected that one of the clusters represents the customer&#39;s skin tone. 
         [0057]    Next, for every pixel x in the rough arm area (right and left side of the upper body), a small patch p(x) of size 5×5 centered at x is extracted. x is identified as a skin pixel only if the following two conditions are true: 
         [0058]    1. Patch p(x) is coherent in color. That is, the variance of RGB values within p(x) is smaller than a threshold. This is to prevent false detections from skin-like colors in sleeves. 
         [0059]    2. The minimal Mahalanobis distance from the mean of the RGB values within p(x) to the two face pixel clusters is smaller than threshold t s . The skin detection results using t s =5 is shown in light blue areas in  FIGS. 5A and 5B . 
         [0060]    After skin detection, the sleeve length is approximated by the number of skin pixels detected in the arms. A Decision Stump is learned on these features to recognize the sleeve lengths. 
       Evaluation of Collar-Recognition Mechanism 
       [0061]      FIG. 6  illustrates the performance of the collar-recognition mechanism in accordance with one embodiment of the present invention. The collar recognition mechanism is evaluated with a simulated social fashion dataset which contains 51 shirts without collar (−1) and 24 shirts with collars (+1). The experiment is performed under different settings of the Harris measurement threshold, t c , to test its effect on the performance. For each t c  value, half of the shirts from each class are randomly selected as training examples, and the other shirts are used for testing. There is no overlap between training and testing set. The experiment is repeated 10 times with random reselections, and the average recognition accuracies (the red curve) along with the standard deviations (the blue vertical lines) with different values of t c  is illustrated in  FIG. 7 . 
         [0062]    It can be observed that the recognition accuracy is close to 80%, and the variance of the accuracy is not small, which is reasonable due to the small size of the dataset. It is expected that the performance of collar recognition can improve with larger-scale datasets, and even better when combined with other recognition mechanisms (e.g., sleeve and button recognition). 
       Evaluation of Sleeve-Recognition Mechanism 
       [0063]      FIG. 7  illustrates the performance of the sleeve recognition mechanism in accordance with one embodiment of the present invention. Under the same experiment setting as the collar-recognition evaluation, the sleeve-recognition mechanism is tested under different settings of the threshold t s . As shown in  FIG. 7 , the sleeve-recognition mechanism can achieve approximately 93% recognition accuracy when a small threshold is used. 
       System Operation 
       [0064]      FIG. 8  illustrates an exemplary computer system that facilitates a clothes-recognition system in accordance with one embodiment of the present invention. Computer system  802  includes a processor  804 , a memory  806 , and a storage device  808 . Computer system  802  is coupled to a display  801  and a camera  803 . 
         [0065]    Storage device  808  stores code for an operating system  816 , as well as applications  820  and  822 . Also included in storage device  808  are clothes-recognition applications  818 . During operation, clothes-recognition applications are loaded into memory  806 . When processor  804  executes the corresponding code stored in memory  806 , processor  804  performs the aforementioned analysis to the images captured by camera  803  and displays the matching clothing items on display  801 . 
         [0066]    The foregoing descriptions of embodiments of the present invention have been presented only for purposes of illustration and description. They are not intended to be exhaustive or to limit the present invention to the forms disclosed. Accordingly, many modifications and variations will be apparent to practitioners skilled in the art. Additionally, the above disclosure is not intended to limit the present invention. The scope of the present invention is defined by the appended claims.