Get high-accuracy, developer-friendly automatic license plate recognition (ALPR) or automatic number plate recognition (ANPR) on Kubernetes!
Our machine-learning software:
- Works on dark, low-res, blurry images and tough angles, all vehicle types, etc. See our full ALPR results.
- Works on Video URLs such are RTSP or Video Files
- Decodes license 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 all 50 USA States, India, Brazil and 90+ countries worldwide.
Get license plate reader deployed on Kubernetes using Helm Charts in under 60 minutes:
- Access a simple REST API for easy integration in 8+ programming languages.
- Returns results via JSON Response or Webhooks.
- Has fast inference speed up to 21 ms.
- Runs on-premise on Linux, Windows, Mac, Jetson , Kubernetes, Raspberry Pi, Zynq, 96Boards, LattePanda and more.
ALPR, ANPR software on Kubernetes is ideal for parking, toll, police surveillance, community security, and other use cases.
Our license plate recognition (LPR) software can also forward results to our full ALPR Dashboard and Parking Management software solution, ParkPow.
Sign up for a Free Trial now (no credit card required) or learn more at https://platerecognizer.com.
Instructions to install Plate Recognizer Snapshot or Stream SDK on Kubernetes cluster. Requirements:
- Setup your Kubernetes cluster. For example, https://kubernetes.io/docs/tasks/tools/install-minikube/
- If using Minikube, make sure to enable the following addons
dashboard ingress helm-tiller
- If using Minikube, make sure to enable the following addons
- Get helm from https://github.com/helm/helm/releases
- Clone this repository
git clone https://github.com/parkpow/helm-charts.git
andcd helm-charts
- Contact support to enable Kubernetes for your account. License without Kubernetes enabled requires a persistent volume:
persistence.enabled=true
- Install chart
helm install platerec-snapshot snapshot/ --set TOKEN=<MY_TOKEN> --set LICENSE_KEY=<LICENSE_KEY>
- To upgrade the chart, do
helm upgrade platerec-snapshot snapshot/ --set TOKEN=<MY_TOKEN> --set LICENSE_KEY=<LICENSE_KEY>
- To delete the deployment, do
helm delete platerec-snapshot
- To use the gpu version instead of the cpu version, do
helm install platerec-snapshot snapshot/ --set TOKEN=<MY_TOKEN> --set LICENSE_KEY=<LICENSE_KEY> --set image.repository=platerecognizer/alpr-gpu
- To deploy to a different namespace other than
default
, include--namespace <namespace-name>
to the install/upgrade command as sohelm install platerec-snapshot snapshot/ --namespace <namespace-name> --set TOKEN=<MY_TOKEN> --set LICENSE_KEY=<LICENSE_KEY>
Configurations variables that can be changed (by adding them to the install command using --set
parameter)
Parameter | Description | Default | Options |
---|---|---|---|
TOKEN |
PlateRecognizer Token (required) | nil |
|
LICENSE_KEY |
PlateRecognizer Snapshot License (required) | nil |
|
replicaCount |
Number of Pods to run | 1 |
|
image.repository |
Plate Recognizer sdk | platerecognizer/alpr |
Any from Command Selector |
image.pullPolicy |
Image pull policy | Always |
[Always , IfNotPresent ] |
image.pullSecrets |
Specify docker-registry secret names as an array | [] |
True |
service.annotations |
Service annotations | {} |
|
service.type |
Kubernetes Service type | ClusterIP |
[LoadBalancer , ClusterIP ] |
service.port |
Service HTTP port | 8080 |
|
persistence.enabled |
Enable persistence using PVC | false |
|
persistence.existingClaim |
Enable persistence using an existing PVC | nil |
|
persistence.storageClass |
PVC Storage Class | nil (uses alpha storage class annotation) |
|
persistence.accessMode |
PVC Access Mode | ReadWriteOnce |
[ReadWriteMany , ReadWriteOnce ] |
persistence.size |
PVC Storage Request | 1Gi |
Install chart helm install platerec-stream stream/ --set TOKEN=<MY_TOKEN> --set LICENSE_KEY=<LICENSE_KEY>
- Update Stream config by editing
configmap.yaml
then restart services for changes to take effect by upgrading the chart.To use Stream configuration through Cloud, disable the configmap volume mount so configs get loaded from Cloud on container start.
- To upgrade the chart, do
helm upgrade platerec-stream stream/ --set TOKEN=<MY_TOKEN> --set LICENSE_KEY=<LICENSE_KEY>
- To delete the deployment, do
helm delete platerec-stream
- To deploy to a different namespace other than
default
, include--namespace <namespace-name>
to the install/upgrade command as sohelm install platerec-stream stream/ --namespace <namespace-name> --set TOKEN=<MY_TOKEN> --set LICENSE_KEY=<LICENSE_KEY>
Configurations variables that can be changed (by adding them to the install command using --set
parameter)
Parameter | Description | Default | Options |
---|---|---|---|
TOKEN |
PlateRecognizer Token (required) | nil |
|
LICENSE_KEY |
PlateRecognizer Stream License (required) | nil |
|
fileUpload |
Enable service for File Upload | false |
[true , false ] |
image.repository |
Plate Recognizer sdk | platerecognizer/alpr-stream |
Any from Command Selector |
image.pullPolicy |
Image pull policy | Always |
[Always , IfNotPresent ] |
image.pullSecrets |
Specify docker-registry secret names as an array | [] |
True |
service.annotations |
Service annotations | {} |
|
service.type |
Kubernetes Service type | ClusterIP |
[LoadBalancer , ClusterIP ] |
service.port |
Service HTTP port | 8080 |
|
persistence.existingClaim |
Enable persistence using an existing PVC | nil |
|
persistence.storageClass |
PVC Storage Class | nil (uses alpha storage class annotation) |
|
persistence.accessMode |
PVC Access Mode | ReadWriteOnce |
[ReadWriteMany , ReadWriteOnce ] |
persistence.size |
PVC Storage Request | 10Gi |
The service options only apply when
fileUpload=true
To access the instance when using a custom cluster in Minikube, run the following command:
- Simulate a load balancer
minikube tunnel
- Then run the commands shown after the
helm install
command. - You can also use this command to get the extenal_id
kubectl get --namespace default svc -w platerec-sdk-test-platerec-helm
- Finally call the SDK endpoint with
curl -F 'upload=@/path/to/car.jpg' http://<external_ip>:8080/alpr
- Another option of accessing minikube services
minikube service platerec-stream