YOLOX-OpenVINO in C++¶
This tutorial includes a C++ demo for OpenVINO, as well as some converted models.
Download OpenVINO 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 |
Install OpenVINO Toolkit¶
Please visit Openvino Homepage for more details.
Set up the Environment¶
For Linux¶
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
Convert model¶
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.