/YOLOv8-streamlit-app

🔥🔥🔥 Use streamlit framework to increase yolov8 front-end page interaction function

Primary LanguagePython

YOLOv8 Streamlit APP


Ultralytics CI YOLOv8 Citation Docker Pulls
Run on Gradient Open In Colab Open In Kaggle

Introduction

This repository supply a user-friendly interactive interface for YOLOv8 and the interface is powered by Streamlit. It could serve as a resource for future reference while working on your own projects.

Features

  • Feature1: Object detection task.
  • Feature2: Multiple detection models. yolov8n, yolov8s, yolov8m, yolov8l, yolov8x
  • Feature3: Multiple input formats. Image, Video, Webcam

Interactive Interface

Image Input Interface

image_input_demo

Video Input Interface

video_input_demo

Webcam Input Interface

webcam_input_demo

Installation

Create a new conda environment

# create
conda create -n yolov8-streamlit python=3.8 -y

# activate
conda activate yolov8-streamlit

Clone repository

git clone https://github.com/JackDance/YOLOv8-streamlit-app

Install packages

# yolov8 dependencies
pip install ultralytics

# Streamlit dependencies
pip install streamlit

Download Pre-trained YOLOv8 Detection Weights

Create a directory named weights and create a subdirectory named detection and save the downloaded YOLOv8 object detection weights inside this directory. The weight files can be downloaded from the table below.

Model size
(pixels)
mAPval
50-95
Speed
CPU ONNX
(ms)
Speed
A100 TensorRT
(ms)
params
(M)
FLOPs
(B)
YOLOv8n 640 37.3 80.4 0.99 3.2 8.7
YOLOv8s 640 44.9 128.4 1.20 11.2 28.6
YOLOv8m 640 50.2 234.7 1.83 25.9 78.9
YOLOv8l 640 52.9 375.2 2.39 43.7 165.2
YOLOv8x 640 53.9 479.1 3.53 68.2 257.8

Run

streamlit run app.py

Then will start the Streamlit server and open your web browser to the default Streamlit page automatically.

TODO List

  • Add Tracking capability.
  • Add Classification capability.
  • Add Pose estimation capability.

If you also like this project, you may wish to give a star (^.^)✨ . If any questions, please raise issue~