Select the right software for your applications

Processing and analysis

CThe very core of every machine vision application is the software the performs the actual processing and analysis of the image. At this point specific software tools (“algorithms,” “operators,” etc. depending on the terminology used by the application or library vendor) are configured or programmed to perform specific analysis on the pixel-based data in the acquired image.
Whether programming at a low-level, or configuring an application, this development step is where the creative and sometimes difficult machine vision engineering takes place relative to the software component of the system.  The developer selects and combines the tools necessary to execute the application. By way of further explanation, common tools found in most software implementations could be assigned perhaps to a few descriptive categories: preprocessing, blob analysis, edge analysis, search, matching, color analysis, classification, optical character recognition and verification (OCR/OCV), and bar or 2D code reading. In some cases, the tools might be categorized alternately by function: “inspection,” “measurement,” “reading,” etc. Overall, the tool selection varies widely by component or library with some libraries offering literally hundreds of individual operators. In both configurable and programmable software packages, tools or operators must be combined in order to execute a complete machine vision application.

Communications and results

Ultimately the machine vision system must interface with the outside world. The ability to receive production information or recipes from the broader automation system, and to provide results and statistical data to the process is critical to both the success and value of the machine vision system. A configurable machine vision software package often provides various communication and result processing tools, and at design time it might be important to consider whether the interfaces available in the software are well-suited for a specific automation environment. In programmable systems, the task of communication and results processing might be external to the actual machine vision software and handled by other software or code.

Specifying machine vision software

Before any discussion of software specification, it is important to emphasize that design and specification of imaging components including sensors, lighting, optics and computing platform relative to the needs of the application is critical to the success of the entire system. There is no shortcut in software that will make up for incorrect image formation or lack of processing speed or power. The important overall takeaway is that both the hardware and the software must meet the needs of the application.  In this brief overview of software specification, we’ll presume that the targeted system already is designed to acquire a very high-quality image with correct resolution and feature contrast.
As noted earlier, in machine vision systems with a proprietary architecture like “smart cameras” the software is completely tied to the system in a complete package. The software is not scalable nor changeable. The software challenge then is to ensure that the available tools in the package perform the required tasks for the target application. Perhaps easier said than done. One recommendation that is always a good design step is to evaluate the component and software application with production sample parts to ensure performance.
The same is true for software libraries in that evaluation and proof of concept always is a best practice and the tool offerings must still match the application. With an open architectures though, there is opportunity for scalability both in components and software, even to the extent of changing or complimenting the selected library with additional software.
Where the process sometimes stalls or goes astray is when components and software are selected solely based on personal preference. One may prefer the GUI of a particular software package because it is familiar and has worked in the past. No argument that this may be an important consideration, but it should not override realistic evaluation of the capability of the system to successfully execute the required machine vision task.

Hot topics in machine vision software

“Hot topics” and “trends” are fun to read about and always create excitement. But unlike that latest car design, cell phone, or fashion statement, engineering is a disciplined undertaking where practical and dispassionate study and analysis of the available tools and solutions should overcome the hype of the moment.
The bottom line is that new machine vision software and components are being developed regularly. The best advice to consider is to look at new technology offerings not as an automatic solution to all projects but rather as tools that can be evaluated for a given application.
A few of the stand-out hot topics (there are plenty to choose from) in machine vision software for the beginning of this decade are 1) advanced spectral imaging using hyperspectral components; 2) computational (or “combinational”) imaging where multiple images are combined to better highlight features not well seen with a single illumination structure; and the use of artificial intelligence (AI) and/or deep learning in a variety of ways to provide greater ease of use in vision system configuration and/or the recognition of subjective changes in an image for feature or defect classification.
Research these and other new software technologies with the understanding that no single solution is suited for every application.
In conclusion, hopefully this discussion has helped clarify what’s “under the hood” in machine vision software and that it has helped ensure that your machine vision applications all will be successful and reliable now and in the future.

Contact with us for the further information: