# People Counter with YOLOv8, ByteTrack, and Prometheus

This project implements a real-time people counting system based on object detection and tracking using [YOLOv8](https://github.com/ultralytics/ultralytics) and [ByteTrack](https://github.com/ifzhang/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
```
