Skip to content

99. Denoiser configuration YAML file

The Denoiser configuration YAML file contains four main configuration blocks, each controlling a different aspect of the denoising pipeline:

Warning

Any configuration block not present in the YAML file will be considered disabled.

99.1 logger_config

The logger configuration defines settings for logging.

99.1.1 logger_config syntax

logger_config:
  name: "denoiser"
  level: "INFO" # level of logging, DEBUG, INFO, WARNING, ERROR, CRITICAL
  log_file_path: "path/to/denoiser logs/"  # directory path to save the logs (.../src/denoiser/logs/<Timestamp>.log)

99.1.2 logger_config parameters

Parameter Description
name Logger name
level Level of logs to be printed which can be one of the hierarchical levels: DEBUG, INFO, WARNING, ERROR, or CRITICAL
log_file_path Path of the output log file. The default is the running directory.

99.1.3 logger_config example

logger_config:
  name: "denoiser"
  level: "INFO" 
  log_file_path: "local/logs/denoiser" 

99.2 object_list_config

The object list configuration defines settings to manage the object list.

99.2.1 object_list_config syntax

object_list_config:
  roi_config:
    save_map_roi: True # add ROI coordinates to the object list proto
    roi_coordinates_padding: 50 # meters
    # Grid-based ROI Configuration
    roi_grid_size: 1500  # (R) The size of each standard ROI square in meters (e.g., 1500m x 1500m)
    roi_grid_overlap: 1000  # (S) The overlap between adjacent ROIs in meters to improve caching efficiency
  split_config:
    split_enable: False # split the input data by intervals
    intervals_split_mode: 'auto' # interval split mode:
    # {'manual' --> set intervals manually}  or
    # {'auto' (default) --> split intervals automatically with constant time intervals}
    # intervals_split_mode 'auto' params:
    split_time: 900.0 # seconds
    padding_time: 10.0 # seconds
    # intervals_split_mode 'manual' params:
    manual_intervals: [ [ 0, 100 ], [ 100, 200 ] ] # in seconds timestamp intervals to use

99.2.2 object_list_config parameters

Configuration Parameter Description
roi_config Defines Region of Interest (ROI) settings on the map to improve performance.
save_map_roi True/False to save the ROI coordinates to the object list.
roi_coordinates_padding Padding in meters to add to the ROI boundaries.
roi_grid_size Optional. Size of each standard ROI square in meters (e.g., 1500m x 1500m).
roi_grid_overlap Optional. Overlap in meters between adjacent ROI grid cells to improve caching efficiency.
split_config Defines settings for slitting the input data into time-based intervals.
split_enable True/False option to split the input object_list. If set to True, the input object_list will be split according to the intervals_split_mode.
intervals_split_mode Selects the split mode: auto splits into equal intervals using split_time and padding_time; manual uses intervals from manual_intervals. Effective only if split_enable is True.
split_time Duration in seconds of each split interval to use when intervals_split_mode is set to auto.
padding_time Additional time in seconds to add to each interval to create overlap between splits.
manual_intervals List of time intervals [startTime, endTime] in seconds, where each interval defines a split range, to be used when intervals_split_mode is set to manual.

99.2.3 object_list_config roi_config examples

Example 1: Simple ROI with padding

object_list_config:
  roi_config:
    save_map_roi: True  # Save the ROI to a file for faster map loading
    roi_coordinates_padding: 100  # Extend the ROI by 100 meters in all directions around the detected objects
This configuration generates an ROI that tightly bounds all objects in the object list, adding 100 meters of padding on each side. This can significantly reduce map loading time by focusing only on the relevant area.

Example 2: Grid-based/block ROI for large maps

object_list_config:
  roi_config:
    save_map_roi: True
    roi_coordinates_padding: 50
    roi_grid_size: 1500   # Each ROI block is 1500x1500 meters
    roi_grid_overlap: 1000  # Each block overlaps its neighbor by 1000 meters

This configuration generates an ROI in a standardized grid format, using blocks of 1500 X 1500 meters with a 1000-meter overlap between adjacent blocks. This is useful for large maps where the object list spans multiple blocks, allowing for efficient caching and processing of map data. If the data in the object list falls outside the defined blocks, it will fall back to generating a tight ROI, as shown in Example 1.

99.2.4 object_list_config split_config examples

Example 1: Padding time example

object_list_config:
  split_config:
    intervals_split_mode: 'auto'
    split_time: 600.0 # seconds
    padding_time: 10.0 # seconds

In this example, the times for each chunk of the object list will be: [objlist1: 0-610s, objlist2: 600-1210s, objlist3: 1200-1810s, …]. The padding_time adds overlap between consecutive chunks.

Example 2: Manual intervals example

object_list_config:
  split_config:
    intervals_split_mode: 'manual'
    manual_intervals: [ [ 0, 100 ], [ 100, 200 ] ]

