Training on Public Roboflow Datasets
Let's start by training the network on some public datasets of road signs. They're fairly universal, but not always identical in the world. YOLOv5 can be instantiated as a blank slate or pre-trained on MS COCO. MS COCO contains images of various objects in context, including traffic lights, cars, buses and trains.
A network pretrained on MS COCO already has a fair bit of knowledge about traffic and objects within traffic, so using Transfer Learning, we can leverage some of that knowledge to make our model more robust and accurate even if we only have small training sets. This is especially helpful since collecting and labelling the data manually takes time and effort and creating a large dataset can be prohibitively expensive, as we'll see in a later section of this project.
To further decrease reliance on custom-labelled data, and increase the model's robustness, we'll transfer MS COCO weights to a public road sign dataset, and only then fine tune it on our own data.
Let's start with cloning the YOLOv5 repository and installing its dependencies. This is required from training, as the
torch.hub model is only used for inference:
git clone https://github.com/ultralytics/yolov5 pip install -r yolov5/requirements.txt