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).
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
--------------------------------------------------
- Modern Dark UI: A professional dark-themed desktop interface engineered with
PySide6 (Qt). - Embedded Local OCR Engine: Uses
EasyOCRto 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:
Continent➔Country➔City / State. - Error Correction & Priority Layer: Sorted tokenization sequencing that filters out watermark noise (like Ouedkniss artifacts) and gives priority matching to native formats.
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.
Ensure you have Python 3.12+ configured on your operating system environment.
git clone https://github.com
cd PlateGeo
pip install PySide6 easyocr opencv-python-headless matplotlibpython build_plates_db.pypython app.pyWe 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:
- Fork the repository.
- Open
build_plates_db.pyand 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"}