Patent Publication Number: US-10325068-B2

Title: Methods and apparatus to label radiology images

Description:
RELATED APPLICATION 
     This patent arises as a continuation of U.S. patent Ser. No. 13/928,080, filed on Jun. 26, 2013, which claims the benefit of U.S. Provisional Application Ser. No. 61/728,405, which was filed on Nov. 20, 2012. Priority is claimed to U.S. patent Ser. No. 13/928,080 and U.S. Provisional Application Ser. No. 61/728,405. U.S. patent Ser. No. 13/928,080 and U.S. Provisional Application Ser. No. 61/728,405 are hereby incorporated herein by reference in their entireties. 
    
    
     FIELD OF THE DISCLOSURE 
     This disclosure relates generally to labeling radiology images, and, more particularly, to methods and apparatus to label radiology images. 
     BACKGROUND 
     Spinal images may be obtained and used to diagnosis various spinal diseases. In some examples, these spinal images are manually annotated and/or labeled to identify the different vertebrae and/or disks. In other examples, these spinal images are automatically annotated and/or labeled to identify the different vertebrae and/or disks. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a schematic illustration of an example system to annotate radiology images. 
         FIGS. 2-5  are radiology images in accordance with the teachings of this disclosure being annotated by the example system of  FIG. 1 . 
         FIG. 6  is a flowchart representative of machine readable instructions that may be executed to implement the system of  FIG. 1 . 
         FIG. 7  is a processor platform to execute the instructions of  FIG. 6  to implement the system of  FIG. 1 . 
     
    
    
     Wherever possible, the same reference numbers will be used throughout the drawing(s) and accompanying written description to refer to the same or like parts. 
     DETAILED DESCRIPTION 
     Spinal images may be annotated and/or labeled to assist in analyzing such images and/or diagnosing various spine diseases, etc. However, correctly annotating and/or labeling these images is sometimes difficult because depending on the image being viewed, the number of visible vertebrae and/or discs vary. While these variations occur, some known automated and/or semi-automated spine labeling algorithms assume that regardless of the image being viewed and the actual number of visible vertebrae and/or discs present, the number of visible vertebrae and/or discs is the same. Thus, some known spine labeling algorithms do not accurately annotate and/or label spine images in instances when not all of the vertebrae are/or discs are visible. 
     The examples disclosed herein relate to annotating and/or labeling spine images. To overcome some of the deficiencies encountered with some known annotating and/or labeling methods (e.g., manual or automatic), the examples disclosed herein use an example semi-automated spine annotation algorithm and/or system that annotates and/or re-annotates a spine image based on initial user input and/or subsequent user input received (e.g., feedback on non-validated annotations generated). 
     For example, based on initial user input (e.g., identifying a vertebra), the system can automatically provide first annotations to a spine image and present the spine image including the first annotations for user review. To quickly correct any errors included in the first annotations, the system receives user input and/or feedback with respect to the first annotations. In some examples, the user can provide input (e.g., identify new and/or improperly labeled vertebra and/or candidates) by clicking on a false positive, a false negative, a non-labeled and/or mislabeled vertebra and/or disc, etc. In response to the input and/or feedback received, the system takes into account the user input (e.g., new candidates for labeling based on user input, user identified vertebra and/or disc) and the known spatial organization of the vertebra and automatically provides second annotates and/or labels to the spine image for user review (e.g., the system re-annotates the spine image). The second annotations may correct at least one error present in the first annotations based on the user feedback received. In some examples, the user input and/or feedback is independent of the example annotation algorithm. In some examples, the system iterates and/or alternates between automatically annotating and/or labeling the spine image and receiving user input and/or feedback until the user validates the annotations and/or labels generated. 
       FIG. 1  depicts an example system  100  for annotating images such as spinal images. In some examples, the system  100  includes a computer  102  and an annotator  104  communicatively coupled to the computer  102 . In this example, the computer  102  includes a user interface  106  and a data input (e.g., a keyboard, mouse, microphone, etc.)  108  and the annotator  104  includes a processor  110  and a database  112 . 
     In some examples, the user interface  106  displays data such as images (e.g., spinal images, radiology images, etc.) and/or annotated images received from the annotator  104 . In some examples, the user interface  106  receives commands and/or input from a user  114  via the data input  108 . For example, in examples in which the system  100  is used to annotate spinal images, the user interface  106  displays a spinal image(s) and/or an annotated spinal image(s) and the user  114  provide(s) an initial input identifying, for example, a location of a vertebra on the spinal image(s) and/or provides subsequent input identifying, for example, an error in the annotations generated on the spinal image. 
     In some examples, after the user interface  106  displays a spinal image (e.g., a T1-weighted MRI image, a non-annotated spinal image), the user  114  may select and/or identify a vertebra ( FIG. 2, 202 ) using the data input  108  and, in response to receiving this user input, the annotator  104  uses the first user input to generate first annotations ( FIG. 3, 302 ) on the spinal image ( FIG. 3, 303 ). While the annotator  104  can generate annotations using any suitable labeling algorithm, in some examples, the annotator  104  generates the first annotations  302  from an initial set of spatially ordered points, x 1   0 , . . . x N   0 , where N=6 and x N−1   0  corresponds to the L1 vertebra, x N−2   0  corresponds to the L2 vertebra, etc. 
     Additionally or alternatively, in some examples, the annotator  104  generates the first annotations  302  by automatically detecting connected regions of the spinal image that are consistent with an image context of the vertebrae and selecting N—points on the spinal image that follow and/or befit the shape of the spine. In some examples, the annotator  104  automatically detects the connected regions by using data stored in the database  112  such as contextual information about spines, vertebrae and/or neighboring structures and/or other optimization and/or statistical modeling techniques (e.g., by interpolating based on statistical data and/or models), etc.). 
     In some examples, the connected regions may be detected by generating and/or building contextual-information features, statistical modeling the contextual information within the vertebrae and/or finding the centroids of all connected-component regions whose contextual features are consistent with the statistical model. In some examples, the contextual-information features are generated and/or built by generating a feature vector, F(p), for each point, p, in the image domain. For example, for each point, p, a 3-dimentional feature vector, F(p)=(F 1 , F 2 , F 3 ), may be built, where F 1  is the mean intensity within a 3×10 rectangularly-shaped, vertically-oriented patch centered at point, p, F 2  is the mean intensity within a 10×3 rectangularly-shaped, horizontally-oriented patch centered at point, p and F 3  corresponds to the intensity of a pixel, p. 
     In some examples, the feature vector contains image statistics within several box-shaped image patches of different orientations and/or scales. Such patch-based features may encode contextual information about the vertebrae and/or neighboring structures (e.g., size, shape, orientation, relationships to neighboring structures, etc.). 
     In some examples, the contextual information within the vertebrae may be statistically modeled by building a multi-dimensional model distribution using all the feature vectors, F (p), within a circle and/or space centered at and/or around the first user input (e.g., the one-click user input). 
     In some examples, the centroids of all connected-component regions whose contextual features are consistent with the statistical model are determined by optimizing a cost function containing two constraints. In this example, the first constraint is based on a Bhattacharyya measure of similarity between feature distributions. In some examples, the first constraint substantially ensures the obtained and/or identified spinal regions are consistent with the statistical model. In this example, the second constraint is a smoothness constraint that removes small and isolated regions caused by imaging noise. In some examples, the second constraint substantially ensures that the surfaces are smooth. In some examples, K—regions of the spinal image are obtained and [z 1 , . . . , z K ] are the centroids of these regions. 
     In some examples, N—points that follow and/or befit the shape of the spine may be selected using Equation 1 and/or by choosing N—points out of all possible combinations of N—points in the set of determined centroids, [z 1 , . . . , z K ]. Referring to Equation 1, V i  is the vector pointing from x i  to x i+1 , I=I, . . . N−1, where V i =x i+1 −x i . 
     
       
         
           
             
               
                 
                   
                     [ 
                     
                       
                         
                           x 
                           ^ 
                         
                         1 
                       
                       , 
                       … 
                       ⁢ 
                       
                           
                       
                       , 
                       
                         
                           x 
                           ^ 
                         
                         N 
                       
                     
                     ] 
                   
                   = 
                   
                     
                       
                         max 
                         
                           
                             [ 
                             
                               
                                 x 
                                 1 
                               
                               , 
                               
                                 … 
                                 ⁢ 
                                 
                                     
                                 
                                 ⁢ 
                                 
                                   x 
                                   
                                     1 
                                     ⁢ 
                                     N 
                                   
                                 
                               
                             
                             ] 
                           
                           ⋐ 
                           
                             [ 
                             
                               
                                 z 
                                 1 
                               
                               , 
                               
                                 … 
                                 ⁢ 
                                 
                                     
                                 
                                 ⁢ 
                                 
                                   z 
                                   K 
                                 
                               
                             
                             ] 
                           
                         
                       
                       ⁢ 
                       
                         
                           ∑ 
                           
                             i 
                             = 
                             1 
                           
                           
                             N 
                             - 
                             1 
                           
                         
                         ⁢ 
                         
                           cos 
                           ⁡ 
                           
                             ( 
                             
                               
                                 V 
                                 i 
                               
                               , 
                               
                                 V 
                                 
                                   i 
                                   + 
                                   1 
                                 
                               
                             
                             ) 
                           
                         
                       
                     
                     + 
                     
                       
                         ∑ 
                         
                           i 
                           = 
                           1 
                         
                         
                           N 
                           - 
                           1 
                         
                       
                       ⁢ 
                       
                         min 
                         ⁡ 
                         
                           ( 
                           
                             
                               
                                  
                                 
                                   V 
                                   i 
                                 
                                  
                               
                               
                                  
                                 
                                   V 
                                   
                                     i 
                                     + 
                                     1 
                                   
                                 
                                  
                               
                             
                             , 
                             
                               
                                  
                                 
                                   V 
                                   
                                     i 
                                     + 
                                     1 
                                   
                                 
                                  
                               
                               
                                  
                                 
                                   V 
                                   i 
                                 
                                  
                               
                             
                           
                           ) 
                         
                       
                     
                   
                 
               
               
                 
                   Equation 
                   ⁢ 
                   
                       
                   
                   ⁢ 
                   1 
                 
               
             
           
         
       
     
     As shown in  FIG. 3 , some of the first annotations  302  generated may contain errors. For example, the first annotations  302  failed to label the L3 vertebra  304  (e.g., a false negative), the first annotations  302  labeled the L5 vertebra  306  as both L4 and L5 (false positive) and the first annotations  302  incorrectly labeled the L4 vertebra  308  as the L3 vertebra (incorrect label). 
     In response to reviewing the first annotations  302 , the user  114  may use the input device  108  to identify one of the errors present within the first annotations  302  (e.g., a single-click correction, second user input, subsequent user input). For example, as shown in  FIG. 4 , the user  114  identifies and/or selects the L3 vertebra  304 , which the first annotations  302  failed to label. In some examples, the annotator  104  may receive the second user input and generate second annotations  402  based on a new set of spatially ordered points, as shown in Equation 2, where x new   i  corresponds to the coordinate vector of the new point entered by the user  114  (second user input, new candidate). In some examples, Equation 2 is solved for by choosing N points [{circumflex over (x)} 1 , . . . , {circumflex over (x)} N ] out of the N+1 points in P i  by enforcing Equations 2, 3, 4.
 
 P   i =[ x   n   i   , . . . , x   N   i   , x   new   i ]  Equation 2
 
     Referring to Equation 3, [{circumflex over (x)} 1 , . . . , {circumflex over (x)} N ] maximizes the shape-based criterion over all possible combinations of N points [x 1 , . . . , x N ] in P i  where x new   i  ∈ [{circumflex over (x)} 1 , . . . , {circumflex over (x)} N ] ensures that the solution of Equation 3 contains the second user input. Thus, in response to receiving the second user input, the annotator  104  reassigns the labels and/or annotations  304 ,  306 ,  308  by taking into account the second user input (e.g., new candidates and/or identified vertebra) and/or the known spatial organization of the vertebrae. As shown in Equation 3, Σ k=1   N−1 (cos V k , V k+1 ) is an angle constraint and 
               ∑     k   =   1       N   -   1       ⁢     min   ⁡     (              V   k                 V     k   +   1              ,            V     k   +   1                   V   k              )             
