10 Considerations When Choosing Vision Software


As a leader in machine vision and image processing for over a decade, National Instruments offers vision software in two packages: the NI Vision Development Module and NI Vision Builder for Automated Inspection (AI). You can use the Vision Development Module with NI LabVIEW, C, C++, or C# to gain hundreds of functions for programming powerful vision inspection, alignment, identification, and measurement applications. With the interactive software environment in Vision Builder AI, you can configure, benchmark, and deploy machine vision applications without programming. Both software packages work with all NI vision frame grabbers, Industrial Controllers, and Smart Cameras. When choosing your vision software, keep in mind the following 10 considerations.


Camera Choice

The first consideration when picking vision software is to determine if it works with the camera that is best suited for your application. It is easy to find low-cost analog cameras, but, often, an application needs more than VGA resolution, frame rates faster than 30 frames/s, and an overall greater image quality than a standard machine vision camera has.

National Instruments hardware and software are compatible with thousands of cameras, from low-cost USB3 Vision to high-speed line scan and thermal.

Hardware Scalability

Choosing the right camera is a crucial step in any application; however, camera scalability is another important consideration. Because camera technologies are advancing rapidly, some day you may want to upgrade your cameras to improve image quality or measure additional features. NI Vision Acquisition Software is driver software that works with all NI frame grabbers and connects to thousands of cameras with one easy-to-use interface. Your software remains the same even if you change Camera Link camera vendors or transition between more than 100 different GigE Vision, IEEE 1394, and USB3 Vision cameras.

National Instruments driver software works with thousands of cameras as well as all NI hardware platforms such as PCs and PXI/CompactPCI, Industrial Controllers, Smart Cameras, and CompactRIO controllers. This means you can prototype your application in a lab on a PC with an inexpensive camera and then deploy it to the production floor on a rugged NI vision system without changing the acquisition or image-processing code.

Software Ease of Use

Once you acquire an image, the next step is to process it. With the choices in algorithms today, finding the correct tools through trial and error in a programming language can be tedious and ineffective. With this in mind, you need vision software tools to help you make the most of the algorithms.

For many applications, you do not need a programming language to build a complete machine vision system. Although less flexible than programming in C, Visual Basic, or NI LabVIEW, configurable software such as NI Vision Builder AI provides an easy-to-navigate, interactive environment to configure, benchmark, and deploy machine vision applications. Vision Builder AI includes nearly 50 popular machine vision tools such as pattern matching, OCR, DataMatrix readers, and color matching. It can acquire images from any camera NI supports and communicate inspection results with other devices using common industrial protocols over Ethernet, serial, or digital I/O. You can also control Vision Builder AI inspections from LabVIEW and TestStand. 

While programming a vision application is more complex than configuring one with Vision Builder AI, National Instruments makes application development in LabVIEW, C, and Visual Basic easy and straightforward with the NI Vision Assistant. Included with NI Vision Development Module, the Vision Assistant is a prototyping environment with which you can interactively experiment with different vision functions to see what works for your application and how long each function takes to run.

Once you determine how best to meet your application challenge, simply click a button and the Vision Assistant generates ready-to-run code. You finish the majority of your vision application before you ever type a line of code. You can run the code generated by the Vision Assistant on its own or add it to a larger industrial control, data acquisition, or motion control system.

Whether you are a vision novice or an expert vision integrator, the Vision Assistant helps you create an efficient and reliable vision application in less time.


Algorithm Breadth and Accuracy

When choosing vision software, you must determine whether the software tools can correctly and accurately measure important part or object features down to the subpixel. If the software is not accurate and reliable, then it does not matter how fast your computer is or how many pixels your camera has. Keep in mind that it is much easier to make accurate code faster than to make fast code more accurate.

Vision Development Module and Vision Builder AI include hundreds of accurate and reliable vision functions. The five most common machine vision application areas are listed below along with the most popular algorithms.

Enhancing an image – Use filtering tools to sharpen edges, remove noise, or extract frequency information. Use image calibration tools to remove nonlinear and perspective errors caused by lens distortion and camera placement. You also can use the image calibration tools to apply real-world units to your measurements, so the tools return values in microns, millimeters, or miles instead of pixels.

Checking for presence – This is the simplest type of vision inspection. To check for part or feature presence, you can use any of the color, pattern-matching, or histogram tools. A presence check always results in a yes/no or pass/fail.

Locating features – Locating features is important when aligning objects or determining exact object placement, serving as a standard for all subsequent inspections. Edge detection, grey-scale pattern matching, shape matching, geometric matching, and color pattern matching are all tools you can use to locate features. The tools return the object position (X, Y) and rotation angle down to one-tenth of a pixel. Geometric matching is immune to overlapping objects or objects that change in scale.

