# Patent

## Title
Methods and systems for identifying text orientation in a digital image

## Abstract

Aspects of the present invention relate to systems and methods for determining text orientation in a digital image.

## Background
FIELD OF THE INVENTION
Embodiments of the present invention comprise methods and systems for determining text orientation in a digital image.
BACKGROUND
Page orientation in an electronic document may not correspond to page orientation in the original document, referred to as the nominal page orientation, due to factors which may comprise scan direction, orientation of the original document on the scanner platen and other factors. The discrepancy between the page orientation in the electronic document and the nominal page orientation may lead to an undesirable, an unexpected, a less than optimal or an otherwise unsatisfactory outcome when processing the electronic document. For example, the difference in orientation may result in an undesirable outcome when a finishing operation is applied to a printed version of the electronic document. Exemplary finishing operations may comprise binding, stapling and other operations. Furthermore, in order to perform at an acceptable level of accuracy, some image processing operations, for example optical character recognition (OCR), may require specifically orientated input data. Additionally, if the page orientation of an electronic document is unknown relative to the nominal page orientation, proper orientation for display on a viewing device, for example a computer monitor, handheld display and other display devices, may not be achieved.
SUMMARY
Some embodiments of the present invention comprise methods and systems for determining text orientation in a digital image. In some embodiments of the present invention, the orientation of a line of text in a digital image may be determined. Alignment features relative to a first side and a second side of the line of text may be calculated, and the orientation of the text in the text line may be determined based on the alignment features and the relative frequency of text characters with descenders and text characters with ascenders in the written text of a particular language or group of languages.
The foregoing and other objectives, features, and advantages of the invention will be more readily understood upon consideration of the following detailed description of the invention taken in conjunction with the accompanying drawings.



BRIEF DESCRIPTION OF THE SEVERAL DRAWINGS
FIG. 1A is a drawing showing a descenders and ascenders in an exemplary text line;
FIG. 1B is a drawing showing an exemplary line of Cyrillic text characters;
FIG. 1C is a drawing showing an exemplary line of Devanāgarī text characters;
FIG. 2A is a drawing showing a character bounding box for an exemplary text character;
FIG. 2B is a drawing showing a text-object bounding box for an exemplary text object;
FIG. 3 is a drawing showing an exemplary text line with character bounding boxes and a text-line bounding box;
FIG. 4 is a chart showing embodiments of the present invention comprising alignment measurements made in a text line;
FIG. 5 is a drawing showing an exemplary text character pair;
FIG. 6 is a drawing showing an exemplary text character pair;
FIG. 7 is a chart showing embodiments of the present invention comprising alignment features measured between text characters in a text character pair;
FIG. 8A is a drawing showing an exemplary histogram of a component-pair alignment feature;
FIG. 8B is a drawing showing an exemplary histogram of a component-pair alignment feature;
FIG. 8C is a drawing showing an exemplary histogram of a component-pair alignment feature;
FIG. 8D is a drawing showing an exemplary histogram of a component-pair alignment feature;
FIG. 9 is a drawing showing an exemplary skewed line of text with character bounding boxes relative to the un-skewed coordinate system;
FIG. 10 is a drawing showing an exemplary skewed line of text with character bound boxes relative to the skewed coordinate system;
FIG. 11 is a chart showing embodiments of the present invention comprising text-orientation detection in a skewed document using character pair feature measurements;
FIG. 12 is a chart showing embodiments of the present invention comprising text-orientation detection using character pair feature measurements for character pairs wherein the characters may be significantly different in size; and
FIG. 13 is a chart showing embodiments of the present invention comprising text-orientation detection in a skewed document using character pair feature measurements for character pairs wherein the characters may be significantly different in size.



DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS
Embodiments of the present invention will be best understood by reference to the drawings, wherein like parts are designated by like numerals throughout. The figures listed above are expressly incorporated as part of this detailed description.
It will be readily understood that the components of the present invention, as generally described and illustrated in the figures herein, could be arranged and designed in a wide variety of different configurations. Thus, the following more detailed description of the embodiments of the methods and systems of the present invention is not intended to limit the scope of the invention but it is merely representative of the presently preferred embodiments of the invention.
Elements of embodiments of the present invention may be embodied in hardware, firmware and/or software. While exemplary embodiments revealed herein may only describe one of these forms, it is to be understood that one skilled in the art would be able to effectuate these elements in any of these forms while resting within the scope of the present invention.
Page orientation in an electronic document may not correspond to page orientation in the original document, referred to as the nominal page orientation, due to factors which may comprise scan direction, orientation of the original document on the scanner platen and other factors. The discrepancy between the page orientation in the electronic document and the nominal page orientation may lead to an undesirable, an unexpected, a less than optimal or an otherwise unsatisfactory outcome when processing the electronic document. For example, the difference in orientation may result in an undesirable outcome when a finishing operation is applied to a printed version of the electronic document. Exemplary finishing operations may comprise binding, stapling and other operations. Furthermore, in order to perform at an acceptable level of accuracy, some image processing operations, for example optical character recognition (OCR), may require specifically orientated input data. Additionally, if the page orientation of an electronic document is unknown relative to the nominal page orientation, proper orientation for display on a viewing device, for example a computer monitor, handheld display and other display devices, may not be achieved.
Some embodiments of the present invention relate to automatic detection of a dominant text orientation in an electronic document. Text orientation may be related to the nominal page orientation.
Typographical-related terms, described in relation to FIGS. 1A-1C, may be used in the following descriptions of embodiments of the present invention. This terminology may relate to the written text characters, also considered letters and symbols, of written languages, including, but not limited to, those languages that use the Latin, Greek, Cyrillic, Devanāgarī and other alphabets. FIG. 1A shows a line of Latin alphabet text. FIG. 1B is a line of Cyrillic characters, and FIG. 1C is a line of Devanāgarī characters. The term baseline may refer to the line 1, 7, 11 on which text characters sit. For Latin-alphabet text, this is the line on which all capital letters and most lowercase letters are positioned. A descender may be the portion of a letter, or text character, that extends below the baseline 1, 7, 11. Lowercase letters in the Latin alphabet with descenders are “g,” , “j” “p,” “q” and “y.” The descender line may refer to the line 2, 8, 12 to which a text character's descender extends. The portion of a character that rises above the main body of the character may be referred to as the ascender. Lowercase letters in the Latin alphabet with ascenders are “b,” “d,” “f,” “h,” “k,” “l” and “t.” Uppercase letters in the Latin alphabet may be considered ascenders. The ascender line may refer to the line 3, 9, 13 to which a text character's ascender extends. The height 4 of lowercase letters in the Latin alphabet, such as “x,” which do not have ascenders or descenders may be referred to as the x-height. The line 5, 10, 14 marking the top of those characters having no ascenders or descenders may be referred to as the x line. The height 6 of an uppercase letter may be referred to as the cap-height.
In the standard Latin alphabet, there are seven text characters with ascenders and five text characters with descenders. Furthermore, as shown in Table 1, text characters with ascenders (shown in bold in Table 1) occur with greater relative frequency than text characters with descenders (shown in italics in Table 1) in a large mass of representative English-language text content. The relative frequency of Latin-alphabet text characters may be different for text in other languages, for example European languages based on Latin script. Additionally, in some alphabets, for example the Cyrillic alphabet, the number of text characters with descenders may be greater than the number of text characters with ascenders.
Embodiments of the present invention may use the relative occurrence rates of text characters with ascenders and text characters with descenders in determining text orientation and page orientation in a digital document image. Exemplary embodiments may be described in relation to English-language text. These embodiments are by way of example and not limitation.
For the purposes of description, and not limitation, in this specification and drawings, a coordinate system with the origin in the upper-left corner of the digital document image may be used. The horizontal coordinate axis may be referred to as the x-coordinate axis and may extend in the positive direction across the digital document image from the origin. The vertical coordinate axis may be referred to as the y-coordinate axis and may extend in the positive direction down the digital document image.
Embodiments of the present invention may comprise methods and systems for determining text orientation by computing features between text characters. In these embodiments, a binary text map may be produced from an input image of an electronic document. Individual text characters may be represented as contiguous sets of pixels in the binary text map.







