English | Other languages

Upon close inspection:
Here's what it takes to create a robust, reliable manufacturing inspection solution
By Kelly Davis, Matrox Imaging
Original article featured in Lasers & Optronics, November 1999
In the world of manufacturing, creating a robust and reliable algorithm for an inspection application is crucial - not to mention doing so in a relatively short time frame. This is why OEMs and integrators are turning to interactive, easy-to-use inspection software development packages to speed up development time and improve the quality of their inspection solutions. These packages are used to create and thoroughly test prototype algorithms before applying them to actual on-line system/s.
The user
In order to take full advantage of a sophisticated, multi-faceted inspection software development package, and therefore develop an optimum algorithm, there are certain requirements that must be met by developers themselves. "There is no software substitute for in-depth knowledge of the system or problem," says Irene Leszkowicz, Interactive Software Leader for Matrox Imaging in Montreal, Quebec. "Developers usually have a clear understanding of what they're testing for and what they want to achieve."
As well, developers need sharp evaluation skills. They need to know what to expect, what range of variation is normal, what flaws are and aren't acceptable. And they should know what can be tested in combination versus independently.
Further, they must have some background in image processing - understanding the benefits of blob analysis, pattern matching and other such concepts. However, says Leszkowicz, "the developer should not be forced to learn all the details of a processing library in order to start using it. An interactive development tool can present all the underlying functionality with suitable default values. Providing access to advanced features allows fine-tuning of the algorithm when needed."
On a more tangible level, developers also must have a solid test set to accompany their software package. To be sure they have the most accurate algorithms, it is imperative that they test them against many different images, each exhibiting a representative set of cases - flawed and unflawed. These test sets can be taken from existing field data. With interactive software like Matrox Inspector 3.0, images can be converted into standard formats, organized into collections, or live images can be captured at any stage of the development process.
Image 1
Test sets should include both correct and faulty cases, as shown here.
The tool
With a wide range of applications requiring detailed inspection in complex fields of view, developers have an equally wide range of requirements when it comes to a sophisticated inspection software development package. However, according to Leszkowicz, the ability to both customize and extend the software is critical.
"Today, no one stand-alone package will satisfy developers' requirements - they must have the capability to interchangeably use other programs with this tool. They need to be able to access external or third-party libraries, add proprietary algorithms, control third party hardware, etc. Customizing allows developers to speed up repetitive tasks, save steps (and therefore time), through such features as record and play back macros, create shortcut keys, run scripts, and more. Extending allows for easy exporting of information to other packages, such as Microsoft Excel or MatLab, so that test results can be analyzed, reports generated, etc.," she says.
Developers are also looking for a package that will allow them to quickly perform tests. The faster they test, the more tests they will do - giving better test coverage and therefore resulting in a better solution. With Matrox Inspector 3.0, for example, developers can explore many possibilities in a short period of time. For example: using a slider tool, in seconds one can see a live preview of a full range of effects on an image, enabling one to establish limit conditions and evaluate the sensitivity of the algorithm. To achieve the same coverage by changing values in a dialog box or property sheet, or by changing code, would take significantly longer.
Besides having a software package that meets the above requirements, also keep in mind that the technical support accompanying such a package must be prompt and reliable. All of this has an effect on the developer's success.
The process
When interactive inspection software is used to develop algorithms for on-line manufacturing applications, there are usually four major phases developers go through to achieve the solution/s they require in the shortest time possible.
Qualitative
During this initial phase, the developer interactively explores the approaches to his eventual solution. He wants to be able to do so in an easy and familiar environment. A broad selection of sample solutions provided with the software can serve as the basis for further development. Once he has a couple of ideas, he will then want to compare them interactively while he works. With packages like Matrox Inspector 3.0, this can be done by recording his actions throughout the exploration process, viewing live previews, graphs, and using other tools. He can drop his test images into a collection or database and begin testing. Saving time at this first stage is critical.
Image 2
An inspection development software package should be expandable, allowing the developer to explore the data through live preview measurements directly from graphs and a variety of display formats.
Small-Scale Trials
Once the developer has found a solid algorithm, it's time to apply it to a test set using methods that again save time. At this stage, he wants to test it on a small-scale trial basis and ideally, he wants to automate that validation. This is where a powerful and familiar scripting environment, such as Visual Basic, comes into effect. As well as playing back what he's recorded in the earlier phase, custom scripts can improve the validation process. Custom dialog boxes created graphically provide a simple way of specifying new values for algorithm parameters. More importantly, the execution of test scripts should accommodate graphical user input at key decision points during development. With Matrox Inspector, positions, regions and processing parameters can be set at any point. This is particularly useful when an image in the test set produces an unexpected result and the user's experience is needed to continue the inspection training. Now, the developer has to start keeping statistics because of the many results he is beginning to see - therefore, he starts to export his results and log them.
Large-Scale Trials
At this stage, testing must take place on a large scale, using hundreds of images. With software like Matrox Inspector, this stage can be completely automated. The software can run tests unattended while at the same time logging errors, exporting results and much more. Then, once he has enough data, serious statistical analysis begins, using familiar programs like Microsoft Excel and MatLab. At this stage, the developer applies his own knowledge and expertise, looking for trends, failures, weak spots in his solution. The more information he can gather, store and analyze at this point, the more he will learn and the better solution he will achieve.
Application
Once the algorithm is fine-tuned, it's time to apply that solution to the developer's application by creating code based on an imaging library. Using his prototype, the developer will replicate it using the library in order to maximize the algorithm's speed.
Once the application is finally online, the scripts and validation tools developed during the initial stages are also useful. As faults are detected in the inspected objects, the developer can analyze the failures more fully in the interactive environment, creating and printing reports directly. He can also add those cases to the test sets to enhance the coverage for future developments. Creating an inspection solution for the manufacturing sector, such as the semi-conductor or electronics industries, is not simply about rejecting faulty parts on the assembly line. If the aim is to increase productivity and lower costs, then becoming more efficient is the answer. And, inspection is the key to efficiency. Developers must "close the loop" by discovering the root cause of the problem, providing feedback to the source and taking corrective measures.
Eventually, machine vision systems will not only inspect and reject faulty parts, but assess the problem, determine a solution and implement it...all while online. In the meantime, however, developers with the right background and expertise using interactive, easy-to-use, sophisticated inspection software packages can do the job!
Image 3
Today, no one stand-alone package serves a developer's purposes. The ability to automatically export results to external packages like Excel (as shown here) or MatLab, is highly beneficial.
For more information, contact our Media Relations Team.
Top of page
Site Map Contact Us Legal E-mail Matrox