Abstract:
Systems and methods are disclosed to perform image parsing on one or more images by identifying a set of similar regions from each image; assigning one or more region labels to each region and generating multiple hypotheses for region label assignment; and detecting class, location and boundary of each object in the image, wherein object classification, detection and segmentation are performed jointly during image parsing.

Description:
This application claims priority to U.S. Provisional Application Ser. No. 61/262,335 filed Nov. 18, 2009, the content of which is incorporated by reference. 
    
    
     BACKGROUND 
     The present invention relates to image parsing. 
     Typical natural images contain multiple regions with each image region being a set of pixels grouped based on homogeneity in terms of location, appearance and smoothness constraint. The image parsing process gives object labels to image regions so that the most probable interpretation of the input image can be achieved. It also provides information such as shape (where is its boundary), semantics (what is the probability of the region belonging to each object class) and context (who are neighboring regions). Image parsing functionality is one of the most important features in the human visual system (HVS) because it provides necessary support to higher-level understanding of the physical world by human brain. The image parsing process gives labels to image regions, as well as information including shape, semantics and context. Although it is one of the most important features in the human visual system, automatic image parsing using computer vision techniques remains difficult due to computational issues. 
     Traditional computer vision techniques regard image classification, detection and segmentation as separate tasks and have developed different approaches for each respective task. However, apparently good results from these tasks can be mutually beneficial to each other, and cognitive studies have shown that human visual system performs these tasks simultaneously, therefore a joint approach to the three tasks is more appealing and effective. 
     In parallel, Dynamic Programming (DP) is a well studied tool for solving sequential decision problems in an efficient way. It performs global optimization by locally optimizing a sub-problem. One typical scenario where DP has been extensively used is to find the optimal sequence of a fix number of moves, starting from point i and ending at point j, with associated cost φ(i, j). However, applying DP algorithm to the searching problem in image parsing opens to two challenges: First, due to the nature of image, the topology of image units is more complicated than a sequential connection; Second, due to the existence of multi-mode, simply taking the top-N solutions by DP as the hypotheses is not feasible, because these hypotheses are usually too similar to each other as observed in our experiment, which means that they fall into the same mode. 
     SUMMARY 
     In one aspect, systems and methods are disclosed to perform image parsing on one or more images by identifying a set of similar regions from each image; assigning one or more region labels to each region and generating multiple hypotheses for region label assignment; and detecting class, location and boundary of each object in the image, wherein object classification, detection and segmentation are performed jointly during image parsing. 
     Implementations of the above aspect may include one or more of the following. The assigning the region labels can include applying an algorithm called Graph Adaptive Dynamic Programming (GADP). The GADP minimizes an objective function 
               S   ^     =     arg   ⁢       min     S   ∈   Ω       ⁢       ∑     i   =   1     N     ⁢           ⁢       ζ   i     ⁡     (       s   i     ❘     S   i   p       )                   
where
 
ζ i ( s   i   |S   i   p )=−log( p ( x   i   |s   i ) p ( s   i   |S   i   p ))
 
