Choose from a range of software toolkits to simplify system development
Choose from a range of software toolkits to simplify system development
By Rick Nelson, Contributing Editor
Because imaging applications run on a variety of architectures--including parallel processors, DSP boards, and Windows-based PCs--no single development tool can best serve all machine-vision developers. The result is a range of development tools. On one hand, image-processing-board vendors` proprietary libraries and assembler-level toolkits provide optimized library subroutines callable from C and FORTRAN. On the other hand, there are independent vendors` object-oriented, hardware-independent packages that include toolbars, operator dialog boxes, and interactive windows.
Hardware toolkits
In-between these extremes, many firms offer graphical development systems for their own hardware or provide hardware-specific enhancements to third-party GUI packages. Data cube (Danvers, MA), for example, offers a modified version of Logical Vision`s WiT platform-independent development software that provides image-processing functions and allows developers to use Microsoft Visual Basic to design a user interface. Datacube WiT can reside on Data cube`s MaxPCI systems or can generate code for both VME and PCI Datacube products on off-line PCs.
Cognex (Natick, MA) also includes a graphical development package with its Checkpoint systems and boards. In April, the company introduced a color PCI frame grabber that it also supports with color image-development tools (see Fig. 1).
Board-level vendors Imaging Technology (Bedford, MA) and Data Translation (Marlboro, MA) also offer development tools for their products. While Imaging Technology packs hardware and software into its MVS integrated development systems that include ITI`s MVC family of vision boards and ITEX software-development tools, Data Translation offers a dynamic link library that lets C programmers create imaging applications under the Windows NT operating system. For high-level graphical-development support, Data Translation recommends Integral Vision`s VisionBlox software.
Multitiered approaches
Matrox (Dorval, Canada) takes a multitiered approach to development tools for its line of image-processing boards. It offers a native C library for its Genesis image-processing board that includes compound functions to perform several operations with one call (see Fig. 2). Other functions include the FFT, JPEG compression, and LUT warp. In addition, the library distributes operations among parallel C80s. Developers also can program the C80 directly using the development tools provided by Texas Instruments (Dallas, TX) in conjunction with the Matrox Genesis Developer`s Toolkit.
For portability across the company`s processor boards, the Matrox Imaging Library is a C library optimized for image processing, pattern matching, blob analysis, gauging, and optical character recognition. Matrox also offers graphical programming support in its Matrox Inspector product, a toolset of the most commonly used functions for image processing, blob analysis, gauging/measurement, and pattern matching.
Like Matrox, Sky Computers Inc. (Chelmsford, MA) provides basic image-processing functions such as convolution, histogram generation, and FFTs for its Skyvec Software Toolkit. Developed for the company`s Skybolt II VME accelerators, SkyStation II desktop accelerators, and SkySystems, Sky`s math library is not comprehensive. However, it does provide optimized code that controls the internal cache of the Intel i860 processor used on many Sky boards. Functions not included in the library can be programmed using ANSI-standard C or FORTRAN. Skyvec automatic optimizing, vectorizing, and parallelizing compilers then translate such programs into binary code for Sky`s products.
"In imaging, you may operate on multiple pixels, representing a couple of image lines, performing the same operation across all the pixels. A computer that`s oriented toward processing vectors is very good at such image-processing chores," says Sky`s Rick Jaenicke. Sky hardware incorporates Intel i860 and Analog Devices SHARC processors.
Going a step further is Mercury Computer Systems (Chelmsford, MA), which just introduced its MC/OS Version 4 runtime environment. That package supports i860 and SHARC plus the Motorola/IBM PowerPC. The company also intends to add support for the Texas Instruments TMS320C80 DSP later this year. Mercury`s goal is to provide a single environment that enables system builders to develop real-time, embedded signal-processing applications using the processor best suited to each task. For example, SHARC implementations can provide optimal performance for demanding real-time imaging tasks, while PowerPC implementations can manage the resulting data files.
For higher-level programming, many VME accelerator boards from firms such as Sky Computers and CSPI (Billerica, MA) interface with third-party graphical programming environments such as the Orincon (San Diego, CA) Real-Time Interactive Programming and Processing Environment (Rippen). This provides predefined and optimized software building blocks for artificial neural networks, filters, Fourier transforms, convolutions, fuzzy logic, wavelet transforms, and line-tracking algorithms.
With Rippen, a block diagram identifies user-specified tools and data paths. This block diagram, or script, allows tools to be graphically mapped to processing elements and data paths to interprocessor connections or shared memory. Rippen runs on Apple Macintosh and Intel 486 computers, UNIX workstations, and the Orincon Programmable Real-Time Information, Image, and Signal Multiprocessor (PRIISM). This multi platform compatibility allows applications to be developed on desktop computers without incurring redevelopment costs when porting the applications to a real-time environment.
Development platforms
Many software tools are emerging that combine a graphical interface or object-oriented programming ap proach with libraries of imaging functions. Since writing about them in Vision Systems Design (see Vision Systems Design, Nov. 1996, p. 34), many of those packages have been updated.
Logical Vision (Burnaby, Canada) has begun beta testing WiT 5.1 forWindows 95 and NT. WiT 5.1 supports an integrated live video window for PCs equipped with a frame grabber, and it provides a Windows 95 look and feel, including tool tips, keyboard accelerators, MRU file lists, variable-length scroll bars on resizeable windows, and tree view control for selecting operators.
Hardware drivers from Coreco (St-Laurent, Canada), Imaging Technology, and Matrox--a C interpreter, C debugger, and toolbox for creating C functions--are the latest additions to Noesis` Visilog 5.02. The package is a native 32-bit image-processing and image-analysis software package running under Windows 95/NT and UNIX. Like WiT, Visilog permits Visual Basic user-interface development.
As an ISO standard Programmer`s Imaging Kernel System (PIKS) for Hewlett-Packard`s HPUX OS, PixelSoft`s PIKS doesn`t provide a one-icon implementation of high-level imaging functions such as leveling and thresholding. It does, however, free developers from programming details such as memory management and data-structure generation. It defines more than 120 imaging APIs that can enhance application portability between third-party software vendors and multiple hardware vendors.
In January, Media Cybernetics (Silver Spring, MD) began shipping Image-Pro Plus 3.0 for Windows 3.1/ 95/NT. Image-Pro Plus is an image-analysis package that enables developers to control and automate image-generating laboratory devices. It includes counting, sizing, statistical, and image-enhancement tools and built-in frame-grabber drivers that support boards from manufacturers including Active Imaging, Data Translation, Imaging Technology, Integral Vision, and Matrox. Version 3.0 of the image-analysis program provides Internet support for e-mail transmission of image data from within an Image-Pro application. This version also allows custom, formatted reports containing images and text to be created and exported to spreadsheet programs (see Fig. 3).
In March, Optimas announced XCaliper 4, an object-oriented software tool for machine vision (see Fig. 4). XCaliper 4 packages vision tools as 32-bit OCX components, enabling developers to combine vision tools, frame grabbers, and proprietary vision algorithms in a single application using standard PCs. Running in Microsoft`s NT operating system, XCaliper`s applications are written in Visual Basic and C++, supporting Microsoft`s standard OCX. XCaliper tools allow gauging, assembly-verification, pattern-recognition, alignment, color-matching, optical character recognition, and print-quality inspection applications to be accomplished on Pentium-based PCs.
XCaliper includes features designed to simplify hardware integration. By setting properties, vision- systems engineers can instruct XCaliper`s Image Manager to control multiple cameras, activate strobes, sense triggers, create a pipeline of images for inspection, and manage custom views. Features include a scene manager that allows developers to allocate memory and set up and manage image views, an acquisition sequence manager that allows users to create a sequence of image-acquisition events, and a tool-surfaces function that allows developers to organize, display, or hide tools. XCaliper supports numerous frame grabbers and optically isolated I/O boards.
Graphically motivated
The move toward graphical environments such as XCaliper is likely to accelerate, motivated by the lower component costs and easier development and maintenance afforded by PC technology, says Dennis Flanagan of Optimas. Countering this trend, he says, is the desire of vision-system suppliers to protect their proprietary technologies. But, he adds, "Ma chine-vision customers now regularly demand features that are typically available in the mainstream of information technology. These demands in clude lower costs, compliance with standards, connectivity with networks, and statistical process control or reporting." Nevertheless, you can expect board makers to continue to exploit hardware-specific nuances to squeeze more performance from their hardware.
FIGURE 1. The Cognex Checkpoint 900C color blob tool locates objects by their hue. By segmenting a color image into foreground and background pixels, the tool can be configured to locate all of the green capsules in a pharmaceutical blister pack. Green capsules are highlighted in yellow, and all other background pixels remain unchanged. A color lightmeter tool (inset) measures the intensity of a region to identify and sort objects of varying colors. The scatter plot simplifies choosing color channels that are best for the vision task by allowing developers to view the color distribution in a set of images.
FIGURE 2. The Matrox Imaging Library provides cross-platform support, while a native library provides optimized functions for its Texas Instruments `C80-based Genesis board
FIGURE 3. Image-Pro supports a database for storage of images and data in individual folders. User-defined data fields allow attachment of measurement and analysis data to each image record or folder. Single-image and gallery views help speed image retrieval and manipulation.
FIGURE 4. XCaliper 4 from Optimas provides developers with a Windows-based graphical user interface with which to build vision systems.