Positioning tools identify the location and orientation of an object, output results directly, or use the information for positioning of subsequent machine vision algorithms. Positioning is usually carried out using either edge based tools where the position and angle is defined by the intersection of two straight edges, or by pattern positioning tools. Pattern recognition uses specific search patterns that are defined by pixel intensities or geometric forms.
They are extremely suitable for objects with irregular shapes, low contrast or process variations. Some of the latest algorithms even deliver information such as poise, the 3D orientation of the object from the single 2D camera.
Pattern positioning tools can locate and verify parts as is shown in the image on the left where the exact position of hard disk read heads is being determined within a regular matrix. In the right hand image the black square was found. This position serves as reference to define position and orientation of the screws with the arrows.
Identification ranges from reading and checking of characters and text to decoding different 1D or 2D codes. Applications include ensuring the traceability of parts or the recognition and sorting of products.
There are many formats of code used mainly for product identification and tracking. 1D is still used due to the lower cost of readers, but is more and more replaced by 2D codes. Common 2D codes include Datamatrix, QR and PDF 417. Matrix codes provide more stored information on the same area, assure a better readability especially on complex surfaces and prevent misreadings due to integrated error correction.
In a packaging and printing application you need to ensure that the code that has been printed meets the specification of the code standard. As codes have redundancy inbuilt, you can often read a code where only 80 % of the code is good. While it is good to have a robust reader it does not tell you if the code meets the standard and that it is likely to have difficulties being read later. Code grading checks the code against the code standard and rates the code so that it is readable later in the manufacturing and distribution process.
Reading text such as date and lot codes in its simplest form is quite easy, however, a good OCR algorithm also has to be able to deal with difficult conditions such as poor contrast, circular print or even text that contains background interference under difficult conditions.