X=[x 1 , x 2 , . . . x N ] being a set of N image regions and S=[s 1 , s 2 , . . . , s N ] being a state array of a corresponding region and a state space s i εS={0, 1, . . . , K} where s i =0 indicates a background category with K foreground categories. The method includes assigning probabilities of each region belonging to each object class as a basis for label assignment for each region; and optimizing the label assignment so that an overall assigning probability for all regions is maximized. The method can perform an initial region label assignment using dynamic programming. A hierarchical image analysis can be done to parse the image into three level of patches including a first level where pixels are grouped into super pixels based on similarity, a second level where the GADP groups the super-pixels into regions; and a third level where multiple hypotheses of region combinations are analyzed by a multi-class support vector machine (SVM). Image segmentation can be applied to the image and reducing the number of elements to be processed to a small number of regions. The same object label can be applied to adjacent homogenous pixels. Each region can have a set of pixels grouped based on similarities including adjacency, color and smoothness. The method can encode each region with information including shape (boundary) and context (neighboring regions).
 
     Advantages of the preferred embodiments may include one or more of the following. The system provides a unified framework to solve the following three visual recognition tasks simultaneously:
         object classification, i.e. to predict presence/absence of a specific object class in the image;   object detection, i.e. to predict a bounding box of each presented object;   object segmentation, i.e. to predict a precise boundary of each presented object.       

     The unified framework can solve the above three visual recognition tasks simultaneously, which considerably reduces the complexity and cost of developing different methods for each respective task. Under this joint framework, the recognition accuracies of all three tasks are also significantly improved because when performed jointly, results from these tasks can be mutually beneficial to each other. 
     The system provides high performance in handling image parsing. This is achieved because the search model is efficient to support large search space. The search space that can be handled includes unconstrained shapes. The system can handle multiple categories labeling simultaneously. The search process can handle multi-mode issue in the image parsing. To search for the joint interpretation of multiple image regions, the parsing process provides good global or near global solution. The search method imposes fewer constraints on modeling the images. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  shows a diagram of a fast image parsing system. 
         FIG. 2  shows in more details a region generation and classification block in  FIG. 1 . 
         FIG. 3  shows in more details a region label assignment block in  FIG. 1 . 
         FIG. 4  shows an exemplary pseudo code for a Graph Adaptive Dynamic Programming system in one embodiment of the present invention. 
         FIG. 5  shows an exemplary computer for image parsing. 
     
    
    
     DESCRIPTION 
       FIG. 1  shows a diagram of fast image parsing system where input image is received by block  100 . In block  101 , the system performs region generation and classification. In block  102 , the system performs region label assignments, and in block  103 , the system determines the class, location and boundary of each object. 
       FIG. 2  shows in more details the operation of block  101 . The process performs image segmentation in block  201 . Block  201  applies image segmentation to the original input image and reduces the number of elements that need to be assigned from millions of pixels to only a few hundreds of regions. It also guarantees that the same object label will be adjacent homogenous pixels. This approach not only significantly speeds up the entire process, but also ensures a clean and smooth boundary around the detected objects. 
     The process retrieves one or more image regions in block  202 . Object classification is done for each image region in block  203 . Block  203  computes the assigning probabilities of each region belonging to each object class. This is the basis for label assignment for each region and the goal is to find an assignment so that the overall assigning probability for all regions is maximized. In block  204 , the process assigns probabilities that each region belongs to particular object class. 
       FIG. 3  shows block  102  in more details. First, an initial region label assignment is done in block  301 . Block  301  applies an efficient dynamic programming algorithm to avoid brute-forth search, which guarantees a desirable system speed while maintaining sufficient variety to avoid local optima. Next, top hypotheses of label assignments are provided for each region in block  302 . In block  303 , the object classification is tested on each of the top hypotheses. In block  304 , a final region label assignment is done. 
     The adaptive dynamic programming process is used which takes into account not only regions themselves but also the contextual relationship among regions to significantly reduce the search space. The process searches for truly promising solutions while maintaining sufficient variety to avoid local optima. The system verifies multiple hypotheses of region assignment by examining each hypothesis against a trained multi-class object classifier, which provides an object-level assurance of correct grouping of regions into objects. 
     The system performs object classification, detection and segmentation jointly as an image parsing problem. In this system, each image consists of a set of parts called regions. Each region is a set of pixels grouped based on similarities such as adjacency, color and smoothness. It also encodes information such as shape (where its boundary is) and context (who are neighboring regions). 
     Image parsing is a process to assign object labels to each region so that the most probable interpretation of the input image can be achieved. Once the labels are assigned, regions can be grouped into objects. Classification, detection and segmentation can be achieved simultaneously. 
     By grouping pixels into regions, the system significantly reduces the number of elements that need to be assigned from millions of pixels to only a few hundreds of regions. However, finding the optimal region assignment can still be a formidable problem. Suppose we have N regions and K object classes (plus one background class), there are (K+1) to the power of N possible combinations, which makes a brute-force approach infeasible. 
     One embodiment of the system models an image as set of regions and uses a hypotheses generation algorithm to get possible image parsing solutions for final re-scoring. The hypotheses generation process, called Graph Adaptive Dynamic Programming (GADP), handles large search space efficiently and gives good parsing hypotheses for testing. With such capacity, the system can apply more precise and complex image models to achieve better performance. In addition, our system can perform image segmentation, detection and classification simultaneously. 
     The hierarchical image analysis framework parses any image into three levels of patches to support all the three tasks. At the bottom level, pixels are grouped into super-pixels based on similarities. At the middle level, a graph adaptive dynamic programming is proposed to group super-pixels into structures that we called regions. Finally at the top level, multiple hypotheses of region combination are explored and determined by a multi-class SVM. This unified approach provides the system with object types, object locations and object boundaries at the same time. 
     In one embodiment, to do image parsing, the system groups pixels into regions to reduce the number of processing elements from millions of pixels to only a few hundreds of regions. Then a graph adaptive dynamic programming (GADP) process is applied to generate high-quality parsing hypotheses that satisfy all the three above-mentioned requirements. GADP extends classical DP to optimize with graph structure and to create multiple hypotheses with adjustable variety. 
     GADP takes into account not only regions themselves but also the contextual relationship among regions to significantly reduce the search space. GADP assigns object label to each region and generate multiple hypotheses of region label assignment. GADP is highly efficient and robust because it only searches for truly promising solutions while maintaining sufficient variety to avoid local optima. In this way, the system can incorporate more precise and complex object models to achieve superior performance. In addition, since the system handles the image parsing problem directly, the results can be utilized by the classification, detection and segmentation tasks in an uniform way. 
     In GADP, X=[x 1 , x 2 , . . . x N ] is the set of N image regions and S=[s 1 , s 2 , . . . , s N ] is the state array of the corresponding region. A state space can be specified s i εS={0, 1, . . . , K} where s i =0 indicates the background category, and the rest indicates the K foreground categories. Then the image parsing task strives to find the optimal interpretation Ŝ that maximizes p(S|X). Under the Bayesian framework, 
                     S   =       arg   ⁢       max       S   →     ∈   Ω       ⁢     p   ⁡     (     S   ❘   X     )           =     arg   ⁢       max       S   →     ∈   Ω       ⁢       p   ⁡     (     X   ❘   S     )       ⁢     p   ⁡     (   S   )                 ,           (   1   )               