Measuring features – The most common reason to use a vision system is to take a measurement. Typically, you use edge detection, particle analysis, and geometric function tools to measure distance, diameter, total count, angles, and area. Whether you are calculating the total number of cells under a microscope or the angle between two brake-caliper edges, these tools always return a number instead of a location or pass/fail value.

Identifying parts – Part identification is important for part compliance, tracking, and verification. Straightforward identification methods include reading a bar code or data code such as DataMatrix and PDF 417. Newer methods use trainable OCR or object classification. Part identification often results in text or a string rather than a measurement or a pass/fail determination.

All of the Vision Development Module and Vision Builder AI functions take advantage of subpixel accuracy to interpolate locations, distances, and measurements down to one-tenth of a pixel and one-tenth of a degree.

To learn about NI vision algorithm capabilities, how they work, and how best to use them, refer to the NI Vision Concepts Manual.


Heterogeneous Processing

One of the biggest advancement in machine vision has been processing power. With processor performance doubling every two years, and a continued focus on parallel processing technologies like FPGAs, vision system designers can now apply highly sophisticated algorithms to visualize data and create more intelligent systems.

This increase in performance means designers can achieve higher data throughput to conduct faster image acquisition, use higher resolution sensors, and take full advantage of some of the latest cameras on the market that offer the highest dynamic ranges. An increase in performance helps designers not only acquire images faster but also process them faster. Preprocessing algorithms such as thresholding and filtering or processing algorithms such as pattern matching can execute much more quickly. This ultimately gives designers the ability to make decisions based on visual data faster than ever.

Unfortunately, one of the biggest challenges to implementing an FPGA-based vision system is overcoming the programming complexity of FPGAs. Vision algorithm development is, by its very nature, an iterative process. Designers know up front that they will have to try a few approaches with any task. Most of the time, they need to determine not which approach works but which approach works best, and “best” is different from application to application. To maximize productivity, immediate feedback and benchmarking information for algorithms is needed regardless of the processing platform being used. Seeing algorithm results in real time is a huge time-saver when using an iterative exploratory approach. However, the traditional approach to FPGA development can slow down innovation due to the compilation times required between each design change of the algorithm. One way to overcome this is to use an algorithm development tool that helps you develop for both CPUs and FPGAs from the same environment while not getting bogged down in FPGA compilation times. Using the NI Vision Assistant in conjunction with the Vision Development Module designers can develop algorithms for deployment on either the CPU or FPGA. The Vision Assistant can also be used to test the algorithms before compiling and running it on the target hardware while easily accessing throughput and resource utilization information.


Integration with Other Devices

If you have ever completed a vision application, then you know that vision is often part of a much larger control system. In industrial automation, your vision application may need to:

  • Control actuators to sort products
  • Communicate inspection results to a robot controller, programmable logic controller (PLC), or embedded system
  • Save images and data to network servers
  • Communicate inspection parameters and results to a local or remote user interface

Often, for scientific imaging applications, you must integrate vision with motion stages, data acquisition systems, microscopes, specialized optics, and advanced triggering.

As a leading industrial control, data acquisition, and motion control product supplier, National Instruments designs its vision products to work with these and other common components. Whether you need to communicate with a PLC over DeviceNet or a microscope over a serial bus, you can do it with NI vision products.



Vision software packages come in many variations. Many cater to OEM customers by splitting up their development libraries and selling algorithms a la carte. While each algorithm bundle seems lower in cost, the total vision development package cost is often quite high. Add to that the cost of a license for each component, and application deployment becomes complicated as well as costly.

Vision Development Module features all the algorithms you need to meet the toughest vision challenges so you can avoid researching, buying, and maintaining multiple software bundles. Plus, deploying applications is quite inexpensive – with a single vision deployment license, you can deploy an executable that uses any number of vision algorithms.


Partners and Integrators

National Instruments produces image processing and machine vision hardware and software. Because NI does not make lighting, cameras, and optics, the company works closely with other experts who do.

Over the last decade, National Instruments vision products have helped meet thousands of diverse application challenges, from inspecting automotive components to assisting in cancer research. While NI vision tools are designed for end users, larger applications may require expert vision help. To assist in your application development, NI works with more than 1,000 NI Partners who can help you select the right components or build you a complete turnkey solution.

Technical Support

While NI vision software is designed to be easy to use, it is important to get help when you need it. When you need an expert, you can contact one of hundreds of degreed applications engineers via phone or e-mail.

For 24-hour support, visit the award-winning NI technical support web site or submit your question to the large NI vision discussion forum user community. Chances are an active member has already tackled your problem or application challenge.


Company Growth and Stability

When you invest in machine vision software, knowing that you can use your software in the future is just as important as getting it running today. There are many small, specialized machine vision companies and, while their tools may work for a current application, when you need to update an inspection station in five years, you want to know that the company and the software will still be around and improving.

Additional Resources