This example will generate the object list slices [objlist1: 0-100s, objlist2: 100-200s] based on the specified manual intervals.

99.3 denoiser_config

The denoiser configuration contains settings to enable denoising, apply filters, recalculate kinematics, and generate reports.

99.3.1 denoiser_config parameters

Configuration Parameter Description
enable True/False to enable/disable the denoising feature.
report_path Absolute path to save the generated HTML denoiser report.
data_sample_
config
Configuration for resampling object data to align time steps and interpolate missing points.
enable True/False to enable or disable data resampling.
mode auto to align time steps to the median of the original data; manual to use step_time.
step_time Time step in milliseconds for manual mode. Ignored if mode is auto.
allowed_step_time_multiplication step_time must be a multiple of this value.
max_interpolation_points_allowed Maximum number of points that can be interpolated between two data points.
max_step_time_allowed_in_tl_data Maximum time in milliseconds allowed between two traffic light data points for interpolation.
filter_by_lifespan_
params
Filters out objects that appear for a short time in the object list.
enable True/False to enable/disable the filter.
min_life_span Minimum lifespan in seconds to keep an object. Objects with a lifespan less than this value are filtered out.
types List of objects types to apply the lifespan filter.
filter_by_type_
params
Keeps only objects of the listed object types, filtering out all others.
enable True/False to enable/disable the filter.
types List of object type IDs to keep; all other types are filtered out.
filter_by_id_
params
Includes or excludes objects by their specific IDs.
enable True/False to enable/disable the filter.
mode exclude or include the IDs.
ids List of object IDs to include or exclude.
trailers_config Controls kinematic recalculation and denoising behavior for trailer objects.
recalculate_trailers_kinematics True/False to recalculate trailer positions and yaw using the tractor kinematic model.
denoise_apply_on_trailers True/False to apply position, velocity, and acceleration denoising to trailers.
update_kinematics_config Recalculates kinematic signals from position data, overriding input values.
update_velocities True/False to recalculate velocities from position samples.
update_accelerations True/False to recalculate accelerations from velocity samples.
update_jerks True/False to recalculate jerks from acceleration samples.
update_yaw True/False to recalculate yaw from velocity samples.
positions_filter_
params
Denoises object position signals.
enable True/False to enable/disable the filter.
apply_on_ego True/False to apply position denoising to the Ego.
window_size Time window in seconds for mean filtering.
polyfit_degree Degree of the polynomial to use for fitting.
outliers_threshold Multiplier of the position signal's standard deviation to use for outlier detection.
velocities_filter_
params
Denoises object velocity signals.
enable True/False to enable/disable the filter.
window_size Time window in seconds for mean filtering.
polyfit_degree Degree of the polynomial to use for fitting.
accelerations_filter_
params
Denoises object acceleration signals.
enable True/False to enable/disable the filter.
window_size Time window in seconds for mean filtering.
polyfit_degree Degree of the polynomial to use for fitting.
jerks_filter_params Denoises object jerk signals.
enable True/False to enable/disable the filter.
window_size Time window in seconds for mean filtering.
polyfit_degree Degree of the polynomial to use for fitting.
yaw_filter_params Denoises object yaw signal and stabilizes yaw at low speeds.
enable True/False to enable/disable the filter.
speed_for_yaw_stabilization Speed threshold in meters/seconds; yaw is stabilized when speed is below this value.
stationary_filter_params Detects stationary objects and filters, stabilizes, and marks them.
enable True/False to enable/disable the filter.
max_stationary_dist Maximum displacement in meters for an object to be considered stationary.
object_types_to_filter List of object type IDs to remove when stationary.
object_types_to_stabilize List of object type IDs whose properties are fixed to a single value when stationary.
mark_non_filtered_stationary True/False to mark stationary objects with the is_stationary field in the object list.
extrapolation_config Configuration block for extending stationary objects over time.
enabled True/False to extend the stationary object's presence over time.
restore_on_collision True/False to restore the original object if a collision with a non-stationary object is detected after extrapolation.
required_backward_dt Time in seconds to extend backward; .inf extends to the Ego start time.
required_forward_dt Time in seconds to extend forward; .inf extends to the Ego end time.
distant_filter_params Filters out objects beyond a maximum distance from the Ego, based on object type.
enable True/False to enable/disable the filter.
max_distance Mapping of object types (KIND_OBJECT, KIND_PERSON, KIND_CYCLIST, KIND_VEHICLE, KIND_TRUCK, KIND_TRAILER, KIND_SIGN) to the maximum distance threshold in meters. Objects of the listed type beyond this distance are filtered out.
objects_sizes_config Denoises and validates object dimensions; replaces or removes abnormal sizes.
enable True/False to enable/disable the filter.
confidence_th Confidence thresholds for object types (KIND_PERSON, KIND_CYCLIST, KIND_VEHICLE) in size denoising. Points ≥ threshold are valid; below are ignored. Unlisted types default to 0.0.
filter_abnormal_objects (Optional) Handles objects with out-of-range dimensions. True = filter out; False = replace with type defaults. Default: True.
min_range_datapoints Minimum distance in meters from the Ego to consider data points for object size denoising.
max_range_datapoints Maximum distance in meters from the Ego for data points for object size denoising. Use .inf for no limit.
KIND_VEHICLE Defines the car_dimension_limits ranges in meters: min_width, max_width, min_length, max_length, min_height, max_height.
KIND_TRUCK Defines the truck_dimension_limits ranges in meters: min_width, max_width, min_length, max_length, min_height, max_height.
KIND_PERSON Defines the pedestrian_dimension_limits ranges in meters: min_width, max_width, min_length, max_length, min_height, max_height.
KIND_CYCLIST Defines the cyclist_dimension_limits ranges in meters: min_width, max_width, min_length, max_length, min_height, max_height.
KIND_OBJECT Defines the ranges for any other object type in meters: min_width, max_width, min_length, max_length, min_height, max_height.
ego_size_config Sets dimensions for the Ego.
enable True/False to enable/disable overriding the Ego dimensions.
default_length Default length of the Ego in meters.
default_width Default width of the Ego in meters.
default_height Default height of the Ego in meters.
ego_sensor_offset Adjusts the Ego position from the sensor origin to the vehicle's reference center.
enable True/False to enable/disable the offset adjustment.
position_reference Reference point on the vehicle for offset calculations: front, back, or center.
longitudinal Offset along the longitudinal axis; positive = forward.
lateral Offset along the lateral axis; positive = left.
height Offset along the vertical axis; positive = up.
objects_type_params Controls denoising of object type classifications.
update_type_enable True/False to update each object's type to the most probable type.
treat_unknown_type_as Integer type ID to assign when an object's type cannot be determined (KIND_OBJECT=0).
Remove this line to disable.
colliding_objects_config Filters out colliding objects, keeping only one per collision.
enable True/False to enable/disable the filter.
search_radius Radius in meters to search for collision candidates for each object.
grid_size Step size in meters for the discrete grid to be used by the collision search algorithm.
mode exclude or include the listed object_types when applying collision filtering.
object_types List of object type IDs to include or exclude from collision filtering.
traffic_lights_config Denoises traffic light state data.
enable True/False to enable/disable the filter.
window_size Time window in seconds for traffic light filtering.

