A real-time object detection web app built with YOLOv8 and Streamlit that can detect 80 different object classes from uploaded images.
- Image Upload — supports JPG, JPEG, and PNG formats
- YOLOv8n Inference — fast, lightweight model auto-downloaded on first run
- Bounding Boxes — annotated output with confidence scores per detection
- Results Table — per-class breakdown of object, average confidence %, and count
- Plotly Bar Chart — interactive chart of detected object counts
- Confidence Threshold Slider — filter detections in real time (0.1 – 0.9)
- NMS Support — configurable IoU threshold to suppress overlapping duplicate boxes
- Dark Modern UI — custom-styled dark theme with a
#63d3a1accent
| Layer | Technology |
|---|---|
| Language | Python 3.11 |
| Object Detection | YOLOv8 (Ultralytics) |
| Web Framework | Streamlit |
| Image Processing | OpenCV, Pillow |
| Deep Learning | PyTorch, TorchVision |
| Visualisation | Plotly |
1. Clone the repository
git clone https://github.com/ezzu9/object-detection-app.git
cd object-detection-app2. Create a virtual environment (Python 3.11)
python3.11 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate3. Install dependencies
pip install -r requirements.txt4. Launch the app
streamlit run app.pyThe app opens at http://localhost:8501. YOLOv8n weights (~6 MB) are downloaded automatically on first run.
| Property | Value |
|---|---|
| Architecture | YOLOv8n (nano) |
| Training Dataset | COCO 2017 |
| Object Classes | 80 (people, vehicles, animals, everyday objects, …) |
| Weights | Auto-downloaded via Ultralytics on first launch |
Ertaza Manzoor
BSc Artificial Intelligence — Anglia Ruskin University, Cambridge