HIGH-FAST OCR DECODING USING EMPTY CENTERLINES

DE602018088545T2Active Publication Date: 2026-01-14HAND HELD PRODS INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
DE602018088545
Authority / Receiving Office
DE · DE
Patent Type
Patents
Current Assignee / Owner
Priority Date
2017-05-19
Filing Date
2018-05-10
Publication Date
2026-01-14
Estimated Expiration
2038-05-10

AI Technical Summary

Technical Problem

Existing optical character recognition (OCR) methods are time-consuming due to the need for extensive pixel analysis and template matching, particularly when using outline templates, which do not efficiently utilize a limited set of points for scoring character matches.

Method used

The method focuses on character centerlines, using depleted centerline templates with reduced points (about 20) and incorporates a primary and secondary analysis to assess match scores, including proximity to character boundaries, significantly reducing processing time.

Benefits of technology

This approach achieves processing times comparable to barcode scanning by efficiently scoring character matches using a limited set of points, improving efficiency and reducing computational burden.

✦ Generated by Eureka AI based on patent content.
Patent Text Reader
Need to check novelty before this filing date? Find Prior Art

Description

FIELD OF THE INVENTION

[0001] The present invention relates to optical character recognition using image-processing techniques, and more particularly to methods for template matching and symbol interpretation.BACKGROUND

[0002] Generally speaking, optical character recognition (OCR) attempts to decode symbols using image-processing techniques. Typically, such an approach is time-consuming, as it involves moving outline templates around, and performing calculations for each position. A high-speed method capable of efficient optical character recognition is needed.

[0003] Several attempts have been made to improve optical character recognition. For example, U.S. Pat. No. 5,317,652 by Chatterjee discloses a character recognition system implementing concurrent processing and vector correlation. Specifically, a character image in a buffer is vector-correlated with character templates represented as discrete character skeletons comprised of dots. Although the reference discloses comparison of dots around a centerline template, it does not mention assigning template scores based on the number of dots inside or outside the printed character. U.S. Pat. No. 7,724,958 by Walch discloses a biometric handwriting identification system for converting characters and a writing sample into mathematical graphs, followed by using optical character recognition to identify features in the handwriting sample. The reference mentions using OCR to compare centerlines of stored and current images. However, to score a character match the template is superimposed over the actual image, and pixels of the actual image are then analyzed. The method does not use an analysis of a limited set of points to score a character match. U.S. Pat. No. 6,628,808 by Bach et al. discloses a method of verifying a scanned image using a topological analysis. To score a character match at a given candidate location, a template is superimposed over an actual image, and pixels on the actual image falling beneath the centerline pixels on the template are analyzed. Similar to U.S. Pat. No. 7,724,958, the method relies on pixel analysis, and does not mention centerline analysis conducted with a limited set of points, and may therefore be rather time-consuming. Another relevant prior art document is: TRAHANIAS P E ET AL: "MORPHOLOGICAL HAND-PRINTED CHARACTER RECOGNITION BY A SKELETON-MATCHING ALGORITHM", JOURNAL OF ELECTRONIC IMAGING, S P I E - INTERNATIONAL SOCIETY FOR OPTICAL ENGINEERING, US, vol. 2, no. 2, 1 April 1993 (1993-04-01), pages 114-125, ISSN: 1017-9909, DOI: 10.1117 / 12.143731.

[0004] Therefore, a need exists for a quick and efficient template-matching method having OCR decoding time comparable to barcode scanning time.SUMMARY

[0005] Accordingly, the present invention embraces methods for template matching and symbol interpretation and is defined in claim 1.

[0006] In an exemplary embodiment, a method for character interpretation includes iteratively selecting a centerline template to cast over a character; determining positions of each member of the centerline template with respect to a principal tracing path of the character; assessing score of the projected template; selecting a centerline template having highest score, and interpreting the character using the selected template.

[0007] In another exemplary embodiment, a method for template matching includes iteratively selecting a template set of points to project over a centerline of a candidate character; conducting a template matching analysis, and assigning a score to each template; and selecting a template set with a highest assigned score.

[0008] In yet another exemplary embodiment, the present invention embraces a method for symbol recognition. The method includes selecting a point array, and projecting it onto an image of a symbol; determining a rank of the array based on a primary analysis of positions of array points with respect to a printing of the symbol; repeating the process to assign a rank to each point array of a set of point arrays; selecting one or more point arrays having a top rank to conduct a secondary analysis of proximity of the array points to a boundary of the printing of the symbol; and using results of the secondary analysis to select a point array for symbol recognition.

[0009] The foregoing illustrative summary, as well as other exemplary objectives and / or advantages of the invention, and the manner in which the same are accomplished, are further explained within the following detailed description and its accompanying drawings.BRIEF DESCRIPTION OF THE DRAWINGS

