TECHNICAL FIELD

The present disclosure generally relates to machine vision and, more particularly, to optical character recognition.

BACKGROUND

Optical character recognition (OCR) is the conversion of scanned or photographed images of alphanumeric or other characters into machine-encoded/computer-readable alphanumeric or other characters. OCR is used as a form of data entry from some sort of original data source, such as product packaging (e.g., a bag of chips, a box, etc.), books, receipts, business cards, mail, or any other object having characters printed or inscribed thereon. OCR is a common method of digitizing printed characters so that the characters can be electronically identified, edited, searched, stored more compactly, displayed on-line, or used in machine processes such as machine translation, text-to-speech, verification, key data extraction, and text mining.

OCR is frequently used in many computer vision systems to detect text associated with various manufacturing processes. For example, OCR may be used to verify that a label has been correctly printed on a packaging for a product. In a specific implementation, OCR may be used to verify the presence of a “best before date” label on a product's packaging. The best before date is a piece of information written on the package of perishable foods that identifies the date past which a product is no longer suitable for consumption. Typically, inkjet printers are used to write the best before date on the otherwise pre-printed packages since inkjet printers represent a mature and reliable technology, are capable of printing at high speeds, and are relatively low cost. Nevertheless, occasionally errors may occur in the printing process (e.g., low contrast, missing characters), which compels verification that the labels are printed correctly.

Typically, the OCR process can be viewed as a combination of two main sub-processes: (1) segmentation and (2) recognition (e.g., classification). The segmentation sub-process locates and “isolates” the individual characters. The recognition sub-process classifies the characters in question and assigns to each character a corresponding alpha-numerical or other character or symbol. The OCR process is typically divided into two sub-processes because the classification sub-process is computationally expensive, and therefore it is advantageous that the classification sub-process not be done throughout an entire image, but rather only at select locations where the segmentation sub-process has detected a potential character. For high quality images, characters are well separated and segmentation sub-process becomes relatively straightforward. However, often images suffer from low contrast, high degree of noise, character variation, character skew, background variation, or other non-ideal factors. These factors complicate the segmentation sub-process, and segmentation errors lead to the failure in the recognition sub-process.

Moreover, whereas some OCR applications are called upon to recognize all of the text in a captured image, in other applications only certain text needs to be recognized. In these latter types of applications the OCR resources may be spent on needless processing to recognize text that is not of interest. These adverse effects may be particularly felt in throughput-demanding scenarios, such as recognizing text on objects on a fast-moving conveyor belt, where the overall OCR processing capacity may suffer in the presence of text that is not of interest.

SUMMARY

According to some aspects of this disclosure, an image processing system includes an input to receive a captured image that contains: (a) a region of interest (ROI) including a plurality of characters to be autonomously recognized as text and included in an output of an optical character recognition (OCR) system, and (b) non-ROI content to be excluded from the OCR system output. A region of interest (ROI) preprocessing engine is operatively coupled to the input to perform autonomous processing of the captured image to detect and locate the ROI in the captured image, and to determine a boundary of the ROI. The autonomous processing includes a transformation of the captured image to a first feature descriptor representation (FDR) of the captured image; and comparison between the first FDR and at least one ROI template that includes at least a second FDR of a representative ROI image. The autonomous processing produces an output to be provided to an OCR engine to perform autonomous OCR processing of the ROI while ignoring the non-ROI content based on the determined boundary of the ROI.

In a related aspect, a machine-implemented method for processing images includes operations comprising: receiving a captured image that contains: (a) a region of interest (ROI) including a plurality of characters to be autonomously recognized as text and included in an output of an optical character recognition (OCR) system, and (b) non-ROI content to be excluded from the OCR system output; autonomously processing the captured image to detect and locate the ROI in the captured image, and to determine a boundary of the ROI, wherein the processing includes performing a transformation of the captured image to a first feature descriptor representation (FDR) of the captured image, and performing comparison between the first FDR and at least one ROI template that includes at least a second FDR of a representative ROI image. The processing produces an output to be provided to an OCR engine to perform autonomous OCR processing of the ROI while ignoring the non-ROI content based on the determined boundary of the ROI.

In another related aspect, at least one non-transitory machine-readable medium contains instructions for processing images, wherein the instructions, when executed on a computing system, cause the computing system to receive a captured image that contains (a) a region of interest (ROI) including a plurality of characters to be autonomously recognized as text and included in an output of an optical character recognition (OCR) system, and (b) non-ROI content to be excluded from the OCR system output. The instructions further cause the computing system to perform autonomous processing of the captured image to detect and locate the ROI in the captured image, and to determine a boundary of the ROI, wherein the processing includes performing a transformation of the captured image to a first feature descriptor representation (FDR) of the captured image, and performing comparison between the first FDR and at least one ROI template that includes at least a second FDR of a representative ROI image. The processing produces an output to be provided to an OCR engine to perform autonomous OCR processing of the ROI while ignoring the non-ROI content based on the determined boundary of the ROI.

