This tutorial includes a C++ demo for OpenVINO, as well as some converted models.
Model | Parameters | GFLOPs | Test Size | mAP | Weights |
---|---|---|---|---|---|
YOLOX-Nano | 0.91M | 1.08 | 416x416 | 25.8 | github |
YOLOX-Tiny | 5.06M | 6.45 | 416x416 | 32.8 | github |
YOLOX-S | 9.0M | 26.8 | 640x640 | 40.5 | github |
YOLOX-M | 25.3M | 73.8 | 640x640 | 47.2 | github |
YOLOX-L | 54.2M | 155.6 | 640x640 | 50.1 | github |
YOLOX-Darknet53 | 63.72M | 185.3 | 640x640 | 48.0 | github |
YOLOX-X | 99.1M | 281.9 | 640x640 | 51.5 | github |
Please visit Openvino Homepage for more details.
Option1. Set up the environment tempororally. You need to run this command everytime you start a new shell window.
source /opt/intel/openvino_2021/bin/setupvars.sh
Option2. Set up the environment permenantly.
Step1. For Linux:
vim ~/.bashrc
Step2. Add the following line into your file:
source /opt/intel/openvino_2021/bin/setupvars.sh
Step3. Save and exit the file, then run:
source ~/.bashrc
-
Export ONNX model
Please refer to the ONNX toturial. Note that you should set --opset to 10, otherwise your next step will fail.
-
Convert ONNX to OpenVINO
cd <INSTSLL_DIR>/openvino_2021/deployment_tools/model_optimizer
Install requirements for convert tool
sudo ./install_prerequisites/install_prerequisites_onnx.sh
Then convert model.
python3 mo.py --input_model <ONNX_MODEL> --input_shape <INPUT_SHAPE> [--data_type FP16]
For example:
python3 mo.py --input_model yolox_tiny.onnx --input_shape [1,3,416,416] --data_type FP16
Make sure the input shape is consistent with those in cpp file.
source /opt/intel/openvino_2021/bin/setupvars.sh
mkdir build
cd build
cmake ..
make
./yolox_openvino <XML_MODEL_PATH> <IMAGE_PATH> <DEVICE>