No description
Find a file
2025-08-08 21:22:55 +02:00
utils Count each person just once 2025-08-02 04:19:26 +02:00
yolo_weights initial commit 2025-07-16 14:23:13 +02:00
.envrc initial commit 2025-07-16 14:23:13 +02:00
.gitignore initial commit 2025-07-16 14:23:13 +02:00
bytetrack.yaml initial commit 2025-07-16 14:23:13 +02:00
flake.lock initial commit 2025-07-16 14:23:13 +02:00
flake.nix initial commit 2025-07-16 14:23:13 +02:00
LICENSE initial commit 2025-07-16 14:23:13 +02:00
main.py Replace streamlit with FastAPI 2025-08-02 03:25:54 +02:00
metrics.py Replace streamlit with FastAPI 2025-08-02 03:25:54 +02:00
README.md Update README 2025-08-02 04:26:14 +02:00
requirements.txt Add dependency prometheus_client 2025-08-08 21:22:55 +02:00
tracker.py Do not skip frames 2025-08-02 04:27:09 +02:00

People Counter with YOLOv8, ByteTrack, and Prometheus

This project implements a real-time people counting system based on object detection and tracking using YOLOv8 and ByteTrack. It supports MJPEG input, in/out counting using either a vertical or a horizontal line, and exposes Prometheus metrics for integration with monitoring systems.

🚀 Features

  • 🎥 MJPEG camera stream input
  • 🧠 YOLOv8 person detection
  • 🔁 ByteTrack object tracking
  • In/Out counting via virtual line
  • 📊 Prometheus metrics at http://localhost:9100/
  • 🌐 Web UI for live video and statistics

Start MJPEG stream from webcam

mjpg_streamer -i "input_uvc.so -d /dev/video0 -r 1280x720 -f 30" -o "output_http.so -p 8080"

Run application

uvicorn main:app --host 0.0.0.0 --port 8000