You are on page 1of 14


Version 3 February 2005 English
SEA Vision S.r.l Via Folla di Sopra 21, 27100 Pavia, Italy Tel +39,0382,529576 Fax +39,0382,527260 Modem +39,0382,520658

Page 2

1. OCV's functions
The OCV measuring system is a multi-functional system, designed to execute different control tasks: control of printed data control of barcodes and 2D codes control of crimps on vials control of heights of objects through 3D measures control of the presence of cartons in case Moreover OCV can manage the progressive codes on vignettes, creating archives that can be exported. host barcode readers, which are programmed through the OCV interface. be connected to printers, which are programmed through the OCV interface. 1.1. Functional diagram











The hardware functional diagram is shown in the figure, that includes modules with different colours, based on their nature: blue for electronic components, purple for optical components, green for mechanical (end external devices), yellow for the software. SEA Vision s.r.l.




OCV Presentation

Page 3

Each reading head (camera or external device) is independent from the others: they work in asynchronous way, as different virtual machines. The OCV modules are: computer cameras and optical devices lighting systems (LEDs and lasers) image acquisition card monitor electronics for communication with the production line programming mouse (or any other pointing device) software 1.2. Working principle For every single object that reaches the control station, the computer hardware acquires an image from the camera. The term acquisition indicates two operations: digitalisation, i.e. the conversion of the analogue video signal coming from the camera into a set of numbers and the subsequent storage of these numbers in suitable memory banks. The acquisition operation is synchronised with the production line, so that the object images are always acquired in the same position. Now OCV is ready to carry out checks in the image. At the end of the processing the result can be either communicated to the packing machine or sent to an internal software module that manages the reject of the defective objects (internal PLC). 1.3. Print check OCV checks the printed characters through four steps: segmentation, recognition, measure, extra checks. Segmentation The segmentation is the initial task to be performed on the image. Its purpose is the extraction of the characters from the image, i.e. the detection of their position, size, and rotation angle. At the end of the segmentation each printed character is represented by a binary bitmap. OCV can segment the characters using different complex algorithms allowing it to extract the characters from the image in presence of: touching characters that are not separated by some space stretched characters that are deformed in horizontal and/or vertical rotated characters, appearing when the printed object may rotate moving from the printer to the camera multi-components characters that are formed by two or more connected components characters with different contrast in the image not homogeneous illumination in the image other printings near the check area. Recognition Each segmented character is recognised. The result of the recognition is the identification of the printed character. In other words the recognition assigns to the printed character one of the models belonging to the pre-defined alphabet (font). This model is also said the best-match model. Of course OCV rejects printings containing wrong characters, which do not correspond to the expected ones. The recognition is a crucial task in the print verification because, in many cases, wrong characters cannot be detected only with the measure (explained below). In fact there are characters whose difference is too small (for example '1' and 'I') to be exploited to reject the wrong one: the ordinary character distortion is comparable to (or bigger than) such a difference, so that a threshold on the measure result cannot be found: either the wrong character passes (high threshold) or the good one is rejected (low threshold).

SEA Vision s.r.l.

Page 4 Measure Once the character has been recognised as the good one (i.e. the printed character matches the expected one) OCV compares the printed character with its model, generating four values, representing the distances between character and model. Two of the four distances measure the printed characters excess parts, compared with the model. The other two measure the missing parts. If even one value is over the allowed threshold the character is considered defective and therefore it is rejected. The figures show a printed character and its model. With reference to the model, the excess parts are picked out in yellow, the missing parts in blue. Printed character Model

Extra checks Other controls can be activated in the print area. The distance between characters belonging to the same word must be less than a given value. The distance between words must be greater than a given value. The print area must be free of stains, spots or extra characters. The printed characters must show a minimum contrast, i.e. the difference between the character and its background must be greater than a given value. The picture shows an example of laser printed characters.

The check result is evident from the colour of the rectangles that are drawn around the characters. The green rectangles show in-tolerance characters, the red rectangles show defective characters. The red contour around the characters belongs to the best-match model, overlapped to the image to visualise the discrepancy between the printing and the model.

SEA Vision s.r.l.

OCV Presentation

Page 5

1.4. Code check The code check is executed by extracting the string that is coded in the symbol. The extracted string is compared with the reference one. In case of mismatch the object is rejected. The following pictures show checks on characters and code at the same time in the same images.

