What is MIVisionX#
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#
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.
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.
Neural network model compiler and optimizer#
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.