Skip to content

92. Denoiser configuration YAML file

There are four main components in the Denoiser configuration YAML file:

  • logger_config
  • object_list_config
  • denoiser_config
  • objects_tracker_config

Any section that is not present in the configuration file will be considered disabled.

92.1 logger_config

This configuration controls the logging properties.

logger_config:
  name: "object list refiner"
  level: "INFO" # level of logging, DEBUG, INFO, WARNING, ERROR, CRITICAL
  log_file_path: "/tmp/denoiser_config.log"
Parameters Description
name Logger name
level Level of logs to be printed which can be one of the hierarchical levels DBUG, INFO, WARNING, ERROR, or CRITICAL
log_file_path Path of the output log file. The default is the running directory.

92.2 object_list_config

This configuration defines features to manipulate an object list. It contains two subsections: roi_config and split_config. * roi_config is used to define the Region of Interest (ROI) on the map to improve performance. * split_config is used to split the input object list into smaller chunks based on time intervals.

Subsection Parameters Description
roi_config
save_map_roi True/False option that determines whether to save the effective ROI of the input object list. If True, the ROI is saved as a message inside the object list
roi_coordinates_padding Integer to specify the number of meters to extend the ROI as padding.
roi_grid_size Optional. The size of each standard ROI square in meters (e.g., 1500m x 1500m).
roi_grid_overlap Optional. The overlap between adjacent ROIs in meters to improve caching efficiency.
split_config
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 Auto/Manual split methods. Select auto to automatically split the entire object list into equal chunks based on the split_time and padding_time parameters. Select manual to split the input object list into specific slices defined by the manual_intervals. This is only effective if split_enable: True.
split_time The duration, in seconds, of each split chunk from the object list. This is effective only when intervals_split_mode: auto.
padding_time The duration, in seconds, to add to the length of each split chunk from the object_list to enable overlap between the chunks.
manual_intervals A list of intervals, where each interval specifies a slice from the input object_list. The interval format is [startTime, endTime] in seconds.

92.2.1 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.

92.2.2 split_config examples

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.

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.

92.3 denoiser_config

This configuration enables features to denoise the data within the object list.

