The Multiple Smart Camera Myth When and How to Use Multiple Smart Cameras in Complex Vision Systems
When smart cameras first came on the market about a decade ago, the machine vision industry declared them ideal for simple, straightforward applications such as presence/absence verification or reading bar codes. The idea was that a smart camera would be used in an application that required just one operation, and they were and still are seen as a stand-alone vision system. But many machine vision systems are complex and require several operations. So can multiple smart cameras be used for more complex applications? Or is a traditional PC-based frame grabber and multiple camera system the only solution? The typical machine vision answer is, of course, that it depends on your application. But there are situations where multiple smart camera systems can do very well compared to a traditional PCbased, multiple camera system.
Start with the cars
The automotive industry was one of the first to really embrace machine vision to improve product quality and the production process, mainly to guide the robots. Before smart cameras made their debut in the market, PC-based systems with multiple cameras were used on the factory floors. In the early days, vision systems would have been used for inspection of the final product or verification of a sub-assembly, but today’s vision technology allows companies to include vision at every step of the manufacturing process. One of Teledyne DALSA’s customers is an auto manufacturer who wanted to add more inspection stations on a line. They started with one smart camera, and systematically added more; the platform made it a practical and cost-effective solution.
Figure 1: The automotive industry was one of the first to embrace machine vision
The assembly line for an engine block is a good example of how multiple smart cameras can be used together. In this case, multiple manufacturing cells are configured to incrementally assemble the product as it moves along the line. Starting from a tray of parts– valves, bolts, cast assemblies, gaskets, and the like –smart cameras in each cell direct robots to pick and place the parts on to the assembly– with each camera configured to pick one part. When the partial assembly is complete, additional cameras verify that the operation was performed correctly and the assembly moves to the next cell. So in the first part of the cell, the smart cameras are configured to perform part identification using high-level pattern matching or 2D Matrix reading functions, while the other cameras in the cell are programmed to perform post-assembly verification.
80 smart cameras can’t be wrong
A typical engine assembly line can have eight to ten cells, with between four and eight cameras per cell. A system that can have as many as 80 cameras sounds very complex and expensive, so why are smart cameras a good alternative for an application like this?
Figure 2: Multiple smart cameras is a smart way to add more inspection stations on an assembly line
Smart cameras make it very easy for the integrator to add new functionality to an existing system. Because each smart camera is its own entity, it’s completely separate from the other cameras. After a system runs for a few months and the client wants to add another component, adding a new smart camera is simply a matter of configuring it for the required task and adding to the network. When this happened with a traditional PC-based frame grabber system, the integrator would have to change the source code to add the additional camera at the very least, or even add a new frame grabber. More often than not, it’s much easier to program one smart camera for one piece of an application than it is to take one large program – which takes the input from two or three cameras – and weave new code into it and ensure everything is synchronized and the cameras all run at the same time. The automobile assembly plant needs a flexible system that can be easily reconfigured when the specifications change.
The modular nature of smart cameras also makes them ideal for complex applications. Adding them to an existing network is generally easier to do than writing new code. When you do have to add new functionality to the system, you can program that camera off-line and then connect it into your system and test it, live, without disturbing ongoing inspections. When it’s working you will probably need to tweak the central control software, and you do need to be careful about synchronizing and indexing the data.
One of the things that people rarely like to think about is what to do when the system breaks down. Whether the system uses multiple smart cameras or a PC connected to multiple cameras and a frame grabber, some kind of system failure will occur in the future. In general it’s usually safer to have a discreet module like a smart camera so if that one camera fails, the rest of the system may keep running - if you plan it that way. In the event of a smart camera failure, it is easy to fix or swap it with another unit and keep the whole system running, as opposed to the computer failing, which means nothing is operational.
Figure 3: BOA smart cameras (from Teledyne DALSA) can perform part identification and ensure part traceability throughout the product lifecycle
Cost is another reason why smart cameras make sense for this automobile assembly application. It is a considerable expense to deploy several smart cameras compared to a single computer with attached cameras. However, historically an assembly line would have a camera and a computer for each cell. If the line contained five cells, then the system would require five computers and five cameras, so the costs would add up quickly. For a production line with as many as 80 cameras, smart cameras make financial sense. There can be savings, for example, by replacing five cameras and five computers with five smart cameras on a network and have them send data to the client computer; smart cameras can be less expensive than purchasing multiple cameras and a single computer, but again, it depends on the equipment you need.
Developing a system with multiple smart cameras can also lower your development costs. Because smart cameras are configured rather than programmed, vision applications can be developed very quickly – as little as half a day for a simple application. Sherlock or iNspect, Teledyne DALSA’s smart camera environments, use graphical interfaces where the user ‘builds’ the application instead of writing lines of code. Again for an application that requires multiple cameras, your engineers can save a lot of time by configuring half a dozen smart cameras instead of cranking out C++ code for the acquisition and processing of those six cameras. In general, the ease of programming means it’s fairly easy to develop an application; the sooner the application is ready, the sooner you can deploy it and the customer can enjoy the return on the investment.
So how to choose?
In the end, the processing and resolution requirements of your application will determine if multiple smart cameras are a good investment. Even when used in complex systems, smart cameras are great for verification, reading bar codes, point-to-point measurements, pattern matching, counting blobs in an image, or presence/absence – in short, any process that can give a pass/fail result, or an expected measurement. As illustrated by the automobile assembly line application, it’s easy to see how a smart camera can be assigned a single task in the overall process.
Remember though, that due to the nature of embedded components, smart cameras will never have the same performance as PC-based systems. A smart camera can perform at 60 or more frames/second, but that will slow down if you combine a low-level function such as bar code reading with high-level processing such as geometric pattern matching or OCR. Teledyne DALSA’s smart cameras do provide the capability for this type of processing, but you should run some tests beforehand to ensure that the smart camera can process the data within the required time frame.
You should also consider what you need to do with image data and the processing results. Do you need to transfer image data to the host? If you want to log all image data – and certain industries require this - a traditional multiple camera system might be a better option because the images are already in the PC’s memory; it is a simple function call to save them to disk. If you only want a record of the images that get a ‘fail’ result (which you hope aren’t too many), then smart cameras can still do the job. Finally, if your application needs parallel or round robin processing, a traditional PC-based multiple camera system, with a frame grabber or vision processor, is the way to go. While a smart camera has a CPU it’s not a PC and is not meant to run the complex, multi-threaded code behind those applications.
Future thinking
A multiple smart camera system works very well for certain types of applications, and the following table can help gauge your application’s requirements. But choosing the smart camera route takes some forethought and good communication with your customer. Ask them how they envision the application and consider how it could evolve in the future. Will they want to inspect more features or incorporate more inspection stations on an assembly line? Will they want to keep a record of all the image data, or have the cameras communicate results? Their answers will help you find the best solution and keep them happy.