Industrial OCR
Peter Rogelj


We describe an optical character recognition (OCR) system intended for use in industrial applications. It was primarily designed for reading of serial numbers of electricity meters. It is appropriate for use in a wide range of industrial OCR applications such as reading of various types of serial numbers and notes on packing material. With some modifications it could also be used for other purposes such as reading of car licence plates. Because of it's industrial orientation there is a special focus on reliability and robustness.

Problem description

There are two problems that must be solved. Character segmentation and character recognition.
Character segmentation is used to locate individual characters and find their correct order according to position of individual strings in the image and position of character in the string. Determination of location consists of determination of translation and determination of rotation and this must be done irrespective to all other objects in the image.
Character recognition is used to determine the relation between images of individual characters and symbols they represent (characters). There is a lot of different methods for character recognition, but thy are not all suitable for industiral applications. Experiment results show that some methods widely used in non-industrial OCR applications are less appropriate for industrial use. The problem is in demanded reliability and robustness. Implemented methods must allow some defect of characters but they must also be able to distinguish characters from other objects.

Figure 1: Diferent types of electricity meter serial numbers


The overall process consists of five processing steps:

  • image acquisition,
  • preprocessing,
  • character segmentation,
  • character recognition and
  • postprocessing.


Image acquisition

Image is acquired using a Sony XC-75 grayscale camera and a Matrox Meteor frame grabber. The size of characters on acquired image must not be less than 20 pixels. In case of smaller characters the appropriate recognition reliability cannot be achieved.

Figure 2: An example of acquired image (click to enlarge)


reprocessing consists of image sharpening, normalization, filtering and binarization. Sharpening is used quite rare, because it increases noise, but it gives better results at unfocused images. With use of normalization better results are achieved at binarization stage. Filtering is very important if there is a bad lightening (blinking light) and interlaced camera is used. There are three methods of  binarization implemented in the system. These are manual threshold selection, automatic thresholding and automatic local thresholding. Methods used in preprocessing can be selected according to the operating environment.

Figure 3:  Result of preprocessing step (click to enlarge)

Character segmentation

Character segmentation consists of two steps. In the first step individual strings are located and their correct order according to the position in the image is found. In the second step every string located in the previous step is segmented into individual characters. There is a special focus on broken and connected characters.

Figure 4: Results of segmentation. Marked areas represent strings (green and yellow) and characters (red).

Figure 5: Segmentation of broken characters (right image)

Figure 6: Segmentation of connected characters

Character recognition

Character recognition methods used in the system are not font invariant so learning stage is required before recognition. Recognition is based on classification. For that purpose every class (every kind of character) is represented with a reference character. Reference characters are charactes used in learning stage. Classification is preformed according to the calculated distances between recognizing character and all the reference characters. If distances do not correspond to some predefined conditions, recognizing character is marked as unrecognized.

Figure 7:  Window of the learning stage (click to enlarge)


There is always just one string that needs to be recognized. In the postprocessing step it has to be determined wich is the right one. Determination is accomplished regarding to the following presets:

  • number of characters in a string,
  • position of a string,
  • recommended first character,
  • recommended last character and
  • list of restricted characters.
It is not need to use all the stated presets.
Another very important task of postprocessing step is warning in case of unsuccesful recognition. The recognition is stated as unsuccesful if there are unrecognized characters in the resulting string or if the resulting string does not match with all the requested presets.

Figures 8: Appearance of the main program window (click to enlarge)


Experiment results confirms the selection of methods and suitability of the system for industrial use. We have also implemented a voice controlled user interface, which simplify the interventions at unsuccesful recognition. As the computer is often not located near the process makes possible to controll the process or correct the uncuccesful recognition with voice. Although the unsuccesful recognition si very rare and is supposed to happen only at bad conditions at image acquistion or when the interested string is damaged the user interface is simple and user friendly.


P. Rogelj, S. Kovačič, "Odcitavanje serijske stevilke elektricnih stevcev", ERK '98, September 1998.
P. Rogelj, S. Kovačič, "Odcitavanje serijske stevilke elektricnih stevcev", diploma theesis, July 1998.
P. Rogelj, S. Dobrisek, F. Mihelic, "Govorni uporabniski vmesnik v industrijskem okolju", ERK '99, September 1999.