Modular-X is adept for many purposes. This showcase presents a selection of its various applications, most of which are actual implementations in industry. A brief description is given on the examples together with images illustrating the operations performed. It should be noted that the images contain additional graphics, such as highlighted overlays for illustrative purposes, and do not always represent the actual user interface of Modular-X.
Optical character and code reading are a popular branch of development in machine vision as data digitisation finds good uses in many industrial applications. Modular-X offers powerful tools for each text, barcode and datamatrix reading that can all be combined with other inspections at the same time.
In character reading, techniques vary between pattern matching and feature detection based algorithms, of which Modular-X utilises the former. Modular-X's strengths in OCR operations rely on the range and usability of the pre-processing tools. Accurate and reliable applications are created by first applying smart image preparation task such as deskewing and segmentation.
The OCR example seen on the right deals with text printed onto a small plastic power amplifier case. Satisfactory image acquisition is assured after which the reading is all child's play with our software. One might notice that the reading is even given some extra reliability by using an OCR-friendly font (OCR-A specifically).
Barcodes and data matrices are another group of markings often desired to be read. Designated reader devices exist, however, their capabilities are very limited and, as mentioned, sometimes the reading is efficient to be implemented as simply one operation in a broader vision system.
The example is from automotive industry where, for one, reading the data matrices is of great importantance in order to keep track of all the part production data. This one is also a classic case of a code that requires additional processing with the image before it can be read reliably, thus in need of Modular-X's features.
Various quality inspection applications make up a good portion of the wanted vision systems. Typically, a system is taught to measure the quality and/or recognise certain defects in a product. The colossal diversity of the requirements in different inspection projects is directly answered by the customisability and the versatility of Modular-X. Here are a few examples of quality inspection applications constructed with Modular-X.
In a usual case, a surface is examined against appropriate illumination in order to detect surface imperfections that suggest quality faults. Challenges comprise for example issues with sufficient image acquisition and defect classification.
In this uncomplicated example, colored components on a product were identified by color and checked for surface imperfections. Components are validated or rejected based on the relative intact paint area.
This example represents an elementary vision inspection with a group of different quality checks. Versatile software like Modular-X prospers in such task as different quality checks, measurements and text/code readings can all be managed at the same time. In this case, in addition to validating the two solderings, the object is examined for contaminations and other deformalities.
The image on the right shows a flat cable and a flat cable connector welded together. The welding has a risk forming shortcircuits and in the inspection, these objects of width even as low as 5 - 12 µm are looked for.
AOI (Automated Optical Inspection) systems are often built for Printed Circuit Boards to scan for defects and missing components. Approaches are plenty and the requirements and complexity vary between applications. Modular-X powered systems offer cost-effective solutions directly answering to specific needs.
In this application, a PCB board is scanned for missing SMD (Surface-Mount Device) components. A straightforward Modular-X system was created that checks each component and detects if any of them are missing.
Counting and classifying objects—often a rather menial task—is also something quite characteristic to computer vision applications. Simple as it may sound, counting programs often face issues with segmentation and sample consistency. Accuracy and reliability are achieved through an elaborate inspection application, which—needless to say—can be effectively constructed with Modular-X.
The example of the image is a straighforward counting of objects. Extra effort is only required in separating the tightly packed objects from each other and in including the slightly occluded and/or misaligned ones.
In contrast to traditional inspections, tracking applications involve following object in motion from a video. The uses include tasks such as security, surveillance and traffic control. The core of video tracking revolves around detecting target objects and associating them between video frames. Elaborate systems are often augmented with data filtering and state estimation through algorithms like the Kalman filter.
This example demonstrates the bottom-up side design of a video tracking vision application in Modular-X. In the simple project, a reference image is used to 'subtract' the background from the current frame thus leaving only the target objects, the vehicles. The advanced data association was not implemented in this target tracking example.
The dataset of the example is courtesy of changedetection.net
Not all computer vision applications are found in industrial production lines and neither is Modular-X's utility limited to such. Offline image analyses are employed in tasks such as cell counting, print and paper quality measurement, and fibre analysis.
The following analysis was designed for a froth flotation process bubble formation research. Images of various object distributions were processed in detail to extract count, dimensions and histogram data.
Sometimes applications ask for functions not implemented in Modular-X or in the NI Vision library. In such cases a new module defining the algorithm is created—most conveniently in LabVIEW—and included in the Modular-X project through the RunVI function. The example animation shows a simple pathfinding algorithm used as a subroutine in a study.
There are limits to what can be achieved in ordinary pixel-processing computer vision without incorporating higher-level semantic information. Picture for example inspecting black objects on a black surface. The question here: is there any real information in the pixels? Constructing digital 3D models and utilising the three dimensional data finds many uses in various reverse engineering and quality control/inspection applications.
3D scanner technologies are many and they each come with their own strengths, weaknesses and costs. At present, laser triangulation, structured light and contact scanning are the most employed technologies in industrial applications, with contact scanning being the most accurate but, by far, the slowest option.
The following example employs the SICK Ranger laser triangulation 3D camera, accessible in Modular-X through the SICK 3D Camera Toolkit for LabVIEW. The 3D inspection and measurement example was created to show the speed and accuracy with which Modular-X and a 3D scanner can work together, yet expanding the range of vision applications easily constructable with Modular-X. For a template of the Modular-X SICK 3D Camera interface, download SICK Ranger ModX.zip.
The image on the right displays the scale of the SMD boards mounted onto a disk that was rotating at a high speed. A version of the example was on display at the VISION 2012 Stuttgart exhibition, see the video here. Proper configuration of camera, laser, trigger and parameters allows accurate inspections at extremely high speeds, even higher than seen on the video.
Laser triangulation 3D scan, such as this, works so that objects are swept past a laser line that has the camera pointed at it from a different angle. The camera can then register the shape and size of the object and produce a digital 3D model. The image on the left shows various representations of the data obtained from the camera. The original scan provided by the camera is stretched, because of the high number of profiles obtained, and distorded because of lens and persepective distortions and the radial movement of the object. The distortions and stretch can be automatically corrected and if the camera is calibrated, the model can be inspected and measured in a real world unit coordinate system.