Agent Properties

You can configure each Scout Agent manually (by editing the agent configuration files) or through the Scout web server. This section discusses manual configuration. Configuring the agent through the Scout web server is described in the web server section of the documentation.

The primary configuration file for the Scout Agent is located in the /etc/openalpr/alprd.conf file. For your reference, you can find a default configuration file containing every default setting for the agent in /usr/share/openalpr/config/alprd.defaults.conf. Any value you change in alprd.conf will take precedence over the default configuration.

The following configuration options can be modified if you edit the alprd.conf file. After adding or changing values in the configuration file, you must restart the Scout Agent process.

Image Storage Configuration

The commercial daemon maintains a maximum disk quota and automatically cleans up after itself. Images stored to the disk are removed on a FIFO-basis. These parameters control the location, image quality, and maximum size of local image storage.

store_plates = 1
store_plates_jpeg_quality = 85
store_plates_location = /var/lib/openalpr/plateimages/
store_plates_maxsize_mb = 8000

Upload Configuration

You may enable or disable uploading. When the agent is running, all plate results will first be placed onto a local beanstalkd queue. If the upload_data parameter is set to “1” for enabled, the agent will pull results from the queue and send them to the configured upload_address endpoint as an HTTP POST. The upload_threads parameter will specifies the number of simultaneous data uploads. Generally, the number of threads only needs to be increased if the web server is slow to respond or network latency is exceptionally high.

upload_data = 1
upload_address =
upload_threads = 2

Company ID (required)

The company_id value is sent in the JSON payload for all results. If you connect to a Scout web server, this value is configured for you automatically. However, if you configure the agent manually, the value is not used, but it is still required. Any alphanumeric string will suffice.

company_id = abc-123

Motion Detection

Motion detection improves efficiency and draws more plate reads from available processors. The ALPR processing only analyzes frames with movement, ignoring areas of the image that have not changed. This parameter controls whether motion detection is enabled (1) or disabled (0).

motion_detection = 1

Parallel Processing

The ALPR processing occurs in parallel; each thread consumes an entire CPU core. Allocating more CPUs for ALPR processing will linearly increase the number of plate reads per second. If you wish to maximize the ALPR processing on your hardware, this number should map the number of CPU cores available on the system.

analysis_threads = 2

Back-Buffer Processing

With motion detection enabled, you are able to buffer moving images and analyze them as CPU becomes available. For example, if a car moves past the camera over 10 frames but the CPU can only analyze 3 of those frames in that period, the buffer allows you to analyze all 10 frames. When activity ceases, the ALPR process drains the buffer, looking for license plates during the period of movement. Increasing the buffer_size increases the duration of this period but will also consume more memory. The camera_buffer_size unit is the number of image frames.

camera_buffer_size = 60

Plate Grouping

The agent groups similar plate numbers together and sends a JSON post containing the UUIDs of every plate image in the group. These configuration files control the behavior of the plate grouping algorithm:

  • plate_groups_span_cameras – A single agent may have multiple cameras. Depending on how the cameras are positioned, they may view the same vehicles or different ones. If plate_groups_span_cameras is set to “enabled,” the grouping algorithm combines plate events that are seen by different cameras. Otherwise, they are never combined.

  • plate_groups_min_plates_to_group – A plate group must have at least this number of individual plate reads to form a group.

  • plate_groups_min_confidence – The plate read must have at least this confidence to be considered for grouping.

  • plate_groups_max_plates_to_group – At some point, if a plate is seen more than this number of times, it is wrapped into a group and sent even if the plate is still in the frame.

  • plate_groups_time_delta_ms – The plate group waits this long for another plate to be identified with a similar license plate. If a matching plate is seen, this timer is reset.

  • plate_groups_max_delay_to_send – Wait at least this long before sending a plate group event. This function is primarily intended to ensure that any back-log of processing is complete before the group event is finished. Depending on the value for camera_buffer_size, you may want to increase or decrease this value.

plate_groups_enabled = 1
plate_groups_span_cameras = 0
plate_groups_time_delta_ms = 4500
plate_groups_min_plates_to_group = 2
plate_groups_min_confidence = 80.0
plate_groups_max_plates_to_group = 500
plate_groups_max_delay_to_send = 7500

Image Retrieval

The agent may also host a local web server for retrieving images via HTTP GET requests. This web server is turned off, but you may enable it by changing the web_server_enabled parameter to 1.

web_server_enabled = 0
web_server_port = 8355

Vehicle Make/Model Classification

Scout automatically classifies vehicle make/model, color, and body type for each license plate group it detects. If you are not using or do not need this feature, you can disable it to save CPU processing time.

classify_vehicles = 1

Last updated