99.3.2 denoiser_config example

denoiser_config:
  enable: True
​
  report_path: "../denoiser/denoiser_report.html"
​
  filter_by_lifespan_params:
    enable: False
    min_life_span: 2.0
    types: [ 0, 2, 3, 4, 5, 6, 10 ]
​
  filter_by_type_params:
    enable: False
    types: [ 0, 3, 2, 4, 5, 6, 10 ]
​
  filter_by_id_params:
    enable: False
    mode: exclude
    ids: [ ]
​
  data_sample_config:
    enable: True
    mode: auto
    step_time: 100
    allowed_step_time_multiplication: 10
    max_interpolation_points_allowed: 3
    max_step_time_allowed_in_tl_data: 1000
​
  trailers_config:
    recalculate_trailers_kinematics: True
    denoise_apply_on_trailers: False
​
  update_kinematics_config:
    update_velocities: True
    update_accelerations: True
    update_jerks: True
    update_yaw: True
​
  positions_filter_params:
    enable: True
    apply_on_ego: False
    window_size: 2.0
    polyfit_degree: 1
    outliers_threshold: 2.0
​
  velocities_filter_params:
    enable: True
    window_size: 2.0
    polyfit_degree: 1
​
  accelerations_filter_params:
    enable: True
    window_size: 2.0
    polyfit_degree: 1
​
  jerks_filter_params:
    enable: True
    window_size: 2.0
    polyfit_degree: 1
​
  yaw_filter_params:
    enable: True
    speed_for_yaw_stabilization: 1.0
​
  utility_filter_params:
    enable: True
    algo_type: "max_likelihood"
    algo_params:
      close_range_distance: 100
​
  stationary_filter_params:
    enable: True
    max_stationary_dist: 3.0
    object_types_to_filter: [ 4, 5, 6 ]
    object_types_to_stabilize: [ ]
    mark_non_filtered_stationary: True
    extrapolation_config:
      enabled: False
      restore_on_collision: True
      required_backward_dt: .inf
      required_forward_dt: .inf
​
  distant_filter_params:
    enable: True
    max_distance:
      KIND_OBJECT: 50.0
      KIND_PERSON: 50.0
      KIND_CYCLIST: 50.0
      KIND_VEHICLE: 70.0
      KIND_TRUCK: 70.0
      KIND_TRAILER: 70.0
      KIND_SIGN: 50.0
​
  objects_sizes_config:
    enable: True
​
    filter_abnormal_objects: True
​
    min_range_datapoints: 0.0
    max_range_datapoints: 100.0
​
    confidence_th:
      KIND_PERSON: 0.5
      KIND_CYCLIST: 0.5
      KIND_VEHICLE: 0.6
​
    KIND_VEHICLE:
      min_width: 1.5
      max_width: 2.5
      min_length: 3.5
      max_length: 5.5
      min_height: 1.2
      max_height: 1.8
      default_length: 3.5
      default_width: 1.8
      default_height: 1.5
​
    KIND_TRUCK:
      min_width: 2.5
      max_width: 3.5
      min_length: 5.5
      max_length: 20.0
      min_height: 2.2
      max_height: 5.0
      default_length: 5.5
      default_width: 2.5
      default_height: 2.5
​
    KIND_PERSON:
      min_width: 0.1
      max_width: 2.5
      min_length: 0.1
      max_length: 1.5
      min_height: 0.2
      max_height: 4
      default_length: 0.5
      default_width: 0.5
      default_height: 1.5
​
    KIND_CYCLIST:
      min_width: 0.1
      max_width: 2.5
      min_length: 0.5
      max_length: 5.0
      min_height: 0.2
      max_height: 4
      default_length: 2.0
      default_width: 0.5
      default_height: 1.8
​
    KIND_OBJECT:
      min_width: 0.1
      max_width: 20.0
      min_length: 0.1
      max_length: 50.0
      min_height: 0.1
      max_height: 20.0
      default_length: 1.5
      default_width: 1.5
      default_height: 1.5
​
  ego_size_config:
    enable: False
    default_length: 3.5
    default_width: 1.8
    default_height: 1.5
​
  ego_sensor_offset:
    enable: False
    position_reference: center
    longitudinal: 0.0
    lateral: 0.0
    height: 0.0
​
  objects_type_params:
    update_type_enable: True
    treat_unknown_type_as: 4
​
  colliding_objects_config:
    enable: False
    search_radius: 15
    grid_size: 5
    mode: 'exclude'
    object_types: [ 2, 3, 10]
​
  traffic_lights_config:
    enable: True
    window_size: 1.0
​
  custom_data_filters:
    enable: True
    custom_filters:
      - key: "object_type"
        algo_type: "max_likelihood"
        algo_params:
          close_range_distance: 100

99.4 objects_tracker_config

The objects tracker configuration enables object tracking and links objects with matching trajectories to a single object.

99.4.1 objects_tracker_config syntax

objects_tracker_config:
  extrapolation_time: 1000  # time in milliseconds to extrapolate the object position
  max_distance: 2  # max distance error between objects to be considered as the same object. units in meter
  objects_matching_score_th: 0.4 # score threshold to consider two objects as the same object, range [0, 1]

  # mapping between object kinds to the kinds that can match with them
  matching_kind_map: [
    # KIND_OBJECT=0 (unknown object to any other unknown object)
    [ 0 ],
    # Pedestrian
    [ 2 ],
    # 2 Wheels - KIND_CYCLIST/MOTORCYCLE=3/12 (bicycle, motorcycle)
    [ 3, 12 ],
    # 4 Wheels - KIND_VEHICLE/TRUCK/TRAILER/EMERGENCY_VEHICLE/SCHOOL_BUS=4/5/6/9/11 (car, truck, trailer, emergency vehicle, school bus)
    [ 4, 5, 6, 9, 11 ],
    # signs
    [ 10 ]
  ]

99.4.2 objects_tracker_config parameters

Configuration Parameter Description
objects_tracker_config Configuration for tracking objects.
extrapolation_time Time in milliseconds to extrapolate the object's position.
max_distance Maximum distance (meters) between objects to be considered the same.
objects_matching_score_th Score threshold (0–1) to consider two objects as a match. Objects with a matching score below this value are not linked.
matching_kind_map Mapping that defines which object kinds are allowed to match with each other during tracking.
matching_kind_map[0] Unknown objects → can match with [0] (unknown only)
matching_kind_map[1] Pedestrians → can match with [2]
matching_kind_map[2] Two-wheel objects → can match with [3, 12] (bicycle, motorcycle)
matching_kind_map[3] Four-wheel objects → can match with [4, 5, 6, 9, 11] (car, truck, etc.)
matching_kind_map[4] Signs → can match with [10]

99.4.3 objects_tracker_config example

objects_tracker_config:
  extrapolation_time: 1000
  max_distance: 2
  objects_matching_score_th: 0.4

  matching_kind_map: [
    [ 0 ],
    [ 2 ],
    [ 3 ],
    [ 4, 5, 6 ],
    [ 10 ]
  ]