|
|
 |
|
Upon close inspection: Here's what it takes to create a robust, reliable manufacturing inspection solution
By Kelly Davis, Matrox Imaging
|
|
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."
|
| 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."
|
|
Test sets should include both correct and faulty cases, as shown here.
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.
|
|
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.
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. |
|
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.
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.
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. |
|
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.
|
|
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. |
|
|
|
|