![]() |
ACloudViewer
3.9.4
A Modern Library for 3D Data Processing
|
#include <RobustKernel.h>
Public Member Functions | |
| RobustKernel (const RobustKernelMethod type=RobustKernelMethod::L2Loss, const double scaling_parameter=1.0, const double shape_parameter=1.0) | |
Public Attributes | |
| RobustKernelMethod | type_ = RobustKernelMethod::L2Loss |
| Loss type. More... | |
| double | scaling_parameter_ = 1.0 |
| Scaling parameter. More... | |
| double | shape_parameter_ = 1.0 |
| Shape parameter. More... | |
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 et al.
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 et al. 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 through its first order derivate.
GeneralizedLoss Method is an implementation of the following paper: @article{BarronCVPR2019, Author = {Jonathan T. Barron}, Title = {A General and Adaptive Robust Loss Function}, Journal = {CVPR}, Year = {2019} }
Definition at line 58 of file RobustKernel.h.
|
inlineexplicit |
Definition at line 60 of file RobustKernel.h.
| double cloudViewer::t::pipelines::registration::RobustKernel::scaling_parameter_ = 1.0 |
Scaling parameter.
Definition at line 72 of file RobustKernel.h.
Referenced by cloudViewer::t::pipelines::kernel::ComputePoseColoredICPCPU(), cloudViewer::t::pipelines::kernel::ComputePoseDopplerICPCPU(), cloudViewer::t::pipelines::kernel::ComputePosePointToPlaneCPU(), and cloudViewer::t::pipelines::registration::pybind_robust_kernels().
| double cloudViewer::t::pipelines::registration::RobustKernel::shape_parameter_ = 1.0 |
Shape parameter.
Definition at line 74 of file RobustKernel.h.
Referenced by cloudViewer::t::pipelines::kernel::ComputePoseColoredICPCPU(), cloudViewer::t::pipelines::kernel::ComputePosePointToPlaneCPU(), and cloudViewer::t::pipelines::registration::pybind_robust_kernels().
| RobustKernelMethod cloudViewer::t::pipelines::registration::RobustKernel::type_ = RobustKernelMethod::L2Loss |
Loss type.
Definition at line 70 of file RobustKernel.h.
Referenced by cloudViewer::t::pipelines::kernel::ComputePoseColoredICPCPU(), cloudViewer::t::pipelines::kernel::ComputePoseDopplerICPCPU(), cloudViewer::t::pipelines::kernel::ComputePosePointToPlaneCPU(), and cloudViewer::t::pipelines::registration::pybind_robust_kernels().