FeatureBasedAlignment icon indicating copy to clipboard operation
FeatureBasedAlignment copied to clipboard

Registration for point clouds

Feature Based Alignment

Some programs to roughly align two point clouds representing the same underlying geometry. The goal is to accurately register two point clouds created from different image spectrums (e.g. visual to infrared), in different coordinate systems of different scales.

This depends on:

  • PCL (http://pointclouds.org/)
  • CMake and some c++ compiler Also used the pcl visualization library, which depends on some toolkit (I use QT4).

Current approach is:

  • Take two point clouds
  • Estimate normals for each point
  • Find FPFH Features for each point
  • Find likely correspondences between two models (based on FPFH)
  • Use top features to estimate scale,
  • Run RANSAC to estimate transformation, and eliminate correspondences
  • Use remaining correspondences to run ICP for finer alignment

Usage Example: #estimate correspondences - saves a corrs.txt file ./corrs cloudA.ply cloudB.ply AtoBCorrs.txt

#run rough alignment using corrs ./align cloudA.ply cloudB.ply AtoBCorrs.txt

#saves files: irRough.pcd - cloud A after RANSAC alignment eoRough.pcd - cloud B after RANSAC alignment irFinal.pcd - cloud A after ICP alignment eoFinal.pcd - cloud B after ICP alignment

other tools include bbox and circular cropping ./bbox cloud.pcd

./crop cloud.pcd centerX centerY centerZ radius out.pcd