[0010] Figure 1A schematically depicts an exemplary embodiment of typical template for OCR decoding. Figure 1B schematically depicts an exemplary embodiment of a depleted centerline template. Figure 1C schematically depicts a combination of templates in Figures 1A and 1B plotted on the same axes. Figure 2 schematically depicts a method for character interpretation, according to an embodiment. Figure 3 schematically depicts a method for template matching, according to an embodiment. Figure 4 schematically depicts a method for symbol recognition, according to an embodiment. DETAILED DESCRIPTION

[0011] The present invention embraces methods for optical character recognition (OCR) using image-processing techniques.

[0012] OCR decoding described in the prior art often comprises a template-match algorithm where an outline of each character is moved around a candidate character until a best fit is obtained. The fit may then be scored as to how much of the character is inside the outline. The template with the best score is considered the decode of the text character. Figure 1A shows a typical template that may be used for OCR decoding, namely an OCRB font character "2". The scale is in 2 micron increments, e.g., "100" on the Y-axis is 2 mm from (0, 0). The template comprises approximately 200 points, which results in high processing burden. While some template algorithms may use fewer points and / or vectors, the improvement in processing efficiency is not significant.

[0013] On the contrary, the present invention, while still using the template method, focuses on the character centerline, thus noticeably reducing the required number of points. Additionally, if a depleted centerline is used, the number of points can be as low as about 20. Figure 1B shows an exemplary embodiment of a depleted centerline template. The template is an OCRB font character "B". A similar centerline template may be used for other fonts. The resulting vast reduction in the number of points may lead to significantly improved processing time, compared to the conventional outline template methods.

[0014] In the template outline methods that include character scores, printed matter outside the template may lead to lower scores. While the centerline method of the present invention can have this feature also, it is possible for part of the centerline template to be "just barely" in a character and still score well in that part, when in fact, the template is not an optimal match.

[0015] Figure 1C shows an image where the templates in Figures 1A and 1B are plotted on the same axis, so that the centerline of the character "B" is overlaid on the template-outline of the "2" (note that in the OCRB set, all the numerals are taller than all the alpha characters by about 10%). Assuming the "2" was perfectly printed within the template boundaries, one can see that there are several places where the "B" centerline may yield a positive result, although the template centerline is near the edge of the character. For example, the entire top of the "B" centerline falls within the printed "2", yet it is far from the center of the "2". Similarly, the same issue is true for the points forming a bottom-left vertical line of the "B". To deemphasize these types of overlaps, while maintaining the good parts, such as the points forming a bottom straight line of the "B", several solutions are possible.

[0016] For example, to further improve the match while taking only a small amount of processing power, the method can include adding a parameter to the centerline score describing how close to a character boundary the centerline is. For instance, the top of the "B" is very close to a character boundary, whereas the bottom straight line formed by the points of the template is approximately equidistant from two character boundaries.

[0017] Additionally, for character centerline templates with a reasonably good score, a secondary calculation can be performed. For example, the "B" has a moderate score with the "2", and would likely also have a moderate score with an "8" and an "E". Therefore, after the primary centerline template processing is complete (which may be quite fast), the top few match candidates can be submitted for the secondary check of boundary proximity. Such an approach may produce results comparable to those acquired with an outline template match, while only needing to perform the calculations on a small number of candidate characters.

[0018] Additionally, the method can include generating a circle of diameter of the approximate stroke width around the few candidate characters. The result may be similar to that of performing a complete template outline test on the reduced point count centerline. The method can include keeping track of the local slope of the centerline and generating a vector perpendicular to each point in the centerline and measuring how far the character boundary is at that point. The slope method may be even faster than the circle method. Additionally or alternatively, other methods of determining the quality of a test point within an unknown character can be utilized.

[0019] In addition to OCRB font, the method described herein can be applied to other fonts as well. The invention can be used with human-readable digits below an EAN / UPC symbols as well as with OCR reading applications, such as passport and license plate reading.

[0020] Figure 2 shows a method 100 for character interpretation, according to an embodiment. At 102, a character is selected from an image displaying one or more characters. At 104, a centerline template is iteratively selected from a predetermined number of centerline templates to cast over the selected character. At 106, positions of each member of the centerline template are determined with respect to a principal tracing path of the character. At 108, the determined positions of the members are analyzed to assess score of the projected template. At 110, scores of centerline templates of the predetermined number of centerline templates are compared to select a centerline template having highest score. And at 112, the selected centerline template of highest score is used to interpret the selected character.

[0021] In an embodiment, assessing score at 108 can include calculating proximity of the centerline template members to a center of the principal tracing path. Additionally or alternatively, assessing score at 108 can include calculating proximity of the centerline template members to one or more boundaries of the character. Additionally or alternatively, assessing score at 108 can include determining a distance to one or more boundaries of the character with respect to series of rays emanating outwards from one or more points.