where p(X|S) specifies the generative likelihood from S to X, and p(S) refers to the prior probability of the states array.
 
     Regions obtained from the low-level modules are converted into a graph in the following way: Each node in the graph represents an image region x i , and two nodes are connected if their corresponding regions are adjacent. Assuming the total number of nodes is N, each node is numbered according to the area of its corresponding region in descending order, i.e., larger region gets smaller index number. Next, the set of nodes connected with node i is denoted as S i , i=1, . . . N. The set is split into two parts, the subset of nodes whose numbers are less than i is denoted as S i   p , and the subset of nodes with numbers larger than i as S i   f . 
     According to chain rule, Eq. (1) expands as: 
     
       
         
           
               
             
               
                 
                   
                     
                       
                         
                           S 
                           = 
                           
                             arg 
                             ⁢ 
                             
                               
                                 max 
                                 
                                   
                                     S 
                                     → 
                                   
                                   ∈ 
                                   Ω 
                                 
                               
                               ⁢ 
                               
                                 
                                   ∏ 
                                   
                                     i 
                                     = 
                                     1 
                                   
                                   N 
                                 
                                 ⁢ 
                                 
                                     
                                 
                                 ⁢ 
                                 
                                   
                                     p 
                                     ⁡ 
                                     
                                       ( 
                                       
                                         
                                           x 
                                           i 
                                         
                                         ❘ 
                                         
                                           s 
                                           i 
                                         
                                       
                                       ) 
                                     
                                   
                                   ⁢ 
                                   
                                     p 
                                     ⁡ 
                                     
                                       ( 
                                       
                                         
                                           
                                             s 
                                             i 
                                           
                                           ❘ 
                                           
                                             s 
                                             1 
                                           
                                         
                                         , 
                                         … 
                                         ⁢ 
                                         
                                             
                                         
                                         , 
                                         
                                           s 
                                           
                                             i 
                                             - 
                                             1 
                                           
                                         
                                       
                                       ) 
                                     
                                   
                                 
                               
                             
                           
                         
                       
                     
                     
                       
                         
                           = 
                           
                             arg 
                             ⁢ 
                             
                               
                                 max 
                                 
                                   
                                     S 
                                     → 
                                   
                                   ∈ 
                                   Ω 
                                 
                               
                               ⁢ 
                               
                                 
                                   ∏ 
                                   
                                     i 
                                     = 
                                     1 
                                   
                                   N 
                                 
                                 ⁢ 
                                 
                                     
                                 
                                 ⁢ 
                                 
                                   
                                     p 
                                     ⁡ 
                                     
                                       ( 
                                       
                                         
                                           x 
                                           i 
                                         
                                         ❘ 
                                         
                                           s 
                                           i 
                                         
                                       
                                       ) 
                                     
                                   
                                   ⁢ 
                                   
                                     p 
                                     ⁡ 
                                     
                                       ( 
                                       
                                         
                                           s 
                                           i 
                                         
                                         ❘ 
                                         
                                           S 
                                           i 
                                           p 
                                         
                                       
                                       ) 
                                     
                                   
                                 
                               
                             
                           
                         
                       
                     
                   
                 
                 
                   
                     ( 
                     2 
                     ) 
                   
                 
               
             
           
         
       
     
     The likelihood p(x i |s i ) forms a K by N matrix, where the m th  column represents the likelihoods of the m th  node given different states. Then, taking the negative log-likelihood
 