Feature Parameter Description
Denoising feature enable True/False to enable/disable the denoising feature.
report_path: "<path/name.html>" Enable the generation of an HTML denoiser report to the specified path.
Filter by lifespan filter_by_lifespan_params Filter out objects that appear for a short time in the object list.
enable True/False to enable/disable the lifespan filter.
min_life_span Minimum lifespan in seconds to keep an object. Objects with a lifespan less than this value will be filtered out.
types List of object types to apply the lifespan filter.
Filter by type filter_by_type_params Filter to include objects with a specific object type.
enable True/False to enable/disable the filter.
types List of object types to be kept (others will be filtered out).
Filter by ID filter_by_id_params Filter to include/exclude objects with specific object IDs.
enable True/False to enable/disable the filter.
mode exclude/include - to filter out/in the mentioned object IDs listed in ids.
ids List of IDs to be filtered out (mode: exclude) or kept (mode: include).
Data sampling data_sample_config Enable resampling to fix holes in data, align timestamps, or resample to new time steps.
enable True/False to enable/disable resampling.
mode Auto/Manual. Auto aligns time steps as the median of time steps in the original data. Manual aligns time steps as the value of step_time.
step_time Time in milliseconds between each frame to use for resampling in manual mode.
allowed_step_time_multiplication Step time must be a multiple of this value.
max_interpolation_points_allowed Maximum number of points to interpolate between two data points.
max_step_time_allowed_in_tl_data Maximum time (ms) allowed between two traffic light data points for interpolation.
Kinematics update update_kinematics_config Recalculate object's kinematics signals based on their positions and override input values.
update_velocities True/False to recalculate velocities by position samples or use input velocities.
update_accelerations True/False to recalculate accelerations by velocity samples or use input accelerations.
update_yaw True/False to recalculate yaw by velocity samples or use input yaw.
update_type_enable True/False to denoise the object's type or use input type values.
Objects type Enables control of denoising the object's type.
update_type_enable True/False. When set to True, the object type is denoised. When set to False, the input type values are used.
treat_unknown_type_as An integer that defines a specific object type. If the object type is unknown (i.e., KIND_OBJECT = 0) and cannot be determined based on the object's description, the object will be treated as the type specified by this integer.
description_to_kind_translation A table that maps an object_kind to a group of description strings. If an object's description matches any strings in an object_kind group, the object's kind will be overridden by the corresponding kind mapped in the table.
Positions filter positions_filter_params Denoise object's positions signal.
enable True/False to enable/disable the filter.
window_size Time in seconds for the window to use for filtering.
polyfit_degree The polynomial degree to fit the window filtering.
outliers_threshold Multiplier of the standard deviation to detect outliers.
Velocities filter velocities_filter_params Denoise object's velocities signal.
enable True/False to enable/disable the filter.
window_size Time in seconds for the window to use for filtering.
polyfit_degree The polynomial degree to fit the window filtering.
Accelerations filter accelerations_filter_params Denoise object's accelerations signal.
enable True/False to enable/disable the filter.
window_size Time in seconds for the window to use for filtering.
polyfit_degree The polynomial degree to fit the window filtering.
Yaw filter yaw_filter_params Denoise object's yaw signal.
enable True/False to enable/disable the filter.
speed_for_yaw_stabilization Velocity threshold in m/s; yaw will be stabilized if speed is less than this value.
Stationary object filter stationary_filter_params Enable to handle stationary objects.
enable True/False to enable/disable the filter.
max_stationary_dist Threshold of distance in meters to indicate a stationary object.
object_types_to_filter List of object types to filter out when stationary.
object_types_to_stabilize List of object types to fix their properties to a single value when stationary.
mark_non_filtered_stationary True/False to enable/disable marking stationary objects in the object list.
Distant objects filter distant_filter_params Enable to filter out objects far from Ego, based on object kind.
enable True/False to enable/disable the filter.
max_distance List of mapping Object kind to the max distance threshold in meters to keep objects. Any object of the mention KIND that the absolute euclidean distance from the Ego is above this threshold, will be filtered out.
Object size filter objects_sizes_config Enable to Denoise and filter object's dimensions.
enable True/False to enable/disable the filter.
filter_abnormal_objects True/False to filter out objects with only abnormal sizes in the data, or fall back to default values.
car Dimensions define the normal size of car object (object type=4).
truck Dimensions define the normal size of truck and trailer objects (object types=5,6).
pedestrian Dimensions define the normal size of pedestrian object (object type=2).
cyclist Dimensions define the normal size of cyclist object (object type=3).
Ego size ego_size_config Enable to set the default dimensions of the Ego.
enable True/False to enable/disable setting the filter.
Traffic lights traffic_lights_config Denoise traffic lights data.
enable True/False to enable/disable the filter.
window_size Time in seconds for the window to use for filtering.
Custom data custom_data_filters A list of customized data, represented by pairs of (key,value) that allows denoising of any key using a specified algorithm.
enable True/False to enable/disable setting the filter.
custom_filters A list of filters per custom_data key, each started with -.
key String that represents the custom_data key to be filtered.
algo_type Algorithm type to apply on the custom_data key, which can be max_likelihood or linear_smooth.
algo_params The parameters of the specific algorithm type: For max_likelihood, the parameter is close_range_distance. For linear_smooth, the parameter is window_size.
Colliding objects colliding_objects_config Enable to filter out colliding objects and keep only one of them.
enable True/False to enable/disable the filter.
search_radius Radius in meters to search for potential candidates for collisions for each object, used for efficient search algorithm.
grid_size The strides for the search algorithm to locate objects on a discrete grid, used for efficient search algorithm.
mode Exclude/Include the specified object_types.
object_types List of objects types to exclude or include for applying this filter. This parameters corresponds to the mode value.

92.3.1 denoiser_config example

