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.
- 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.
- Making any edits to the config.ini would require you to restart Stream
System Requirements
Stream runs on-premise on Windows, Linux, Mac, or Jetson devices. The specifics of the machine depend on the number of cameras you need to process.
Check the recommended hardware for Stream using the tool below. You can assess the recommended hardware based on your configuration. Please note that the score values and memory specifications should be considered exclusively for Stream usage, and resource utilization by other software is not taken into account.
-
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 minimum Cuda version of 9.0. Follow the above instructions on Docker installation and Nvidia-docker.
-
If you are using VMware, you should disable EVC.
-
To optimize license plate reading accuracy, we recommend configuring your cameras according to the guidelines described in this article on best practices for Stream setup.
tipIf you are behind a firewall you might also need to whitelist these IP addresses
ARCHITECTURE. Stream runs on a variety of devices that support ARMv7, ARMv8 and x86 machines. Some examples below:
- ARMv7, ARMv8: Nvidia Jetson Nano, Nvidia Jetson Xavier NX, Raspberry Pi 4, Banana Pi M4, Orange Pi, RockPro64, Khadas VIM3, Odroid N2, Odroid XU4, ASUS Tinker Board S, ASUS Tinker Board.
- x86: LattePanda Alpha, LattePanda Delta, UDOO Bolt V8, UP Squared, ASUS PN40.
CPU. The main driver of CPU utilization is the amount of vehicles observed by Stream. No GPU is needed. Use the Hardware Recommendations for Stream tool to get a CPU passmark for a given number of cameras. To figure out the Passmark of an existing machine, run a Performance Test or just do an online search. Example: “intel i5-8250u cpu @ 1.60ghz passmark” returns Passmark 5942. See examples of machines with a certain Passmark score.
RAM. The main drivers of RAM utilization are the video size and Vehicle Make Model Color (and Orientation) identification.
- 1920×1080 video with MMC: RAM = 480M * cameras.
- 1920×1080 video without MMC: RAM = 530M * cameras.
- 1280 x 720 video with MMC: RAM = 530M * cameras
- 1280×720 video without MMC: RAM = 480M * cameras.
Hard Drive Space. Stream has a fairly small footprint. The main occupants of the hard drive will be the jpg images captured and CSV from the ALPR. If you have 0.5 GB of storage, that would be plenty.
eFPS. You can set the eFPS based on the speed of the vehicles to optimize system resources.
- For vehicles traveling <30 mph → set the eFPS to 4-5.
- For vehicles traveling 30-60 mph → set eFPS to 8-10.
- For vehicles traveling >60 mph → set eFPS to 12.
- To compute eFPS, divide the camera FPS by the Sample Rate that you set in Stream. So for example, if the camera has 30 FPS, then set
sample=6
to get an eFPS = 5.
EXAMPLES
- Nvidia Jetson Xavier AGX with GPU can support 3 Stream cameras with MMC.
- For 2 Stream cameras with MMC deployment for High Traffic, an Intel Core i3-4100M @ 2.5 GHz (Passmark 2440) with 1 GB RAM should be sufficient.
- For a 20 Stream camera deployment for highway monitoring with Vehicle MMC, you will want a machine with a 24000 Passmark Score, such as an Intel Core i7-11700K @ 3.60GHz.
- Raspberry Pi with 4 GB RAM can support 1 Stream camera with MMC at 1080p in High Traffic.
- Jetson Nano with 4 GB RAM can support 1 Stream camera. Nano with 8 GB can support 2-3 Stream cameras.
The examples above are based on cameras with 24 FPS and Stream container configured with sample=2
, resulting in Stream processing 12 frames per second as maximum.
Install
1) Install Docker on your machine. See the system requirements and recommended hardware.
- Docker Windows install instructions. Watch 5 minute video on installation steps. Are you stuck? Check our FAQ for help.
- Docker Linux install instructions
2) Install Stream, there are 2 options:
- Using the PR Installer (Intel x86 only). This is the preferred path if you are not as conversant with Docker.
- Using the Manual steps. This is the preferred path if you are conversant with Docker.
- Use this Manual steps if your device is Raspberry Pi or a NVidia Jetson.
We recommend using the Plate Recognizer Installer.
We have created a special version of our Snapshot SDK for Thailand, which understands Thai characters, and for Germany and Austria, which identifies umlauts and space gaps, as well as for specific hardware devices. These require Manual Installation Steps. Please see our list of Docker Images.
You can use the Automatic Stream installation Script. This script dynamically verifies the presence of Docker and installs it if it is not already available. Subsequently, the script orchestrates the configuration and launch of Stream.
Start Stream
Upgrade
To update to a newer version of Stream, just run the following commands:
docker container stop stream
docker pull platerecognizer/alpr-stream:latest
If the latest
image is pulled successfully, proceed to delete the current container (which is running the older image):
docker container rm stream
Now you have to execute the same command you used to run Stream the first time, adding the latest
image tag, format:
docker run --restart="unless-stopped" --name stream \
-v path/to/your/stream/working/directory:/user-data \
-e LICENSE_KEY=YOUR_LICENSE_KEY_HERE -e TOKEN=YOUR_TOKEN_HERE \
platerecognizer/alpr-stream
Ensure to provide the correct path/to/your/stream/working/directory
, it has to be the same one you have been using so far.
For more information about the run command, use our Stream docker command selector.
Once you execute the run command, your Stream container based on the latest
image should start using the same configuration you set to the "older" version.
You can also use this procedure to pick a specific version instead of the latest
by using git tags. For example, platerecognizer/alpr-stream:jetson-1.28.1-r32.6.1
.
Uninstall, Move
To uninstall Stream, just remove the image with the following Docker command:
docker image rm platerecognizer/alpr-stream
The license is still tied to the original device. Please contact us to remove the fingerprint after you uninstall Stream.