Skip to content

Latest commit

 

History

History
106 lines (81 loc) · 11.3 KB

README.md

File metadata and controls

106 lines (81 loc) · 11.3 KB

Automatic License Plate Recognition (ALPR, ANPR) on Kubernetes

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:

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.

Plate-Recognizer-ALPR-ANPR-Github-Kubernetes

Installation

Instructions to install Plate Recognizer Snapshot or Stream SDK on Kubernetes cluster. Requirements:

  1. 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
  2. Get helm from https://github.com/helm/helm/releases
  3. Clone this repository git clone https://github.com/parkpow/helm-charts.git and cd helm-charts

Snapshot SDK

  1. Contact support to enable Kubernetes for your account. License without Kubernetes enabled requires a persistent volume: persistence.enabled=true
  2. Install chart helm install platerec-snapshot snapshot/ --set TOKEN=<MY_TOKEN> --set LICENSE_KEY=<LICENSE_KEY>

Configuration

  • 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 so helm 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

Stream SDK

Install chart helm install platerec-stream stream/ --set TOKEN=<MY_TOKEN> --set LICENSE_KEY=<LICENSE_KEY>

Configuration

  • 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 so helm 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

Minikube Notes

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