-
Notifications
You must be signed in to change notification settings - Fork 44
Bootstrapping
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.
- Motion compensation
- Visualizations and pipeline interconnection
- [OPTIONAL] Median filtering
- [OPTIONAL] Adaptive thresholding
- [OPTIONAL] Save events frames on disk
- Fronto planar bootstrapping
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) |
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
.
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 |
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 |
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.
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 |