Plugin to interface OpenALPR commercial software with Milestone XProtect
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
Solution build referenced files

OpenALPR Milestone Plugin

  • The OpenALPR Milestone Plug-in integrates OpenALPR data with Milestone XProtect.

How it works

  • OpenALPR software reads video directly from a camera stream, analyzes the video, produces JSON data containing plate information, and posts this to a local beanstalkd queue
  • The Milestone Plug-in contains two components:
    1. A Windows service that runs in the background. It constantly reads from the queue and posts the data to Milestone XProtect
    2. A Milestone plug-in that is located inside XProtect that is used to display the results to users
  • The Windows service sends two types of data to Milestone XProtect
    1. All recognized license plates are saved as Milestone Bookmarks
    2. Any plates that match an alert list (managed as a CSV spreadsheet) are saved as a Milestone Alarm.

The OpenALPR software must be licensed with a commercial key, the Milestone XProtect Plugin simply requires a Milestone license to operate.

Minimum Requirements

OpenALPR software requires sufficient CPU to recognize license plates. We recommend a desktop/server class Intel PC with at least 1 CPU core per LPR camera stream being actively analyzed.

In order to use the bookmarks feature (to search plates within Milestone) you must have at least Milestone XProtect Professional+

Install Instructions

Basic Setup

  • Download and install the OpenALPR On-Premises Agent on the same machine that is running Milestone XProtect
  • Setup the OpenALPR software to use the data destination "Local Queue"
  • Add your LPR camera to OpenALPR
    • Once this is complete, you should see the license plates being read in the user interface as vehicles drive past the camera
  • Install the OpenALPR Milestone Plugin using the installer
  • Open Milestone XProtect and click on the "OpenALPR" tab
  • Click on the Camera Mapping, and ensure that the OpenALPR camera is properly associated with the milestone camera. If not, you can click the drop-down to manually associate the two cameras
  • As new plates arrive you will be able to search them in Milestone.

Alarm Configuration

The OpenALPR Milestone plug-in can also create Milestone alarms based on a list of plates that you provide. This is managed as a simple spreadsheet.

  • On the "OpenALPR" tab of Milestone XProtect, click "Edit Alarms"
  • The file will open as a spreadsheet using Excel or a text editor
  • Add all the plate numbers that you wish to alert. Click Save (overwriting the file), and make sure you keep the "CSV" format.
  • The OpenALPR plug-in will automatically detect the changes to the CSV file and begin alerting on the plates in the list.

Developer Instructions

  • Download Visual Studio 2017
  • Install .NET Framework 4.6.2
  • Install NSIS (for packaging the installer)
  • Open the project, and switch to "Release" and "x64" mode (Build -> Configuration Manager)
  • If you wish for every build to automatically copy the binaries to your local Milestone system:
    • Copy the "Solution build referenced files\BuildRequirements*.bat to your build folder"

Installer Packaging

This plug-in uses the NSIS installer to create a Windows installer package. The nsi file is included in this repo in the installer directory.

Contribution guidelines

You must accept the Contributor License Agreement (CLA) so that we can accept your submissions to the project.

Who do I talk to?

Please direct any questions to