A relook at machine vision system design
Can reconfigurable computing be the answer to our woes?
By Gineesh Sukumaran
Although machine vision may seem like a new concept, we can trace its origins to the 1960s. Back then, machine vision existed as raw image files. A paradigm shift happened with the advent of digital photography. Slowly, companies began developing a software ecosystem that could import these digital photographs and process them in multiple ways.
Alongside superior cameras and greater image processing capability came automation that enabled machines to independently capture images without human intervention. Today, advanced artificial intelligence (AI) and deep learning tools have taken this one step further by augmenting machines with the intelligence to make right decisions based on the images captured.
As machine hardware on the shop floor goes through transformational upgrades, manufacturers want the ancillary things around the hardware to keep pace. Hence, machine vision systems that once took several minutes to compute images are now expected to do the same computation in seconds (real-time computing). A prime example of this is bottle inspections in a soda manufacturing facility. Soda companies use an advanced four-camera system that can inspect a whopping 72,000 bottles per hour.
Why does real-time machine vision need more flexibility?
Engineering real-time machine vision is an extremely expensive process. Several companies have accomplished it by either building dedicated field-programmable gate array (FPGA) systems or installing custom camera systems that have prefed, application-specific integrated circuits (ASICs). The limiting factor here is the need for a dedicated design architecture for every single application. This is expensive and not scalable.
Going back to the soda bottle inspection system, every camera comes fitted with a dedicated ASIC chip. These high-end cameras cannot be repurposed for any other application. To make matters worse, inspection processes and packaging in manufacturing facilities are modified from time to time. Tweaking the vision inspection system to work with the new processes or packaging requires extensive and expensive modifications.
Given these limitations, machine vision systems must be designed so they can be reused for multiple applications and easily modified to meet changing product designs, manufacturing processes, varying components, and business needs.
Reconfigurable computing is the best bet
Selection of computing platforms for automation tasks is often governed by the trade-off between two important parameters: efficiency and flexibility. The search for a balance between the approaches brings us to reconfigurable computing. Reconfigurable systems are implemented with programmable logic. The best part is that hardware circuits can be easily upgraded to meet the demands of fresh or modified vision applications.
Processors with a fixed architecture allow the user to temporarily compose the operations provided by the arithmetic logic unit (ALU). ASIC processors are implemented by spatially composing dedicated functional units. Reconfigurable computing uses both temporal and spatial composition-that is, these systems typically have a programmable hardware logic and a group of programmable interconnection networks. There are several approaches available to accomplish a reconfigurable computing system:
- fine-grained systems: FPGAs and logic gates as programmable elements, connected by switches and wires
- coarse-grained systems: software-configurable processors and a programmable network on chips
- heterogeneous reconfigurable systems: a combination of fine-grained and coarse-grained elements
The ramifications are awesome. Take a traditional packaging vision system that comes with a prefed ASIC in a dedicated camera setup. If the product packaging were changed, new patterns and components were added, or the text on the package was modified, we would need a new ASIC chip for every production line in every manufacturing plant of this company. The costs and time involved in design, fabrication, testing, and rollout are massive.
On the other hand, with reconfigurable computing, the camera system can be trained to accommodate modifications to the packaging or the inspection process.
Concept of reconfigurable computing
Ideal reconfigurable computing platform
Whatever the approach may be, configuration management and development systems are integral parts of a reconfigurable computing platform.
There are a variety of choices when considering the development of a reconfigurable system. Some of the critical elements to bear in mind when implementing a task on reconfigurable systems are:
- Overhead for run-time reconfiguration: How much additional work needs to be done to use the flexibility offered by the reconfigurable systems?
- Configuration granularity: To what level can an algorithm be decomposed during the implementation-the number of partitions and their size-which mainly depends on the resources available on the reconfigurable processor.
- Ease of use of SW and development system: This largely depends on how the manufacturer packages different hardware and software elements and provides them to the developer.
Based on the specific requirements at hand, the most appropriate elements can be put together to design an application.
Optimization of vision algorithms
The most important aspect when working on a reconfigurable system has to do with programming the logic to the reconfigurable processor. This requires an understanding of both the platform and industry domain.
Every machine vision system can be considered a pipeline that uses three kinds of algorithms, low, mid, and high, which are classified per the computational characteristics.
- Low-level vision algorithms: These are simple algorithms that typically operate on a small neighborhood. Low-level vision algorithms are easy to implement and provide great computational efficiency when operating on a large amount of data. Some typical examples include filtering operations, image enhancement, denoising, and image compression. When processing low-level algorithms, reconfigurable systems are extremely efficient-up to 100 times faster and more efficient than CPU-based vision systems.
- Midlevel vision algorithms: Though they operate on a small neighborhood, midlevel vision algorithms are more complex and often require random memory access. Some examples of midlevel vision algorithms include connected component labeling and segmentation and feature extraction techniques. The components that can be in parallel in these algorithms are relatively fewer and are hence not ideal candidates for reconfigurable architectures. It takes a great deal of effort to make reconfigurable processors work with midlevel vision algorithms.
- High-level vision algorithms: These algorithms are computationally intensive, nonlocal, nondeterministic, and extremely complex to process. A large majority of the matching, object recognition, classification algorithms, decision making, inferences, and retrieve queries from database algorithms fall under this category. As the number of parallel operations are high, one can implement extremely efficient and flexible systems using reconfigurable processors.
Composition of a reconfigurable system
Reconfigurable computing pros/cons
- Increased efficiency: One of the greatest advantages of reconfigurable systems is the enhanced execution speed with lower power consumption. For manufacturing organizations that deploy hundreds of machine vision systems in their shop floors across the world, the savings are massive.
- Faster time to market: As reconfigurable systems can be easily upgraded, a product with reduced functionalities can be quickly designed and released to the market. Unlike ASIC systems, most reconfigurable platforms have simulators that developers can use to swiftly build prototypes and facilitate faster time to market.
- Lower system cost: For ASIC and general-purpose hardware, the design costs are high, and the life of the vision product is short. Because reconfigurable systems have flexibility and upgrades, the upfront design costs are substantially lower, and the shelf life of the vision product can be significantly enhanced.
- Difficulty in programming reconfigurable chips: The programming issues in reconfigurable computing involve the placement of the new hardware and routing. Once a new hardware is introduced, the time synchronization between the older hardware system and newly introduced hardware should be factored in. Otherwise, the system can behave inconsistently.
- Development tools: The existing development tools in reconfigurable computing require a great deal of manual intervention. Most of these tools are in the development stage and not very mature. Developers need commercial off-the-shelf tools to be able to handle the development and implementation of reconfigurable systems.
Weighing the pros and cons, reconfigurable computing has immense promise in the field of machine vision. As more developers get onboard the reconfigurable wagon, the development and implementation of these systems will significantly ease.