Why machine vision matters for the Internet of Things
Connecting machine vision systems to the IoT creates a powerful network capability. Being able to identify objects from cameras allows the local node to be more intelligent and have greater autonomy, thus reducing the processing load on central servers and allowing a more distributed control architecture. This is turn provides more efficient operation that requires much less external input.
by Mark Patrick, Mouser Electronics
Machine vision has developed in great strides over the last decade. State-of-the-art algorithms capable of detecting edges and movement within video frames, alongside advances in silicon technology relating to image sensors, programmable logic, microcontrollers and graphics processing units (GPUs), have helped bring it into a wide range of embedded applications. More sophisticated designs that can be downloaded to an FPGA are being used in conjunction with new development environments, such as OpenCV, to make machine vision much more accessible to embedded system designers.
This growing proliferation of machine vision is converging with the trend of linking up industrial systems to the Internet of Things (IoT). As sensors become increasingly intelligent, driven in part by the supporting computer vision algorithms, so the data produced is offering valuable insights into the operation of industrial systems. This in turn is opening up new ways of monitoring equipment, with autonomous robotic systems such (as drones) being connected to IoT infrastructure.
Part of the move to machine vision is driven by bandwidth considerations, while the other major motivation is the prospect of automating more parts of an industrial operation. One of the key applications for machine vision is in inspection systems. High performance camera systems with CMOS image sensors have fallen in price considerably over the last ten years, allowing higher resolution examination of boards and systems during manufacturing. These camera modules are combined with FPGAs to add more processing and decision making. This allows the camera to respond accordingly to the received data, reducing the need to send video over the network and enhancing overall operational efficiency.
Robotic machine vision system
Connecting the machine vision elements of inspection equipment to the IoT provides more data for the enterprise systems that are undertaking analysis on the performance of the factory. Rather than raw data, machine vision can provide information at a level of abstraction that is suitable for such enterprise systems. This markedly reduces the bandwidth overhead both for the servers and the network as a whole - the enterprise systems are handling millions of data points coming from the IoT, so any reduction in the load on the servers will help to make more timely decisions.
The rise in machine vision uptake has also opened up the market for robot guidance systems in automated factories. Inspection machines can thus bypass the central enterprise servers and communicate directly with other equipment in the factory, based on the results derived from the machine vision systems. This increases efficiency and again reduces the load on the network and servers. Machine vision is also being used to control automated equipment, particularly in materials handling. This encompasses everything from the control systems for autonomous robots transferring material around a plant through to the automated picking machines in warehouses identifying products.
For autonomous materials handling robots, machine vision can be as simple as determining a line on the floor to follow from one location to the next. However, it can also be used to detect people or obstacles in the way, allowing factory operatives and robots to work together safely and more efficiently. As already mentioned, product picking is now also employing machine vision - with items being identified via their barcode and then a robotic gripper being aligned to capture a particular item and place it into a basket. The camera and local processing to accompany this are both essential, and the pickers/autonomous robots are also constantly monitored as part of the wider IoT.
This has even extended to the air, with Unmanned Aerial Vehicles (UAVs) increasingly relying on machine vision. UAVs have proven to be a highly effective method for carrying out inspections in hard to reach areas, such as oil pipelines and gas installations. As well as allowing the UAV to identify a particular target area and approach it, so that it can be examined more closely, machine vision is being utilised for anti-collision purposes - avoiding fixed obstacles and even other UAVs by linking the camera system to the on-board flight controller.
Robotic machine vision system
Then there is the surveillance market. The increasing use of machine vision has tremendous implications here. Instead of feeding back Megabits of video data every second for an operator to examine, video can be processed locally and alarms triggered without needing any human intervention. The machine vision algorithms running on FPGAs are becoming increasing accurate. As a consequence they are much better able to differentiate between the movement of an intruder, an animal or leaves on a tree (for example), allowing an operator to simultaneously support a larger number of surveillance nodes. Furthermore, surveillance cameras can themselves instruct other machines to respond to an alarm. The combining of autonomous ground and air vehicles, such as UAVs, potentially changes the whole way in which surveillance operates. Rather than fixed cameras that can be avoided, imaging systems are instead mounted on airborne craft that are constantly monitoring the area while in flight. These UAVs then return to a charging base as their batteries run down, and other drones are sent out to replace them. This means constant surveillance cover can be provided. More advanced machine vision algorithms are able identify potential threats and then summon other air and ground craft to the area to further monitor the situation - all without the involvement of an operator. The same type of scenario applies equally well to agricultural applications, where the machine vision algorithms on an airborne craft can monitor the condition of crops and direct an operator (or an autonomous tractor) to the target area if an issue arises that it deems needs some form of responsive action.
The applications outlined here have been enabled by progress made in the underlying hardware and software technologies. The structure of machine vision algorithms is increasingly sophisticated and they can be downloaded to the latest FPGAs and GPUs. These devices can handle 8 or 16 channels at a time, supporting rates of 60 frame per second. They can also be coupled with high level software such as OpenCV.
Originally focussed mainly on research and prototyping, in recent years OpenCV has increasingly been used in deployed products on a wide range of platforms - from cloud to mobile. The latest version, OpenCV 3.1, has just been released. The previous version, 3.0, was a major overhaul, bringing OpenCV up to modern C++ standards and incorporating expanded support for 3D vision and augmented reality. The new 3.1 release introduces improved algorithms for important functions such as calibration, optical flow, image filtering, segmentation and feature detection.
Machine learning is the obvious next stage after machine vision. Computer vison algorithms are able to provide deterministic analysis of still images and video content, but machine learning is applying other neural network approaches to ‘teach’ a system what to look for. The latest version of OpenCV, for example, now supports for deep neural networks for machine learning.
The increased performance of FPGAs and GPUs is opening up new opportunities for machine learning. This relies on a training phase, where the neural network is shown many different images that are tagged with the objects of interest and is usually handled by a large server system in a lab or in the cloud. It produces a series of weights and bias data that is then applied to the same network implemented in the embedded design. This ‘inference engine’ uses those weights to assess whether new data it is seeing contains those objects. For example, the latest surveillance cameras are using neural network machine learning algorithms to go beyond traditional functions (like monitoring and recording) and offer additional video analysis features (such as crowd density monitoring, stereoscopic vision, facial recognition, people counting and behaviour analysis). This local processing can then be delivered into the IoT and thereby integrated into broader analysis software within the cloud.