ultralytics / yolov5

YOLOv5 πŸš€ in PyTorch > ONNX > CoreML > TFLite

Home Page:https://docs.ultralytics.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Supervisely with YOLOv5 🌟

mkolomeychenko opened this issue Β· comments

πŸ“š This guide explains how to use Supervisely with YOLOv5 πŸš€.

Table of Contents

  1. About Supervisely
  2. Prerequisites
  3. YOLOv5 Apps Collection
  4. For developers
  5. Contact & Questions & Suggestions

πŸ”₯ About Supervisely

You can think of Supervisely as an Operating System available via Web Browser to help you solve Computer Vision tasks. The idea is to unify all the relevant tools that may be needed to make the development process as smooth and fast as possible.

More concretely, Supervisely includes the following functionality:

  • Data labeling for images, videos, 3D point cloud and volumetric medical images (dicom)
  • Data visualization and quality control
  • State-Of-The-Art Deep Learning models for segmentation, detection, classification and other tasks
  • Interactive tools for model performance analysis
  • Specialized Deep Learning models to speed up data labeling (aka AI-assisted labeling)
  • Synthetic data generation tools
  • Instruments to make it easier to collaborate for data scientists, data labelers, domain experts and software engineers

One challenge is to make it possible for everyone to train and apply SOTA Deep Learning models directly from the Web Browser. To address it, we introduce an open sourced Supervisely Agent. All you need to do is to execute a single command on your machine with the GPU that installs the Agent. After that, you keep working in the browser and all the GPU related computations will be performed on the connected machine(s).

Prerequisites

You should connect computer with GPU to your Supervisely account. If you already have Supervisely Agent running on your computer, you can skip this step.

Several tools have to be installed on your computer:

Once your computer is ready just add agent to your team and execute automatically generated running command in terminal. Watch how-to video:

SLY_EMBEDED_VIDEO_LINK

πŸŽ‰ YOLO v5 Apps Collection

YOLOv5 is one of the best available detectors. And we are proud to announce its full integrtion into Supervisely Ecosystem. To learn more about how to use every app, please go to app's readme page (links are provided). Just add the apps to your team to start using them.

YOLOv5 Collection consists of the following apps:

  1. Train YOLOv5 - start training on your custom data. Just run app from the context menu of your project, choose classes of interest, train/val splits, configure training metaparameters and augmentations, and monitor training metrics in realtime. App automatically converts all labels to rectangles. All training artifacts including model weights will be saved to Team Files and can be easily downloaded.

  2. Serve YOLOv5 - serve model as Rest API service. You can run pretrained model, use custom model weights trained in Supervisely as well as weights trained outside (just upload weights file to Team Files). Thus other apps from Ecosystem can get predictions from the deployed model. Also developers can send inference requiests in a few lines of python code.

  3. Apply NN to images project - app allows to play with different inference options and visualize predictions in real time. Once you choose inference settings you can apply model to all images in your project to visually analise predictions and perform automatic data pre-labeling.

  4. NN Image Labeling - integrate any deployd NN to Supervisely Image Labeling UI. Configure inference settings and model output classes. Press Apply button (or use hotkey) and detections with their confidences will immediately appear on the image.

  5. Convert Supervisely to YOLO v5 format - export labeled images project in yolov5 compatible format.

  6. Convert YOLO v5 to Supervisely format - import images and yolov5 annotatons to Supervisely.

  7. Export weights - export weights to ONNX or TorchScript; also find python examples how to apply exported weights to an image and get predictions.

For Developers

  • you can use sources of Serve YOLOv5 app as example of how to prepare weights, initialize model and apply it to a folder with images (or to images URLs)
  • This apps collection is based on the original YOLOv5 release v5.0. Once a next official release is available, all apps will be synchronized with it and also released with the new versions. Before running any app you can choose what version to use. Also Supervisely Team will pull updates from original master branch from time to time.

Contact & Questions & Suggestions

  • for technical support please leave issues, questions or suggestions to original YOLOv5 repo with the prefix [Supervisely]. Our team will try to help.
  • also we can chat in slack channel

πŸ‘‹ Hello @mkolomeychenko, thank you for your interest in πŸš€ YOLOv5! Please visit our ⭐️ Tutorials to get started, where you can find quickstart guides for simple tasks like Custom Data Training all the way to advanced concepts like Hyperparameter Evolution.

If this is a πŸ› Bug Report, please provide screenshots and minimum viable code to reproduce your issue, otherwise we can not help you.

If this is a custom training ❓ Question, please provide as much information as possible, including dataset images, training logs, screenshots, and a public link to online W&B logging if available.

For business inquiries or professional support requests please visit https://www.ultralytics.com.

Requirements

Python 3.8 or later with all requirements.txt dependencies installed, including torch>=1.7. To install run:

$ pip install -r requirements.txt

Environments

YOLOv5 may be run in any of the following up-to-date verified environments (with all dependencies including CUDA/CUDNN, Python and PyTorch preinstalled):

Status

CI CPU testing

If this badge is green, all YOLOv5 GitHub Actions Continuous Integration (CI) tests are currently passing. CI tests verify correct operation of YOLOv5 training (train.py), testing (test.py), inference (detect.py) and export (export.py) on MacOS, Windows, and Ubuntu every 24 hours and on every commit.

Nice work @mkolomeychenko, is it possible to connect my GPU to Supervisely in the Windows system?

Nice work @mkolomeychenko, is it possible to connect my GPU to Supervisely in the Windows system?

Hi, yes, it is not a default option, we recommend to run Supervisely Agent on unix, but i think it is possible now. You should have docker and gpu drivers installed.

@mkolomeychenko release v5.0 is not stable there are lots of bug fixes after release 5.0 (@glenn-jocher can you confirm it?), are you going to synronize with the ultralytiucs/yolov5 repos current stage?

I am facing problems in converting my augmented (detection) dataset to YOLO format. I receive errors messages. What are the possible reasons for this?

We know that Supervisely is one of the greatest online image annotation tools.

RectLabel is an offline image annotation tool for object detection and segmentation.
Although this is not an open source program, with RectLabel, you can label polygons and keypoints in the YOLO format.

Please give us your feedback about the combination of YOLOv5 and RectLabel.

yolo_polygon

@mkolomeychenko @glenn-jocher are you going to update the outdated supervisely yolov5 app to yolov5 v7.0?