Skip to content

[feat][refact] Keypoints refactoring

Julia Sanchez requested to merge Refact/Keypoints into master
  • Current frame keypoints were downsampled unvalidating nearest neighbors of extrated keypoints.

  • This lead to a non uniform keypoints extraction and to 2 problematic cases depending on the extraction thresholds:

    • to too many points extracted (too long computation time)
    • to few points extracted
  • A voxel grid + a threshold number (N) are added to downsample the keypoints : the points are sorted with a value estimating their confidence as keypoints, then, we loop on the voxels and extract the most confident point in each voxel to reach the N points.

  • For dense sensors (>32 channels) the keypoints extraction step can be long, so an optional predownsampling is added. This downsampling is random.

  • The edges, planes and blobs can be enabled/disabled at each time, the computed map is kept between off/on.

  • The keypoints extraction has been refactored and cleaned

    • Invalidity criterion have been changed
    • Depth gap computation has been improved
    • Saliency criterion has been removed
    • A space gap criterion has been added. A space gap can be searched in first and last points of lines
    • Angles and intensity are locally refined to select one point per discontinuity per line
    • The line fitting is refactored to be accelerated (PCA -> RANSAC)

Before : maps

After : maps

Polls are thinner, cables are better detected, intensity is now decorrelated from geometry and less random edge points are extracted. This MR solves some cases and keeps good result on classic datasets. Computation time remains similar.

@nick.laurenson PTAL

Edited by Julia Sanchez

Merge request reports