Back to Works Computer Vision · Unsupervised Learning

Evaluating Body Pose Grouping via Clustering Algorithms

3D Stick Figure Pose Groupings

3D visualisations of discrete dance postures successfully grouped by DBSCAN and K-Means.

Overview

Training supervised models for human action recognition relies on massive amounts of manually labeled data. This project investigates whether unsupervised clustering algorithms can automatically group continuous streams of 3D human movement coordinates into discrete, identifiable poses — effectively automating the data annotation pipeline.

Using Indian Classical Dance (Bharatanatyam) as a ground-truth dataset — due to its strict, predefined geometric postures — we extracted skeletal data, built a custom data-cleaning filter, and evaluated three distinct clustering algorithms.

The Problem — Pose Hallucination

While tools like MediaPipe are highly efficient at extracting 3D landmarks, they exhibit a critical flaw. When the dancer's legs move out of the camera frame, the model continues to guess their location based on torso orientation — resulting in heavily distorted "collapsed skeletons" that corrupt the dataset. Solving this was a prerequisite for any meaningful clustering.

Approach & Methodology

A rigorous preprocessing pipeline was built before any clustering was applied:

Key Technologies: Python · MediaPipe · OpenCV · Scikit-learn · K-Means · DBSCAN · Agglomerative Clustering · t-SNE · PCA

Results