TABLE 1







Relative Frequencies of Letters in Representative


English-Language Text Content










LETTER
RELATIVE FREQUENCY







e
12.70% 



t
9.06%



a
8.17%



o
7.51%



i
6.97%



n
6.75%



s
6.33%



h
6.09%



r
5.99%



d
4.25%



l
4.03%



c
2.78%



u
2.76%



m
2.41%



w
2.36%



f
2.23%



g
2.02%



y
1.97%



p
1.93%



b
1.49%



v
0.98%



k
0.77%



j
0.15%



x
0.15%



q
0.095%  



z
0.074%  










In some embodiments of the present invention, individual text characters in a digital document image may be grouped into text lines, also considered sequences of characters. An individual text character 20, as shown in FIG. 2A, may be described by an associated bounding box 21. In some embodiments of the present invention, a text-character bounding box 21 may be a box by which the associated text character 20 is substantially circumscribed. In alternative embodiments of the present invention, the text-character bounding box 21 may be a box in which the associated text character 20 is wholly contained. The bounding box 21 may be characterized by the coordinates of two opposite corners, for example the top-left corner 22, denoted (x1,y1), and the bottom-right corner 23, denoted (x2,y2), of the bounding box 21, a first corner, for example the top-left corner 22, denoted (x1,y1), and the extent of the bounding box in two orthogonal directions from the first corner, denoted dx,dy, or any other method of describing the size and location of the bounding box 21 in the digital document image.
A text object, which may comprise one or more text characters, may be described by a text-object bounding box. FIG. 2B depicts an exemplary text object 24 and text-object bounding box 25.
A text line 30, as shown in FIG. 3, may be described by an associated text-line bounding box 32. In some embodiments of the present invention, the text-line bounding box 32 may be a box by which the associated text line 30 is substantially circumscribed. In alternative embodiments of the present invention, the text-line bounding box 32 may be a box in which the associated text line 30 is wholly contained. The text-line bounding box 32 may be described by the x-coordinate of the left edge 34, denoted xL, the x-coordinate of the right edge 35, denoted xR, the y-coordinate of the bottom edge 36, denoted yB and the y-coordinate of the top edge 37, denoted yT, or any other method of describing the size and location of the text-line bounding box 32 in the digital document image.
In some embodiments of the present invention, a text-line bounding box 32 may be determined from the bounding boxes of the constituent text characters, or text objects, within the text-line 30 according to:

yT=min {y1(i)}, i=1, . . . , N, 

yB=max {y2(i)}, i=1, . . . , N, 

xL=min {x1(i)}, i=1, . . . , N and

xR=max {x2(i)} i=1, . . . , N, 

where N is the number of text characters, or text objects, in the text line, y1(i) and y2(i) are the y1 and y2 coordinate values of the ith text-character, or text-object, bounding box, respectively, and x1(i) and x2(i) are the x1 and x2 coordinate values of the ith text-character, or text-object, bounding box, respectively.

In some embodiments of the present invention, alignment features may be calculated for a text line in a digital document image. The alignment features may comprise a top-alignment feature and a bottom-alignment feature. For documents comprising English-language text, it may be expected that a text line may comprise more text characters with ascenders than descenders. Therefore, it may be expected that the baseline-side bounding box coordinates will have less variability than the x-line-side bounding box coordinates. Therefore, it may be expected that text lines may be aligned with less variability along the baseline, or equivalently, greater variability along the x line.
In some embodiments of the present invention, a text line may be determined to be oriented horizontally in the digital document image if (x2−x1)≧(y2−y1) and oriented vertically otherwise. In alternative embodiments of the present invention, a text line may be determined to be oriented horizontally in the digital document image if (x2−x1)>(y2−y1) and oriented vertically otherwise.
In alternative embodiments of the present invention, horizontal/vertical text-line orientation may be determined based on the aspect ratio of the text line. In an exemplary embodiment, if the aspect ratio




  
    
      x
      R
    
    -
    
      x
      L
    
  
  
    
      y
      B
    
    -
    
      y
      T
    
  




