Skip to content

AngKernel/YOLOv8-streamlit-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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, segment task, pose task.

  • Feature2:

          Multiple detection models. `yolov8n`, `yolov8s`, `yolov8m`, `yolov8l`, `yolov8x`
          Multiple segment models. `yolov8n-seg`, `yolov8s-seg`, `yolov8m-seg`, `yolov8l-seg`, `yolov8x-seg`
          Multiple pose models. `yolov8n-pose`, `yolov8s-pose`, `yolov8m-pose`, `yolov8l-pose`, `yolov8x-pose`
    
  • Feature3: Multiple input formats. Image, Video, Webcam

Interactive Interface

Image Input Interface

image_input_demo image_input_demo image_input_demo

Video Input Interface

video_input_demo video_input_demo 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/chenanga/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
Model size
(pixels)
mAPbox
50-95
mAPmask
50-95
Speed
CPU ONNX
(ms)
Speed
A100 TensorRT
(ms)
params
(M)
FLOPs
(B)
YOLOv8n-seg 640 36.7 30.5 96.1 1.21 3.4 12.6
YOLOv8s-seg 640 44.6 36.8 155.7 1.47 11.8 42.6
YOLOv8m-seg 640 49.9 40.8 317.0 2.18 27.3 110.2
YOLOv8l-seg 640 52.3 42.6 572.4 2.79 46.0 220.5
YOLOv8x-seg 640 53.4 43.4 712.1 4.02 71.8 344.1
Model size
(pixels)
acc
top1
acc
top5
Speed
CPU ONNX
(ms)
Speed
A100 TensorRT
(ms)
params
(M)
FLOPs
(B) at 640
YOLOv8n-cls 224 66.6 87.0 12.9 0.31 2.7 4.3
YOLOv8s-cls 224 72.3 91.1 23.4 0.35 6.4 13.5
YOLOv8m-cls 224 76.4 93.2 85.4 0.62 17.0 42.7
YOLOv8l-cls 224 78.0 94.1 163.0 0.87 37.5 99.7
YOLOv8x-cls 224 78.4 94.3 232.0 1.01 57.4 154.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~

Fork from https://github.com/JackDance/YOLOv8-streamlit-app

About

基于streamlit的YOLOv8可视化交互界面

Resources

Stars

36 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors