Applications

Introduction


In this section we discribe possibilities to build your own younique smart vision system by using the provided infrastructur of iam camera.

iam system overview

There are two ways for obtaining an application for iam:

  1. Compile native on iam: small apps or specific Third Party Libraries .

  2. More powerfull: cross compile on a host or server system, including the entire system optimization and FPGA synthesis.

In this section we introduce our example repositories for both cases. By checking those out our Video Tutorials can assist you.

Example Repositories

There are different example Git repository for the iam camera system.

Smart app example with third party library

See section SynView Smart App Example using iAMGigEServer for a step-by-step guide.

Example Name

Compiling

Discription

Repository

opencv_dice

nativ

This app demonstrates dice cube detection and dots counting for each cube. Using OpenCV 3.4.13.

After processing the image is sent out via GigE Server.

net-gmbh/opencv_dice

sw_remap_synview

nativ/cross

The example remap_synview uses the function cv::remap from OpenCV.

After processing the image is sent out via GigE Server.

net-gmbh/iam_sw/

sw_remap_boxfilter_synview

nativ/cross

The example sw_remap_boxfilter_synview uses the cv::remap and cv::boxfilter function from OpenCV. It demonstrates the execution of multiple sw- and hw-functions in different processing threads. The connection between the threads is established with two image-buffers. One is written, the other is read and vice versa.

After processing the image is sent out via GigE Server.

net-gmbh/iam_sw/

sw_scaler_synview

nativ/cross

The main processing consists of a simple c-code scaler for horizontal and vertical rescaling.

After processing the image is sent out via GigE Server.

net-gmbh/iam_sw/

Smart app with hardware accelerations and third party libraries

See section NET Open Camera Concept (OCC) for iam for a step-by-step guide.

ccode_synview

cross

The example code_synview uses HLS hw acceleration written in C-code.

The main processing method can be selected among following choices:

  • no processing

  • simple C-code software processing

  • a optimized C-code version with ARM NEON instructions

  • processing with OpenCV functions

  • Hardware accelerated processing based on a C-code source

After processing the image is sent out via GigE Server.

net-gmbh/iam_apps/

remap_synview

cross

The example remap_synview uses the hardware acceleration function xf::cv::remap from the Vitis vision library.

After processing, the image is sent out via GigE Server.

net-gmbh/iam_apps/

remap_boxfilter_synview

cross

The example remap_boxfilter_synview uses the hw acceleration function xf::cv::remap from the Vitis vision library and the cv::remap and cv::boxfilter function from OpenCV.
It demonstrates the execution of multiple sw- and hw-functions in different processing threads. The connection between the threads is established with two image-buffers. One is written, the other is read and vice versa.

After processing, the image is sent out via GigE Server.

net-gmbh/iam_apps/

rtl_threshold_synview

cross

This example uses RTL hardware acceleration written in Verilog.

After processing, the image is sent out via GigE Server.

net-gmbh/iam_apps/

strm_boxfilter_synview

cross

This example uses HLS hw acceleration with the xfOpenCV function xf::cv::boxfilter in the streaming path.
The module is located after the sensor interface and before the dma. The AXI-Stream data width convertion will be done by either axiStrm_wInc/axiStrm_wDec (HLS-implementation) or axiStrm_wInc_rtl/axiStrm_wDec_rtl (RTL-implementation).

After processing, the image is sent out via GigE Server.

net-gmbh/iam_apps/

strm_rtl_threshold_synview

cross

This example uses RTL hardware acceleration in the streaming path.
The module is located between sensor interface and dma.
It consists of a 32-bit master and 32-bit slave axi-stream interface for sensor pixel data and a 32-bit axi-lite control interface for register access.

After processing, the image is sent out via GigE Server.

net-gmbh/iam_apps/

sw_scaler_synview

cross

This example uses no hardware acceleration.
But it uses the same infrastructure like other hardware accelerated examples.
The main processing consists of a simple C-code scaler for horizontal and vertical rescaling.

After processing the image is sent out via GigE Server.

net-gmbh/iam_apps/

Smart app example with machine learning

See section iam ML - Machine Learning ready for a step-by-step guide.

dpuClassify

 

  • Reference application for image classifier training and execution

  • Different convolutional models are available (VGG, DenseNet, ResNet, Inception)

  • Training code for transfer learning with Keras and Tensorflow

  • Vitis Ai model conversion code

  • iam application for image classification

net-gmbh/iam_ml/

Content


 

 

related content

SynView

Third Party Libraries

Video Tutorial Session

 

external media

contact NET

 

 

© Copyright 2020 NET GmbH. Privacy Statement