parkpow/deep-license-plate-recognition

Automatic License Plate Recognition (ALPR) or Automatic Number Plate Recognition (ANPR) software that works with any camera.

What it does

This repo bundles ready‑to‑run Python scripts and small helper projects that talk to Plate Recognizer – a cloud or on‑premise service that runs a deep‑learning model for license‑plate detection and OCR. The code does not contain the neural‑network itself; it only wraps the service’s REST API (or the self‑hosted Snapshot SDK) and provides convenient command‑line tools for common workflows:

Task Tool Typical use‑case
Single‑image recognition plate_recognition.py Quickly get the plate text, confidence and bounding box from a local photo.
Plate redaction (blur) number_plate_redaction.py Produce a copy of an image with the plate masked, optionally splitting large images for better accuracy.
Bulk pull from FTP/SFTP ftp_and_sftp_processor.py Pull images from a remote server, run recognition, and optionally delete the originals.
Watch‑folder auto‑process transfer.py Continuously monitor a folder, recognize new pictures and move them to an archive; can forward results to ParkPow’s gate‑control system.
Video/stream handling stream/ Helpers for processing live video streams or image feeds.
Camera‑gate integration gate-controller/ Example code to open/close a barrier based on a successful plate read.
Multi‑language examples cpp/, csharp/, java/ Minimal snippets showing how to call the same API from other languages.
Docker / on‑prem SDK docker/ Scripts to spin up the self‑hosted Snapshot SDK container.
Benchmarks benchmark/ Simple performance tests against the API or local SDK.

All tools share a tiny set of dependencies (requests, pillow, plus optional paramiko, watchdog, etc.) and are driven by command‑line flags that let you switch between the cloud API (using an API token) and a self‑hosted Snapshot SDK (via --sdk‑url).

Who it’s for

  • Developers building parking‑lot, gate, or toll‑gate systems who need a plug‑and‑play way to add license‑plate reading.
  • Ops teams that already run Plate Recognizer on‑prem and want scripts for bulk ingestion, FTP pulls, or automated redaction.
  • Anyone prototyping a computer‑vision pipeline and looking for a quick Python front‑end without training their own model.

How to get started

  1. Create a Plate Recognizer account and obtain an API token (or deploy the Snapshot SDK locally).
  2. Clone the repo and set up the virtual environment as shown in the README.
  3. Run the simplest example:
    python plate_recognition.py --api-key YOUR_TOKEN path/to/car.jpg
    
    The script prints a JSON array with the detected plate, confidence scores, and the image’s bounding box.
  4. Explore other utilities (--help on each script) and pick the one that matches your workflow.

What’s not included

  • The actual deep‑learning model – you rely on Plate Recognizer’s service.
  • A full‑blown UI; these are command‑line tools meant to be integrated into larger systems.

License & support

The code is released under the repository’s LICENSE (MIT‑style) and is maintained by ParkPow, the company behind Plate Recognizer. For product‑level questions you should contact Plate Recognizer directly via their support page.