Main Project is not active for few years. There is lot of issues and pushes but almost none solved. This fork aims to be more active and continue development.
** In case your alpr installation stops to work after OS update or upgrade just build from source again and it should work fine
OpenALPR is an open source Automatic License Plate Recognition library written in C++ with bindings in C#, Java, Node.js, Go, and Python. The library analyzes images and video streams to identify license plates. The output is the text representation of any license plate characters.
OpenALPR includes a command line utility. Simply typing "alpr [image file path]" is enough to get started recognizing license plate images.
user@linux:~/openalpr$ alpr ./samplecar.png
plate0: top 10 results -- Processing Time = 58.1879ms.
- PE3R2X confidence: 88.9371
- PE32X confidence: 78.1385
- PE3R2 confidence: 77.5444
- PE3R2Y confidence: 76.1448
- P63R2X confidence: 72.9016
- FE3R2X confidence: 72.1147
- PE32 confidence: 66.7458
- PE32Y confidence: 65.3462
- P632X confidence: 62.1031
- P63R2 confidence: 61.5089
Detailed command line usage:
user@linux:~/openalpr$ alpr --help
USAGE:
alpr [-c <country_code>] [--config <config_file>] [-n <topN>] [--seek
<integer_ms>] [-p <pattern code>] [--clock] [-d] [-j] [--]
[--version] [-h] <image_file_path>
Where:
-c <country_code>, --country <country_code>
Country code to identify (either us for USA or eu for Europe).
Default=us
--config <config_file>
Path to the openalpr.conf file
-n <topN>, --topn <topN>
Max number of possible plate numbers to return. Default=10
--seek <integer_ms>
Seek to the specified millisecond in a video file. Default=0
-p <pattern code>, --pattern <pattern code>
Attempt to match the plate number against a plate pattern (e.g., md
for Maryland, ca for California)
--clock
Measure/print the total time to process image and all plates.
Default=off
-d, --detect_region
Attempt to detect the region of the plate image. [Experimental]
Default=off
-j, --json
Output recognition results in JSON format. Default=off
--, --ignore_rest
Ignores the rest of the labeled arguments following this flag.
--version
Displays version information and exits.
-h, --help
Displays usage information and exits.
<image_file_path>
Image containing license plates
OpenAlpr Command Line Utility
Pre-compiled Windows binaries can be downloaded on the releases page
Install OpenALPR on Ubuntu 20.04 with the following commands:
sudo apt update && sudo apt install -y openalpr openalpr-daemon openalpr-utils libopenalpr-dev
#Install prerequisites
sudo apt install libopencv-dev libtesseract-dev git cmake build-essential libleptonica-dev
sudo apt install liblog4cplus-dev libcurl3-dev
#If using the daemon, install beanstalkd
sudo apt install beanstalkd
#Clone the latest code from GitHub
git clone https://github.com/mandza/openalpr.git
#Setup the build directory
cd openalpr/src
mkdir build
cd build
#Setup the compile environment
cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -DCMAKE_INSTALL_SYSCONFDIR:PATH=/etc ..
#Compile the library
make
#Install the binaries/libraries to your local system (prefix is /usr)
sudo make install
Detailed documentation is available at doc.openalpr.com
OpenALPR is written in C++ and has bindings in C#, Python, Node.js, Go, and Java. Please see this guide for examples showing how to run OpenALPR in your application: http://doc.openalpr.com/bindings.html
OpenALPR compiles and runs on Linux, Mac OSX and Windows.
OpenALPR requires the following additional libraries:
- Tesseract OCR v3.0.4 (https://github.com/tesseract-ocr/tesseract)
- OpenCV v2.4.8+ (http://opencv.org/)
After cloning this GitHub repository, you should download and extract Tesseract and OpenCV source code into their own directories. Compile both libraries.
Please follow these detailed compilation guides for your respective operating system:
If all went well, there should be an executable named alpr along with libopenalpr-static.a and libopenalpr.so that can be linked into your project.
# Build docker image
docker build -t openalpr https://github.com/mandza/openalpr.git
# Download test image
wget http://plates.openalpr.com/h786poj.jpg
# Run alpr on image
docker run -it --rm -v $(pwd):/data:ro openalpr -c eu h786poj.jpgPlease post questions or comments to the Google group list: https://groups.google.com/forum/#!forum/openalpr
Improvements to the OpenALPR library are always welcome. Please review the OpenALPR design description and get started.
Code contributions are not the only way to help out. Do you have a large library of license plate images? If so, please upload your data to the anonymous FTP located at upload.openalpr.com. Do you have time to "tag" plate images in an input image or help in other ways? Please let everyone know by posting a note in the forum.
Affero GPLv3 http://www.gnu.org/licenses/agpl-3.0.html