AI Notebooks - Tutorial - Train YOLOv5 on a custom dataset

Example on how to use a YOLOv5 model on AI Training

Last updated 6th June, 2022.

Objective

The purpose of this tutorial is to show how it is possible to train YOLOv5 to recognize objects. YOLOv5 is an object detection algorithm. Although closely related to image classification, object detection performs image classification on a more precise scale. Object detection locates and categories features in images.

image

It is based on the YOLOv5 open source repository by Ultralytics.

Requirements

Instructions

Uploading your dataset on Public Cloud Storage

If you want to upload it from the OVHcloud Control Panel, go to the Object Storage section and create a new object container by clicking Object Storage > Create an object container.

image

If you want to run it with the CLI, just follow this guide. You have to choose the region, the name of your container and the path where your data is located and use the following command:

ovhai data upload <region> <container> <paths>

This tutorial has been realized with the COCO dataset. If you don't have your own dataset, you can use it by downloading the COCO version "YOLOv5 PyTorch" available for free on Roboflow.

Launching and accessing Jupyter notebook with PyTorch framework

You need to attach a volume if your data is in your OVHcloud object storage and you want to use it during your experiment, or if you need to save the results of your work in the object storage. For more information on data, volumes and permissions, see our guide on data.

If you want to launch it from the OVHcloud Control Panel, just follow this guide.

  1. Name your notebook
  2. Choose Jupyterlab editor
  3. Select the PyTorch framework
  4. Choose the access type
  5. Select the datacenter location (same region as your object container)
  6. Choose the number of GPUs or CPUs you need

For this tutorial, we advise you to use at least 2 GPUs.

  1. Attach Object Storage containers

In this tutorial, you need 2 object containers.

  • the first object container contains your dataset (labelled and separated) and your data.yaml file.
  • the second object container is empty. It is intended to save your model weights (for a future inference for example).

image

Once the repository has been cloned, find the YOLOv5 notebook by following this path: ai-training-examples > notebooks > computer-vision > object-detection > miniconda > notebook_object_detection_yolov5.ipynb.

  1. Attach public ssh keys only if you want to
  2. Check that everything is ok and launch your notebook

If you want to launch it with the CLI, choose the volumes you want to attach and the number of GPUs (<nb-gpus>) to use on your notebook and use the following command:

ovhai notebook run pytorch jupyterlab \
    --name <name> \
    --gpu <nb-gpus> \
    --volume <dataset-container>@<region>/:/workspace/data:<permission> \
    --volume <weights-container>@<region>/:/workspace/models_train:<permission>

You can then reach your notebook’s URL once it is running.

You should have this overview:

image

Experimenting YOLOv5 notebook

Once your dataset is ready and uploaded, you are able to train the YOLOv5 model of your choice!

A preview of this notebook can be found on GitHub here.

Go further

Do you want to observe the evolution of your metrics during the training of your model? Click here!

Do you want to use your YOLOv5 model in an app? Here it is.


Did you find this guide useful?

Please feel free to give any suggestions in order to improve this documentation.

Whether your feedback is about images, content, or structure, please share it, so that we can improve it together.

Your support requests will not be processed via this form. To do this, please use the "Create a ticket" form.

Thank you. Your feedback has been received.


These guides might also interest you...

OVHcloud Community

Access your community space. Ask questions, search for information, post content, and interact with other OVHcloud Community members.

Discuss with the OVHcloud community