Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Human Pose Estimation on CCTV Footage using YOLOv8 Pose

📖 Overview

This project demonstrates human pose estimation on CCTV surveillance footage using the YOLOv8 Pose model. The model detects people and predicts body keypoints and skeleton connections, enabling visual analysis of human movement in surveillance videos.

The project was trained on a CCTV shoplifting dataset containing annotated human poses and performs pose estimation on previously unseen images and videos. It provides a strong foundation for applications such as behaviour analysis, activity recognition, intelligent surveillance, and future shoplifting detection systems.


🎥 Demo

The animation below shows the trained model performing human pose estimation on CCTV footage.

Human Pose Estimation Demo


✨ Features

  • Human pose estimation using YOLOv8 Pose
  • Detects multiple people in CCTV footage
  • Predicts body keypoints and skeleton connections
  • Supports image and video inference
  • Generates annotated prediction images and videos
  • Includes an animated demonstration and sample predictions

📊 Dataset

Item Value
Total Images 456
Annotated People 771
Training Images 319
Validation Images 91
Test Images 46

🧠 Model & Training

Parameter Value
Model YOLOv8n Pose
Framework Ultralytics YOLOv8
Epochs 50
Image Size 640 × 640
Batch Size 8
Device CPU

📈 Results

The trained model successfully predicts human body keypoints and skeleton connections on CCTV surveillance footage. Prediction outputs include annotated images, annotated videos, and the animated GIF shown above.


📸 Sample Predictions

Sample 1 Sample 2
Sample 3 Sample 4

📂 Project Structure

cctv-human-pose-estimation/
├── assets/
│   ├── demo.gif
│   ├── sample1.jpg
│   ├── sample2.jpg
│   ├── sample3.jpg
│   └── sample4.jpg
├── data/
├── models/
│   └── best.pt
├── outputs/
├── reports/
├── scripts/
├── videos/
├── README.md
├── requirements.txt
└── LICENSE

⚙️ Installation

Clone the repository:

git clone https://github.com/only1jamjam-ctrl/cctv-human-pose-estimation.git
cd cctv-human-pose-estimation

Create and activate a virtual environment.

Windows (Git Bash)

python -m venv pose-env
source pose-env/Scripts/activate

Install the required packages.

pip install -r requirements.txt

▶️ Running Inference

Run pose estimation on a video:

yolo pose predict model=models/best.pt source=videos/shoplifting1.mp4 save=True

Run pose estimation on images:

yolo pose predict model=models/best.pt source=data/test/images save=True

🛠️ Technologies Used

  • Python
  • Ultralytics YOLOv8
  • PyTorch
  • OpenCV
  • NumPy
  • Pillow
  • ImageIO

🚀 Future Improvements

  • Real-time webcam inference
  • Multi-person tracking
  • Behaviour recognition
  • Shoplifting activity classification
  • Edge device deployment
  • Web application interface

📄 License

This project is licensed under the MIT License.


👤 Author

Jamila Ahmed

GitHub: https://github.com/only1jamjam-ctrl

About

Human pose estimation on CCTV footage using YOLOv8 Pose

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages