yolov8-streamlit-detection-tracking
yolov8-streamlit-detection-tracking copied to clipboard
Object detection and tracking algorithm implemented for Real-Time video streams and static images.
Real-time Object Detection and Tracking with YOLOv8 & Streamlit
This repository is an extensive open-source project showcasing the seamless integration of object detection and tracking using YOLOv8 (object detection algorithm), along with Streamlit (a popular Python web application framework for creating interactive web apps). The project offers a user-friendly and customizable interface designed to detect and track objects in real-time video streams from sources such as RTSP, UDP, and YouTube URLs, as well as static videos and images.
Explore Implementation Details on Medium (3 parts blog series)
For a deeper dive into the implementation, check out my three-part blog series on Medium, where I detail the step-by-step process of creating this web application.
WebApp Demo on Streamlit Server
Thank you team Streamlit for the community support for the cloud upload.
This app is up and running on Streamlit cloud server!!! You can check the demo of this web application on this link yolov8-streamlit-detection-tracking-webapp
Tracking With Object Detection Demo
Demo Pics
Home page
Page after uploading an image and object detection
Segmentation task on image
Requirements
Python 3.6+ YOLOv8 Streamlit
pip install ultralytics streamlit pytube
Installation
- Clone the repository: git clone https://github.com/CodingMantras/yolov8-streamlit-detection-tracking.git
- Change to the repository directory:
cd yolov8-streamlit-detection-tracking - Create
weights,videos, andimagesdirectories inside the project. - Download the pre-trained YOLOv8 weights from (https://github.com/ultralytics/assets/releases/download/v0.0.0/yolov8n.pt) and save them to the
weightsdirectory in the same project.
Usage
- Run the app with the following command:
streamlit run app.py - The app should open in a new browser window.
ML Model Config
- Select task (Detection, Segmentation)
- Select model confidence
- Use the slider to adjust the confidence threshold (25-100) for the model.
One the model config is done, select a source.
Detection on images
- The default image with its objects-detected image is displayed on the main page.
- Select a source. (radio button selection
Image). - Upload an image by clicking on the "Browse files" button.
- Click the "Detect Objects" button to run the object detection algorithm on the uploaded image with the selected confidence threshold.
- The resulting image with objects detected will be displayed on the page. Click the "Download Image" button to download the image.("If save image to download" is selected)
Detection in Videos
- Create a folder with name
videosin the same directory - Dump your videos in this folder
- In
settings.pyedit the following lines.
# video
VIDEO_DIR = ROOT / 'videos' # After creating the videos folder
# Suppose you have four videos inside videos folder
# Edit the name of video_1, 2, 3, 4 (with the names of your video files)
VIDEO_1_PATH = VIDEO_DIR / 'video_1.mp4'
VIDEO_2_PATH = VIDEO_DIR / 'video_2.mp4'
VIDEO_3_PATH = VIDEO_DIR / 'video_3.mp4'
VIDEO_4_PATH = VIDEO_DIR / 'video_4.mp4'
# Edit the same names here also.
VIDEOS_DICT = {
'video_1': VIDEO_1_PATH,
'video_2': VIDEO_2_PATH,
'video_3': VIDEO_3_PATH,
'video_4': VIDEO_4_PATH,
}
# Your videos will start appearing inside streamlit webapp 'Choose a video'.
- Click on
Detect Video Objectsbutton and the selected task (detection/segmentation) will start on the selected video.
Detection on RTSP
- Select the RTSP stream button
- Enter the rtsp url inside the textbox and hit
Detect Objectsbutton
Detection on YouTube Video URL
- Select the source as YouTube
- Copy paste the url inside the text box.
- The detection/segmentation task will start on the YouTube video url
Acknowledgements
This app uses YOLOv8 for object detection algorithm and Streamlit library for the user interface.
Disclaimer
Please note this project is intended for educational purposes only and should not be used in production environments.
Hit star ⭐ if you like this repo!!!