Skip to main content

A python package to perform pointcloud registration with scale differences using a two-block optimization approach

Project description

Registration Library OR-PCD 🚀

☁ OR-PCD is a library that implements a two block optimization approach in order to align Pointclouds. This method was created as a solution capable to manage scale and differences among the three coordinate axes of the clouds. In our approach we optimize the scale differences considering all the x/y/z coordinates directions as variables.

It integrates an inner optimization block where standard rototranslation matrix is obtained and an outer one where the best scale factors are estimated through with a pattern search algorithm ⠻⠏.

Library Structure

The library is composed of 3 main components and the objective is the let them be as extendible as possible in order to add other optimization pipelines during time. These are the components:

  • ⛓ Preprocessor: the preprocessor represent the standardization pipeline used before aligning the pointclouds. At the moment is composed of:
    1. Downsamplers: Porcess blocks that downsample pointclouds having too much points
    2. Scalers: Process block that scale the clouds initially
    3. Outliers: Porcess blocks that let you remove outliers from the cloud
  • 🔝 Optimizer: Inner block optimization methods. At the moment FastGlobal/GeneralizedICP are available
  • ⁑ The Aligner: is the outer block of the optimization. At the moment not extendible as it performs a pattern search with a multi-start procedure in order to find best scale parameters.

We provide some sample data to test and extend this library. You can find all of them within the data folder of the library.

Example code for beginners

First import main components

from or_pcd.Preprocessor.Downsamplers import RandomDownsampler
from or_pcd.Aligner import Aligner
from or_pcd.Optimizer import GeneralizedICP, FastGlobalOptimizer
from or_pcd.Preprocessor.Outliers import SOR
from or_pcd.Preprocessor.preprocessor import Preprocessor
from or_pcd.data import load_sample_cloud

Then load some sample clouds

source_cloud = load_sample_cloud("ArmadilloBack_330")
target_cloud = load_sample_cloud("ArmadilloBack_0")

Initialize optimizers with default parameters and run alignment

optimizer = FastGlobalOptimizer()
preprocessor = Preprocessor([RandomDownsampler(5000), SOR()])
aligner = Aligner(preprocessor, preprocessor, optimizer, visualize_intermediate_steps=True)
aligner.align(source_cloud, target_cloud)

Equally involved contributors:

Feel free to reach out to the contributors if you have any questions or suggestions.

Thank you for your interest in our project!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

or_pcd-0.0.1b7.tar.gz (1.7 MB view details)

Uploaded Source

Built Distribution

or_pcd-0.0.1b7-py3-none-any.whl (1.7 MB view details)

Uploaded Python 3

File details

Details for the file or_pcd-0.0.1b7.tar.gz.

File metadata

  • Download URL: or_pcd-0.0.1b7.tar.gz
  • Upload date:
  • Size: 1.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.7

File hashes

Hashes for or_pcd-0.0.1b7.tar.gz
Algorithm Hash digest
SHA256 77f8e1f292208eeb3f4e924e27b97db18f3ce6923b5e94ac5891e5a3d6c2e78c
MD5 6a9ddaa9c599036b28b1d3833e3ce51a
BLAKE2b-256 4040f1812f77a0b10dad782efb3d238e17aae33f057176d5f5c776df77ac3982

See more details on using hashes here.

File details

Details for the file or_pcd-0.0.1b7-py3-none-any.whl.

File metadata

  • Download URL: or_pcd-0.0.1b7-py3-none-any.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.7

File hashes

Hashes for or_pcd-0.0.1b7-py3-none-any.whl
Algorithm Hash digest
SHA256 1a5c6ef8232187ac953f2aa15cde90368def1ad1c6421999e67806121a7a8da5
MD5 ee0406d96b904ce4a3fe350878e49386
BLAKE2b-256 253796afc238e3082026a9ff9ed4734d20484dabb0bd72028580dea488fa28c6

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page