Skip to content

TRaiFIC is an Automatic Number Plate Recognition (ANPR) system designed specifically for Nepali license plates. The system utilizes multiple machine learning models in a pipeline architecture to detect license plates, segment characters, and perform optical character recognition.

Notifications You must be signed in to change notification settings

sanzgrapher/TRaiFIC-ANPR-Nepali-Number-Plate-Detection-plus-Character-Recognition

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitHub top language GitHub last commit

TRaiFIC: Automatic Nepali Number Plate Recognition System

TRaiFIC is an Automatic Number Plate Recognition (ANPR) system designed specifically for Nepali license plates. The system utilizes multiple machine learning models in a pipeline architecture to detect license plates, segment characters, and perform optical character recognition.

🔍 Overview

This project implements a complete ANPR pipeline:

  1. Plate Detection - Detects license plates from images or video frames
  2. Character Segmentation - Segments individual characters from the detected plate
  3. Character Recognition - Recognizes the segmented characters

The system is deployed as a Flask web application for easy interaction.

Demo

TRaiFIC Demo Video

demo.mp4

📂 Project Structure

ANPR/
├── application/          # Flask web application
│   ├── app.py           # Main Flask application
│   ├── config.py        # Application configuration
│   ├── model_loader.py  # Model loading utilities
│   ├── image_processing.py  # Image processing pipeline
│   ├── templates/       # HTML templates
│   └── static/          # Static assets (CSS, JS, images)
├── models/              # Machine learning models
│   ├── pd-traific/      # Plate detection model
│   ├── sg/              # Segmentation model
│   └── char-traiffic/   # Character recognition model
├── main.py
├── .python-version
└── pyproject.toml       # Project dependencies and metadata

🚀 Installation

This project uses UV, an extremely fast Python package and project manager written in Rust. Follow these steps to set up the project:

Prerequisites

  1. Python 3.10 or higher
  2. UV installed on your system

Clone the Repository

git clone https://github.com/sanzgrapher/TRaiFIC-ANPR-Nepali-Number-Plate-Detection-plus-Character-Recognition.git
cd ANPR

Install Dependencies with UV

uv sync

This will install all dependencies defined in the pyproject.toml file.

🏃 Running the Application

Start the Flask application:

cd application
uv run --flask run -p 3000

The web interface will be available at http://127.0.0.1:3000/

🔄 Pipeline Process

The ANPR system follows this workflow:

  1. Plate Detection (PD): Uses YOLOv8-based model to detect license plates in images
  2. Segmentation (SG): Isolates and segments characters from the detected plate
  3. Character Recognition (CHAR): Recognizes individual characters using a trained model

Model pipeline: PD → SG → CHAR

About

TRaiFIC is an Automatic Number Plate Recognition (ANPR) system designed specifically for Nepali license plates. The system utilizes multiple machine learning models in a pipeline architecture to detect license plates, segment characters, and perform optical character recognition.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages