Advanced Imaging


Advanced Imaging Magazine

Updated: January 12th, 2011 09:49 AM CDT

Component Integration: The Software Story

Faster algorithms, more usability, 3D and fitting better with multicore processors are just a few trends
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5

By Barry Hochfelder

“More and more we see multi-processing technologies and parallelization, based on multiple computers, multiple computation units in one computer or distributed on several cores,” says Gimple. “The development and debugging tools as well as the programming languages contribute to that and are getting more powerful to meet the requirements of parallelization. Imaging libraries that were not developed with thread safety will see hard times in the future.

Continuing with her emphasis on the importance of ease of use, Srikant sees software evolving to incorporate tools to simplify the validation of inspections to make them more robust and reliable. “For example, you may configure your inspection and then test it using a handful of sample images, but what about all the other environmental variations that can occur by a change in lighting, in a lens being out of focus or a part moving by too quickly on a production line?”

NI’s latest software product, Vision Builder for Automated Inspection, is designed for those occurrences. “It will allow you to create deviations of your images and test your inspection on them to ensure that your system will always return the proper result, or if an incorrect result is returned, to inform you why that has happened.”

As multicore continues to grow, it will make it necessary for software to adapt as well, says Kreutzer. “To really meet these requirements, it is necessary to parallelize not only filters, but also operators and methods that are important for a huge amount of industrial applications. This should cover methods, for example, for matching, 3D matching, subpixel extraction and fast Fourier transformation.

“A further advantage can be to pre-select a region of interest (ROI) as a free form in the image of any orientation,” he adds. “If it is possible for the software to only process a pre-selected area of the image, it leads to a dramatic reduction of processing time. This speed benefit of software can further be increased if software is able to process arrays of images in parallel as well as arrays of regions, caused by segmentation and arrays of subpixel-accurate outlines. However, parallelization only makes sense if enough memory throughput is available; thus, the performance depends on hardware. Also in this case, software automatically identifies the hardware environment. Based on this ability, software should decide which algorithms will parallelize and which not to avoid unnecessary overhead. Multi-channel images [for example, color images] are getting more important.”

Subscribe to our RSS Feeds