of the text line is less than a threshold, denoted Tar where Tar<<1, then the text line may be labeled as a vertically-oriented text line. Otherwise the text line may be labeled as a horizontally-oriented text line.

For a line of text, denoted t, oriented horizontally in the digital document image, a ceiling value, denoted ceil(t), and a floor value, denoted floor(t), may be calculated according to:




  
    
      ceil
      ⁡
      
        (
        t
        )
      
    
    =
    
      
        
          1
          N
        
        ⁢
        
          
            ∑
            
              i
              =
              1
            
            N
          
          ⁢
          
            
          
          ⁢
          
            
              
                y
                1
              
              ⁡
              
                (
                i
                )
              
            
            ⁢
            
              
            
            ⁢
            and
            ⁢
            
              
            
            ⁢
            
              floor
              ⁡
              
                (
                t
                )
              
            
          
        
      
      =
      
        
          1
          N
        
        ⁢
        
          
            ∑
            
              i
              =
              1
            
            N
          
          ⁢
          
            
          
          ⁢
          
            
              y
              2
            
            ⁡
            
              (
              i
              )
            
          
        
      
    
  
  ,




where N is the number of text characters in text line t, and y1(i) and y2(i) are the y1 and y2 coordinate values of the ith text character bounding box, respectively. The ceiling value may be considered a sample mean of the y1 coordinate values, and the floor value may be considered a sample mean of the y2 coordinate values.

For a line of text, denoted t, oriented vertically in the digital document image, a ceiling value, denoted ceil(t), and a floor value, denoted floor(t), may be calculated according to:




  
    
      ceil
      ⁡
      
        (
        t
        )
      
    
    =
    
      
        
          1
          N
        
        ⁢
        
          
            ∑
            
              i
              =
              1
            
            N
          
          ⁢
          
            
          
          ⁢
          
            
              
                x
                1
              
              ⁡
              
                (
                i
                )
              
            
            ⁢
            
              
            
            ⁢
            and
            ⁢
            
              
            
            ⁢
            
              floor
              ⁡
              
                (
                t
                )
              
            
          
        
      
      =
      
        
          1
          N
        
        ⁢
        
          
            ∑
            
              i
              =
              1
            
            N
          
          ⁢
          
            
          
          ⁢
          
            
              x
              2
            
            ⁡
            
              (
              i
              )
            
          
        
      
    
  
  ,




where N is the number of text characters in text line t, and x1(i) and x2(i) are the x1 and x2 coordinate values of the ith text character bounding box, respectively. The ceiling value may be considered a sample mean of the x1 coordinate values, and the floor value may be considered a sample mean of the x2 coordinate values.

The error between the samples and the corresponding sample mean may be an indicator of where the text baseline is located. Top and bottom error measures may be calculated and may be used as top- and bottom-alignment features.
For a line of text, denoted t, oriented horizontally in the digital document image, exemplary error measure may comprise:
Mean Absolute Error (MAE) calculated according to:




  
    
      
        e
        MAE
        top
      
      ⁡
      
        (
        t
        )
      
    
    =
    
      
        1
        N
      
      ⁢
      
        
          ∑
          
            i
            =
            1
          
          N
        
        ⁢
        
          
        
        ⁢
        
          
          
            
              
                y
                1
              
              ⁡
              
                (
                i
                )
              
            
            -
            
              ceil
              ⁡
              
                (
                t
                )
              
            
          
          
        
      
    
  
  ,
  
    
      
        
          e
          MAE
          bottom
        
        ⁡
        
          (
          t
          )
        
      
      =
      
        
          1
          N
        
        ⁢
        
          
            ∑
            
              i
              =
              1
            
            N
          
          ⁢
          
            
          
          ⁢
          
            
            
              
                
                  y
                  2
                
                ⁡
                
                  (
                  i
                  )
                
              
              -
              
                floor
                ⁡
                
                  (
                  t
                  )
                
              
            
            
          
        
      
    
    ;
  




Mean-Square Error (MSE) calculated according to:




  
    
      
        e
        MSE
        top
      
      ⁡
      
        (
        t
        )
      
    
    =
    
      
        1
        N
      
      ⁢
      
        
          ∑
          
            i
            =
            1
          
          N
        
        ⁢
        
          
        
        ⁢
        
          
            (
            
              
                
                  y
                  1
                
                ⁡
                
                  (
                  i
                  )
                
              
              -
              
                ceil
                ⁡
                
                  (
                  t
                  )
                
              
            
            )
          
          2
        
      
    
  
  ,
  
    
      
        
          e
          MSE
          bottom
        
        ⁡
        
          (
          t
          )
        
      
      =
      
        
          1
          N
        
        ⁢
        
          
            ∑
            
              i
              =
              1
            
            N
          
          ⁢
          
            
          
          ⁢
          
            
              (
              
                
                  
                    y
                    2
                  
                  ⁡
                  
                    (
                    i
                    )
                  
                
                -
                
                  floor
                  ⁡
                  
                    (
                    t
                    )
                  
                
              
              )
            
            2
          
        
      
    
    ;
  




Root Mean-Square Error (RMSE) calculated according to:

eRMSEtop(t)=√{square root over (eMSEtop(t))}, eRMSEbottom(t)=√{square root over (eMSEbottom(t))}; and

other error measures.

For a line of text, denoted t, oriented vertically in the digital document image, exemplary error measure may comprise:
Mean Absolute Error (MAE) calculated according to:




  
    
      
        e
        MAE
        top
      
      ⁡
      
        (
        t
        )
      
    
    =
    
      
        1
        N
      
      ⁢
      
        
          ∑
          
            i
            =
            1
          
          N
        
        ⁢
        
          
        
        ⁢
        
          
          
            
              
                x
                1
              
              ⁡
              
                (
                i
                )
              
            
            -
            
              ceil
              ⁡
              
                (
                t
                )
              
            
          
          
        
      
    
  
  ,
  
    
      
        
          e
          MAE
          bottom
        
        ⁡
        
          (
          t
          )
        
      
      =
      
        
          1
          N
        
        ⁢
        
          
            ∑
            
              i
              =
              1
            
            N
          
          ⁢
          
            
          
          ⁢
          
            
            
              
                
                  x
                  2
                
                ⁡
                
                  (
                  i
                  )
                
              
              -
              
                floor
                ⁡
                
                  (
                  t
                  )
                
              
            
            
          
        
      
    
    ;
  




