Welcome back to the OpenVINO channel
human pose understanding is a crucial step on the way to fully understanding people behaviors
and actions. It has some pretty cool applications in movie
making, retail, gaming, Augmented Reality and more
The problem is that Human pose estimation is not easy..
We humans have some small and barely visible joints or keypoints like ears, eyes, nose,
shoulders, knees… Clothing, lighting changes, occlusions created
by other objects or just because the person is rotated makes it even harder.
If you have many-people in an image it’s even more complicated to know which joint
belong to which person This is why the more simple approach is to
use a person detector first, then, when you know where the person is located.. You can
try to estimate the parts and the pose… This method is known as the top-down approach
It is more accurate, but a little more expensive
The faster approach is to detect all the joints and then group them into people.. What is
called bottom-up approach
This is the documentation page, And you can also follow the how-to in this
video description to run the demo.
Let’s look at the model There are 2 human pose models in the mode
zoo Let’s look at the 3D human pose
If you’d like to understand more here is the link to the 2 papers..
Both of them are readable and will give you all the information on the algorithm behind
the model
The stages that are performed and more Back to the model page, ..
All the specification Input is an RGB image
The outputs are 3 blobs, each with a different information
If you look at the model itself, and search for “sink”
You can find the 3 outputs.. This is the first one with the 3D coordinates
This is the second output with the keypoint heatmap
and the third one
If you wonder how to practically use them, this is the code
You can see that for each frame of the video we scale the image
And use the scaled image as an input to the model and perform inference
Then we use the inference-result to estimate the 3D and 2D pose, using “Parse-Poses”
“Parse-poses” is in a different file, You can see here the definition of the human
limbs And we are using the inference results and
other parameters like the scaling factor to get the pose
The get-relative-pose is using he features to extract that..
Define the OpenVINO install directory And the Working directory
And initialize OpenVINO
Now there are some installation steps if you have never done them before..
First are the model-optimizer pre-requisites
I just run this script.. With Sudo permissions..
Now let’s go to the model-downloader directory And I’m basically following the instructions
from this README file
Install requirements
And requirements for pyTorch And we are all set..
Let’s get the model.
Let’s get our model. I’m going to the python demo directory,
Looking at the models list And I’m taking everything which is human
pose 3D, There is currently only one such model in
the model zoo
Calling the model downloader, To get me the models from the list, into my
directory And it is here, packed..
And now I’ll use the convert script to convert the model
Unpacking Converting to ONNX
Converting to IR
And I got the IR files, I’m all set… let’s run the demo..
One important step, unique to this demo We need to build the samples with this flag..
ENABLE PYTHON.. So just navigate to the inference engine demos,
And run the build script
Now we need to add the library to the Python-path And now we are ready
I’m running the human pose python demo This is the model
On an input video And I’ll run it on my Intel integrate GPU
for example
And the demo is running You can see the skeleton view, and you can
rotate the view with your mouse And this is the original video with the human
pose overlayed.. This is running on my GPU at more than 30
fps, and can even run faster without all the overhead
of this demo
Great demo, with huge amount of potential applications,
And the best part, it can run real time on Intel CPUs and integrated GPUs..
Don’t forget to subscribe to the channel to get more videos like this one