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
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_ |
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_ |
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_ |
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_ |
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_ |
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_ |
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_ |
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 ]
]