Southern Vision Systems (SVSi; Madison, AL, USA; www.southernvision systems.com) has developed a system that allows consumer products such as compact disks to be counted and packed rapidly. Individual stacks of items are illuminated by a red LED line light from Advanced Illumination (Rochester, VT, USA; www.advancedillumination.com). A Micron Technology (Boise, ID, USA; www.micron.com) 1280 × 1024 MV-13 CMOS imager provides the SVSi SpecterView camera in the system with peak sensitivity of about 600 nm. Thus, the camera will register a higher output when a 660-nm (red) light is used to illuminate the product being inspected.
The high frame rate (500 frame/s) of the MV-13 imager provides two advantages over other imagers. First, exposure times are low enough that vibrations do not blur the image, and second, image acquisition times are kept to a minimum, allowing more time for image processing and servo activation. The high frame rate and large array mean that a very large amount of information must be extracted in real time using field-programmable gate arrays (FPGAs).
The parallel-processing capabilities of FPGAs are ideal for image processing in that each pixel does not have to be processed in sequence. Multiple pixels can be processed at once in an interconnected fashion as the data come off the imager chip. This is accomplished by building firmware modules that are replicated within the FPGA. The end result is a reduction of image information to manageable streams without having to transfer raw imagery over very sophisticated and expensive interfaces. SpecterView's value-added contribution is to process high-speed imagery within the camera to the point that the relevant information is extracted and sent over a plug-and-play USB interface.
The SpecterView camera design facilitates custom image-processing tasks by allowing the user to reconfigure the processing algorithm through the USB bus. For this application, a custom control up-load from the PC to the camera is performed for each packaging product line. The camera then performs all the necessary processing to extract a package unit count. Digital I/O on the camera provides control signals without involving the host PC. Once programmed over the USB, image processing and cueing are autonomous.
After items are detected by a proximity sensor, a trigger signal is sent over a coaxial cable to the camera. This, in turn, triggers the camera to capture and process an image of the side product stack. "Because the 1280 × 1024 CMOS imager within the camera can be randomly addressed in a variety of ways, it is easy to program the camera to take three 1280 × 1-linescan profiles of each stack,� says Andy Whitehead, president of SVSi. These profiles are taken at an equivalent frame rate of 1000 frames/s as the stacks move by on the conveyor.
Each of the three linescan profiles consist of three adjacent rows summed together forming three 1280 × 1 16-bit arrays and increasing the statistical sampling of the products stack (see figure). By sweeping a known "standard" profile kernel across each of the arrays, a correlation profile can be calculated to determine the number of items in the image. "This correlation profile is impervious to shadowing, noise, and saturated peaks within the image and results in an accurate means of counting," says Whitehead. Thresholding each correlation profile returns three counts for each image. Voting logic between the three samples determines the number of products in the stack. This value is then transferred over the camera's USB interface, where it is displayed on the monitor of the PC. The FPGA accomplishes all tasks. The gate array does this much more efficiently than a serial processor in addition to driving the imager.
Out-of-the-box functionality of the SpecterView camera expedited prototyping of the installed system, and the reconfigurable nature of the image processing performed in the camera means modifying parameters for different product lines is as simple as clicking a button. SVSi designers identified the most common photodetection functions and programmed those into the camera. Function calls are made through dynamically linked library calls that can be made from third-party software.