Open3D (C++ API)  0.12.0
Public Member Functions
open3d::pipelines::registration::RobustKernel Class Referenceabstract

#include <RobustKernel.h>

Inheritance diagram for open3d::pipelines::registration::RobustKernel:
open3d::pipelines::registration::CauchyLoss open3d::pipelines::registration::GMLoss open3d::pipelines::registration::HuberLoss open3d::pipelines::registration::L1Loss open3d::pipelines::registration::L2Loss open3d::pipelines::registration::TukeyLoss

Public Member Functions

virtual ~RobustKernel ()=default
 
virtual double Weight (double) const =0
 

Detailed Description

Base class that models a robust kernel for outlier rejection. The virtual function Weight(double residual); must be implemented in derived classes. This method will be only difference between different types of kernels and can be easily extended.

The kernels implemented so far and the notation has been inspired by the publication: "Analysis of Robust Functions for Registration Algorithms", Philippe Babin etal.

We obtain the correspondendent weights for each residual and turn the non-linear least-square problem into a IRSL(Iteratively Reweighted Least-Squares) problem. Changing the weight of each residual is equivalent to changing the robust kernel used for outlier rejection.

The different loss functions will only impact in the weight for each residual during the optimization step. For more information please see also: “Adaptive Robust Kernels for Non-Linear Least Squares Problems”, N. Chebrolu etal. The weight w(r) for a given residual r and a given loss function p(r) is computed as follow: w(r) = (1 / r) * (dp(r) / dr) , for all r Therefore, the only impact of the choice on the kernel is thorugh its first order derivate.

Constructor & Destructor Documentation

◆ ~RobustKernel()

virtual open3d::pipelines::registration::RobustKernel::~RobustKernel ( )
virtualdefault

Member Function Documentation

◆ Weight()

virtual double open3d::pipelines::registration::RobustKernel::Weight ( double  ) const
pure virtual

Obtain the weight for the given residual according to the robust kernel model. This method must be implemented in the derived classes that model the different robust kernels.

Parameters
residualResidual value obtained during the optimization step.

Implemented in open3d::pipelines::registration::TukeyLoss, open3d::pipelines::registration::GMLoss, open3d::pipelines::registration::CauchyLoss, open3d::pipelines::registration::HuberLoss, open3d::pipelines::registration::L1Loss, and open3d::pipelines::registration::L2Loss.


The documentation for this class was generated from the following file: