# 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 **RTSP input**, **in/out counting** using a vertical line, and exposes **Prometheus metrics** for integration with monitoring systems.

## 🚀 Features

- 🎥 RTSP camera stream input
- 🧠 YOLOv8 person detection
- 🔁 ByteTrack object tracking
- ➕➖ In/Out counting via virtual vertical line
- 📊 Prometheus metrics at `http://localhost:9100/`
- 🌐 Streamlit UI for live video and statistics

## Start mediamtx

```
mediamtx
```

## Stream webcam

```
ffmpeg \
    -vaapi_device /dev/dri/renderD128 \
    -y \
    -f v4l2 \
    -framerate 30 \
    -video_size 1280x720 \
    -input_format mjpeg \
    -i /dev/video0 \
    -vf 'format=nv12,hwupload' \
    -c:v h264_vaapi \
    -f rtsp \
    rtsp://localhost:8554/cam
```

## Run application
```
streamlit run streamlit_app.py
```
