Skip to content

kiritigowda/OpenVX

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

78 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MIT licensed

Khronos OpenVX™ is an open, royalty-free standard for cross-platform acceleration of computer vision applications. OpenVX enables performance and power-optimized computer vision processing, especially important in embedded and real-time use cases such as face, body, and gesture tracking, smart video surveillance, advanced driver assistance systems (ADAS), object and scene reconstruction, augmented reality, visual inspection, robotics and more.

OpenVX Implementation for Raspberry Pi

                       

Identify Raspberry Pi

  • Check hardware version
cat /proc/device-tree/model && pinout
  • Check Raspbian version on Raspberry Pi
cat /etc/os-release
  • Check Kernel version on Raspberry Pi
uname -a

Vision, Enhanced Vision, & Neural Net Conformance Feature Set

The OpenVX 1.3 sample implementation is available on GitHub. To build and install the library follow the instructions below.

NOTE: for optimized OpenVX library use implementation from the hardware vendor

Build OpenVX 1.3 on Raspberry Pi

  • Git Clone project with the recursive flag to get submodules.
git clone --recursive https://github.com/KhronosGroup/OpenVX-sample-impl.git

Note: The API Documents and Conformance Test Suite are set as submodules in the sample implementation project

  • Use Build.py script to build and install OpenVX 1.3
cd OpenVX-sample-impl/
python Build.py --os=Linux --venum --conf=Debug --conf_vision --enh_vision --conf_nn
  • Build and run the conformance
export OPENVX_DIR=$(pwd)/install/Linux/x32/Debug
export VX_TEST_DATA_PATH=$(pwd)/cts/test_data/
mkdir build-cts
cd build-cts
cmake -DOPENVX_INCLUDES=$OPENVX_DIR/include -DOPENVX_LIBRARIES=$OPENVX_DIR/bin/libopenvx.so\;$OPENVX_DIR/bin/libvxu.so\;pthread\;dl\;m\;rt -DOPENVX_CONFORMANCE_VISION=ON -DOPENVX_USE_ENHANCED_VISION=ON -DOPENVX_CONFORMANCE_NEURAL_NETWORKS=ON ../cts/
cmake --build .
LD_LIBRARY_PATH=./lib ./bin/vx_test_conformance

NNEF Import Conformance Feature Set

The OpenVX 1.3 implementation is available on GitHub. To build and install the library follow the instructions below.

Build OpenVX 1.3 on Raspberry Pi

  • Git Clone project with the recursive flag to get submodules.
git clone --recursive https://github.com/KhronosGroup/OpenVX-sample-impl.git

Note: The API Documents and Conformance Test Suite are set as submodules in the sample implementation project

  • Use Build.py script to build and install OpenVX 1.3
cd OpenVX-sample-impl/
python Build.py --os=Linux --venum --conf=Debug --conf_nnef
  • Build and run the conformance
export OPENVX_DIR=$(pwd)/install/Linux/x32/Debug
export VX_TEST_DATA_PATH=$(pwd)/cts/test_data/
mkdir build-nnef-cts
cd build-nnef-cts
cmake -DOPENVX_INCLUDES=$OPENVX_DIR/include -DOPENVX_LIBRARIES=$OPENVX_DIR/bin/libopenvx.so\;$OPENVX_DIR/bin/libvxu.so\;$OPENVX_DIR/bin/libnnef-lib.a\;pthread\;dl\;m\;rt -DOPENVX_CONFORMANCE_NNEF_IMPORT=ON ../cts/
cmake --build .
LD_LIBRARY_PATH=./lib ./bin/vx_test_conformance --filter=*TensorNNEF*

Digits Classification Application

Digits Classification is a sample tutorial program for those who are new to OpenVX. It runs inference on handwritten digits with the MNIST NNEF model using OpenVX NNEF Import Kernel conformance profile.