This project focuses on human pose estimation and keypoint detection using publicly available datasets such as COCO and MPII. The repository contains a collection of Jupyter notebooks covering the complete pipeline from dataset acquisition and preprocessing to model development, training, and visualization of predicted keypoints.
The primary objective is to build and train deep learning models capable of accurately detecting human body keypoints, with special emphasis on leg keypoint localization and custom keypoint extraction workflows.
- Download and prepare COCO and MPII datasets.
- Generate custom annotations for leg keypoint detection.
- Create datasets containing leg keypoints along with other body keypoints.
- Image preprocessing and augmentation pipeline.
- Deep learning model development for pose estimation.
- Model training and evaluation.
- Visualization utilities for drawing detected keypoints.
- Modular utility functions for configuration management and annotation conversion.
pose-estimation/
│
├── LICENSE
├── README.md
│
├── notebooks/
│ ├── COCO Set Preparation for Legs Keypoints Along with Other Classes.ipynb
│ ├── COCO Set Preparation for Legs Keypoints Detection.ipynb
│ ├── Creating Model.ipynb
│ ├── Downloading COCO DataSet.ipynb
│ ├── Download MPII DataSet.ipynb
│ ├── Draw KeyPoints.ipynb
│ ├── Model Training.ipynb
│ └── Preprocess Images.ipynb
│
└── utils/
├── __init__.py
├── configs.py
├── conversions.py
└── draw.py
Download the required datasets:
-
COCO Dataset
Downloading COCO DataSet.ipynb
-
MPII Human Pose Dataset
Download MPII DataSet.ipynb
Prepare and customize annotations for training:
COCO Set Preparation for Legs Keypoints Detection.ipynbCOCO Set Preparation for Legs Keypoints Along with Other Classes.ipynb
These notebooks create training-ready datasets focused on leg keypoints and full-body keypoint configurations.
Perform image cleaning, resizing, normalization, and annotation transformations:
Preprocess Images.ipynb
Design and configure the pose estimation architecture:
Creating Model.ipynb
Train the pose estimation model on prepared datasets:
Model Training.ipynb
Visualize annotations and model predictions:
Draw KeyPoints.ipynb
Contains project-wide configuration settings such as:
- Dataset paths
- Image dimensions
- Training parameters
- Keypoint definitions
Utility functions for:
- Annotation conversion
- Coordinate transformations
- Dataset format adaptation
Visualization utilities for:
- Drawing keypoints
- Skeleton rendering
- Prediction inspection
The Common Objects in Context (COCO) dataset provides large-scale object detection, segmentation, and human keypoint annotations.
Key features:
- Thousands of annotated human instances
- Standard benchmark for pose estimation
- Multiple body keypoints per person
The MPII dataset contains images of humans performing diverse activities with detailed body joint annotations.
Key features:
- Real-world activities
- Challenging poses
- Widely used pose estimation benchmark
Recommended environment:
Python 3.8+
Jupyter Notebook
TensorFlow / Keras
NumPy
OpenCV
Matplotlib
Pandas
Scikit-learnInstall dependencies:
pip install -r requirements.txtLaunch Jupyter Notebook:
jupyter notebookRecommended execution order:
- Downloading COCO DataSet.ipynb
- Download MPII DataSet.ipynb
- COCO Set Preparation for Legs Keypoints Detection.ipynb
- COCO Set Preparation for Legs Keypoints Along with Other Classes.ipynb
- Preprocess Images.ipynb
- Creating Model.ipynb
- Model Training.ipynb
- Draw KeyPoints.ipynb
This project can be extended for:
- Human activity recognition
- Sports analytics
- Gait analysis
- Motion tracking
- Healthcare and rehabilitation systems
- Human-computer interaction
- Surveillance and safety monitoring
- Real-time inference support
- Multi-person pose estimation
- Lightweight deployment models
- Transfer learning with state-of-the-art architectures
- Integration with video-based pose tracking
- Deployment using TensorFlow Lite or ONNX
This project is distributed under the terms specified in the LICENSE file.