All Projects → faisalthaheem → open-lpr

faisalthaheem / open-lpr

Licence: Apache-2.0 license
Open Source and Free License Plate Recognition Software

Programming Languages

python
139335 projects - #7 most used programming language
HTML
75241 projects
Dockerfile
14818 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to open-lpr

LPEX
Detect vehicles license plate location
Stars: ✭ 60 (-18.92%)
Mutual labels:  alpr, license-plate-detection
vrpdr
Deep Learning Applied To Vehicle Registration Plate Detection and Recognition in PyTorch.
Stars: ✭ 36 (-51.35%)
Mutual labels:  license-plate-recognition, license-plate-detection
alpr utils
ALPR model in unconstrained scenarios for Chinese license plates
Stars: ✭ 158 (+113.51%)
Mutual labels:  license-plate-recognition, license-plate-detection
ConvALPR
Reconocedor Automatico (real-time) de Patentes utilizando Redes Neuronales Convolucionales
Stars: ✭ 15 (-79.73%)
Mutual labels:  alpr, license-plate-recognition
license-plate-detect-recoginition-pytorch
深度学习车牌检测与识别,检测结果包含车牌矩形框和4个角点,基于pytorch框架运行
Stars: ✭ 77 (+4.05%)
Mutual labels:  license-plate-recognition, license-plate-detection
deep-license-plate-recognition
Automatic License Plate Recognition (ALPR) or Automatic Number Plate Recognition (ANPR) software that works with any camera.
Stars: ✭ 309 (+317.57%)
Mutual labels:  alpr, license-plate-recognition
Plate-Minder
Monitor a video source for license plates and record them. Zero cloud dependencies.
Stars: ✭ 106 (+43.24%)
Mutual labels:  lpr
node-red-contrib-ical-events
Node-RED module to get events from a iCal Calender (Google e.g.), icloud or Caldav Server via kalender-events
Stars: ✭ 38 (-48.65%)
Mutual labels:  nodered
node-red-contrib-mssql-plus
A Node-RED node to read and write to Microsoft MS SQL Databases
Stars: ✭ 22 (-70.27%)
Mutual labels:  nodered
tutorial
Tutorial for using the CampusIoT platform
Stars: ✭ 22 (-70.27%)
Mutual labels:  nodered
SmartHome
esp8266 IoT to mqtt bridge. Eastron SDM220, SDM230, SDM630 modbus; AZ7798; SenseAir s8; BME280; HDC1080; Plantower PMS5003, PMS7003, PMSA003
Stars: ✭ 50 (-32.43%)
Mutual labels:  nodered
Vehicle-Front-Rear-Detection-for-License-Plate-Detection-Enhancement
A Network for detecting and classifying vehicle's front and rear
Stars: ✭ 33 (-55.41%)
Mutual labels:  license-plate-detection
theme-collection
A collection of themes for Node-RED
Stars: ✭ 43 (-41.89%)
Mutual labels:  nodered
balena-node-red
a node-red application with balena-supervisor support, can be managed remotely via balena publicURL
Stars: ✭ 54 (-27.03%)
Mutual labels:  nodered
Vehicle-Number-Plate-Reading
Read Vehicle Number Plate and store the data in a CSV file with date and time.
Stars: ✭ 47 (-36.49%)
Mutual labels:  license-plate-recognition
cnn-ocr-lp
OCR implementado con solo Redes Convolucionales (CNN) de Patentes Argentinas
Stars: ✭ 22 (-70.27%)
Mutual labels:  license-plate-recognition
DarkPlate
License plate parsing using Darknet and YOLO
Stars: ✭ 36 (-51.35%)
Mutual labels:  alpr
noderedexamples
Node-Red-Beispiele zu c't-Artikeln / Examples for node-red used in our articles.
Stars: ✭ 16 (-78.38%)
Mutual labels:  nodered
awesome-nodered
A collection of interesting nodes and resources for Node-RED
Stars: ✭ 316 (+327.03%)
Mutual labels:  nodered
CLPR.pytorch
End to End Chinese License Plate Recognition
Stars: ✭ 75 (+1.35%)
Mutual labels:  lpr
Repository Last commit Docker CI Health Docker pulls
FTP GithubLastCommit Docker Image CI DockerPulls
Plate Detection GithubLastCommit Docker Image CI DockerPulls
OCR GithubLastCommit Docker Image CI DockerPulls
REST GithubLastCommit Docker Image CI DockerPulls
NodeRed GithubLastCommit Docker Image CI DockerPulls

