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.
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:
-
Investigate performance or processing bottlenecks
-
Debug recognition flow, timing, or event generation
-
Adjust system behavior for non-standard environments, such as unusual camera setups or image quality constraints
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:
-
Review your previous changes manually.
-
Reapply only the settings that are still relevant.
-
Avoid copying an entire configuration file from an older version into a new installation.
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 | |
| SystemComplexity |
Processing complexity of the engine. If images are good quality, complexity has little effect. The difference is more noticeable with lower quality images.
|
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 |