denoiser_config:
  enable: True

  report_path: "$FTX/logiq/src/denoiser/denoiser_report.html"

  filter_by_lifespan_params:
    enable: False
    # minimum lifespan in seconds to keep an object. objects with lifespan less than this value will be filtered out
    min_life_span: 2.0
    # List of objects types to apply the lifespan filter
    types: [ 0, 2, 3, 4, 5, 6, 10 ]

  filter_by_type_params:
    enable: False # if True, keep only following objects by type
    # List of types to be kept (the rest are filtered out) KIND_OBJECT = 0; KIND_PERSON = 2; KIND_BICYCLE = 3; KIND_CAR = 4; KIND_TRUCK = 5; KIND_TRAILER = 6; KIND_SIGN = 10
    # For example: types: [5, 6, 10] will keep only trucks, trailers and signs
    types: [ 0, 3, 2, 4, 5, 6, 10 ]

  filter_by_id_params:
    enable: False # if True, filter out following objects by ID
    mode: exclude # include or exclude the following ids
    # list of IDs to be either filtered out (mode: exclude) or kept (mode: include)
    # For example: mode: exclude , types: [100, 101, 102] will filter out objects with IDs 100, 101 and 102
    # For example: mode: include , types: [100, 101, 102] will keep only the objects with IDs 100, 101 and 102
    ids: [ ]

  data_sample_config:
    enable: True
    mode: auto # auto|manual. auto for align time steps as the median of time steps in the original data.
    # manual for align time steps as the value of step_time
    step_time: 100 # milliseconds, used in manual mode
    allowed_step_time_multiplication: 10 # step_time must be a multiplication of allowed_step_time_multiplication
    max_interpolation_points_allowed: 3 # maximum number of points to be interpolated between two points
    max_step_time_allowed_in_tl_data: 1000 # maximum time in milliseconds between 2 points allowed for interpolation of traffic lights data

  update_kinematics_config:
    update_velocities: True # recalculate velocities by position samples
    update_accelerations: True # recalculate accelerations by velocity samples
    update_yaw: True # recalculate yaw by velocity samples

  objects_type_params:
    # update object type to the most probable type
    update_type_enable: True
    # when type cannot be determined (KIND_OBJECT=0), treat it as this type, disable by remove this line
    treat_unknown_type_as: 4
    description_to_kind_translation:
      # object type to description mapping
      0: []
      2: []
      3: []
      4: []
      5: []
      6: []
      10: []

  positions_filter_params:
    enable: True
    window_size: 2.0 # time window in seconds to use for mean filtering
    polyfit_degree: 1 # degree of polynomial to use for fitting
    outliers_threshold: 2.0 # a multiplier of the positions signal's standard deviation to use for outlier detection

  velocities_filter_params:
    enable: True
    window_size: 2.0 # time window in seconds to use for mean filtering
    polyfit_degree: 1 # degree of polynomial to use for fitting

  accelerations_filter_params:
    enable: True
    window_size: 2.0 # time window in seconds to use for mean filtering
    polyfit_degree: 1 # degree of polynomial to use for fitting

  yaw_filter_params:
    enable: True
    window_size: 1.0 # time window in seconds to use for mean filtering
    speed_for_yaw_stabilization: 1.0 # meter/seconds, if speed is less than this value, yaw will be stabilized
    polyfit_degree: 1 # degree of polynomial to use for fitting

  stationary_filter_params:
    enable: True
    max_stationary_dist: 3.0 # meters
    # List of types to filter out if they are stationary
    # KIND_OBJECT = 0; KIND_PERSON = 2; KIND_BICYCLE = 3; KIND_CAR = 4; KIND_TRUCK = 5; KIND_TRAILER = 6; KIND_SIGN = 10
    # example: object_types: [4, 5, 6] will filter out all car/truck/trailer objects that are stationary
    object_types_to_filter: [ 4, 5, 6 ]
    object_types_to_stabilize: [ ]  # fix the stationary object properties to single value
    mark_non_filtered_stationary: True # mark stationary objects as stationary in the OL at field is_stationary

  distant_filter_params:
  enable: True
  max_distance:
    KIND_OBJECT: 150.0 # meters
    KIND_PERSON: 150.0 # meters
    KIND_CYCLIST: 150.0 # meters
    KIND_VEHICLE: 150.0 # meters
    KIND_TRUCK: 150.0 # meters
    KIND_TRAILER: 150.0 # meters
    KIND_SIGN: 150.0 # meters

  objects_sizes_config:
    enable: True

    # optional argument handling abnormal objects which one of the dimensions (width/height/length) is out of range
    # all over the object lifetime
    # if True, filter out these objects
    # if False, set this objects dimensions to default accordingly to the type (car/truck/pedestrian/cyclic)
    # default: True
    filter_abnormal_objects: True

    car: # car_dimension_limits:
      min_width: 1.5 # meters
      max_width: 2.5 # meters
      min_length: 3.5 # meters
      max_length: 5.5 # meters
      min_height: 1.2 # meters
      max_height: 1.8 # meters
      min_aspect_ratio: 1.2
      max_aspect_ratio: 3.0
      default_length: 3.5  # meters
      default_width: 1.8  # meters
      default_height: 1.5  # meters

    truck: # truck_dimension_limits:
      min_width: 2.5 # meters
      max_width: 3.5 # meters
      min_length: 5.5 # meters
      max_length: 20.0 # meters
      min_height: 2.2 # meters
      max_height: 5.0 # meters
      min_aspect_ratio: 1.2
      max_aspect_ratio: 3.0
      default_length: 5.5  # meters
      default_width: 2.5  # meters
      default_height: 2.5  # meters

    pedestrian: # pedestrian_dimension_limits:
      min_width: 0.1 # meters
      max_width: 2.5 # meters
      min_length: 0.1 # meters
      max_length: 1.5 # meters
      min_height: 0.2 # meters
      max_height: 4 # meters
      min_aspect_ratio: 0.01
      max_aspect_ratio: 30.0
      default_length: 0.5  # meters
      default_width: 0.5  # meters
      default_height: 1.5  # meters

    cyclist: # cyclist_dimension_limits
      min_width: 0.1 # meters
      max_width: 2.5 # meters
      min_length: 0.5 # meters
      max_length: 5.0 # meters
      min_height: 0.2 # meters
      max_height: 4 # meters
      min_aspect_ratio: 0.01
      max_aspect_ratio: 30.0
      default_length: 2.0  # meters
      default_width: 0.5  # meters
      default_height: 1.8  # meters

  ego_size_config: # Set ego dimensions
    enable: False
    #   Car
    default_length: 3.5  # meters
    default_width: 1.8  # meters
    default_height: 1.5  # meters

  custom_data_filters:
   enable: True # True to enable custom data filters
   custom_filters:
     - # the key in the custom data field to filter (custom_data.key)
       key: "object_type"
       # the algorithm to use for filtering. Options: "max_likelihood", "linear_smooth"
       algo_type: "max_likelihood"
       # the relevant parameters for the algorithm
       algo_params:
         close_range_distance: 100
     -
       key: "object_elevation"
       algo_type: "linear_smooth"
       algo_params:
         window_size: 1.5

  colliding_objects_config:
    enable: False
    search_radius: 15 # meters
    grid_size: 5 # meters
    mode: 'exclude' # 'exclude' or 'include' the following types
    # KIND_OBJECT = 0; KIND_PERSON = 2; KIND_BICYCLE = 3; KIND_CAR = 4; KIND_TRUCK = 5; KIND_TRAILER = 6; KIND_SIGN = 10
    object_types: [ 2, 3, 10]

  traffic_lights_config:
    enable: True
    window_size: 1.0 # time window in seconds to use for traffic lights filtering

92.4 objects_tracker_config

This configuration enables the feature that tracks objects and links different objects with matching trajectories to a single object.

Feature Parameter Description
objects_tracker_config Configuration for the object tracker.
extrapolation_time Time in milliseconds to extrapolate the object's position.
max_distance Maximum distance error, in meters, between objects to be considered as the same object.
matching_kind_map Mapping of object kinds to the kinds they can match with.

92.4.1 objects_tracker_config example

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

  # mapping between object kinds to the kinds that can match with them
  matching_kind_map: [
    # KIND_OBJECT=0 (to any other object)
    [ 0 ],
    # 0 Wheels - KIND_PERSON=2 (person to person)
    [ 2 ],
    # 2 Wheels - KIND_BICYCLE=3 (bicycle to bicycle)
    [ 3 ],
    # 4 Wheels - KIND_CAR/TRUCK/TRAILER=4/5/6 (car, truck, trailer to car, truck, trailer)
    [ 4, 5, 6 ],
    # signs
    [ 10 ]
  ]