Mean-Square Error (MSE) calculated according to:




  
    
      
        e
        MSE
        top
      
      ⁡
      
        (
        t
        )
      
    
    =
    
      
        1
        N
      
      ⁢
      
        
          ∑
          
            i
            =
            1
          
          N
        
        ⁢
        
          
        
        ⁢
        
          
            (
            
              
                
                  x
                  1
                
                ⁡
                
                  (
                  i
                  )
                
              
              -
              
                ceil
                ⁡
                
                  (
                  t
                  )
                
              
            
            )
          
          2
        
      
    
  
  ,
  
    
      
        
          e
          MSE
          bottom
        
        ⁡
        
          (
          t
          )
        
      
      =
      
        
          1
          N
        
        ⁢
        
          
            ∑
            
              i
              =
              1
            
            N
          
          ⁢
          
            
          
          ⁢
          
            
              (
              
                
                  
                    x
                    2
                  
                  ⁡
                  
                    (
                    i
                    )
                  
                
                -
                
                  floor
                  ⁡
                  
                    (
                    t
                    )
                  
                
              
              )
            
            2
          
        
      
    
    ;
  




Root Mean-Square Error (RMSE) calculated according to:

eRMSEtop(t)=√{square root over (eMSEtop(t))}, eRMSEbottom(t)=√{square root over (eMSEbottom(t))}; and

other error measures.

Other top- and bottom-alignment features may be based on the distances between the top of the text-line bounding box, or other top-side reference line, and the top of each character bounding box and the bottom of the text-line bounding box, or other bottom-side reference line, and the bottom of the text-line bounding box and the bottom of each character bounding box, respectively. The distances may be denoted Δtop and Δbottom, respectively, and may be calculated for each character in a text line according to:

Δtop(i)=y1(i)−yT, i=1, . . . , N and Δbottom(i)=yB(i)−y2, i=1, . . . , N 

for horizontally oriented text lines, and

Δtop(i)=x1(i)−xL, i=1, . . . , N and Δbottom(i)=xR(i)−x2, i=1, . . . , N 

for vertically oriented text lines. The corresponding top- and bottom alignment features may be calculated for horizontally-oriented and vertically-oriented text lines according to:





  
    
      u
      top
    
    ⁡
    
      (
      t
      )
    
  
  =
  
    
      
        ∑
        
          i
          =
          1
        
        N
      
      ⁢
      
        
      
      ⁢
      
        
          
          
            
              
                Δ
                top
              
              ⁡
              
                (
                i
                )
              
            
            -
            
              Δ
              top
              max
            
          
          
        
        ⁢
        
          
        
        ⁢
        and
        ⁢
        
          
        
        ⁢
        
          
            u
            bottom
          
          ⁡
          
            (
            t
            )
          
        
      
    
    =
    
      
        ∑
        
          i
          =
          1
        
        N
      
      ⁢
      
        
      
      ⁢
      
        
        
          
            
              Δ
              bottom
            
            ⁡
            
              (
              i
              )
            
          
          -
          
            Δ
            bottom
            max
          
        
        
      
    
  




where Δtopmax=max Δtop(i), i=1, . . . , N and Δbottommax=max Δbottom(i), i=1, . . . , N.

