Skip to main content

Plate Recognizer Stream

Stream is a highly-accurate ALPR software that processes live camera or video feeds quickly & efficiently. Stream runs on-premise on a Windows, Linux, Mac or Jetson device.

note

1) A Stream license is tied to the device specifications. If you change some hardware it will stop working.

  • We recommend that you uninstall Stream before you make any hardware changes.
  • In situations where you changed the hardware, please Contact Us to let us know. Please include the Stream License and also a screenshot of the error message.

2) Making any edits to the config.ini would require you to restart Stream

Install#

1) Install Docker on your machine. See the system requirements.

2) Install Stream, there are 2 options:

  1. Using the PR Installer (Intel x86 only). This is the preferred path if you are not as conversant with Docker.
  2. Using the Manual steps. This is the preferred path if you are conversant with Docker.
  • Use this method if your device is Raspberry Pi or a NVidia Jetson.
tip

We recommend using the Plate Recognizer Installer.

We have created a special version of our Snapshot SDK for Thailand (understands Thai characters), Germany and Austria (identifies umlauts, space gaps), and specific hardware devices. These require Manual Installation Steps. Please see our list of Docker Images.

Upgrade#

To update to a newer version of Stream, just run the following command then restart the container:

docker container stop streamdocker pull platerecognizer/alpr-stream:latest

Before Run#

  • Stream uses a single working directory at runtime that should not be ephemeral, it will contains extra configuration files and the processing outputs. It's mostly refered to as the Stream folder
  • The directory is specified as a volume mapped to /user-data and should be writeable. On your local system, specify a bind mount to make it easy to edit the configuration files.
  • The directory structure of the Stream folder will be generated the first time you run Stream, The main configuration file(config.ini) is also created at this time.

Run#

After editing config.ini, you can run Stream.

tip

The default install will try to process a stream from the following url rtsp://192.168.0.108:8080/video/h264 which might not be existing on your enviroment so you need to edit the config.ini to update the RTSP url or process a video file. Check how to update the configurations.

Starting Stream#

If you are using Linux (e.g. Ubuntu), run in the terminal:

docker run --restart="unless-stopped" -t --name stream \  -v /home/kyt/documents/stream:/user-data --user `id -u`:`id -g` \  -e LICENSE_KEY=XXXXX -e TOKEN=YYYYY platerecognizer/alpr-stream

If you are using Linux on Windows, run in CMD:

docker run --restart="unless-stopped" -t --name stream -v c:\users\kyt\documents\stream:/user-data -e LICENSE_KEY=XXXXX -e TOKEN=YYYYY platerecognizer/alpr-stream

If you are using Stream for Thai vehicles then you have to use a different image tag:

docker run --restart="unless-stopped" -t --name stream -v c:\users\kyt\documents\stream:/user-data -e LICENSE_KEY=XXXXX -e TOKEN=YYYYY platerecognizer/alpr-stream:thailand

If you are using a Jetson device, make sure to include --runtime nvidia and --group-add video. This image is built for Jetpack 4.6 using it with another version may trigger errors. Need help? See our Jetson guide.

docker run --restart="unless-stopped" --runtime nvidia -t --name stream \  -v /home/kyt/documents/stream:/user-data --privileged --group-add video \  --user `id -u`:`id -g` -e LICENSE_KEY=XXXXX -e TOKEN=YYYYY platerecognizer/alpr-stream:jetson
danger

For the commands above, make sure to:

  1. Change XXXXX to the License Key that we gave you.
  2. Change YYYYY to your Plate Recognizer Token.
  3. Update folder directory.
info

In the above commands, we included --restart="unless-stopped" so Stream restarts automatically (upon system reboot or restart of Docker), unless you manually stop it by running docker stop <container-name-or-id>. This works great when combined with the -d option so that Stream runs in the background.

Expected Output#

When you run the command, you should get an output similar to this:

INFO:root:Plate Recognizer Stream v1.27.0INFO:root:Loading detection zones.INFO:root:Expires on 2022-01-07T06:55:00Z.INFO:root:This license supports up to 20 camera(s).INFO:camera-1:2021-09-02T18:10:07+00:00: Starting Camera OneINFO:camera-1:2021-09-02T18:10:13+00:00: Model Optimization (can take up to 3 minutes)...INFO:camera-1:2021-09-02T18:10:13+00:00: Health Score: 100%

When Stream runs, You will see:

  • Images in camera-1_screenshots
  • By default, the prediction results are saved in a CSV file in your Stream folder. You may use other formats.
  • The FPS refers to the frames per second that your machine is processing the video or camera feed. Example: INFO:camera-1:2021-08-23: Health Score: 100%
  • There’s no need to worry if Stream is showing 4-6 FPS for situations where vehicles are driving fairly slow, such as 20-35 mph.

Uninstall, Move#

To uninstall Stream, just remove the image with the following Docker command:

docker image rm platerecognizer/alpr-stream
note

The license is still tied to the original device. Please contact us to remove the fingerprint after you uninstall Stream.

System Requirements#

Stream runs on-premise on a Windows, Linux, Mac or Jetson device. The specifics of the machine depends on the number of cameras you need to process.

  • Check the recommended hardware for Stream.
  • Use an OS that supports Docker. See the installation guide for how to install on Windows, Mac or Linux.
    • If your system does not meet the requirements to run Docker Desktop, you can install Docker Toolbox.
  • Have an Intel CPU 3rd gen or higher (must support AVX instructions).
  • Use a recent Nvidia GPU with a minimum compute capability of 6.1 and can support minumum Cuda version of 9.0. Follow the above instruction on Docker installation and Nvidia-docker.
  • If you are using VMware, you should disable EVC.
    tip

    If you are behind a firewall you might also need to whitelist these IP addresses