1.5. Crimp check The crimp check is based in the linear decomposition of the crimp profile. OCV measures the length and the angle of each segment. The crimp is accepted if all values are inside the tolerance ranges. The measure is repeated on several images taken while the vial rotates around its vertical axis. The picture shows the profile of the cap (in red) and its segmentation (the end points of the segments are marked with blue dots).

SEA Vision s.r.l.

Page 6

1.6. 3D measures The 3D measures are executed by analysing the image obtained with the projection of a laser line. The depth information is computed from the displacement of the line in the image. The picture shows the application of the 3D measurement to evaluate the amount of powder in aluminium pockets.

1.7. Check of cartons in case The 2D array of cartons is checked through the evaluation of statistical parameters for each element of the array (carton). The picture shows a stack of cartons with missing objects. In this case the colour corresponding to the missing elements is different, leading to an easily detection of the defects.

1.8. Progressive code management OCV manages the progressive codes in order to allow the tracking of each individual object in the packaging chain. The information is stored in hierachical way. For examples cartons are grouped in bundles, bundles in cases, cases in pallets. Each object is assigned an identification tag. Several functions are available to cope with the packaging exceptions. The picture is an example of the Italian vignette, SEA Vision s.r.l.

OCV Presentation

Page 7

which contains two different codes: a 32 code identifying the product (above), and a 2/5 code containing a progressive number (below).

1.9. Programmable measures The programmable measures are a powerful tool to define custom sequences of analysis operations, starting from the acquired images. For each measure the user can compose his own list of processing operations, which may be subjected to acceptance conditions. The object is considered good only if all operations are successfully terminated and all conditions are satisfied. The set of available operations allow to define: edge tools to extract relevant information from the image gauging tools to measure any kind of distances between relevant points blob tools to measure the geometrical features of the components colour tools to evaluate colours and colour differences window tools to move and resize (at run time) the areas of interests in the image generalised areas of interests, of any shape. The pictures below show an example of the processing sequence on an image taken from a vial. The purpose of the processing chain is the detection of the foreign material inside the vial. Acquired image threshold convex-hull new detection blob extraction

SEA Vision s.r.l.

Page 8 1.10. Print quality verification When the packaging lines host programmable printers that create artworks (for example on lidding materials), there is the need of checking the print quality on the whole print area. To this end OCV offers a specific tool: the print quality verifier (PQV). It works by comparing the print model (usually the same bitmaps used by the printers) against the image containing the printed artwork. Main feature of PQV is the capability to adapt the model to the image (through non-linear deformations) so that small differences with the printings are tolerated. The evaluation of the discrepancy is made by means of four figures, taking into account both missing and extra points. Moreover a tool that detects the missing lines (not rare mistake of thermal transfer printers) can be operated. The first picture shows the acquired image, composed by two print operations: the first printer creates the symbol with the product strength (80 mg) using a coloured ribbon, while the second printer prints all other text in black. The second picture shows the graphic result of the PQV analysis. The missing lines are detected, even if each single text character is slightly damaged. The area containing variable data (lot number and expiry date) are automatically masked: they are checked by the OCV functions.

1.11. Shift registers The Shift Registers (SRs) are a powerful tool for managing the tracking of both external and internal signals. A SR is a queue of binary data. The length of the queue (i.e. the number of data contained in it) can range from a minimum to a maximum. The input bit comes from one (or more) I/O signals connected to OCV. When the bit is extracted from the queue an output signal is set/reset according to the value of the bit. A new bit is inserted in the SR (its length increases by 1) when the specified input event happens. The oldest bit is extracted from the SR (its length decreases by 1) when the specified output event happens. Many SRs can be created and linked together (the output signal of a SR is an input of the next SR) to form a complex network. The picture shows a simple example where the SRs are used on a labelling machine to bring the results of three different controls to the device that rejects the defective bottles. The camera check results and the bar code reader results are tracked on the label web by means of the first two SRs. Once the bottle is labelled a third SR brings the information about the label up to the reject station, where it is combined with the label presence information coming by a couple of UV sensors.

SEA Vision s.r.l.

OCV Presentation

Page 9

2. OCVs main characteristics

