STORM-IRIT/OpenGR

Program exits unnormally when delta is too small

Opened this issue · 3 comments

When the delta (max_norm_dist) in the options is too small, the Super4PCS GlobalRegistration cannot run successfully and will exits unnormally without computing the right transformation. For example, the program works well when delta=0.1, but crashes when delta=0.01.
The document of Super4PCS says that delta is parameters to verify how much the clouds are aligned. Why the program goes to crash when the delta is small ?

Delta is a parameter that controls the desired accuracy of the algorithm. Indirectly, it influences the size of several internal data-structures.
In most cases, wrong parameter values leads to empty congruent set and thus wrong transformation estimation. Could you share the dataset causing the crash, so I can investigate from where it comes from ?
Also, you might consider looking at the documentation, which explains how to set parameters according to input data.

Thanks for your explanations. The testing data is private and I cannot shared it on the public forum.
The registration parameters are

    gr::UniformDistSampler<Point3D> sampler;
    TransformVisitor vistor;
    gr::Utils::Logger logger(gr::Utils::Verbose);

    MatcherType::OptionsType options;
    MatrixType mat = MatrixType::Identity();
    options.sample_size = 2000;
    options.max_normal_difference = -1;
    options.max_color_distance = -1;
    options.max_time_seconds = 30;
    options.delta = 0.1;
    options.configureOverlap(0.5);

    MatcherType matcher(options, logger);

Note that the source mesh and the target mesh are partialy overlapped. The program works well at delta=0.1, but goes to crash at delta=0.01

Reducing the parameter delta increase the resolution of the acceleration structures.
I experienced crashed when trying to allocate too large datastructures, maybe this is what happens to you ?
Could you please check the memory consumption when the program crash ?