This year at National Instrument's annual conference, NIWeek, DMC was invited to present on "Real-world Techniques in High-Speed Vision Inspection." DMC is an NI Silver Alliance member with a specialization in vision. Ken Brey and I are Certified Vision Professionals and were excited for the chance to share some of the knowledge and experience we have gained through various vision inspection projects. We worked together with Dan McCarty, Sr. Software Manager at W.H. Leary Co. to create a presentation highlighting lessons learned from projects such as the vision inspection systems we have helped W.H. Leary create.
In case you didn't make it to NIWeek or weren't able to join us on August 6, we have posted the presentation to SlideShare. During the presentation, Dan reviewed the many challenges that Leary faces in the folding carton industry. For example, ensuring that glue is properly applied to more than 30 separate locations on a complicated six-pack beer carrier was essentially impossible without a machine vision system. This is especially true considering the folder-gluer can process 10 to 50 cartons per second depending on the size of the carton.
After Dan presented the challenges associated with the high-speed folding carton industry, Ken and I rose to these challenges and presented some theories on designing a vision system. We explained that our favorite hardware platform for high-speed, multi-camera, 100% up-time, machine vision systems is a PC running NI's real-time operating system. This system is connected to standard cameras as opposed to a smart camera which performs image inspection using an onboard processor.
For many of our vision inspection projects NI's FPGA cards and expansion chassis have been critical tools for controlling digital inputs and outputs for camera triggering and encoder tracking. Though we mainly focused on giving tips on using the FPGA in this way, I'm also excited about the new tools in the 2014 Vision Development Module that make it easy to offload some intensive image processing algorithms to an FPGA. We did not discuss this in our presentation because it is a brand new feature that was just unveiled at NIWeek 2014. I'm eager to use it in future projects.
We also shared some of the random bits of knowledge we have picked up from experience on these projects. Some of my favorite "Knowledge Nuggets" are:
- Avoid creating and destroying image references. Use a static pool of image references that you create once when the program initializes.
- Use integer math instead of floating point math where possible. We demonstrated a 2.5x increase in processing speed for the same mathematical calculation using integers compared to double-precision numbers.
- Use the VI Profiler tool to determine which VIs are taking the most time to execute. This is how we discovered that some of our VIs were spending too much time creating and destroying image references.
Overall, the presentation went well and was well-received by the audience. I hope that audience members gained some useful tips that they can use on their own projects.
NIWeek 2014 had a vision summit that included some other interesting announcements. I already mentioned the FPGA Vision IP that I am excited to use. Another great new product is the cRIO with integrated display for user interfaces. NI's real-time operating system is great for high-speed vision inspection that requires 100% availability and reliable, deterministic processing. The only downside was that there was no way to program an interface in the real-time operating system. Our other RT vision systems use a separate PC (typically running Windows) to serve as the HMI, communicating with the RT PC via TCP protocols. Now, we can streamline our development by integrating the HMI into the real-time program. Good job, NI!