Through the eyes of a robot: what is machine vision
Machine vision, in its essence, involves the analysis of visual information to further decide what action to perform in relation to an object that is in focus. The simplest example of the use of technology: checking the status of the product on the conveyor or before sending the parcel by mail. Also, machine vision is often used to assess the quality of printed circuit boards, instantly comparing each new product with a reference board before automatically transferring it to the next assembly stage. These technologies are an invaluable resource for assessing the quality and reducing the level of marriage where the human eye and brain are simply not able to give an objective assessment because of the need to look at the same objects hundreds or thousands of times a day.
Computational need for "machine vision"
As the resolution of optical systems grows, the machine vision potential also increases, since along with the resolution, the number of parts for evaluation also increases. More and more small objects can be processed according to the template principle, which leads to an increase in the load on the processor, which must analyze a significant amount of data and quickly decide on the next step (matches / does not match, delay, return to the beginning, etc.). )
Say, there is a Danish company Qtechnology, which supplies “smart cameras” for sorting vegetables. They are capable of processing up to 25 tons of products per hour without human intervention. Such volumes are achieved through analysis of over 250, 000 individual products based on more than 500, 000 images. And since each picture takes about 6.2 MB, it turns out that as a result, an analysis of more than 2.5 terabytes of graphic data per hour is required - a huge amount of information! Only to transfer such an array will take more than 6 hours when using a gigabit Ethernet connection.
To solve this problem using simpler algorithms, it is necessary to break it down into stages and install several cameras, increase lighting zones, allocate more space in factories, and so on. Alternatively, you can use more efficient computing systems: with centralized power and faster connection or distributed processing of information by “smart cameras”, which will record data in real time at each stage, delivering only ready-made parameters to the final decision-making mechanism.
In standard visual inspection systems, the quality and safety of products are most often determined by external physical attributes, such as texture and color. Hyperspectral imaging gives the food industry the ability to evaluate products by additional chemical and biological parameters that can determine the level of sugar, fat, liquid and the number of bacteria in each product.
The use of heterogeneous computing
High-performance and scalable computing systems are needed to satisfy requests, as well as solve future problems.
Mentioned Qtechnology uses AMD's hybrid APU processors in smart camera platforms. These processors combine a GPU (graphics processor) and a CPU (central processing unit) on a single chip. As a result, the system has the ability to send arrays of graphic data directly to the GPU for processing without any delay in the transfer between components. And the CPU gets the opportunity to process other tasks without delay, increasing the performance of the entire system in real time and providing the necessary power for the modern requirements of machine vision systems.
In particular, the GPU is a parallel computing module that can easily apply the same instructions to large data sets (in our case, pixels) simultaneously; and this is exactly what companies need to operate machine-vision systems. In addition, system performance can be increased by combining the capabilities of the APU with an external discrete graphics card. This approach allows companies to add GPU computing resources as needed to support even more complex machine vision tasks.
Extensive ecosystem support for the x86 architecture allows companies to use libraries for open source image processing or to connect solutions from third-party companies such as OpenCV, Mathworks Matlab and Halcon. Debugging tools, delay analyzers and profilers (perf, ftrace) are now also widely available. Machine vision is the latest example of using the processing power of semiconductors to reduce costs, accelerate production, improve quality, and obtain a number of other useful benefits used in many applications and industries. Thus, thanks to innovations and successful ideas of engineers for embedded solutions, a positive effect arises in general for the economy, culture and each of us in particular.
One way or another, we hope that machine vision will continue to be used for sorting vegetables, and not for preparing a machine revolt :)