In some embodiments of the present invention, the orientation of a text line in English-language text, and other-language text with relatively more text characters with ascenders than text characters with descenders, may be determined based on a top-alignment feature, denoted Ftop, and a bottom-alignment feature, denoted Fbottom, of which exemplary top-alignment features and bottom-alignment features may be as described above. For a horizontally-oriented text line, when Fbottom<Ftop, the baseline of the text line may be on the bottom side (larger y-coordinate value) of the text line, and the orientation of the digital document image may be considered to be the same orientation as the original document (0° rotation). For a horizontally-oriented text line, when Fbottom>Ftop, the baseline of the text line may be on the top side (smaller y-coordinate value) of the text line, and the orientation of the digital document image may be considered to be 180° clockwise (or counter-clockwise) with respect to the orientation of the original document. For a vertically-oriented text line, when Fbottom<Ftop, the baseline of the text line may be on the right side (larger x-coordinate value) of the text line, and the orientation of the digital document image may be considered to be 270° clockwise (or 90° counter-clockwise) with respect to the orientation of the original document. That is, the original document image may be rotated 270° clockwise (or 90° counter-clockwise) to produce the digital document image, or the digital document image may be rotated 90° clockwise (or 270° counter-clockwise) to produce the original document image. For a vertically-oriented text line, when Fbottom>Ftop, the baseline of the text line may be on the left side (smaller x-coordinate value) of the text line, and the orientation of the digital document image may be considered to be 90° clockwise (or 270° counter-clockwise).
In some embodiments of the present invention, the orientation of a text line in a language in which the text may have relatively more text characters with descenders than text characters with ascenders may be determined based on a top-alignment feature, denoted Ftop, and a bottom-alignment feature, denoted Fbottom, of which exemplary top-alignment features and bottom-alignment features may be as described above. For a horizontally-oriented text line, when Ftop<Fbottom, the baseline of the text line may be on the bottom side (larger y-coordinate value) of the text line, and the orientation of the digital document image may be considered to be the same orientation as the original document (0° rotation). For a horizontally-oriented text line, when Ftop>Fbottom, the baseline of the text line may be on the top side (smaller y-coordinate value) of the text line, and the orientation of the digital document image may be considered to be 180° clockwise (or counter-clockwise) with respect to the orientation of the original document. For a vertically-oriented text line, when Ftop<Fbottom, the baseline of the text line may be on the right side (larger x-coordinate value) of the text line, and the orientation of the digital document image may be considered to be 270° clockwise (or 90° counter-clockwise) with respect to the orientation of the original document. That is, the original document image may be rotated 270° clockwise (or 90° counter-clockwise) to produce the digital document image, or the digital document image may be rotated 90° clockwise (or 270° counter-clockwise) to produce the original document image. For a vertically-oriented text line, when Ftop>Fbottom, the baseline of the text line may be on the left side (smaller x-coordinate value) of the text line, and the orientation of the digital document image may be considered to be 90° clockwise (or 270° counter-clockwise).
In some embodiments of the present invention, described in relation to FIG. 4, baseline position may be determined for multiple text lines. The baseline positions may be accumulated and the orientation of the digital document image may be determined based on the accumulated baseline information. In these embodiments, two counters, or accumulators, may be initialized 40 to zero. One counter, Ctop, may accumulate baselines at the top of the text-line bounding box, for horizontally-aligned text lines, and the left of the text-line bounding box, for vertically-aligned text lines. The other counter, Cbottom, may accumulate baselines at the bottom of the text-line bounding box, for horizontally-aligned text lines, and the right of the text-line bounding box, for vertically-aligned text lines. Vertical/horizontal text-line orientation may be determined 41 as described above. A text line may be selected 42 from the available text lines. A top-alignment feature and a bottom-alignment feature may be computed 43 for the text line. Exemplary alignment features are described above. The text line baseline may be determined 44 as described above. If the baseline is at the top, for horizontally-oriented text lines, or the left, for vertically-oriented text lines, 46, then Ctop may be incremented 48. If the baseline is at the bottom, for horizontally-oriented text lines, or the right, for vertically-oriented text lines, 47, then Cbottom may be incremented 49. If another text line is available 51, then the process may be repeated. If another text line is not available 52, then text orientation for the digital document image may be determined 53.
In some embodiments, every text line may be available initially for processing and may be processed in turn until all text lines have contributed to the accumulation process. In alternative embodiments, every text line may be available initially for processing and may be processed in turn until a termination criterion may be met. In still alternative embodiments, every text line may be available initially for processing and may be processed in random turn until a termination criterion may be met. In yet alternative embodiments, a subset of text lines may be considered available for processing initially and processed in any of the methods described above in relation to every text line being initially available.
Exemplary termination criteria may comprise an absolute number of lines processed, a percentage of initially available lines processed, at least N0 lines processed and




  
    
      
        max
        ⁡
        
          (
          
            Ctop
            ,
            Cbottom
          
          )
        
      
      
        Ctop
        +
        Cbottom
      
    
    ≥
    
      N
      threshold
    
  
  ,
  
    
      max
      ⁡
      
        (
        
          Ctop
          ,
          Cbottom
        
        )
      
    
    ≥
    
      C
      threshold
    
  




and other criteria.

In some embodiments, when the text lines are oriented horizontally and Ctop<Cbottom, then the text orientation in the digital document image may be determined 53 as being of the same orientation as the original document. When the text lines are oriented horizontally and Ctop>Cbottom, then the text orientation in the digital document image may be determined 53 as being 180° clockwise (or counter-clockwise) with respect to the orientation of the original document. When the text lines are oriented vertically and Ctop<Cbottom, then the text orientation in the digital document image may be determined 53 as being 270° clockwise (or 90° counter-clockwise) with respect to the orientation of the original document. When the text lines are oriented vertically and Ctop>Cbottom, then the text orientation in the digital document image may be determined 53 as being 90° clockwise (or 270° counter-clockwise) with respect to the orientation of the original document.
In some embodiments of the present invention, multiple top- and bottom-alignment feature pairs may be computed for a text line and text orientation for the text line may be determined for each feature pair. A voting process may be used to make a multi-feature based decision of text orientation for the text line. For example, OMAE may correspond to the orientation based on the feature pair (eMAEtop, eMAEbottom), OMSE may correspond to the orientation based on the feature pair (eMSEtop, eMAEbottom) and OU may correspond to the orientation based on the feature pair (utop, ubottom). The orientation for the text line may be determined to be the majority decision of OMAE, OMSE and OU.
The above-described embodiments of the present invention may comprise measuring alignment features relative to text lines. In alternative embodiments of the present invention, alignment features may be measured between text-character pairs, or text-object pairs, in a digital document image. In these embodiments, a binary text map may be produced from an input image of an electronic document. Individual text characters may be represented as contiguous sets of pixels in the binary text map.
In some embodiments of the present invention, for each identified text character, α, the nearest neighboring text character, β, in the digital document image may be determined. Four bounding-box features for each character pair (α,β) may be measured according to:

Δx1=|α(x1)−β(x1)|, Δx2=|α(x2)−β(x2)|,

Δy1=|α(y1)−β(y1)|, Δy2=|α(y2)−β(y2)|,

where α(x1), α(x2), α(y1), α(y2) and β(x1), β(x2), β(y1), β(y2) are the x1, x2, y1, y2 bounding box coordinates defined above, and described in relation to FIG. 2A, of α and β, respectively.

FIG. 5 shows the four bounding-box features for a character pair oriented at 0°. The difference 60 between the left edges of the text characters corresponds to Δx1. The difference 61 between the right edges of the text characters corresponds to Δx2. The difference 62 between the top edges of the characters corresponds to Δy1, and the difference 63 between the bottom edges of the characters corresponds to Δy2.
FIG. 6 shows the four bounding-box features for a character pair oriented at 90° counter clockwise. The difference 64 between the bottom edges of the text characters corresponds to Δy2. The difference 65 between the top edges of the text characters corresponds to Δy1. The difference 66 between the left edges of the characters corresponds to Δx1, and the difference 67 between the right edges of the characters corresponds to Δx2.
It may be expected that, for a large number of character-pair, bounding-box feature measurements, the bounding-box feature which has the largest concentration of observed values at, or substantially near to zero, may be related to the orientation of the text represented by the character pairs based on the relative frequency of occurrence of ascenders and descenders in the expected language of the text.
In some embodiments of the present invention, a histogram, denoted hisΔx1, histΔx2, histΔy1 and histΔy2, may be constructed for each bounding-box feature, Δx1, Δx2, Δy1 and Δy2, respectively. Measurements of the four bounding-box features may be accumulated over many character pairs in the digital document image.
For English-language text and other-language text in which text characters with ascenders occur more frequently than text characters with descenders, the text alignment in the digital document image may be determined according to:

