This Python application uses MediaPipe Pose from Google to give insights into climbing technique from just a video.
It can give metrics for limb extension, velocity of hands and feet, center of gravity, and a 3D pose graph.
GitHubAfter experimenting with real climbing videos, center of gravity tracking turned out to be one of the most useful features. Being able to clearly see where the center of gravity is makes it obvious that most climbing techniques work by manipulating the center of gravity.
It is well known that center of gravity placement is important with volume walking. Notice how each step is supported with a foot directly in line with the center of gravity. The impact of the center of gravity is even more apparent when you go frame by frame.
Being able to fall in a controlled way shows excellent proprioception. Here, James evenly balances his weight around the center line at the apex of the jump. Then he slowly falls over to catch the next hold.
A prominent reason overhanging climbing is so hard is that it takes a lot of core strength to be able to place and keep the feet on the wall. On top of that, the arms can often be the only points of contact keeping you on. In order to limit the amount of energy spent per move, Naomi moves her center of gravity as little as possible.
In this application, limb extension is calculated as the distance from the shoulder to hand and from the hip to foot. So far, this has been useful for showing power generation and rotation control.
Here, Naomi uses leg extension to generate power for a campus move. At about 0:01, she straightens her legs and then brings her knees up to gain momentum. This can be seen in the graph as the "hump".
Immediately after the hump in the graph, the two lines diverge. This is because she is controlling the rotation by extending her legs in opposite directions to prevent from spinning off of the wall.
Using MediaPipe Pose allows for a 3D pose plot. This can be used to compare and understand body positions better.
The origin is at the center of the hips and each red dot has coordinates (x, y, z) relative to the origin at the hip. These coordinates are available for every frame as well as coordinates relative to the frame size of the video