- Notifications
You must be signed in to change notification settings - Fork131
Automatic License Plate Recognition (ALPR) or Automatic Number Plate Recognition (ANPR) software that works with any camera.
License
parkpow/deep-license-plate-recognition
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Get high-accuracy, developer-friendlyautomatic license plate recognition (ALPR) or automatic number plate recognition (ANPR) software! The core of our ALPR, ANPR system is based on state of the art deep neural networks architectures.
- Reading License Plates fromImages
- Number Plate Recognition on aVideo or Camera Stream
- Automatic Image Transfer
- Code Samples
Our machine-learning software:
- Works ondark, low-res, blurry images and tough angles, all vehicle types, etc. See our fullALPR results.
- Decodeslicense plate , vehicle type (e.g. SUV, van, pickup truck),vehicle make model (e.g. Honda Accord), color, and orientation. Ignores bumper stickers, car signs, etc.
- Is optimized for all50 USA States,India,Brazil and90+ countries worldwide.
Snapshot : Get license plate reader from images in under 60 minutes:
- Access asimple REST API for easy integration in8 programming languages.
- Returns results viaJSON Response or Webhooks.
- Hasfast inference speed up to 21 ms.
- Runs on-premise onLinux, Windows , Mac, Jetson,Kubernetes,Raspberry Pi,Zynq,96Boards,LattePanda and more.
Stream : Get number plate recognition from camera or video feed:
- Returns license plate results viaCSV file orWebhooks.
- Handles 4 cameras simultaneously on mid-range PC.
- Runs on-premise onLinux, Windows , Mac andJetson.
ALPR, ANPR software is ideal for parking, highway monitoring, toll, police surveillance, community security, and other use cases. Ourlicense plate recognition (LPR) software can also forward results to our fullALPR Dashboard andParking Management software solution, ParkPow. Sign up for aFree Trial now (no credit card required) orlearn more athttps://platerecognizer.com.
Get your API key fromPlate Recognizer. ReplaceMY_API_KEY with your API key and run the command below.
For setup instructions of the script, checkout our guideshere
# Getting started!git clone https://github.com/parkpow/deep-license-plate-recognition.gitcd deep-license-plate-recognitionpip install requests pillowpython plate_recognition.py --api-key MY_API_KEY /path/to/vehicle.jpg
Theresult includes the boundingbox
es (rectangle around object) and theplate
value for each plate. View the details of the results on ourdocumentation.
[{"version":1,"results":[{"box":{"xmin":85,"ymin":85,"ymax":211,"xmax":331},"plate":"ABC123","score":0.904,"dscore":0.92}],"filename":"car.jpg"}]
You can match the license plate patterns of a specific region.
python plate_recognition.py --api-key MY_API_KEY --regions fr --regions it /path/to/car.jpg
You can also run the license plate reader on many files at once. To run the script on all the images of a directory, use:
python plate_recognition.py --api-key MY_API_KEY /path/to/car1.jpg /path/to/car2.jpg /path/to/trucks*.jpg
To use a locally hosted sdk, pass the url to the docker container as follows:
python plate_recognition.py --sdk-url http://localhost:8080 /path/to/vehicle.jpg
The scriptnumber_plate_redaction.py
differs from the default prediction script because it also detects plates that arebarely readable and/or very small. It returns the bounding boxes of all the license plates. They can be used to blur or mask the license plates.
In addition, it cansplit the image in smaller images to better deal with high resolution images. This will use3 lookups instead of just 1. To use this options add--split-image
.
The option--save-blurred
lets you save blurred images. They are saved to a new file with_blurred
suffix.
The option--ignore-regexp
lets you specify a regex of plates to ignore from blur. This option can be specified multiple times.
The option--ignore-no-bb
lets you ignore recognitions without a vehicle bounding box from blur.
python number_plate_redaction.py --helppython number_plate_redaction.py --api-key API_KEY vehicels.jpgpython number_plate_redaction.py --sdk-url http://localhost:8080 --split-image vehicels.jpgpython number_plate_redaction.py --api-key 77c### 58C5A57_14965463.jpg --save-blurred --ignore-regexp ^58c5a57$ --ignore-regexp ^[0-9][0-9]c5a57$
You can send images directly to our FTP. See ourFTP integration for details.
If you want to use your own FTP or SFTP server, another option is to process images withftp_and_sftp_processor.py
:
For setup instructions of the script, checkout our guideshere
python ftp_and_sftp_processor.py --api-key MY_API_KEY --hostname FTP_HOST_NAME --ftp-user FTP_USER --ftp-password FTP_USER_PASSWORD --folder /path/to/server_folder
By default the script is prepared to process images in FTP servers, if you want to process images in an SFTP server, add the argument--protocol sftp
.
To remove images from FTP or SFTP server after processing, add the argument--delete
.
Arguments | Description |
---|---|
-h, --help | Show help message |
-a, --api-key | Your API key. |
-r, --regions | Match the license plate pattern for a specific region. |
-s, --sdk-url | URL to self-hosted SDK. For example,http://localhost:8080 |
-c, --protocol | Protocol to use, available choices 'ftp'(default) or 'sftp' |
-t, --timestamp | Timestamp. |
-H, --hostname | Host. |
-p, --port | Port |
-U, --ftp-user | Transfer protocol server user |
-P, --ftp-password | Transfer protocol server user's password |
-d, --delete | Remove images from the FTP server after processing. Optionally specify a timeout in seconds. |
-f, --folder | Specify a folder with images on the FTP server. |
-o, --output-file | Save the result to a file. |
-i, --interval | Periodically fetch new images from the server every interval seconds. |
--camera-id | Name of the source camera. |
--cameras-root | Root folder containing dynamic cameras. |
--format | Format of the result, available choices 'json'(default) or 'csv' |
--mmc | Predict vehicle make and model (SDK only). It has to be enabled. |
--pkey | SFTP Private Key Path. |
Automatic Image Transfer is a command line tool that runs ourALPR Engine. Itmonitors a folder and automatically process images (Cloud or SDK) as they are added. Once processed, images are moved to an archive directory. It can alsoforward the results to our parking management serviceParkpow.
To get started:python transfer.py --help
See our sample projects to easily get started with the API.
- Example program inC++.
- Example program inC#.
- Example program inJava.
- Android App. It lets you take a picture and send it to our API.
- Android App in Kotlin.
- View how to integrate with other languages in ourdocumentation.
- A Node-RED node forlicense plate recognition.
- Orconvert the curl examples to other languages.
Have questions?Let us know how we can help.
Provided by Plate Recognizer, a subsidiary ofParkPow.
About
Automatic License Plate Recognition (ALPR) or Automatic Number Plate Recognition (ANPR) software that works with any camera.
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
Packages0
Uh oh!
There was an error while loading.Please reload this page.