1. The program is developed under MS-WINDOWS 2000, so as to facilitate the article programming functions and for an immediate and intuitive use of the system. To this end, OCV has been realized in such a way that the user can adopt only one monitor and a pointing device (mouse or trackball). 2. The cameras (up to four) do not need any manual adjustment: they are inserted in closed protective casings and are managed only by the software. 3. OCV adjusts itself automatically to any brightness changes in the working environment. 4. OCV checks the printings made with different technologies: laser, hot-foil, thermal transfer, inkjet. 5. OCV checks the barcodes and 2D codes that identify the objects. 6. OCV checks the vial crimps. 7. OCV checks the heights of objects through 3D measures. 8. OCV checks the presence of cartons in case. 9. OCV runs custom defined programmable measures for object gauging and inspection. 10. OCV checks the quality of the printings on the whole print area. 11. OCV manages the progressive codes on vignettes. 12. OCV hosts barcode readers, which are programmed through the OCV interface 13. OCV can be connected to printers, which are programmed through the OCV interface. 14. OCV is provided with a watchdog device for output signals that, in case of failure of the equipment, resets all outputs (and, in particular, the signal that allows the packaging machine to run) after a maximum delay of 0.5 second, stopping the movement of the packaging machine. 15. OCV handles production batches and delivers a detailed production report for each batch. This report includes information on the defects identified and on the packaging machine performance. 16. OCV can handle generic shift registers to manage signals generated by external devices. 17. OCV can offer its screen to external devices so as to display messages sent by these devices. 18. OCV implements PLC functions internally, via the software, and does not need any additional devices for the possible handling of the object rejection functions. 19. OCV accepts a series of remote commands from a serial port or from the network. These commands can be used to change the work article, to start a new production batch and send the information on the current batch. 20. OCV can be supported directly by the manufacturer via the Internet or a direct modem connection. This service allows the remote programming of the articles. 21. OCV meets the requirements of standard FDA 21 CFR, part 11: access to OCV is governed by a personal identification system all operations carried out by users and all events generated by OCV are stored in a Log-File, that can be queried using search filters OCV stores all the articles' previous versions. 22. OCV is accompanied by validation documents: design, maintenance and quality plan functional specifications SEA Vision s.r.l.

Page 10 mechanical/electrical design specifications hardware/software design specifications factory test on the system acceptance test on the system.

2.1. Programming principles OCV is a multi-functional system that is capable of different control tasks. However there is a unified approach to program each control. The programming is based on the article files: each file contains all data needed for a given set of controls. The selection of the article (through the list) sets OCV in all its functions: image acquisition, checks to execute, shift registers, internal PLC. Every article is a container of measure objects: characters, codes, 3D-measures, etc. Therefore, for any check to program the user has to create the desired measure object and one window that specifies the region of the camera where the control is executed. The next step is to link the window to the measure object; this is done in the Windows dialogue page. Note that a single object can be linked to different windows, which performs the same tasks in different places. Every window has also a rejection queue that stores the results of its check. The queue can be used to delay the extraction of the information. When the datum is extracted an output signal is set (or reset) to communicate the result either to an external device or to the internal PLC. The number of the output signal is chosen in the Windows dialogue page. The user makes the operations above described only once, when a new article (format) is created. However there is another crucial operation to perform at every new batch: the insertion of the variable data for all controls that need them: typically for print and code checks. OCV accepts these data only in alphanumeric form, as textual strings that must be typed (or sent by external devices).

3. Progressive numbers on vignettes

OCV can track the progressive numbers on vignette: it means that, for every batch, a file is created to collect the information on vignette progressive numbers. The information in the batch file is organised in hierarchical way. For example, if the vignettes are stuck on cartons that are grouped in bundles, which are inserted into cases, which, in turn, are stacked on pallets, the file contains this tree structure so that every vignette is addressed by the numbers of its bundle, case, pallet. The vignette tracking is programmed by means of two dialogue pages to define the objects that are packed on the line and the collating operations that transform a set of objects into another object of higher level. Referring to the above example we should define four objects: carton, bundle, case, pallet and three operations: cartons to bundle, bundles to case, cases to pallet.

SEA Vision s.r.l.

OCV Presentation 3.1. Packaging objects

Page 11

