class mp2p_icp::QualityEvaluator_RangeImageSimilarity
Overview
Matching quality evaluator: simple ratio [0,1] of paired entities.
Implementation of the method in the papper:
“Analyzing the Quality of Matched 3D Point Clouds of Objects”, Igor Bogoslavskyi, Cyrill Stachniss, IROS 2017.
This implementation reprojects points into range images with the resolution defined in parameters and compares the likelihood of both range images to be generated from the same point clouds.
At present, the PT_LAYER_RAW layer of points is the only one that is used to evaluate the depth images.
#include <QualityEvaluator_RangeImageSimilarity.h> class QualityEvaluator_RangeImageSimilarity: public mp2p_icp::QualityEvaluator { public: // fields mrpt::img::TCamera rangeCamera; double sigma = 0.1; double penalty_not_visible = 2.0; bool debug_show_all_in_window = false; bool debug_save_all_matrices = false; // methods virtual void initialize(const mrpt::containers::yaml& params); virtual Result evaluate( const metric_map_t& pcGlobal, const metric_map_t& pcLocal, const mrpt::poses::CPose3D& localPose, const Pairings& pairingsFromICP ) const; mrpt::math::CMatrixDouble projectPoints( const mrpt::maps::CPointsMap& pts, const std::optional<mrpt::poses::CPose3D>& relativePose = std::nullopt ) const; std::vector<double> scores( const mrpt::math::CMatrixDouble& m1, const mrpt::math::CMatrixDouble& m2 ) const; };
Inherited Members
public: // structs struct Result; // methods virtual void initialize(const mrpt::containers::yaml& params) = 0; virtual Result evaluate( const metric_map_t& pcGlobal, const metric_map_t& pcLocal, const mrpt::poses::CPose3D& localPose, const Pairings& pairingsFromICP ) const = 0;
Fields
mrpt::img::TCamera rangeCamera
Parameters for the simulated camera
double penalty_not_visible = 2.0
!< Uncertainty of depth ranges [meters]
Penalty for pixels only visible from one view point [in “sigmas”]
Methods
virtual void initialize(const mrpt::containers::yaml& params)
See base class. Parameters :
ncols: 200 nrows: 100 cx: 100 cy: 50 fx: 50 fy: 50 sigma: 0.1 #debug_show_all_in_window: false
virtual Result evaluate( const metric_map_t& pcGlobal, const metric_map_t& pcLocal, const mrpt::poses::CPose3D& localPose, const Pairings& pairingsFromICP ) const
See base class. This implementation does NOT use pairingsFromICP
at all, it can be empty.