New-Tech Europe | Sep 2017 | Digital Edition

The capability provided by the reVISION stack provides all the necessary elements to implement the algorithms required for high performance surveillance systems. Accelerating OpenCV in reVISION One of the most exciting aspects of the algorithm development layer is the ability to accelerate a wide range of OpenCV functions within it. Within this layer, the OpenCV functions capable of being accelerated can be grouped into one of four high level categories. 1. Computation – Includes functions such as absolute difference between two frames, pixel wise operations (addition, subtraction and multiplication), gradient and integral operations. 2. Input Processing – Provides support for bit depth conversions, channel operations, histogram equalisation, remapping and resizing. 3. Filtering - Provides support for a wide range of filters including Sobel, Custom Convolution and Gaussian filters. 4. Other - Provides a wide range of functions including Canny/Fast/ Harris edge detection, thresholding and SVM and HoG classifiers. These functions also form the core functions of the OpenVX subset, providing tight integration with the application development layer support for OpenVX. The development team can use these functions to create an algorithmic pipeline within the programmable logic. Being able to implement functions in the logic in this way significantly increases the performance of the algorithm implementation.

Figure 2: Traditional CPU/GPU approach compared with Zynq-7000 / Zynq UltraScale+ MPSoC

Figure 3: reVISION Stack

development of the application which leverages the platform and algorithm development layers. Both the algorithm and application levels of the stack are designed to support both a traditional image processing flow and a machine learning flow. Within the algorithm layer, there is support provided for the development of image processing algorithms using the OpenCV library. This includes the ability to accelerate into the programmable logic a significant number of OpenCV

functions (including the OpenVX core subset). While to support machine learning, the algorithm development layer provides several predefined hardware functions which can be placed within the PL to implement a machine learning inference engine. These image processing algorithms and machine learning inference engines are then accessed, and used by the application development layer to create the final application and provide support for high level frame works like OpenVX and Caffe.

26 l New-Tech Magazine Europe

Made with FlippingBook flipbook maker