One of our many areas of expertise at DMC is developing and integrating machine vision systems. Our focus is on offering the most effective solution for the application; we are hardware/vendor independent and are not tied to any platform. When selecting a vision hardware and software platform, the most important questions to answer are:
What are the technical challenges of the application?
How many vision systems will be produced?
How many cameras are needed for each vision system?
If the quantity of cameras needed per vision system is less than 5 and the application is not very complex, using a smart camera is a good choice. A smart camera is basically a camera (optics), a processor, and software housed in a single unit. The advantage of smart cameras are that they are easy to setup. Most of them don't even require programming knowledge to setup, at least for a simple application. They have a variety of vision inspection algorithms (edge detection, blob analysis, etc.) readily available to perform an inspection. Typically a vision inspection is created by graphically setting up a series of steps. Some smart cameras also have scripting abilities to facilitate more advanced and complicated inspections. Smart cameras costs between $2000 and $5000. Some smart cameras are the Insight from Cognex, the IRIS GT from Matrox Imaging and Dalsa's BOA camera.
If more than 5 cameras are needed for a vision system or if the application is more challenging technically, it is probably better to go with a frame grabber camera, PC, and vision software library solution. This solution allows for a lot of flexibility. While the software and the PC costs add overhead, there are cost savings on the considerably cheaper frame grabbers ("dumb" cameras). You can select from a wide variety of cameras with different options such as lenses and output types (USB, GigE). Some popular camera manufacturers are JAI, uEye, and Matrix Vision. The cameras would then output their image to the PC. A vision software library such as Matrox Imaging's MIL, Cognex's VisionPro, and National Instrument's Vision Builder for AI and IMAQ can then process these images and perform the inspection. Typically, the application is programmed using a high level programming language like C++, C#, Visual Basic, or LabVIEW.
If you are mass producing these vision systems and want to reduce per unit costs, you may want to consider a variation of the option previously mentioned. Instead of using a commercial vision software library, use a free open source vision library such as OpenCV or VTK. These libraries are written in high level programming languages like C, C++, Java and Python. Programming with these libraries is not an easy task, but well they're free, as are the runtime licenses. The PC can also be replaced with a Single Board Computer or Embedded PC to drive down costs.