is a distance constraint. In some examples, the angle constraint substantially ensures that each neighboring vertebrae [x k , x k+1 , x x+2 ] is almost and/or substantially aligned and the distance constraint substantially ensures that the distances between neighboring vertebrae are approximately the same.
 
     
       
         
           
             
               
                 
                   
                     [ 
                     
                       
                         
                           x 
                           ^ 
                         
                         1 
                       
                       , 
                       … 
                       ⁢ 
                       
                           
                       
                       , 
                       
                         
                           x 
                           ^ 
                         
                         N 
                       
                     
                     ] 
                   
                   = 
                   
                     
                       
                         max 
                         
                           
                             [ 
                             
                               
                                 
                                   x 
                                   ^ 
                                 
                                 1 
                               
                               , 
                               … 
                               , 
                               
                                   
                               
                               ⁢ 
                               
                                 
                                   x 
                                   ^ 
                                 
                                 N 
                               
                             
                             ] 
                           
                           ⋐ 
                           
                             P 
                             i 
                           
                         
                       
                       ⁢ 
                       
                         
                           ∑ 
                           
                             k 
                             = 
                             1 
                           
                           
                             N 
                             - 
                             1 
                           
                         
                         ⁢ 
                         
                           cos 
                           ⁡ 
                           
                             ( 
                             
                               
                                 V 
                                 k 
                               
                               , 
                               
                                 V 
                                 
                                   k 
                                   + 
                                   1 
                                 
                               
                             
                             ) 
                           
                         
                       
                     
                     + 
                     
                       
                         ∑ 
                         
                           k 
                           = 
                           1 
                         
                         
                           N 
                           - 
                           1 
                         
                       
                       ⁢ 
                       
                         min 
                         ⁡ 
                         
                           ( 
                           
                             
                               
                                  
                                 
                                   V 
                                   k 
                                 
                                  
                               
                               
                                  
                                 
                                   V 
                                   
                                     k 
                                     + 
                                     1 
                                   
                                 
                                  
                               
                             
                             , 
                             
                               
                                  
                                 
                                   V 
                                   
                                     k 
                                     + 
                                     1 
                                   
                                 
                                  
                               
                               
                                  
                                 
                                   V 
                                   k 
                                 
                                  
                               
                             
                           
                           ) 
                         
                       
                     
                   
                 
               
               
                 
                   Equation 
                   ⁢ 
                   
                       
                   
                   ⁢ 
                   3 
                 
               
             
           
         
       
     
     Equation 4 describes vector pointing for x k  to x k+1 , V k , where k=1, . . . , N−1.
 
 V   k   =x   k+1   −x   k   Equation 4
 
     As shown in  FIG. 4 , the second annotations  402  may be displayed via the user interface  106  for user review. In response to reviewing the second annotations  402 , the user  114  may validate the second annotations  402  as being accurate or identify an additional error present within the second annotations  402  (e.g., a single-click correction, third user input, subsequent user input). If the user  114  identifies another error, the loop identified by Equation 5 is repeated until the user  114  validates the annotations.
 
 i→i+ 1: and [ x   1   i   , . . . , x   N   i ]→[ {circumflex over (x)}   1   , . . . , {circumflex over (x)}   N ]  Equation 5
 
     If the user  114  validates the second annotations  402 , the annotator  104  automatically completes the labeling of the remaining vertebrae, if any, using information from the N—vertebra labeling from Equation 3. In some examples, [{circumflex over (x)} 1 , . . . , {circumflex over (x)} N ] is set to the corrected N—vertebra labeling (e.g., the vertebrae identified including the initial and subsequent user input) and the annotator  104  solves for and/or iterates Equation 6 for j−1, 2, . . . if points 2x N+j−1  and x N+j−2 exist.
 
 x   N+j =2 x   N+j−1   −x   N+j−2   Equation 6
 
     In some examples, if x N+j  falls within a spatial image domain, the annotator  104  assigns a label to x N+j+2 . For example, if N=6, x N+1 →T11 for j=1, x N+2 →T10 for j=2, x N+3 →T9 for j=3, etc. However, if x N+j  does not fall within the spatial image domain, the annotator  104  exits the loop of Equation 6. 
     In some examples, once the vertebrae are annotated and/or labeled, the annotator  104  annotates the discs 502 of the spinal image using the second annotations  402  and/or the annotations determined using Equation 6 above. In some examples, [x 1 , . . . , x M ] corresponds to the completed M—vertebra labeling determined using Equation 5, where M≥N. In some examples, Equations 7 and 8 may be used to determine the coordinates of the M—discs, where disc labels are assigned to [y 0 , y 1 , . . . , y M−1 ] to account for the spatial ordering of the spine discs: 
     
       
         
           
             
               
                 y 
                 0 
               
               -&gt; 
               
                 
                   S 
                   ⁢ 
                   
                       
                   
                   ⁢ 
                   1 
                 
                 
                   L 
                   ⁢ 
                   
                       
                   
                   ⁢ 
                   5 
                 
               
             
             , 
             
               
                 y 
                 1 
               
               -&gt; 
               
                 
                   L 
                   ⁢ 
                   
                       
                   
                   ⁢ 
                   5 
                 
                 
                   L 
                   ⁢ 
                   
                       
                   
                   ⁢ 
                   4 
                 
               
             
             , 
             
               
                 y 
                 2 
               
               -&gt; 
               
                 
                   
                     L 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     4 
                   
                   
                     L 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     3 
                   
                 
                 . 
               
             
           
         
       
     
     
       
         
           
             
               
                 
                   
                     
                       y 
                       i 
                     
                     = 
                     
                       
                         
                           
                             x 
                             i 
                           
                           + 
                           
                             x 
                             
                               i 
                               + 
                               1 
                             
                           
                         
                         2 
                       
                       ⁢ 
                       
                         ∀ 
                         
                           i 
                           ∈ 
                           
                             [ 
                             
                               1 
                               , 
                               … 
                               ⁢ 
                               
                                   
                               
                               , 
                               
                                 M 
                                 - 
                                 1 
                               
                             
                             ] 
                           
                         
                       
                     
                   
                   , 
                   and 
                 
               
               
                 
                   Equation 
                   ⁢ 
                   
                       
                   
                   ⁢ 
                   7 
                 
               
             
             
               
                 
                   
                     y 
                     o 
                   
                   = 
                   
                     
                       
                         3 
                         ⁢ 
                         
                           x 
                           1 
                         
                       
                       2 
                     
                     - 
                     
                       
                         x 
                         2 
                       
                       2 
                     
                   
                 
               
               
                 
                   Equation 
                   ⁢ 
                   
                       
                   
                   ⁢ 
                   8 
                 
               
             
           
         
       
     
       FIG. 6  depicts a manner of implementing the system  100  of  FIG. 1 . While an example manner of implementing the system of  FIG. 1  has been illustrated in  FIG. 6 , one or more of the elements, processes and/or devices illustrated in  FIG. 6  may be combined, divided, re-arranged, omitted, eliminated and/or implemented in any other way. Further, the example annotator  104 , the example processor  110 , the example computer  102  and/or, more generally, the example flowchart of  FIG. 6  may be implemented by hardware, software, firmware and/or any combination of hardware, software and/or firmware. Thus, for example, any of the example annotator  104 , the example processor  110 , the example computer  102  and/or, more generally, the example flowchart of  FIG. 6  could be implemented by one or more circuit(s), programmable processor(s), application specific integrated circuit(s) (ASIC(s)), programmable logic device(s) (PLD(s)) and/or field programmable logic device(s) (FPLD(s)), etc. When any of the apparatus or system claims of this patent are read to cover a purely software and/or firmware implementation, at least one of the example annotator  104 , the example processor  110  and/or the example computer  102  are hereby expressly defined to include a tangible computer readable medium such as a memory, DVD, CD, Blu-ray, etc. storing the software and/or firmware. Further still, the example flowchart of  FIG. 6  may include one or more elements, processes and/or devices in addition to, or instead of, those illustrated in  FIG. 6 , and/or may include more than one of any or all of the illustrated elements, processes and devices. 
     A flowchart representative of example machine readable instructions for implementing the system  100  of  FIG. 1  is shown in  FIG. 6 . In this example, the machine readable instructions comprise a program for execution by a processor such as the processor  712  shown in the example computer  700  discussed below in connection with  FIG. 7 . The program may be embodied in software stored on a tangible computer readable medium such as a CD-ROM, a floppy disk, a hard drive, a digital versatile disk (DVD), a Blu-ray disk, or a memory associated with the processor  712 , but the entire program and/or parts thereof could alternatively be executed by a device other than the processor  712  and/or embodied in firmware or dedicated hardware. Further, although the example program is described with reference to the flowchart illustrated in  FIG. 6 , many other methods of implementing the example system  100  may alternatively be used. For example, the order of execution of the blocks may be changed, and/or some of the blocks described may be changed, eliminated, or combined. 
     As mentioned above, the example processes of  FIG. 6  may be implemented using coded instructions (e.g., computer readable instructions) stored on a tangible computer readable medium such as a hard disk drive, a flash memory, a read-only memory (ROM), a compact disk (CD), a digital versatile disk (DVD), a cache, a random-access memory (RAM) and/or any other storage media in which information is stored for any duration (e.g., for extended time periods, permanently, brief instances, for temporarily buffering, and/or for caching of the information). As used herein, the term tangible computer readable medium is expressly defined to include any type of computer readable storage and to exclude propagating signals. Additionally or alternatively, the example processes of  FIG. 6  may be implemented using coded instructions (e.g., computer readable instructions) stored on a non-transitory computer readable medium such as a hard disk drive, a flash memory, a read-only memory, a compact disk, a digital versatile disk, a cache, a random-access memory and/or any other storage media in which information is stored for any duration (e.g., for extended time periods, permanently, brief instances, for temporarily buffering, and/or for caching of the information). As used herein, the term non-transitory computer readable medium is expressly defined to include any type of computer readable medium and to exclude propagating signals. As used herein, when the phrase “at least” is used as the transition term in a preamble of a claim, it is open-ended in the same manner as the term “comprising” is open ended. Thus, a claim using “at least” as the transition term in its preamble may include elements in addition to those expressly recited in the claim. 
     The program of  FIG. 6  begins at block  602  where the computer  102  receives, via the data input  108 , initial input on a spine image displayed at the user interface  106  and/or stored in the database  112  (block  602 ). In some examples, the initial input is associated with the user  114  clicking on a vertebra of the displayed spinal image and/or labeling it manually. For example, if the L5 vertebra may be clicked (e.g., one-click, single click), identified and/or labeled by the user. In some examples, the initial user input identifying a feature and/or vertebra on the spinal image assists and/or enables the example and/or selected automated and/or semi-automated annotating algorithm to annotate and/or label the remaining vertebrae and/or discs. In some examples, the examples disclosed herein can be employed with various annotating algorithms and/or software. 
     At block  604 , the annotator  104  generates initial spinal labeling results and/or annotations using the example and/or selected automated and/or semi-automated annotating algorithm (block  404 ). For example, based on the initial user input of identifying the L5 vertebra, the annotator  104  labels the L1 vertebra, the L2 vertebra, the L3 vertebra, etc. and these first annotations may be displayed at the user interface  106  for user review. 
     At block  606 , the user  114  reviews the first annotations and the computer  102  prompts the user regarding the validity of the first annotations and/or receives a decision of whether the first annotations are valid (block  606 ). If the first annotation are not validated (e.g., there is at least one error present in the first annotations), the computer  102  may receive second user input relating to the error in the generated annotations (block  608 ). In some examples, the second user input identifies a false positive in the first annotations, a false negative in the first annotations and/or an incorrect label in the first annotations. In some examples, a false positive occurs when the annotator  104  detects a vertebra where none exists. In some examples, a false negative occurs when the annotator  104  fails to detect a vertebra. In some examples, an incorrect labeling occurs when a target vertebra is detected but assigned an incorrect label. In some examples, the user  114  identifies an error in the first annotations via a single-click correction using the data input  108 . For example, if the first annotations fail to and/or incorrectly label the L3 vertebra, the user  114  can click on the L3 vertebra and/or enter a correct label for the L3 vertebra. 
     At block  610 , second annotations are generated in response to receiving the second user input (block  610 ). In some examples, in response to receiving the user input, the annotator  104  automatically selects a new set of candidates (e.g., possible vertebra) and/or points on the spinal image that better fit the shape of the spine. The new set of candidates and/or points includes the initial user input, the subsequent user input, point input and/or identified by the user  114 . For example, based on subsequent user input received identifying a false positive, the annotator  104  removes the point associated with the falsely identified point from the set of points. In some examples, when selecting a new set of candidates, points and/or possible vertebrae, the annotator  104  uses shape-based criterion having angel and distance constraints. In some examples, the angle constraint substantially ensures that each three neighboring vertebrae is almost and/or substantially aligned. In some examples, the distance constraint substantially ensures that the distance between neighboring vertebrae is substantially and/or approximately the same. In some examples, the annotator  104  uses the constraints, the subsequent user input (e.g., the newly identified point and/or candidate) and/or known spatial organization of the vertebrae (e.g., L1 is below T12, L2 is L1, etc.) to generate the second annotations that are more accurate than and/or remove at least one error present in the first annotations. In some examples, blocks  606 ,  608  and  610  are repeated and/or iterated until the user  114  validates the annotations generated and/or displayed. 
     At block  612 , the annotator  104  finalizes the annotations (block  612 ). For example, the annotator  104  annotates any non-labeled vertebrae using information obtained and/or associated with generating the second annotations. In some examples, any remaining vertebrae are annotated using point coordinates for labeled vertebrae and, if the coordinates fall within a spatial image domain, the annotator  104  assigns annotations and/or labels based on the coordinates. Additionally or alternatively, the annotator  104  finalizes the annotations by annotating the discs between the vertebrae. In some examples, the discs are annotated by determining the coordinates of the discs based on the coordinates and/or annotated vertebrae and assigning labels to the discs based on the spatial ordering of the spine discs. In some examples, the annotated spine including vertebrae and disc labels is displayed to the user  114  using the user interface  106  and/or saved in the database  112  (block  614 ). 
       FIG. 7  is a block diagram of an example computer  700  capable of executing the instructions of  FIG. 6  to implement the system of  FIG. 1 . The computer  700  can be, for example, a server, a personal computer, a mobile phone (e.g., a cell phone), a personal digital assistant (PDA), an Internet appliance or any other type of computing device. 
     The computer  700  of the instant example includes a processor  712 . For example, the processor  712  can be implemented by one or more microprocessors or controllers from any desired family or manufacturer. 
     The processor  712  includes a local memory  713  (e.g., a cache) and is in communication with a main memory including a volatile memory  714  and a non-volatile memory  716  via a bus  718 . The volatile memory  714  may be implemented by Synchronous Dynamic Random Access Memory (SDRAM), Dynamic Random Access Memory (DRAM), RAMBUS Dynamic Random Access Memory (RDRAM) and/or any other type of random access memory device. The non-volatile memory  716  may be implemented by flash memory and/or any other desired type of memory device. Access to the main memory  714 ,  716  is controlled by a memory controller. 
     The computer  700  also includes an interface circuit  720 . The interface circuit  720  may be implemented by any type of interface standard, such as an Ethernet interface, a universal serial bus (USB), and/or a PCI express interface. 
     One or more input devices  722  are connected to the interface circuit  720 . The input device(s)  722  permit a user to enter data and commands into the processor  712 . The input device(s) can be implemented by, for example, a keyboard, a mouse, a touchscreen, a track-pad, a trackball, isopoint and/or a voice recognition system. 
     One or more output devices  724  are also connected to the interface circuit  720 . The output devices  724  can be implemented, for example, by display devices (e.g., a liquid crystal display and/or a cathode ray tube display (CRT)). The interface circuit  720 , thus, typically includes a graphics driver card. 
     The interface circuit  720  also includes a communication device (e.g., communication device  56 ) such as a modem or network interface card to facilitate exchange of data with external computers via a network  726  (e.g., an Ethernet connection, a digital subscriber line (DSL), a telephone line, coaxial cable, a cellular telephone system, etc.). 
     The computer  700  also includes one or more mass storage devices  728  for storing software and data. Examples of such mass storage devices  728  include floppy disk drives, hard drive disks, compact disk drives and digital versatile disk (DVD) drives. The mass storage device  728  may implement the local storage device  762 . 
     The coded instructions  732  of  FIG. 6  may be stored in the mass storage device  728 , in the volatile memory  714 , in the non-volatile memory  716 , and/or on a removable storage medium such as a CD or DVD. 
     From the foregoing, it will appreciate that the above disclosed methods and apparatus provide an interactive protocol that enables fast and user-friendly corrections and/or visualizations of spine annotations and/or substantially guarantees correct results in substantially all clinical scenarios. The above disclosed methods and apparatus enable annotations to be rapidly corrected independent of the choice of a labeling algorithm and/or any associated software. 
     An example computer-implement method disclosed herein includes generating first annotations on a spinal image. The computer implemented method also includes receiving first user input from a user on the first annotations identifying an error within the first annotations. In response to receiving the first user input, the computer implemented method also includes generating second annotations on the spinal image. The second annotations are to correct the error present within the first annotations. 
     In some examples, generating the first and second annotations is independent of the first input received. 
     In some examples, the computer implemented method also includes receiving second user input from the user validating the second annotations. In some examples, in response to the user validating the second annotations, the computer implemented method also includes generating third annotations. In some examples, the third annotations include vertebra labels and disc labels. 
     In some examples, the annotations include vertebrae labels. 
     In some examples, the first annotations are generated in response to receiving initial user input from the user identifying a vertebra on the spinal image. 
     In some examples, the first annotations are generated based on first spatially ordered points and the second annotations are generated based on second spatially ordered points. In some examples, the second spatially ordered points account for the first user input. 
     In some examples, the first annotations are generated based on an optimization model, a statistical model, or contextual information associated with a spine or vertebrae. 
     In some examples, generating the second annotations includes reassigning a label of a vertebra labeled by the first annotations. 
     An example computer readable storage medium disclosed herein includes computer program code to be executed by a processor. The computer program code, when executed, is to implement a method to annotate a spinal image. The method includes generating first annotations on a spinal image. The method also includes receiving first user input from a user on the first annotations to identifying an error within the first annotations. In response to receiving the first user input, the method also includes generating second annotations on the spinal image. The second annotations are to correct the error present within the first annotations. 
     In some examples, generating the first and second annotations is independent of the first input received. 
     In some examples, the method also includes receiving second user input from the user validating the second annotations. In some examples, in response to the user validating the second annotations, the method also includes generating third annotations. In some examples, the third annotations include vertebra labels and disc labels. 
     In some examples, the annotations include vertebrae labels. In some examples, the first annotations are generated based on first spatially ordered points and the second annotations are generated based on second spatially ordered points. The second spatially ordered points account for the first user input. 
     An example system disclosed herein includes a processor. In response to receiving a first user input via a data input, the processor is to generate first annotations on a spinal image. The processor is to also cause the spinal image having the first annotations to be displayed at a user interface. The processor is to also prompt a user to provide second user input identifying an error in the first annotations. In response to receiving the second user input, the processor is to also generate second annotations on the spinal image. The second annotations are to correct the error in the first annotations. 
     In some examples, the processor is to also cause the spinal image having the second annotations to be displayed at the user interface and to prompt the user to provide third user input. In some examples, the third user input validates the second annotations or identifies an error in the second annotations. 
     An example computer-implemented method disclosed herein includes a) obtaining user input identifying a point corresponding to a vertebra on a spinal image. In response to the user input, the computer-implemented method also includes b) using the user input to determine a number of viewable vertebrae on the spinal image. The computer-implemented method also includes c) identifying points on the spinal image corresponding to respective vertebrae based on the determined number of viewable vertebrae. The computer-implemented method also includes d) generating annotations on the spinal image corresponding to each of the determined number of viewable vertebrae. The annotations anatomically label and distinguish between two or more immediately adjacent vertebrae on the spinal image using contextual-information feature vectors. The contextual-information feature vectors encode the identified points with information of at least one of size, shape, orientation, or relationships to neighboring structures. The computer-implemented method also includes e) receiving a first subsequent user input on the previously generated annotations identifying a point corresponding to an error within the previously generated annotations. In response to receiving the first subsequent user input, the computer-implemented method also includes f) updating the identified points and contextual-information feature vectors for the updated identified points, automatically generating subsequent annotations on the spinal image using the updated contextual-information feature vectors. The subsequent annotations correcting the error present within the previously generated annotations. The computer-implemented method also includes g) receiving a second subsequent user input. When the second subsequent user input identifies an error within the previously generated annotations, the computer-implemented method also includes repeating e)-g). When the received second subsequent user input does not identify an error within the previously generated annotations, the computer-implemented method also includes validating the previously generated annotations in association with the spinal image, and storing in a database the previously generated annotations in association with the spinal image. 
     In some examples, generating the annotations and the subsequent annotations is independent of the first subsequent user input received. 
     In some examples, the computer-implemented method also includes receiving the second subsequent user input from the user validating the previously generated annotations. In some examples, in response to validating the previously generated annotations, the computer-implemented method also includes generating second subsequent annotations. The second subsequent annotations include vertebra labels and disc labels. 
     In some examples, the annotations include vertebra labels. 
     In some examples, the annotations are generated based on first spatially ordered points and the subsequent annotations are generated based on second spatially ordered points. The second spatially ordered points account for the first subsequent user input. 
     In some examples, the annotations are generated based on an optimization model, a statistical model, or contextual information associated with a spine or vertebrae. 
     In some examples, generating the subsequent annotations includes reassigning a label of a vertebra labeled by the annotations. 
     In some examples, prior to the obtaining of the user input, no vertebrae are identified on the spinal image, and no annotation suggestion is provided. 
     A non-transitory computer readable storage medium disclosed herein includes computer program code to be executed by a processor. The computer program code, when executed, is to implement a method to annotate a spinal image. The method includes a) obtaining user input identifying a point corresponding to a vertebra on a spinal image. In response to the user input, the method also includes b) using the user input to determine a number of viewable vertebrae on the spinal image. The method also includes c) identifying points on the spinal image corresponding to respective vertebrae based on the determined number of viewable vertebrae. The method also includes d) generating annotations on the spinal image corresponding to each of the determined number of viewable vertebrae. The annotations anatomically label and distinguish between two or more immediately adjacent vertebrae on the spinal image using contextual-information feature vectors. The contextual-information feature vectors encode the identified points with information of at least one of size, shape, orientation, or relationships to neighboring structures. The method also includes e) receiving a first subsequent user input on the previously generated annotations identifying a point corresponding to an error within the previously generated annotations. In response to receiving the first subsequent user input, the method also includes f) updating the identified points and contextual-information feature vectors for the updated identified points, automatically generating subsequent annotations on the spinal image using the updated contextual-information feature vectors. The subsequent annotations correcting the error present within the previously generated annotations. The method also includes g) receiving a second subsequent user input. When the second subsequent user input identifies an error within the previously generated annotations, the method also includes repeating e)-g). When the received second subsequent user input does not identify an error within the previously generated annotations, the method also includes validating the previously generated annotations in association with the spinal image, and storing in a database the previously generated annotations in association with the spinal image. 
     In some examples, generating the annotations and the subsequent annotations is independent of the first subsequent user input received. 
     In some examples, the method also includes receiving the second subsequent user input from the user validating the previously generated annotations. In some examples, in response to validating the previously generated annotations, the method also includes generating second subsequent annotations. In some examples, the second subsequent annotations include vertebra labels and disc labels. 
     In some examples, the annotations include vertebrae labels. 
     In some examples, the annotations are generated based on first spatially ordered points and the subsequent annotations are generated based on second spatially ordered points. The second spatially ordered points account for the first subsequent user input. 
     A system disclosed herein includes a processor to a) obtain a user input, via a data input, identifying a point corresponding to a vertebra on a spinal image. In response to the user input, the processor is to also b) use the user input to determine a number of viewable vertebrae on the spinal image. The processor is to also c) identify points on the spinal image corresponding to respective vertebrae based on the determined number of viewable vertebrae. The processor is to also d) generate annotations on the spinal image corresponding to each of the determined number of viewable vertebrae. The annotations anatomically label and distinguish between two or more immediately adjacent vertebrae on the spinal image using contextual-information feature vectors. The contextual-information feature vectors encode the identified points with information of at least one of size, shape, orientation, or relationships to neighboring structures. The processor is to also e) to cause the spinal image having the annotations to be displayed at a user interface. The processor is to also prompt a user to provide first subsequent user input identifying a point corresponding to an error in the previously generated annotations. In response to receiving the first subsequent user input, the processor is also to f) update the identified points and contextual-information feature vectors for the updated identified points. The processor is also to automatically generate subsequent annotations on the spinal image using the updated contextual-information feature vectors in response to receiving the first subsequent user input. The subsequent annotations to correct the error in the previously generated annotations. The processor is to also g) receive second subsequent user input. When the second subsequent user input identifies an error within the previously generated annotations, the processor is to also repeat e)-g). When the second subsequent user input does not identify an error within the previously generated annotations, the processor is to also validate the previously generated annotations in association with the spinal image, and cause the previously generated annotations to be stored in a database in association with the spinal image. 
     In some examples, the processor is to also cause the spinal image having the subsequent annotations to be displayed at the user interface and to prompt the user to provide second subsequent user input. 
     It is noted that this patent claims priority from U.S. Provisional Application Ser. No. 61/728,405, which was filed on Nov. 20, 2012, and is hereby incorporated herein by reference in its entirety. It is noted that this patent claims priority to U.S. patent Ser. No. 13/928,080, filed on Jun. 26, 2013 and is hereby incorporated herein by reference in its entirety. 
     Although certain example methods, apparatus and articles of manufacture have been described herein, the scope of coverage of this patent is not limited thereto. On the contrary, this patent covers all methods, apparatus and articles of manufacture fairly falling within the scope of the claims of this patent.