April 2022

Car plates detection

A roadmap from data annotation to API

  • TENSORFLOW
  • PYTHON
  • NUMPY
  • VUE JS
  • JUPYTER NOTEBOOK
Visit live project
Car plates detection


Automated license-plate recognition is a key technology across countless domains — from traffic monitoring to automated parking management. In this piece I'd like to show how I built a solid recognition system using Label Studio, YOLOv5, and FastAPI. Without diving into every technical detail, I'll lay out a clear roadmap of the essential steps and the role each tool played.


1. Data annotation with Label Studio

Why Label Studio is a dream to annotate with


Flexibility and adaptability: Label Studio offers a broad range of annotation tools for all kinds of data — from text and images to audio — which makes it a uniquely adaptable solution for a project's specific needs.


User-friendly interface: the intuitive, easy-to-grasp interface greatly simplifies the whole annotation process. Even users with less technical background can produce high-quality annotations.


Collaborative features: Label Studio supports teamwork — multiple annotators can work simultaneously and sync their results centrally, a decisive advantage when large volumes need annotating quickly.


Export interfaces and open-source nature: versatile export options and the open-source approach enable easy integration with other systems and machine-learning frameworks, fostering transparency and continuous improvement through an engaged community.


Data preparation

The first step was preparing the datasets. With Label Studio I annotated 1,534 photos — frames extracted from dashcam footage — which formed the basis for training the object-detection model.


2. Model training with YOLOv5

With the data annotated, it was time to train a model capable of recognizing license plates. I chose YOLOv5 — a proven, efficient solution for object-detection tasks.


The training process

Data integration: the annotated images were fed into YOLOv5 as training data.

Model optimization: across many training cycles I reached solid recognition accuracy.


This approach produced a capable model in a relatively short time — the basis for the next stage of integration.


3. Building the API with FastAPI

With a trained YOLOv5 model in hand, the logical next step was an API through which other systems could use the recognition. That's where FastAPI came in.


Why FastAPI

High performance: FastAPI is known for its speed and suits real-time applications well.

Easy to work with: quick, uncomplicated implementation that meets all the requirements.

Scalability: thanks to async support, FastAPI handles a growing number of requests with ease.


With FastAPI I built a small but capable API that wraps the trained model and exposes detection over HTTP.

4. Summary and outlook


By combining the following technologies, I built a robust, efficient license-plate recognition system:

Label Studio for flexible, collaborative annotation,

YOLOv5 for training an accurate detection model, and

FastAPI for fast, performant delivery of the recognition as an API.


These steps make a solid starting point for anyone entering the world of automated license-plate recognition. It shows how modern tools and a clearly structured workflow are essential to delivering complex machine-learning projects successfully.


Want to try it yourself? Test the license-plate recognition at https://bandy.at/plates/ and dive into the world of automated systems!

The journey from data annotation to API delivery is a vivid demonstration of how seamlessly different tools can combine to build innovative, practical solutions. I'm looking forward to exploring what else is possible in this exciting field.

Gallery