The objects are defined by two things: how the object is identified and how the object is constructed. The object can be either simple (the carton in the above example) or composed (bundle, case, pallet). If composed we have to tell OCV which (and how many) are the objects it is made of. The object ID can be progressive code: it is a number that must be read by the camera as a code of the specified type; code of one of its elements: it is a number that must be read by the camera as a code of the specified type; it applies to composed objects only; progressive number on label: it is a number that must not be read. When the object ID is read some checks can be done. In case of failure OCV generates an alarm. No ID read: this check can be done only if the image acquisition is triggered Not Progressive ID: this check compares the read number with the previous one; the difference cannot grater than 1; Already Read ID: the read number must be unique; ID out of range: the read number must be in the range that is programmed in the Management dialogue page.

SEA Vision s.r.l.

Page 12 3.2. Packaging operations

The collation operations are one less than the packaging objects. In fact one of the object is always simple, the others are always composed, and each composed object require an operation (and a packaging machine) to build it. A packaging operation can be seen as a machine where the input objects are collated into other objects of bigger size: the objects enter the machine and are placed in a queue, where they are picked up when collated and sent out. All operations are defined in terms of events. The input event triggers the insertion of one input object into the machine queue, while the output event triggers the collation (and extraction) operation. The input events can be Read ID of the input object: the code reading triggers the insertion in the queue; Object available: the object is inserted as soon as it is available from the previous machine. If a traffic light is installed, the code reading of the input object switches the green light on if no anomalies are detected and the red light is the reading is not accepted for any reason. The output events can be Read ID of the output object: the code reading triggers the extraction of the output object (corresponding to some input objects in the queue); in case of wrong reading the Re-align option allows the queue to be aligned according to the last read code, the alignment being the deletion of some input objects from the queue; note that the output objects can be extracted with a different sequence from the input one; in fact the ID identifies the output object and therefore OCV knows which its components are; Complete object: the output object is extracted as soon as a sufficient number of input objects entered the machine; for example, if the case is composed by 5 bundles, as soon as 5 bundles are available a new case is built; Operator's action: the output object is extracted when the operator manually executes the operation from the Management dialogue page; this option is used on objects composed by a variable number of sub-objects; Leading edge of a signal: the output object is extracted on the leading edge of the specified signal; Trailing edge of a signal: the output object is extracted on the trailing edge of the specified signal. SEA Vision s.r.l.

OCV Presentation

Page 13

Any extraction operation can trigger the printing of a label. For example, if the cases must be identified with labels to stick on them, we can enable the printing when the case is built. Other printing options are the selection of the file containing the label description and the selection of the printer that is connected to OCV. The option Remove not Collated Objects enables the usage of a signal to empty the machine. All input objects are removed from the queue. 3.3. Packaging Management

The management dialogue page allows the operator (with the batch management permission) to execute two operations: the operator can empty the machine creating a new object (only if the output event is the operator's action); the operator can change the acceptance range of the IDs identifying the objects; this interval is used to check the read ID, but only if this check is enable also in the Object page.

SEA Vision s.r.l.

Page 14 3.4. Visualisation

The data are displayed in a tree structure where each composed object can be expanded into its subobjects. Each object has the creation date and time as attribute. The objects can be divided into two classes: those inside one machine and those outside the machines. In the example of the picture the pallet is the highest level object of the packaging line, so it is the output of the last machine and therefore it is always outside any machine. An intermediate object can stay either outside a machine or inside. For example a bundle can be exited by the machine that created it but not inserted in the next machine yet. Moreover there are the objects that, because of anomalies, stay outside the machine waiting to be packed again. For example, when a wrong bundle is unpacked, the cartons belonging to it are extracted from the line and the stay outside the machine until they are re-circulated again. The same consideration applies to the objects that are extracted from a machine before they are packed. Some actions on packaged objects are available from the menu: Unpack the selected object: it can be applied only to objects outside the machine; the object is destroyed and its component are available outside the machine; Recursively unpack the object and all its elements: the same as before, but the action is repeated to all levels up to the basic packaging objects; Extract the selected object from the machine: the object is brought out from the machine, without unpacking it; Extract the selected object from its pack: the object is extracted from its pack, that must be outside the machine; the incomplete object is marked in bold font; Insert the selected object into the selected pack: the pack and the object must be outside the machine; the pack must be incomplete.

SEA Vision s.r.l.