Previous Page  50 / 84 Next Page
Information
Show Menu
Previous Page 50 / 84 Next Page
Page Background

3.

The final layer is the application

development level, and it is where the

high-level frameworks such as Caffe

and OpenVX are used to complete

the application, implementing the

decision-making functionality for

example. Applications at this level

are developed using an eclipse based

environment targeting the processor

cores within the Zynq-7000/Zynq

UltraScale+ MPSoC.

The capability provided by the

reVISION stack provides all the

necessary elements to create high

performance imaging applications

across a wide range of applications

from industrial internet of things, to

vision guided robotics and beyond.

Accelerating OpenCV

One of the most exciting aspects of

the reVISION stack is the ability to

accelerate a wide range of OpenCV

functions within the algorithm

development layer. 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

Developers can use these functions to

create an algorithmic pipeline within

the programmable logic of the chosen

device. Being able to implement logic

in this way significantly increases

the performance of the algorithm

implementation.

Of course, as these acceleration

capable OpenCV libraries are

software defined and support high

level synthesis, they can also be

used within the Vivado HLS tool. This

enables the creation of IP modules

which can be used within the platform

layer when the hardware definition is

established.

One commonly used algorithm in

OpenCV is the implementation of

Harris Corner detection, used to detect

corners within an image. Within the

reVISION Stack, there is a predefined

function for Harris Corner detection.

When comparing the performance

of the reVISION accelerated

Harris Corner detection against a

normal OpenCV implementation as

demonstrated below, both provide

identical performance. However, using

the reVISION Harris Corner function

accelerated into the PL the user gains

an increase in system performance

which enables a more responsive and

power efficient solution.

Within the reVISION stack, if

developers chose to accelerate

OpenCV functions, they can optimize

the design for resource usage and

performancewithin the programmable

logic. The main method through

which this is achieved is the number

of pixels which are processed on each

clock cycle. For most accelerated

functions, they can choose to

process either a single pixel or eight

pixels. Processing more pixels per

clock cycle increases the resource

utilization required while reducing

the processing time. Processing one

pixel per clock will provide a reduced

resource requirement, which comes

at the cost of an increased latency.

This selection of number of pixels per

clock is configured via the function

call, providing a very simple method

to optimize the design as required.

With the design performance

optimized using the acceleration

capable OpenCV libraries, the

embedded vision developer can

then develop the higher levels of

the application using the capabilities

provided by the Algorithm and

Application layers of the stack.

Conclusion

The use of All Programmable Zynq-

7000 and Zynq UltraScale+ MPSoC

devices within embedded vision

applications brings several advantages

in flexibility, performance, security/

safety and power-efficient processing.

Developing the application within

the reVISION stack allows several

commonly used industry-standard

frameworks to be utilized, bringing

with it reduced development times

and faster time to market.

Figure 2 - Accelerated OpenCV

Harris Corner Detection

Figure 3 - Traditional OpenCV

Implementation

50 l New-Tech Magazine Europe