Skip to content

Registration from features

Federica Di Lauro edited this page Nov 2, 2023 · 2 revisions

RANSAC, TEASER++, and Fast Global Registration are used to register point clouds based on features extracted from networks.

To use the algorithms, you can save the extracted features in .npz or .csv files.

Feature Saving

For each point cloud, save the extracted features in a .npz file:

np.savez_compressed("path/file.npz", xyz_down=xyz_down, features=features.detach().cpu().numpy()) where xyz_down is the array of points with shape (n, 3), and features is the array of extracted features with shape (n, n_dim).

For each problem, save the .npz files of the source point clouds as id.npz, and the .npz files of the target point clouds as target.npz, where id is the problem's ID, and target is the filename of the target point cloud. Example features file

Algorithms

In the registration_from_extracted_features folder, you will find the scripts for performing registration using RANSAC, Fast Global Registration, or TEASER.

To use the script, you need to have Open3D installed, and for TEASER, TEASER needs to be installed. A Docker image with the pre-installed requirements is available at: https://hub.docker.com/repository/docker/fdila/registration_from_features

In the file run_registration_global.py, specify:

The distance metric to use for finding correspondences The flag indicating whether to perform mutual filtering for correspondences (i.e., to verify that the source -> target correspondence is also the target -> source correspondence). For each algorithm, there is a JSON configuration file with various parameters.