If you drive - there's a chance you enjoy cruising down the road. A responsible driver pays attention to the road signs, and adjusts their speed in accordance to the laws mandating that you follow the speed limit in a given area, amongst other signs that regulate drivers.
Though - what if you miss a sign? Not everyone has a sidekick to also pay attention and to tell them when there's a change in the speed limit or if there's another sign worth acknowledging. Some cars, especially modern ones, are equiped with cameras that read road signs in real time and show the current limit on your dashboard. For example, the Citroen C3 has a "Memory" button, which applies the latest noticed speed limit to your cruise control if it's active.
Wouldn't it be nice to have a system that also watches for road signs and gives you audio cues when it sees one?
Whether it's a speed limit sign, a stop sign, or another sign - having a side passenger that reminds you of the signs can be pretty useful, especially if this side passenger doesn't blink, only watches for the signs, and runs on your phone if your car doesn't already have a system built in. My old car doesn't have this system and I'd love to use my already existing phone to also look out for the signs, with no extra cost. Furthermore, if you're app-savvy, you can integrate the model into an application that plays sounds or audio clips of voices calling the road signs out loud.
In this guided project, we'll use a mixture of public datasets, and create our own dataset, manually prepare and label it, train and fine-tune a YOLOv5 model with Transfer Learning to detect road signs. We'll then take a look at how PyTorch models are generally deployed to the web with Flask, as well as Android and iOS devices. This encapsulates the entire life-cycle of an object detection application.