A significant challenge with machine vision is successfully using a captured image in an application by using software to inspect the image. Typical vision systems may require many software components to have a fully functioning solution. Initially, the imaging device and the computing hardware need to have a way to communicate. Once that is established, the image needs to be captured by the device. And then, that image needs to be processed for the application in question. For quality inspection, the key is developing a system that can reliably deliver product that is free of defects, and to do that it requires careful software selection.
Why does software make a difference?
A combination of hardware and software make up any vision system. The hardware enables the resolution, frame rate, and other imaging specifications. Through image acquisition and processing, inspection software allows a system to remain autonomous or help with manual work by streamlining procedures that can be programed into the workflow.
Software packages for machine vision are designed to usually fit in one of four categories: software drivers, image acquisition software, image processing software, and other third-party software, such as plug-ins or additional libraries. Modern software is designed to be flexible to accommodate various use cases. However, each software has its intended purpose and limitations, whether it be communicating with the hardware or manipulating image data, they rely on each other to create a fully capable machine vision system. So, it is crucial to understand the capabilities of each program so that each piece of the system can successfully work together.
Vision System Software Components
Software Drivers
The foundation of any imaging software are the software drivers. These establish a digital communication between the imager, such as a camera, and the host device, such as a computer. The process of image acquisition starts with the host device sending a signal to the imager to capture an image. Other parts of the inspection system may also require drivers to establish a connection between each component. This basic connection allows for multiple imagers to capture hundreds or even thousands of images used for judging the quality in a production.
Image Acquisition Software
Capturing an image is the main objective behind any vision system. By using an imager such as a camera, settings and controls can be configured to capture just the right image. When establishing image acquisition software, image data is sent from the camera to the host and interpreted so that it can then be used for inspection. This is important when using cameras for automation where the system requires the camera(s) to capture images reliably and consistently when triggered (e.g. bottles passing by a camera on an assembly line that need to have their fill levels checked). As each bottle passes by, the image acquisition software works with the triggering mechanism (software or hardware trigger), and captures a series of images that can be analyzed.
Processing Software
Manipulating image data is a key function of machine vision applications. For inspection, this means using software to establish criteria for whether a product passes or fails. The processing software is what enables the vision system to identify and analyze areas of interest. At this stage in the imaging cycle, the processing software checks if the image meets expectations or if there is an issue.
For production applications such as robotics, a camera can act as the eyes for an automation system. If a robotic arm is intended to position and place products in a specific orientation or into a package, the arm needs to have a reference for the current position. By using processing software, the robot can pinpoint where the subject of interest is located and properly interact with it. This is done by capturing an image and using the software to determine information about the image.
With some inspection software, an entire sequence of tests or events can be used to judge whether something is wrong or if adjustments need to be made before proceeding. By setting up a series of tests that can perform various inspections, software can increase productivity in automation. For robotics, this provides information by testing for position, orientation, tilt, and other information about how the machine must move to successfully complete a task.
Third-Party Applications
Additional software options can enhance a vision system. Support for new hardware and software functionality can be improved by adding plug-ins or additional libraries. Often when installing a software suite, both the image acquisition and processing software will be integrated from the same developer. However, additional software may prove valuable for certain applications. That is why a significant part of the software experience is a result of its compatibility with other programs.
For those who already have a vision system and are looking to integrate new software or new imaging equipment that requires a software overhaul, third-party applications can help merge these. A common solution for different programs working together is through a software plug-in. Developers who provide software plug-ins allow a vision system to leverage multiple software solutions at the same time.
Some applications bring in new functionality that the existing processing software may not offer. For a machine vision program that uses typical pass-fail criteria for inspection, adding in an AI application to also go over these same images may allow for more complex images to be tested. This can also help locate subjects of interest in an image while machine vision software can run routine tests more accurately. Through these types of additions, third party software offers a variety of new possibilities when working on inspection without needing to compromise on a single vendor for all aspects of a project.
The Full Package
Those new to machine vision might assume that they only need to download a single piece of software to handle all of their needs. The truth is that most software solutions require multiple components to get to the finished product. Drivers are a must for working with almost any piece of hardware, but these will require the installation of additional software to control and use that hardware. Once the system can communicate, the next step is to start sending commands such as how it should capture an image. Once a system has control over the hardware, images need to be used for inspection of various materials or processes and having a tight integration between the acquisition and processing of these images is essential.
A complete software package can also include having third party software components for building new capabilities within the system or to keep existing software solutions functioning as part of the overall system. Each component in the software solution can provide capabilities, but each developer may offer different features and their software may not always be a perfect fit. So, be sure to contact a software provider and discuss your specific use case with them. This will help clarify what software they offer for image acquisition, image processing, and if they provide support for any other software to work with their solution.