Giter Club home page Giter Club logo

omegamax10 / yolov8-object-detection-tracking-image-segmentation-pose-estimation Goto Github PK

View Code? Open in Web Editor NEW
63.0 3.0 13.0 1.3 MB

YOLOv8 object detection, tracking, image segmentation and pose estimation app using Ultralytics API (for detection, segmentation and pose estimation), as well as DeepSORT (for tracking) in Python. This app uses an UI made with streamlit and it can be deployed with Docker.

License: Apache License 2.0

Python 96.00% Dockerfile 4.00%
deep-learning image-segmentation object-detection python pytorch ultralytics yolov8 deepsort detection object-tracking

yolov8-object-detection-tracking-image-segmentation-pose-estimation's Introduction

YOLOv8 Object Detection, Tracking, Image Segmentation and Pose Estimation

YOLOv8 object detection, tracking, image segmentation and pose estimation using Ultralytics API (for detection, pose estimation and segmentation), as well as DeepSORT (for tracking) in Python. The results of the detection are extracted in JSON format and prepared for further processing. For an enhanced user experience, the app interface is built using "streamlit" module from Python. The app can also be deployed in a Docker container. This app is also available as a public container on Docker Hub.

1. App Deployment

The app can be deployed using Docker Compose using the following command:

docker-compose -f yolov8-docker.yml up -d

If you want to deploy the app using the official container from Docker Hub, use the following commands:

docker pull bmarghescu/yolov8-docker
docker run -d --gpus all --name yolov8-docker -p 80:8501 bmarghescu/yolov8-docker:latest

2. App Usage

The web app consists of four tabs in which the user can do image, video or live stream processing using the model YOLOv8 developed by Ultralytics, as well as upload a custom YOLOv8 model. The application is composed of four tabs as follows:

a. Image Processing Tab

image In this tab, the user can upload an image to be processed using the model mentioned above. The resulting image, with the bounding boxes and segmentation masks, is then beautifully displayed in this tab after the processing is finished.

b. Video Processing Tab

image In this tab, the user can upload a MP4 video to be processed. The resulting video, with the bounding boxes, segmentation masks and tracks of the identified objects, is then beautifully displayed in this tab after the processing is finished. The video can also be viewed in full screen mode for better visualization of the result. In addition, the video and the JSON file with the objects detected is saved locally in a folder with the name of the initial video within the local folder "output_videos/" for further analysis.

c. Live Stream Tab

image In this tab, the user can add the URL for a live video stream, which can be either a integer (0, 1, 2 etc.) for a physically connected camera, like USB or built-in webcams, or a RTSP stream from a remotely connected camera. After starting the processing of the stream, the resulting frames, with the bounding boxes, segmentation masks and tracks of the identified objects, are displayed in real time. The processing of the stream can be started and stopped at any time using the two buttons "Start Live Stream Processing" and "Stop Live Stream Processing".

d. Custom YOLOv8 Model Upload Tab

image In this tab, the user can upload a custom YOLOv8 model, trained on a custom dataset. The model is stored in a folder named "models/" and added to "model_list.txt" for future use. After it was added, the model can then be selected in the dropdown menu at the beginning of the page, and it is usually found at the end of the list of the predefined models. The only eligible type of model is the Pytorch (".pt") one.

yolov8-object-detection-tracking-image-segmentation-pose-estimation's People

Contributors

omegamax10 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

yolov8-object-detection-tracking-image-segmentation-pose-estimation's Issues

Enhancement Request: Adaptive Real-Time Object Tracking Optimisation for Varied Lighting Conditions

Dear Developers,

I hope this message finds you well. I am reaching out to discuss an intriguing enhancement opportunity for the YOLOv8 Object Detection and Tracking application, particularly in the realm of adaptive real-time object tracking under varied lighting conditions.

Having perused your GitHub repository and extensively tested the application, I am thoroughly impressed with its capabilities and performance. However, I noticed that the application's object tracking efficiency can notably fluctuate in diverse lighting scenarios, especially in environments with dynamic lighting changes or in low-light conditions. This observation is particularly evident in the Live Stream Tab, where real-time performance is crucial.

Given the importance of consistent and accurate object tracking for a multitude of applications, ranging from security surveillance to traffic monitoring, addressing this issue could substantially enhance the utility and robustness of the application.

Suggested Enhancement:
I propose the integration of an adaptive lighting algorithm that dynamically adjusts the tracking parameters based on the detected lighting conditions. This could involve:

  1. Implementing a pre-processing step to assess the lighting condition of each frame or video segment.
  2. Adjusting the object detection and tracking parameters, such as contrast, brightness, and threshold values, in real-time based on the lighting assessment.
  3. Optionally, integrating an AI-based enhancement model that could improve the clarity and visibility of objects in low-light conditions.

Potential Benefits:

  • Improved accuracy and consistency in object tracking across varying lighting conditions.
  • Enhanced performance in low-light environments, expanding the application's usability in scenarios like night-time surveillance.
  • Increased robustness and reliability, particularly for real-time applications and live stream processing.

I believe this enhancement could mark a significant stride in the application's evolution, further solidifying its position as a leading tool in the field. I look forward to your thoughts on this suggestion and am keen to discuss this further if it aligns with your development roadmap.

Thank you for your time and consideration.

Best regards,
yihong1120

Getting Error while Predicting Videos or Live streaming

Hi, Thank you so much for such a nice work.

I have ran the repo successfully and for predicting images it works fine, but wenever i try to predict on videos or live streaming it give me error as under:

output_video / 1.mp4/ model.json not found

please guide me in this regard.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.