if (max{histΔx1(0), histΔx2(0), histΔy1(0), histΔy2(0)})=histΔx1(0)

    
    
        then the text in the digital document image may be oriented 90° clockwise (or 270° counter-clockwise) with respect to the original document text;

if (max{histΔx1(0), histΔx2(0), histΔy1(0), histΔy2(0)})=histΔx2(0)

        then the text in the digital document image may be oriented 270° clockwise (or 90° counter-clockwise) with respect to the original document text;

if (max{histΔx1(0), histΔx2(0), histΔy1(0), histΔy2(0)})=histΔy1(0)

        then the text in the digital document image may be oriented 180° clockwise (or 180° counter-clockwise) with respect to the original document text;

if (max{histΔx1(0), histΔx2(0), histΔy1(0), histΔy2(0)})=histΔy2(0)

        then the text in the digital document image may be oriented 0° with respect to the original document text,

where hisΔx1(0), histΔx2(0), histΔy1(0) and histΔy2(0) are the bin counts for the bins corresponding to Δx1=0, Δx2=0, Δy1=0 and Δy2=0 respectively.

    
    


In a language in which the text may have relatively more text characters with descenders than text characters with ascenders, the text alignment in the digital document image may be determined according to:

if (max{histΔx1(0), histΔx2(0), histΔy1(0), histΔy2(0)})=histΔy2(0)

    
    
        then the text in the digital document image may be oriented 90° clockwise (or 270° counter-clockwise) with respect to the original document text;

if (max{histΔx1(0), histΔx2(0), histΔy1(0), histΔy2(0)})=histΔx1(0)

        then the text in the digital document image may be oriented 270° clockwise (or 90° counter-clockwise) with respect to the original document text;

if (max{histΔx1(0), histΔx2(0), histΔy1(0), histΔy2(0)})=histΔy2(0)

        then the text in the digital document image may be oriented 180° clockwise (or 180° counter-clockwise) with respect to the original document text;

if (max{histΔx1(0), histΔx2(0), histΔy1(0), histΔy2(0)})=histΔy1(0)

        then the text in the digital document image may be oriented 0 with respect to the original document text,

where histΔx1(0), histΔx2(0), histΔy1(0) and histΔy2(0) are the bin counts for the bins corresponding to Δx1=0, Δx2=0, Δy1=0 and Δy2=0, respectively.

    
    


Some embodiments of the present invention comprising character-pair feature measurements may be described in relation to FIG. 7. In these embodiments, all accumulators, histΔx1, histΔx2, histΔy1 and histΔy2, may be initialized 70. In some embodiments, the accumulators may be initialized to zero. A first character component may be selected 71 from available character components. A second character component, related to the first character component, may be selected 72. The bounding-box features may be computed 73 for the character pair, and the respective accumulator bins updated 74. If there are additional components available for processing 76, then the process may be repeated. If all available components have been processed 77, then text orientation may be determined 78 based on the accumulators.
FIGS. 8A-8D depict exemplary histograms 80, 90, 100, 110 for the four bounding-box features. FIG. 8A illustrates an exemplary histogram 80 for Δx1. The horizontal axis 82 may comprise bins corresponding to Δx1 values, and the vertical axis 84 may comprise the frequency of occurrence of a Δx1 value corresponding to the associated bin. FIG. 8B illustrates an exemplary histogram 90 for Δx2. The horizontal axis 92 may comprise bins corresponding to Δx2 values, and the vertical axis 94 may comprise the frequency of occurrence of a Δx2 value corresponding to the associated bin. FIG. 8C illustrates an exemplary histogram 100 for Δy1. The horizontal axis 102 may comprise bins corresponding to Δy1 values, and the vertical axis 104 may comprise the frequency of occurrence of a Δy1 value corresponding to the associated bin. FIG. 8D illustrates an exemplary histogram 110 for Δy2. The horizontal axis 112 may comprise bins corresponding to Δy2 values, and the vertical axis 114 may comprise the frequency of occurrence of a Δy2 value corresponding to the associated bin. The feature with the largest bin count for feature value equal to zero 86, 96, 106, 116 is Δx2, for this illustrative example. The text in the digital document image may be determined to be oriented 270° clockwise (or 90° counter-clockwise) with respect to the original document text based on these accumulator values.
In alternative embodiments of the present invention, the sum of the first n bins in each histogram may be used to determine text orientation.
In some embodiments of the present invention, each bin in a histogram may correspond to a single feature value. In alternative embodiments of the present invention, each bin in a histogram may correspond to a range of feature values.
In some embodiments of the present invention, each histogram may only have bins corresponding to feature values below a threshold, and measured feature values above the threshold may not be accumulated. This may reduce the storage or memory requirements for a histogram. In some embodiments of the present invention, the histogram may be a single accumulator in which only feature values below a threshold may be accumulated.
In some embodiments of the present invention, a second character component in a character pair may be selected 72 as the character component nearest to the first character component. In alternative embodiments, the second character component may be selected 72 as a character component along the same text line as the first character component. In these embodiments, text lines may be identified prior to character component selection 71, 72.
In some embodiments of the present invention, a skew angle, denoted θ, may be known for a skewed, digital document image. As shown in FIG. 9, bounding boxes, for example, 120, 121, for the skewed character components, 122, 123, may be aligned with the x-axis and the y-axis, and the bounding boxes, 120, 121, may be offset horizontally and vertically according to the skew angle 124 of the text line 125.
In some embodiments of the present invention, the digital document image may be first corrected according to the known skew angle, and the orientation methods described above may be applied directly to the skew-corrected image.
In alternative embodiments of the present invention, coordinates of each character-component pixel may be computed in a rotated coordinate system, wherein the x-axis and y-axis are rotated by the skew angle, θ. The location, (pr, ps), in the rotated coordinate system of a pixel with x-coordinate, px, and y-coordinate, py, may be found according to:

pr=px cos θ+py sin θ and

ps=−px sin θ+py cos θ.

The bounding box of a character component, denoted γ, in the de-skewed coordinate system, may be found according to:

γ(x1)=min(r1, r2, . . . , rM);

γ(x2)=mix(r1, r2, . . . , rM);

γ(y1)=min(s1, s2, . . . , sM); and

γ(y1)=min(s1, s2, . . . , sM),

where M denotes the number of pixels that form the character component γ. Alignment features may be computed using the de-skewed bounding box. FIG. 10 illustrates a line of skewed text 125 with bounding boxes, for example 126, 127, shown in the rotated coordinate system.

Embodiments of the present invention for detecting text orientation in a skewed document image may be described in relation to FIG. 11. In these embodiments, all accumulators, histΔx1, histΔx2, histΔy1 and histΔy2, may be initialized 130. In some embodiments, the accumulators may be initialized to zero. A first character component may be selected 131 from available character components. A second character component, related to the first character component, may be selected 132. The first character component and the second character component may be transformed 137 to a rotated coordinate system associated with the skew angle, θ. The bounding boxes for the components in the skewed coordinate system may be computed 138. The bounding-box features may be computed 139 for the character pair, and the respective accumulator bins updated 140. If there are additional components available for processing 142, then the process may be repeated. If all available components have been processed 143, then text orientation may be determined 144 based on the accumulators.
Alternative embodiments of the present invention comprising character-pair feature measurements may be described in relation to FIG. 12. In these embodiments, all accumulators, histΔx1, histΔx2, histΔy1 and histΔy2, may be initialized 150. In some embodiments, the accumulators may be initialized to zero. A first character component may be selected 151 from available character components. A second character component, related to the first character component, may be selected 152. The size difference between the first character component and the second character component may be estimated 153. The size difference may be compared 154 to a threshold, and if the first and second character components are not sufficiently different in size 155, then the availability of additional components for processing may be checked 161. If there are additional components available for processing 162, then the process may be repeated. If all available components have been processed 163, then text orientation may be determined 164 based on the accumulators.
If the first and second character components are sufficiently different in size 156, The bounding-box features may be computed 159 for the character pair, and the respective accumulator bins updated 160. If there are additional components available for processing 162, then the process may be repeated. If all available components have been processed 163, then text orientation may be determined 164 based on the accumulators.
Alternative embodiments of the present invention comprising character-pair feature measurements may be described in relation to FIG. 13. In these embodiments, all accumulators, histΔx1, histΔx2, histΔy1 and histΔy2, may be initialized 170. In some embodiments, the accumulators may be initialized to zero. A first character component may be selected 171 from available character components. A second character component, related to the first character component, may be selected 172. The size difference between the first character component and the second character component may be estimated 173. In some embodiments, the size difference may be estimated using the bounding box dimensions in the original coordinate system. In alternative embodiments, the bounding box coordinates may be projected into the de-skewed coordinate system and used to estimate the size difference. The size difference may be compared 174 to a threshold, and if the first and second character components are not sufficiently different in size 175, then the availability of additional components for processing may be checked 181. If there are additional components available for processing 182, then the process may be repeated. If all available components have been processed 183, then text orientation may be determined 184 based on the accumulators.
If the first and second character components are sufficiently different in size 176, The first character component and the second character component may be transformed 177 to a rotated coordinate system associated with the skew angle, θ. The bounding boxes for the components in the skewed coordinate system may be computed 178. The bounding-box features may be computed 179 for the character pair, and the respective accumulator bins updated 180. If there are additional components available for processing 182, then the process may be repeated. If all available components have been processed 183, then text orientation may be determined 184 based on the accumulators.
In some embodiments of the present invention, a text orientation may be determined for an entire page in the digital document image. In alternative embodiments of the present invention, text orientation may be determined on a region-by-region basis.
The terms and expressions which have been employed in the foregoing specification are used therein as terms of description and not of limitation, and there is no intention in the use of such terms and expressions of excluding equivalence of the features shown and described or portions thereof, it being recognized that the scope of the invention is defined and limited only by the claims which follow.

## Claims

1. A method for determining a text orientation in a digital image, said method comprising:
computing, for each of a plurality of text-object pairs in a digital image, a first alignment feature value for a first alignment feature, thereby producing a first plurality of feature values;
computing, for each of said plurality of text-object pairs, a second alignment feature value for a second alignment feature, thereby producing a second plurality of feature values;
generating a first histogram of said first plurality of feature values;
generating a second histogram of said second plurality of feature values;
determining a text orientation in a digital image based on said first histogram and said second histogram; and
wherein each of said plurality of text-object pairs comprises a first text object and a second text object; and:
said computing, for each of said plurality of text-object pairs, said first alignment feature value for said first alignment feature comprises:
determining a first absolute difference between a first bounding edge of said first text object and an associated first bounding edge of said second text object, thereby associating said first histogram with said first bounding edge; and

said computing, for each of said plurality of text-object pairs, said second alignment feature value for said second alignment feature comprises:
determining a second absolute difference between a second bounding edge of said first text object and an associated second bounding edge of said second text object, thereby associating said second histogram with said second bounding edge.

2. A method according to claim 1, wherein said determining said text orientation comprises:
determining a first frequency-of-occurrence from said first histogram, wherein said first frequency-of-occurrence corresponds to a substantially zero first absolute difference;
determining a second frequency-of-occurrence from said second histogram, wherein said second frequency-of-occurrence corresponds to a substantially zero second absolute difference;
associating a baseline-side of said text orientation with said first bounding edge when said first frequency-of-occurrence is greater than said second frequency-of-occurrence and text characters with ascenders occur more frequently than text characters with descenders in a written language; and
associating said baseline-side of said text orientation with said second bounding edge when said first frequency-of-occurrence is less than said second frequency-of-occurrence and text characters with ascenders occur more frequently than text characters with descenders in said written language.

