Built to order

Automatic Number Plate Recognition using OpenCV

A computer-vision system that detects vehicle number plates in images and video, segments characters and recognizes them with OCR. Built with OpenCV and Tesseract/EasyOCR, it handles Indian plate formats, angle variations and low-light frames — a viva-strong AI project with a live camera demo.

Number plate recognition project thumbnail showing a vehicle image with the detected number plate highlighted and recognized plate text displayed.
More project photos (2)

The problem

The Automatic Number Plate Recognition (ANPR) system is a computer-vision final-year project that automatically detects vehicle registration plates in images and live video, segments the characters and recognizes them with OCR. Built with OpenCV for plate detection and Tesseract/EasyOCR for character recognition, with a Flask web app front end, this number plate recognition project is branded PlateScan and handles Indian plate formats (e.g. MH 12 AB 3456), tilted or skewed plates and low-light frames — exactly the pipeline (detection → segmentation → OCR) that AI/ML viva examiners expect you to explain.

This is a built-to-order project: every deliverable is prepared fresh for you — full source code, report PDF, PPT and viva Q&A — so nothing looks recycled.

How it works

  1. A frame is captured from an uploaded image, video file or live camera feed.
  2. Pre-processing: grayscale conversion, bilateral filtering, CLAHE contrast enhancement and adaptive thresholding.
  3. Edge detection (Canny) and contour analysis locate rectangular candidates matching plate aspect ratios; a Haar cascade / contour classifier filters false positives.
  4. The plate region is cropped, deskewed with a perspective transform and normalized.
  5. Character segmentation splits the plate into individual glyphs via contour bounding boxes, handling merged characters with vertical projection analysis.
  6. Tesseract or EasyOCR recognizes each character and returns text with confidence scores.
  7. The result is validated against Indian plate patterns, displayed in the PlateScan dashboard and logged with the snapshot.

Project features

  • Automatic plate localization in images and live webcam/CCTV video streams
  • Character segmentation with contour analysis and projection profiles
  • OCR recognition via Tesseract and EasyOCR with confidence scoring
  • Indian plate format validation (state code, RTO series, registration number)
  • Skew/tilt correction using perspective transforms before recognition
  • Low-light and night-frame enhancement (CLAHE + adaptive thresholding)
  • PlateScan Flask web app: upload image or use live camera, view annotated output
  • Detection log with timestamps, snapshots and recognized text export (CSV)
  • Batch processing mode for evaluating accuracy over a test image set
  • Configurable confidence threshold with manual-review queue for low scores

What is included

  • Complete, commented Python source code (detection, OCR, web app)
  • PlateScan Flask web application with dashboard UI
  • Project report PDF (literature survey, methodology, results, accuracy tables, conclusion)
  • PPT presentation for final review
  • Viva Q&A preparation document (contour theory, OCR internals, OpenCV functions)
  • Sample test image/video set + installation and run guide
Components & software requirements
  • Python 3.9+ (NumPy, imutils, scikit-image)
  • OpenCV (plate detection, perspective correction, preprocessing)
  • Tesseract OCR / EasyOCR (character recognition)
  • Flask + HTML/CSS/JS (PlateScan web dashboard)
  • SQLite (detection log storage)
  • Matplotlib (accuracy and timing charts for the report)

Download abstract (PDF)

Related guides

All guides
Illustration of object tracking showing video frames with bounding boxes and persistent ID labels following people and vehicles, comparing motion prediction and appearance matching.B.E./B.Tech Computer Science and Electronics students building video analytics projects — people counting, vehicle tracking, sports analysis — who have detection working and need

Object Tracking: DeepSORT and ByteTrack Explained

Detection finds objects per frame; tracking keeps their identities across frames. This guide explains tracking-by-detection, Kalman motion models, DeepSORT's appearance embeddings vs ByteTrack's low-confidence box recovery, tracking metrics (HOTA, IDF1, ID switches), and the tuning parameters that determine real-world quality.

Read guide
Illustration of image segmentation showing U-Net's U-shaped encoder-decoder with skip connections producing pixel masks, alongside Mask R-CNN detecting instances with masks.B.E./B.Tech Computer Science and AI/ML students moving from image classification or detection to pixel-level understanding — medical imaging, defect detection, autonomous driving

Image Segmentation: U-Net and Mask R-CNN

When projects need pixel-level answers, segmentation delivers. This guide explains semantic vs instance vs panoptic segmentation, U-Net's encoder-decoder with skip connections, Mask R-CNN's parallel mask head, Dice and IoU evaluation, paired augmentation, and how to choose the right architecture for your data and question.

Read guide
Illustration of Whisper speech-to-text showing sound waves flowing into a neural network and emerging as transcribed text with timestamps and speaker labels.B.E./B.Tech Computer Science and AI/ML students adding speech-to-text to projects — voice assistants, meeting transcription, accessibility tools

Whisper for Speech-to-Text in Student Projects

Whisper transcribes speech in dozens of languages with no training required. This guide covers how it works, choosing among model sizes, running it locally with faster-whisper, handling hour-long audio, timestamps and speaker diarization, multilingual quirks, and honest evaluation with word error rate.

Read guide
Get a quotation