ζ( s   i   |S   i   p )=−log( p ( x   i   |s   i ) p ( s   i   |S   i   p ))  (3)
 
as the cost, the optimization aims at minimizing the following overall objective function:
 
     
       
         
           
             
               
                 
                   
                     S 
                     ^ 
                   
                   = 
                   
                     arg 
                     ⁢ 
                     
                       
                         min 
                         
                           S 
                           ∈ 
                           Ω 
                         
                       
                       ⁢ 
                       
                         
                           ∑ 
                           
                             i 
                             = 
                             1 
                           
                           N 
                         
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         
                           ζ 
                           ⁡ 
                           
                             ( 
                             
                               
                                 s 
                                 i 
                               
                               ❘ 
                               
                                 S 
                                 i 
                                 p 
                               
                             
                             ) 
                           
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   4 
                   ) 
                 
               
             
           
         
       
     
     Similar to classic DP, to solve Eq. (4), GADP recursively optimizes a sub-problem from node  1  to m. In each iteration m is increased and the whole process stops when m=N. For each sub-problem, 
                 φ   m     ⁡     (   k   )       =       ∑     i   =   1     m     ⁢           ⁢     ξ   ⁡     (       s   i     =     k   |     S   i   p         )               
represents the cost from node  1  to node m on state k, m=1, . . . , N, the GADP algorithm is illustrated in  FIG. 4 .
 
     As explained above, in addition to generate hypothesis efficiently, the system further requires multiple hypotheses with certain variation between each other to cover enough search space. In order to generate multiple hypotheses with significant difference, GADP is run for several turns. In each turn, the top best path is taken and the likelihood matrix p(x i |s i ) is adaptively updated according to current and all previous paths. By changing p(x i |s i ), GADP has to consider different path to give multiple distinguishing hypotheses in an adjustable way. To illustrate, for each nodes, the likelihood of the currently selected states is set to zero so as to force the DP process to reconsider another path in successive runs. By controlling how many nodes to be changed, the system can adjust the diversity of the solved pathes by GADP. The more nodes being reset, the larger diversity the finally generated hypothesis will be. This strategy significantly improves the quality of generated object hypotheses. 
     The cost function used in Eq. (2) contains two terms. The first term p(x i |s i ) indicates the likelihood of feature vectors given current state, and the second term p(s i |S i   p ) represents the transition probability of current state given the seen state array. The first term is calculated by 
                     p   ⁡     (       x   i     ❘     s   i       )       =         p   ⁡     (       s   i     ❘     x   i       )       ⁢     p   ⁡     (     x   i     )           p   ⁡     (     s   i     )                 (   5   )               
where p(s i |x i ) is a pseudo-posterior obtained by a “region scoring” module.
 
     p(S i |s i ) can be learnt from the training set by simply counting. For example, p(S i =“Same”|s i =“Car”) can be learnt by counting how many times in the training set a region with label “Car” with all surrounding regions having label “Car” also. 
     For the Region Generation module, since pixels in neighboring regions are very alike, it is highly redundant to perform parsing at the pixel level. The module groups similar pixels together to form a region which is the basic processing unit. A commercial software called VectorMagic is used and for an image with size of, this typically generates about 100 regions. 
     The Region Scoring module obtains a probability of every region into one of the predefined categories. The module only considers local observation from each region. A Hierarchical Gaussianization (HG) image representation is used to describe the appearance information of each region. Then a multi-class linear SVM is used to get the possibilities of the region being either of the categories. This becomes the input for the GADP algorithm for hypotheses generation. 
     In the Hypotheses Verification module, hypotheses generated by GADP is tested to get the final parsing result. The system first combines regions with the same hypothesized labels into a single object hypothesis. Then any single object hypothesis or a set of several disjoint hypotheses are re-scored by another multi-class linear SVM. Similar to “Region scoring”, HG representation is used to describe the appearance information of each combination. Finally, the most probably parsing of the image is obtained. 
     It is possible to go one step further than the inter-object level analysis in the “Hypotheses Verification” module. This eventually comes to a “Global level” analysis where the whole image is interpreted together. In this module, the HG representation is again adopted to describe the appearance information of the whole image. Similarly, a third multi-class linear SVM is used to calculate the confidence score of the image being each of the categories. 
     In sum, one implementation hierarchically models an image into regions, proposes multiple region label assignment hypotheses, and scores each hypothesis to obtain the final parsing results. Particularly, to handel the large search space in the hypotheses generating step, the GADP process in used which both is highly efficient and gives good candidates. With such capacity, the framework is able to perform image segmentation, detection and classification simultaneously. Experimental results show that the instant technique achieves high performance in all the three tasks. 
     The invention may be implemented in hardware, firmware or software, or a combination of the three. Preferably the invention is implemented in a computer program executed on a programmable computer having a processor, a data storage system, volatile and non-volatile memory and/or storage elements, at least one input device and at least one output device. 
     By way of example, a computer with digital signal processing capability to support the system is discussed next. In  FIG. 5 , the computer preferably includes a processor, random access memory (RAM), a program memory (preferably a writable read-only memory (ROM) such as a flash ROM) and an input/output (I/O) controller coupled by a CPU bus. The computer may optionally include a hard drive controller which is coupled to a hard disk and CPU bus. Hard disk may be used for storing application programs, such as the present invention, and data. Alternatively, application programs may be stored in RAM or ROM. I/O controller is coupled by means of an I/O bus to an I/O interface. I/O interface receives and transmits data in analog or digital form over communication links such as a serial link, local area network, wireless link, and parallel link. Optionally, a display, a keyboard and a pointing device (mouse) may also be connected to I/O bus. Alternatively, separate connections (separate buses) may be used for I/O interface, display, keyboard and pointing device. Programmable processing system may be preprogrammed or it may be programmed (and reprogrammed) by downloading a program from another source (e.g., a floppy disk, CD-ROM, or another computer). 
     Each computer program is tangibly stored in a machine-readable storage media or device (e.g., program memory or magnetic disk) readable by a general or special purpose programmable computer, for configuring and controlling operation of a computer when the storage media or device is read by the computer to perform the procedures described herein. The inventive system may also be considered to be embodied in a computer-readable storage medium, configured with a computer program, where the storage medium so configured causes a computer to operate in a specific and predefined manner to perform the functions described herein. 
     The invention has been described herein in considerable detail in order to comply with the patent Statutes and to provide those skilled in the art with the information needed to apply the novel principles and to construct and use such specialized components as are required. However, it is to be understood that the invention can be carried out by specifically different equipment and devices, and that various modifications, both as to the equipment details and operating procedures, can be accomplished without departing from the scope of the invention itself.