3. A method according to claim 1, wherein said determining said text orientation comprises:
determining a first frequency-of-occurrence from said first histogram, wherein said first frequency-of-occurrence corresponds to a substantially zero first absolute difference;
determining a second frequency-of-occurrence from said second histogram, wherein said second frequency-of-occurrence corresponds to a substantially zero second absolute difference;
associating said baseline-side of said text orientation with said first bounding edge when said first frequency-of-occurrence is less than said second frequency-of-occurrence and text characters with descenders occur more frequently than text characters with ascenders in a written language; and
associating said baseline-side of said text orientation with said second bounding edge when said first frequency-of-occurrence is greater than said second frequency-of-occurrence and text characters with descenders occur more frequently than text characters with ascenders in said written language.

4. A method for determining a text orientation in a digital image, said method comprising:
computing, for each of a plurality of text-object pairs in a digital image, a first alignment feature value for a first alignment feature, thereby producing a first plurality of feature values;
computing, for each of said plurality of text-object pairs, a second alignment feature value for a second alignment feature, thereby producing a second plurality of feature values;
generating a first histogram of said first plurality of feature values;
generating a second histogram of said second plurality of feature values;
determining a text orientation in a digital image based on said first histogram and said second histogram;
computing, for each of said plurality of text-object pairs, a third alignment feature value for a third alignment feature, thereby producing a third plurality of feature values;
computing, for each of said plurality of text-object pairs, a fourth alignment feature value for a fourth alignment feature, thereby producing a fourth plurality of feature values
generating a third histogram of said third plurality of feature values;
generating a fourth histogram of said fourth plurality of feature values; and
wherein said determining said text orientation in said digital image based on said first histogram, said second histogram, said third histogram, said fourth histogram.

5. A method according to claim 4, wherein each of said plurality of text-object pairs comprises a first text object and a second text object; and:
said computing, for each of said plurality of text-object pairs, said third alignment feature value for said third alignment feature comprises:
determining a third absolute difference between a third bounding edge of said first text object and an associated third bounding edge of said second text object, thereby associating said third histogram with said third bounding edge; and

said computing, for each of said plurality of text-character pairs, said fourth alignment feature value for said fourth alignment feature comprises:
determining a fourth absolute difference between a fourth bounding edge of said first text object and an associated fourth bounding edge of said second text object, thereby associating said fourth histogram with said fourth bounding edge.

6. A method according to claim 5, wherein said determining said text orientation comprises:
determining a first frequency-of-occurrence from said first histogram, wherein said first frequency-of-occurrence corresponds to a substantially zero first absolute difference;
determining a second frequency-of-occurrence from said second histogram, wherein said second frequency-of-occurrence corresponds to a substantially zero second absolute difference;
determining a third frequency-of-occurrence from said third histogram, wherein said third frequency-of-occurrence corresponds to a substantially zero third absolute difference;
determining a fourth frequency-of-occurrence from said fourth histogram, wherein said fourth frequency-of-occurrence corresponds to a substantially zero fourth absolute difference;
determining a maximum frequency-of-occurrence of said first frequency-of-occurrence, said second frequency-of-occurrence, said third frequency-of-occurrence and said fourth frequency-of-occurrence, thereby determining a histogram associated with said maximum frequency-of-occurrence; and
associating a baseline-side of said text orientation with said bounding edge associated with said histogram associated with said maximum frequency-of-occurrence when text characters with ascenders occur more frequently than text characters with descenders in a written language.

7. A method according to claim 5, wherein said determining said text orientation comprises:
determining a first frequency-of-occurrence from said first histogram, wherein said first frequency-of-occurrence corresponds to a substantially zero first absolute difference;
determining a second frequency-of-occurrence from said second histogram, wherein said second frequency-of-occurrence corresponds to a substantially zero second absolute difference;
determining a third frequency-of-occurrence from said third histogram, wherein said third frequency-of-occurrence corresponds to a substantially zero third absolute difference;
determining a fourth frequency-of-occurrence from said fourth histogram, wherein said fourth frequency-of-occurrence corresponds to a substantially zero fourth absolute difference;
determining a maximum frequency-of-occurrence of said first frequency-of-occurrence, said second frequency-of-occurrence, said third frequency-of-occurrence and said fourth frequency-of-occurrence, thereby determining a histogram associated with said maximum frequency-of-occurrence; and
associating a baseline-side of said text orientation with a bounding edge opposite of said bounding edge associated with said histogram associated with said maximum frequency-of-occurrence when text characters with descenders occur more frequently than text characters with ascenders in a written language.

8. A method for determining a text orientation in a digital image, said method comprising:
selecting a first text object from a digital image;
determining, for said first text object, a first bounding box;
selecting a second text object from said digital image;
determining, for said second text object, a second bounding box;
when the size of said first text object is substantially different than the size of said second text object,
determining, for said first text object and said second text object, a first bounding-box feature value for a first bounding-box feature, wherein said first bounding-box feature is related to a first edge of said first bounding box;
updating a first histogram based on said first bounding-box feature value;
determining, for said first text object and said second text object, a second bounding-box feature value for a second bounding-box feature, wherein said second bounding-box feature is related to a second edge of said first bounding box;
updating a second histogram based on said second bounding-box feature value;
determining, for said first text object and said second text object, a third bounding-box feature value for a third bounding-box feature, wherein said third bounding-box feature is related to a third edge of said first bounding box;
updating a third histogram based on said third bounding-box feature value;
determining, for said first text object and said second text object, a fourth bounding-box feature value for a fourth bounding-box feature, wherein said fourth bounding-box feature is related to a fourth edge of said first bounding box; and
updating a fourth histogram based on said fourth bounding-box feature value; and

determining a text orientation in said digital image based on said first histogram, said second histogram, said third histogram and said fourth histogram.

9. A method according to claim 8, wherein said first text object and said second text object are adjacent text objects in said digital image.

10. A method according to claim 8, wherein said first text object and said second text object are not adjacent text objects in said digital image.