Advanced LPR server configuration

The LPR server includes a set of advanced configuration options that extend beyond what is available in the XProtect Management Client or XProtect Smart Client. These options provide deeper control over how the LPR engine behaves, but they are intentionally not exposed in the user interface.

Advanced configuration is intended for specialized scenarios where the system's default behavior does not cover your organization's need.

The configuration settings are maintained inside a configuration file in the LPR server's installation directory called VideoOS.LPR.Server.exe.config. It uses an XML-like structure that you can open and edit in a text editor.

You can find the file where you have installed XProtect LPR. The default installation path is C:\Program files\Milestone\XProtect LPR Server.

The XProtect user interface doesn't expose or validate the changes to any of the settings. Changing them can prevent the LPR server from starting, cause runtime errors, or cause recognition to fail. Only trained or certified personnel with a clear understanding of the LPR server's architecture should modify the configuration file’s settings.

When advanced configuration is appropriate

Advanced configuration settings are not designed for everyday tuning. In most deployments, the default configuration provides the best balance between performance, accuracy, and stability.

You typically use advanced configuration only when you need to:

Using these settings without a clear goal can reduce system reliability or recognition quality.

Impact of upgrades and reinstallation

Advanced configuration changes are not preserved automatically. During upgrades or reinstallation, the configuration file is overwritten. This behavior is intentional and helps ensure compatibility between software versions. Configuration parameters can change between releases, and older values may no longer be valid.

After an upgrade:

This approach reduces the risk of startup failures caused by outdated or unsupported parameters. After an upgrade, reapply your changes by hand and only the ones that still apply.

Examples of configuration behavior you can update

Behavior Description Default value
IgnoreRedetectionWindow Time window during which the same plate won't generate a new event. If the plate is continuously detected, only one event is generated. 5 seconds
ProcessingThreadsPerCore

Specifies the analysis threads used per camera.

  • Auto: threads = max between 4 and 2 × CPU cores / cameras
  • Manual: integer value (for example, 4) indicating the number of threads per camera
Auto
SystemComplexity

Processing complexity of the engine. If images are good quality, complexity has little effect. The difference is more noticeable with lower quality images.

  • Low complexity: less processing, faster
  • High complexity: more processing, slower — relevant for low quality images
  • Range: integer [0,10].
5
LicensePlateCacheSize Number of recognitions to hold in memory while waiting to be fetched by the event server. 1 second
LicensePlateApiReturnCount Maximum number of plates to return in each call to the event server. 100 plates
LogLicensePlateRecognitions Enables logging detected license plates to LPR log. Must be 0 (false )or 1 (true). 0