What is MIVisionX#

MIVisionX Logo

AMD MIVisionX toolkit is a comprehensive set of computer vision and machine intelligence libraries, utilities, and applications bundled into a single toolkit. MIVisionX delivers highly optimized conformant open-source implementation of the Khronos OpenVX Extensions along with Convolution Neural Net Model Compiler & Optimizer supporting ONNX, and Khronos NNEF exchange formats. The MIVisionX toolkit allows for rapid prototyping and deployment of optimized computer vision and machine learning inference workloads on a wide range of computer hardware, including small embedded x86 CPUs, APUs, discrete GPUs, and heterogeneous servers.

AMD OpenVX#

OpenVX Logo

AMD OpenVX is a highly optimized conformant open source implementation of the OpenVX Specification Version 1.3 computer vision specification. It allows for rapid prototyping as well as fast execution on a wide range of computer hardware, including small embedded x86 CPUs and large workstation discrete GPUs.

Note

The Khronos OpenVX 1.0.1 is available in MIVisionX Lite.

AMD OpenVX Extensions#

The OpenVX framework provides a mechanism to add new vision functionality to OpenVX by vendors. This project has the following OpenVX extension modules and utilities to extend AMD OpenVX, which contains the AMD OpenVX core engine.

MIVisionX Logo
  • amd_loomsl: AMD Loom stitching library for live 360 degree video applications

  • amd_media: AMD media extension module is for encode and decode applications

  • amd_migraphx: AMD MIGraphX extension integrates the MIGraphx into an OpenVX graph. This extension allows developers to combine the vision functions in OpenVX with the MIGraphX and build an end-to-end application for inference.

  • amd_nn: OpenVX neural network module

  • amd_opencv: OpenVX module that implements a mechanism to access OpenCV functionality as OpenVX kernels

  • amd_rpp: OpenVX extension providing an interface to some of the ROCm Performance Primitives (RPP) functions. This extension enables rocAL to perform image augmentation.

  • amd_winml: AMD WinML extension lets developers import a pre-trained ONNX model into an OpenVX graph and add hundreds of different pre & post-processing vision, generic, and user-defined functions. The functions are available in OpenVX and OpenCV interop, and can be added to the input and output of the neural net model. This extension intends to help developers build an end-to-end application for inference.

Applications#

MIVisionX has several example applications built on top of OpenVX modules. These applications can serve as excellent prototypes and samples for developers to build upon.

MIVisionX Logo

Neural network model compiler and optimizer#

MIVisionX Logo

Neural net model compiler and optimizer converts pre-trained neural net models to MIVisionX runtime code for optimized inference.

Toolkit#

Toolkit is a comprehensive set of helpful tools for neural net creation, development, training, and deployment. The Toolkit provides useful tools to design, develop, quantize, prune, retrain, and infer your neural network work in any framework. The Toolkit has been designed to help you deploy your work on any AMD or 3rd party hardware, from embedded to servers.

MIVisionX toolkit provides tools for accomplishing your tasks throughout the whole neural net life-cycle, from creating a model to deploying them for your target platforms.

Utilities#

  • loom_shell: an interpreter to prototype 360 degree video stitching applications using a script

  • mv_deploy: consists of a model-compiler and necessary header/.cpp files which are required to run inference for a specific NeuralNet model

  • RunCL: command-line utility to build, execute, and debug OpenCL programs

  • RunVX: command-line utility to execute OpenVX graph described in GDF text file

Documentation#

Run the steps below to build documentation locally.

  • sphinx documentation

cd docs
pip3 install -r sphinx/requirements.txt
python3 -m sphinx -T -E -b html -d _build/doctrees -D language=en . _build/html
  • Doxygen

doxygen .Doxyfile

Technical support#

Please email mivisionx.support@amd.com for questions, and feedback on MIVisionX.

Please submit your feature requests, and bug reports on the GitHub issues page.