Sitemap

License Plate Recognition System

2 min readFeb 25, 2026

--

Introduction

In this article, I’ll walk you through a complete license plate recognition system that combines:

  • YOLOv26 for vehicle detection
  • Custom-trained YOLOv26 for plate detection
  • PaddleOCR for text recognition

System Architecture: A 3-Stage Pipeline

Our system works in four distinct stages:

Input Image
↓
[Stage 1: Car Detection] ← YOLOv26 COCO Pre-trained
↓
[Stage 2: Plate Detection] ← Custom-Trained YOLOv26
↓
[Stage 3: Text Recognition] ← PaddleOCR
↓
Output: Annotated Image

Stage 1: Vehicle Detection

We use YOLOv26 (Nano variant) pre-trained on COCO dataset to detect vehicles:

Press enter or click to view image in full size

Instead of detecting plates across the entire image (which is slow and inaccurate), we first identify vehicles. This reduces the search space and improves accuracy.

Model Details:

  • Model: YOLOv26 Nano
  • Weights: COCO Pre-trained
  • Detects: Cars, motorcycles, buses, trucks

Stage 2: Plate Detection

We crop each detected vehicle and run plate detection on that region:

A critical insight: running detection on cropped regions is:

  • Faster — Smaller images process quicker
  • More accurate — Model learns contextual information
  • Fewer false positives — No random plate-like objects detected

The offset trick: When we detect plates in the cropped image at position (50, 30), but the crop started at (100, 50) in the original image, we need to convert:

Original Position = Cropped Position + Offset
(150, 80) = (50, 30) + (100, 50)

This automatic conversion ensures all bounding boxes align perfectly with the original image.

Get nantawat srisuwong’s stories in your inbox

Join Medium for free to get updates from this writer.

Model Details:

  • Model: Custom-trained YOLOv26
  • Weights: best.pt (trained on license plate dataset)

Stage 3: Text Recognition

PaddleOCR recognizes the actual text on the plate

Why PaddleOCR? It supports:

  • 80+ languages (including Thai)
  • High accuracy on license plates
  • Built-in language models (no retraining needed)
  • Fast inference

Features:

  • Thai/English/Multi-language
  • Character-level confidence scores
  • Bounding boxes for each character
  • Auto-downloaded models

source: https://github.com/nantawat23308/plate_recognition.git

Resources

--

--