TOC

Demo

Visit here for a live demo of REST interface.

Please note the demo server is deliberately kept underpowered to prevent abuse. In case your request times out the server may just be too busy with other requests. You can always try running OpenLPR locally as described below.


About

Free forever & Open Source License Plate Recognition software which uses deep neural networks to detect license plates and perform OCR.

Following image illustrates a dashboard built using nodered that shows real time LPR results. NodeRED can be used to build RESTful services, integrate with other systems such as over modbus to extend the business functionality of the system with ease.

In Action | LPR Performed on an image and results displayed in NodeRED Dashboard

In the above example it can be see that LPR was performed on the image uploaded through FTP and text 349253 was extracted successfully from the license plate area.

An abundance of information such as bounding boxes, confidence scores etc are available in the raw JSON data published by the services and available to NodeRED and any other integrating service for consumption.

For the above example, the following detail is available in db and also published on the message broker (RabbitMQ) and is as well available in NodeRED for further processing, furthermore this detail is also returned as JSON when using the REST (described further below) interface

{
    "_id" : "522676bf-c958-49cb-b786-32b3d0407c02",
    "filename" : "jeep.jpg",
    "creationtime" : 1645719472.51666,
    "unique_name" : "522676bf-c958-49cb-b786-32b3d0407c02_jeep.jpg",
    "detections" : {
        "boxes" : [ 
            [ 
                348, 
                400, 
                740, 
                546
            ]
        ],
        "scores" : [ 
            0.998433649539948
        ],
        "classes" : [ 
            2
        ]
    },
    "imgDimensions" : {
        "height" : 1281,
        "width" : 720,
        "channels" : "RGB"
    },
    "ocr" : [ 
        [ 
            "349253", 
            0.996076437906518
        ]
    ]
}



Quick Start in 3 steps

The following instrctions assume you are running a linux flavor such as debian, ubuntu or popos!

1. Install Docker

Goto https://www.docker.com/get-started and install the distribution relevant to your operating system. Consider using a convenience script to fast track the installation. Also install docker-compose.

2. Clone this repo & start services

This step will take a few minutes depending on your internet connection speed.

git clone https://github.com/faisalthaheem/open-lpr && \
cd open-lpr && \
docker-compose up -d

Important Images are updated frequently, therefore to ensure you are running the latest version consider using watchtower.

3. Open your browser and upload file to process

Use google chrome to navigate to the following address http://localhost:5000/

Optional - Upload a file using FTP

Use any FTP client, for example, FileZilla to connect to your localhost on port 2121 with the username and password user/12345 and upload any car image with readable license plate.

The dashboard at http://localhost:1890/show-dashboard will update to reflect the detected plate and OCR text like in the image above.



REST Interface

You can use the REST interface to submit an image for processing. Once services have started a command similar to following can be used from the shell to try it out; you can ofcourse use the REST interface with any programming language.

curl \
  -F "filecomment=Sample file" \
  -F "image=@/path/to/image.jpg" \
  localhost:5000/process

In the above command image==@/path/to/image.jpg points to the file that is to be submitted for processing, and localhost:5000 represents where the OpenLPR services are running.

The returned response is JSON as given in the example above



Training your own Plate Detection Models

Please follow instructions given in the following repo OpenLPR Pre-trained models



Documentation & Updates

Head over to the wiki for documentation.

Dated Description
Feb 2022 Added arm64 support to all containers except OCR and detection.
Feb 2022 Added REST interface.
Feb 2022 Ported stack to torch. Removed plate classification.
Feb 2022 Completed documentation.
Jan 2021 Ported to tensorflow 2 with compatibility mode for tensorflow 1.



Milestones

Work on GPU supported container images is in progress.

Milestones



Overview

Open LPR is a distributed system aimed towards ease of management and high LPR throughput. The core consists of modules to perform the tasks of plate detection, classification and OCR.

Ground up the system is built to be scalable and can handle the load of a single site to a city wide area.

The entire stack is built on top of docker containers and is available in cpu only and gpu supported runtimes. Tensorflow, Keras and OpenCV are used amongst other libraries to deliver the service.

Overview

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].