[0022] Figure 3 shows a method 200 for template matching, according to an embodiment. At 202, a template set of points is iteratively selected out of a predetermined collection of template sets to project over a centerline of a candidate character. At 204, a template matching analysis is conducted. At 206, a score is assigned to each template set based on the template matching analysis. And at 208, a template set with a highest assigned score is selected.

[0023] In an embodiment, conducting a template matching analysis at 204 can include counting a number of points overlapping with a printing of the candidate character, and / or calculating proximity of the overlapping points to a boundary of the printing.

[0024] In an embodiment, projecting a template set of points can include projecting a template set having a point spacing of about one-sixth of a height of the candidate character. Other point densities can be used as well, depending on an embodiment. Projecting a template set of points can include projecting a template set having uniform point spacing throughout the character as shown in Figure 1B, or a template set having non-uniform point spacing. For example, a template set with non-uniform point spacing can have more points localized on one or more curved lines of the template set, and fewer points localized on one or more straight lines of the template set. In an embodiment, a template set can include about 20 points.

[0025] In an embodiment, the method 200 can further include selecting one or more template sets having highest assigned scores to analyze proximity of one or more template set points to a boundary of the printing of the candidate character.

[0026] Figure 4 shows a method 300 for symbol recognition, according to an embodiment. At 302, a point array is selected out of a set of point arrays. At 304, the selected point array is projected onto an image of a symbol. At 306, a rank of the array is determined based on a primary analysis of positions of one or more array points with respect to a printing of the symbol. At 308, 302-306 are repeated to assign a rank to each point array of the set of point arrays. At 310, one or more point arrays having a top rank in the set of point arrays are selected to conduct a secondary analysis of proximity of the array points to a boundary of the printing of the symbol. And at 312, results of the secondary analysis are used to select a point array for symbol recognition.

[0027] In an embodiment, determining a rank at 306 can include determining a number of the array points overlapping with the printing of the symbol. Additionally, the method 300 can further include determining the rank based on proximity of one or more array points to the boundary of the printing of the symbol.

[0028] In an embodiment, conducting a secondary analysis at 310 can include projecting a circle having a diameter of an approximate stroke width of the symbol around one or more points. Additionally or alternatively, conducting a secondary analysis at 310 can include generating a vector perpendicular to one or more points of the point array and measuring proximity of such points to the boundary of the printing of the symbol.

[0029] In an embodiment, the method 300 can further include applying the point array with a top rank for monospace font character recognition. For example, the method can further include applying the point array with a top rank for OCRB font character recognition.

[0030] Device and method components are meant to show only those specific details that are pertinent to understanding the embodiments of the present disclosure so as not to obscure the disclosure with details that will be readily apparent to those of ordinary skill in the art having the benefit of the description herein. In various embodiments, the sequence in which the elements of appear in exemplary embodiments disclosed herein may vary. Two or more method steps may be performed simultaneously or in a different order than the sequence in which the elements appear in the exemplary embodiments.

[0031] In the specification and / or figures, typical embodiments of the invention have been disclosed. The present invention is not limited to such exemplary embodiments. The use of the term "and / or" includes any and all combinations of one or more of the associated listed items. The figures are schematic representations and so are not necessarily drawn to scale. Unless otherwise noted, specific terms have been used in a generic and descriptive sense and not for purposes of limitation.

Claims

1. A method for Optical Character Recognition, OCR, comprising: iteratively selecting a template set of points out of a predetermined collection of template sets and projecting each selected template set of points over a centre of a principal tracing path of a candidate character of an image; conducting a template matching analysis for each projected template set of points; assigning a score to each projected template set of points based on the template matching analysis; selecting more than one template sets of points having respective highest assigned scores; analyzing proximity of the points of the selected template sets of points to a boundary of the printing of the candidate character for ranking the selected template sets of points; and applying a template set of points with a top rank, ranked from the selected template sets of points based on the proximity analysis, for recognizing the candidate character.

2. The method according to claim 1, wherein conducting the template matching analysis comprises counting a number of points of each template set of points that overlap with a printing of the candidate character, and / or calculating proximity of the overlapping points to the centre of the principal tracing path of the candidate character.

3. The method according to claim 1, wherein projecting each selected template set of points includes projecting a template set having a point spacing of about one-sixth of a height of the candidate character.

4. The method according to claim 1, wherein projecting each selected template set of points includes projecting a template set having non-uniform point spacing.

5. The method according to claim 4, wherein projecting the template set having the non-uniform point spacing includes projecting a template set having more points localized on one or more curved lines of the template set, and less points localized on one or more straight lines of the template set.

6. The method according to claim 1, wherein projecting each selected template set of points includes projecting 20 points.