OpenPose Exercise Analytics
High point of push up overlaid with object detection.

OpenPose Exercise Analytics

push up low position
Lowest position of a pushup overlaid with object detection

Overview

OpenPose is an open-source library that utilizes object detection to capture key points on the human body. The open-source library predicts the location of these critical points on all humans within the frame. This technique has been used to capture the number of people within an image and positions of the body. 

This project aims to utilize this form of object detection to create fully automated exercise analytics. The relative position of different limbs and joints are monitored and analyzed using the predicted key points on the human body. The aim was to create a method to analyze my pushup quality in an automated fashion. The focus was on the range of motion of the pushup as well as proper body positioning. Through OpenPose, I can extract the key body positions frame by frame. I can measure my forearm and shoulder angle and observe the compression and extension from these points. OpenPose also provides uncertainty estimation on its predictions. From these predictions, I can interpolate uncertain measurements and measure the consistent motion of my body. The plot above shows the change in angle as described over ten pushups. I can measure the rate of pushups, the range of motion, and count the number performed. I am also able to measure the correct body position as I complete each pushup. By measuring the linearity between the point predictions of my feet, hip, and shoulder, I can evaluate my body position on each pushup.

Technical

Object detection takes full advantage of the open-source package OpenPose. The processing is done in Google Colab. The visualization and analytics are produced using python and Plotly.

pushup analysis
Pushup form analysis