This fold provides TinyPose inference code using
Intel's OpenVINO Toolkit. Most of the implements in this fold are same as demo_ncnn.
Recommand to use the xxx.tar.gz file to install instead of github method, link.
Go to OpenVINO HomePage
Download a suitable version and install.
Follow the official Get Started Guides: https://docs.openvinotoolkit.org/latest/get_started_guides.html
Run this command in cmd. (Every time before using OpenVINO)
<INSTSLL_DIR>\openvino_2021\bin\setupvars.bat
Or set the system environment variables once for all:
Name | Value |
---|---|
INTEL_OPENVINO_DIR | <INSTSLL_DIR>\openvino_2021 |
INTEL_CVSDK_DIR | %INTEL_OPENVINO_DIR% |
InferenceEngine_DIR | %INTEL_OPENVINO_DIR%\deployment_tools\inference_engine\share |
HDDL_INSTALL_DIR | %INTEL_OPENVINO_DIR%\deployment_tools\inference_engine\external\hddl |
ngraph_DIR | %INTEL_OPENVINO_DIR%\deployment_tools\ngraph\cmake |
And add this to Path
%INTEL_OPENVINO_DIR%\deployment_tools\inference_engine\bin\intel64\Debug;%INTEL_OPENVINO_DIR%\deployment_tools\inference_engine\bin\intel64\Release;%HDDL_INSTALL_DIR%\bin;%INTEL_OPENVINO_DIR%\deployment_tools\inference_engine\external\tbb\bin;%INTEL_OPENVINO_DIR%\deployment_tools\ngraph\lib
Run this command in shell. (Every time before using OpenVINO)
source /opt/intel/openvino_2021/bin/setupvars.sh
Or edit .bashrc
vi ~/.bashrc
Add this line to the end of the file
source /opt/intel/openvino_2021/bin/setupvars.sh
Convert to OpenVINO
cd <INSTSLL_DIR>/openvino_2021/deployment_tools/model_optimizer
Install requirements for convert tool
cd ./install_prerequisites
sudo install_prerequisites_onnx.sh
Then convert model. Notice: mean_values and scale_values should be the same with your training settings in YAML config file.
python3 mo_onnx.py --input_model <ONNX_MODEL> --mean_values [103.53,116.28,123.675] --scale_values [57.375,57.12,58.395]
<OPENVINO_INSTSLL_DIR>\openvino_2021\bin\setupvars.bat
mkdir -p build
cd build
cmake ..
msbuild tinypose_demo.vcxproj /p:configuration=release /p:platform=x64
source /opt/intel/openvino_2021/bin/setupvars.sh
mkdir build
cd build
cmake ..
make
Download PicoDet openvino model PicoDet openvino model download link. Download TinyPose openvino model TinyPose openvino model download link.
move picodet and tinypose openvino model files to the demo's weight folder.
step1:
main.cpp
#define image_size 416
...
cv::Mat image(256, 192, CV_8UC3, cv::Scalar(1, 1, 1));
std::vector<float> center = {128, 96};
std::vector<float> scale = {256, 192};
...
auto detector = PicoDet("../weight/picodet_m_416.xml");
auto kpts_detector = new KeyPointDetector("../weight/tinypose256.xml", -1, 256, 192);
...
step2:
picodet_openvino.h
#define image_size 416
Run command:
./tinypose_demo [mode] [image_file]
param | detail |
---|---|
--mode | input mode,0:camera;1:image;2:video;3:benchmark |
--image_file | input image path |
tinypose_demo 0 0
tinypose_demo 1 IMAGE_FOLDER/*.jpg
tinypose_demo 2 VIDEO_PATH
tinypose_demo 3 0
Plateform: Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz x 24(核) Model: Tinypose256_Openvino
param | Min | Max | Avg |
---|---|---|---|
infer time(s) | 0.018 | 0.062 | 0.028 |