Skip to content

Bootstrapping

Antonio Terpin edited this page May 27, 2021 · 1 revision

Bootstrapping parameters

This page describes in detail the purpose of the parameters that affect the bootstrapping module.

If you plan to modify or extend the bootstrapping module, consider having a look at the documentation.

Table of contents

  1. Motion compensation
  2. Visualizations and pipeline interconnection
  3. [OPTIONAL] Median filtering
  4. [OPTIONAL] Adaptive thresholding
  5. [OPTIONAL] Save events frames on disk
  6. Fronto planar bootstrapping

Motion compensation

These are the main and most important parameters for this module. Events are generated from the camera motion, and thus, simply aggregating the collected events on the same image would not produce, in general, a focused events frame.

The bootstrapper takes a set of events and produces a motion corrected events frame. To do so, it considers local_frame_size events at the beginning and at the end of the set of frame_size events to aggregate.

Parameter Description
frame_size number of events to aggregate in an events frame
local_frame_size size of the two batches of events used to compute the warp parameters

Then, an optimization algorithm is run on the produced local frames, to estimate the warp resulting from the motion of the camera related to the frame_size events to aggregate.

Parameter Description
unwarp_estimate_n_it maximum number of iterations to estimate homography
unwarp_estimate_eps homography estimation tolerance
unwarp_estimate_pyramid_lvls pyramid levels used to estimate homography

The estimated warp is then used to aggregate the whole set of events accounting for the motion distortion.

Parameter Description
min_step_size minimum number of new events before next events frame
events_scale_factor pixel intensity = sat(#events / events_scale_factor)

Visualizations and pipeline interconnection

Parameter Description
enable_visualizations whether to publish events frames and optical flow
motion_corrected_topic topic of the published events frames
optical_flow_topic topic under which the optical flow is published

Note that the parameter motion_corrected_topic can be used to provide the produced events frames as input to a visual odometry pipeline, for instance SVO.

Alternatively, you can simply extend the class EventsFramesBootstrapper. This is the approached used in FrontoPlanarBootstrapper.

[OPTIONAL] Median filtering

It is optionally possible to introduce a median filtering on the motion compensated events frames.

Parameter Description
median_filtering whether to perform median filtering
median_filter_size filter size

[OPTIONAL] Adaptive thresholding

It is optionally possible to introduce an adaptive thresholding on the motion compensated events frames.

Parameter Description
adaptive_thresholding whether to perform adaptive thresholding
activation_threshold_min minimum pixel intensity
activation_threshold_patch_size filter patch size

[OPTIONAL] Save events frames on disk

It is also possible to store the produced events frames on disk, to later processing and analysis.

For instance, you might want to test an events-frames-based visual odometry algorithm first offline in a repeatable setting.

Parameter Description
max_events_frames_saved_to_file amount of events frames stored on disk
events_frames_filename_format filename of the events frames stored

Remark that if max_events_frames_saved_to_file = 0, then no frames are stored.

Fronto-planar bootstrapping

If you are using the fronto-planar bootstrapping, you might want to tune also these parameters.

Parameter Description
plane_distance distance at which the events frame is reprojected
one_shot if true, publishes only a single map before turning idle
n_subscribers_to_wait wait some subscribers before to publish the maps

After the events frame has been reprojected, the map is further filtered using a radius filter.

Parameter Description
radius_search radius size of radius filter
min_num_neighbors minimum number of neighbors for radius filtering