Skip to content

Repository files navigation

🌐 PlateGeo — Structural Geolocation & License Plate Recognition Framework

Python PySide6 EasyOCR OpenCV License

PlateGeo is an open-source Optical Character Recognition (OCR) and Open Source Intelligence (OSINT) framework designed to extract, clean, categorize, and geolocate vehicle license plates from digital imagery worldwide.

Combining deep learning-based text recognition with a dynamic regex rule engine covering 200+ countries, PlateGeo filters image artifacts (watermarks, logos, background noise) and resolves exact country and regional/provincial jurisdictions (e.g., Algerian Wilayas, French Departments, Turkish Provinces).


📸 Overview & Demo

When a vehicle image is ingested into PlateGeo, the pipeline processes the visual layer, extracts candidate text strings, applies heuristic cleansing, and matches structural patterns to output actionable OSINT metadata:

📊 ANALYSIS METRICS
--------------------------------------------------
🔢 Plate Extracted: xxxxx - xxx - xx

🌐 CONTINENT: xxxxx
📍 COUNTRY: xxxxx xx
🏙️ REGION: xxxxxx

--------------------------------------------------

Sans titre

🚀 Key Features

  • Modern Dark UI: A professional dark-themed desktop interface engineered with PySide6 (Qt).
  • Embedded Local OCR Engine: Uses EasyOCR to read text on low-quality, blurry, or pixelated web car photos directly on standard CPUs.
  • Hierarchical Readout Outputs: Parses character distributions to return strict top-down data tracks: ContinentCountryCity / State.
  • Error Correction & Priority Layer: Sorted tokenization sequencing that filters out watermark noise (like Ouedkniss artifacts) and gives priority matching to native formats.

📂 Repository Architecture

  • app.py: Standardizes the graphic desktop window, native file streams, UI stylesheets, and internal runtime exception captures.
  • database_plates.py: Centralizes localized country regex validation maps, regional subdivision tables, and multi-tier formatting logic.
  • build_plates_db.py: Compiles the dynamic lists of countries and regional boundaries into a standalone distribution layer.
  • plates_global.json: The compiled external data array holding all worldwide layout indices.

⚙️ Installation & Quickstart

Prerequisites

Ensure you have Python 3.12+ configured on your operating system environment.

1. Clone the project and install computational modules

git clone https://github.com
cd PlateGeo
pip install PySide6 easyocr opencv-python-headless matplotlib

2. Compile the Database Array

python build_plates_db.py

3. Launch PlateGeo

python app.py


🤝 Contributing & Database Expansion

We need your help to make the global database matrix even more accurate!

The core of PlateGeo relies on build_plates_db.py to compile syntax patterns and regional codes for 200+ countries. If your country's license plate format is missing, out of date, or needs refined regex rules, you can contribute in 3 simple steps:

  1. Fork the repository.
  2. Open build_plates_db.py and add/update your country's syntax pattern or regional mappings:
    # Example: Adding or refining a country matrix rule
    {"pattern": r"^[A-Z]{2}\d{3}[A-Z]{2}$", "country": "Country Name 🏳️", "continent": "Continent"}

About

Automated Global License Plate Recognition & Regional Geolocation Framework using Python, EasyOCR, and PySide6 across 200+ countries.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages