MaochengHu 576cda45b8 first commit 2 years ago
..
CMakeLists.txt 576cda45b8 first commit 2 years ago
README.md 576cda45b8 first commit 2 years ago
keypoint_detector.cpp 576cda45b8 first commit 2 years ago
keypoint_detector.h 576cda45b8 first commit 2 years ago
keypoint_postprocess.cpp 576cda45b8 first commit 2 years ago
keypoint_postprocess.h 576cda45b8 first commit 2 years ago
main.cpp 576cda45b8 first commit 2 years ago
picodet_openvino.cpp 576cda45b8 first commit 2 years ago
picodet_openvino.h 576cda45b8 first commit 2 years ago

README.md

TinyPose OpenVINO Demo

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.

Install OpenVINO Toolkit

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

Set the Environment Variables

Windows:

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:

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

Linux

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 model

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]

Build

Windows

<OPENVINO_INSTSLL_DIR>\openvino_2021\bin\setupvars.bat
mkdir -p build
cd build
cmake ..
msbuild tinypose_demo.vcxproj /p:configuration=release /p:platform=x64

Linux

source /opt/intel/openvino_2021/bin/setupvars.sh
mkdir build
cd build
cmake ..
make

Run demo

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.

Edit file

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

Run command:

./tinypose_demo [mode] [image_file]
Name Value
INTEL_OPENVINO_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
param detail
--mode input mode,0:camera;1:image;2:video;3:benchmark
--image_file input image path

Webcam

tinypose_demo 0 0

Inference images

tinypose_demo 1 IMAGE_FOLDER/*.jpg

Inference video

tinypose_demo 2 VIDEO_PATH

Benchmark

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