Giles Peckham, Regional Marketing Director at Xilinx
Adam Taylor CEng FIET, Embedded Systems Consultant
Advanced Computer Vision applications are becoming increasingly pervasive and are used to enable autonomous-driving modes of today’s cars, as well as in augmented reality, security surveillance systems, healthcare, industrial inspection equipment, robotics and more. Users’ expectations are rising, as familiarity inevitably brings demands for higher performance, such as faster response times, greater accuracy, or recognition of extra objects or features.
Recognition and classification of images uses deep machine learning techniques such as convolutional neural networks. Before they can be deployed these networks need to be trained for the application they are to be deployed in.
The previous article in this series described tools for building high-performing embedded application-processing engines capable of running deep neural networks that are trained in the Cloud for deployment on an autonomous edge device. This approach is suitable for systems like self-driving vehicles, where low latency is critically important and a reliable, high-bandwidth connection to the Cloud may not always be available.
Other use cases, such as security surveillance or medical imaging, may be less demanding of outright speed, and instead require complex analyses, extremely high accuracy to help specialists make informed decisions, and the ability to allow multiple parties access to results. In such situations, where compute-intensive tasks and flexible storage and access policies are required, the image-processing application can be more effectively and economically hosted in the Cloud.
Hardware-Accelerated Cloud Computing
Compared with the embedded vision systems discussed previously, hosting the application-processing algorithms in the Cloud creates a different set of challenges. It is here that compute-intensive deep machine learning, data analytics and image processing are implemented. Often the applications are required to stream processed data in near real-time and without dropouts to the client.
Cloud data centres are increasingly unable to fulfil the demands of today’s most intensive processing workloads using conventional CPU-based processing alone. Some have adopted FPGA-accelerated computing to achieve the throughput needed for these workloads and others such as complex data analytics, H.265 encoding and SQL functions.
Historically, an FPGA has been teamed with a CPU to provide acceleration, but a new model is emerging based on arrays of FPGAs such as Xilinx Virtex® UltraScale+ devices. These arrays deliver extremely high peak compute capability, with the added advantage of rapid runtime reconfigurability to repeatedly re-optimise for subsequent workloads.