92. Denoiser configuration YAML file
There are four main components in the Denoiser configuration YAML file:
logger_configobject_list_configdenoiser_configobjects_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
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
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
Manual intervals example
object_list_config:
split_config:
intervals_split_mode: 'manual'
manual_intervals: [ [ 0, 100 ], [ 100, 200 ] ]
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 ]
]