Gymnastics Static Hold Assistant
Real-time pose estimation that detects and scores static holds in gymnastics from video.
Python · MediaPipe · PyTorch
An individual COSC428 project that detects and evaluates static holds in artistic gymnastics, such as handstands and planches, from a single ordinary 2D video feed in real time. MediaPipe's Pose Landmarker estimates pose in each frame, and a multi-layer perceptron built in PyTorch classifies the skill being held, trained on an annotated calisthenics and gymnastics dataset. Holds are detected using a moving window of frames that measures joint angle stability, with a majority vote across the window assigning the held skill. Joint angles and body alignment are then analysed to calculate deductions according to the FIG Code of Points. The hard part is that monocular video has no depth, so telling a genuinely stable hold apart from a brief pass through a similar pose comes down to getting the temporal filtering right. Deduction rules written for a human judge's eye also have to be mapped onto noisy, estimated joint angles. The project was written up as a formal research paper and presented to the course, positioned against prior published work on automated gymnastics scoring.
