mirror of
https://github.com/introlab/rtabmap.git
synced 2026-09-01 17:10:26 +08:00
Added GridAdaptor for FAST feature (issue #43). Fixed RegistrationVis feature parameters not set. Added FAST_ORB feature type.
This commit is contained in:
@@ -99,7 +99,8 @@ public:
|
||||
kFeatureGfttFreak=5,
|
||||
kFeatureGfttBrief=6,
|
||||
kFeatureBrisk=7,
|
||||
kFeatureGfttOrb=8}; //new 0.10.11
|
||||
kFeatureGfttOrb=8, //new 0.10.11
|
||||
kFeatureFastOrb=9}; //new 0.11.0
|
||||
|
||||
static Feature2D * create(Feature2D::Type & type, const ParametersMap & parameters);
|
||||
|
||||
@@ -253,8 +254,13 @@ private:
|
||||
bool nonmaxSuppression_;
|
||||
bool gpu_;
|
||||
double gpuKeypointsRatio_;
|
||||
int minThreshold_;
|
||||
int maxThreshold_;
|
||||
int maxTotalKeypoints_;
|
||||
int gridRows_;
|
||||
int gridCols_;
|
||||
|
||||
cv::Ptr<CV_FAST> _fast;
|
||||
cv::Ptr<cv::FeatureDetector> _fast;
|
||||
cv::Ptr<CV_FAST_GPU> _gpuFast;
|
||||
};
|
||||
|
||||
@@ -299,6 +305,23 @@ private:
|
||||
cv::Ptr<CV_FREAK> _freak;
|
||||
};
|
||||
|
||||
//FAST_ORB
|
||||
class RTABMAP_EXP FAST_ORB : public FAST
|
||||
{
|
||||
public:
|
||||
FAST_ORB(const ParametersMap & parameters = ParametersMap());
|
||||
virtual ~FAST_ORB();
|
||||
|
||||
virtual void parseParameters(const ParametersMap & parameters);
|
||||
virtual Feature2D::Type getType() const {return kFeatureFastOrb;}
|
||||
|
||||
private:
|
||||
virtual cv::Mat generateDescriptorsImpl(const cv::Mat & image, std::vector<cv::KeyPoint> & keypoints) const;
|
||||
|
||||
private:
|
||||
ORB _orb;
|
||||
};
|
||||
|
||||
//GFTT
|
||||
class RTABMAP_EXP GFTT : public Feature2D
|
||||
{
|
||||
|
||||
@@ -244,12 +244,16 @@ class RTABMAP_EXP Parameters
|
||||
|
||||
RTABMAP_PARAM(BRIEF, Bytes, int, 32, "Bytes is a length of descriptor in bytes. It can be equal 16, 32 or 64 bytes.");
|
||||
|
||||
RTABMAP_PARAM(FAST, Threshold, int, 30, "Threshold on difference between intensity of the central pixel and pixels of a circle around this pixel.");
|
||||
RTABMAP_PARAM(FAST, Threshold, int, 30, "Threshold on difference between intensity of the central pixel and pixels of a circle around this pixel.");
|
||||
RTABMAP_PARAM(FAST, NonmaxSuppression, bool, true, "If true, non-maximum suppression is applied to detected corners (keypoints).");
|
||||
RTABMAP_PARAM(FAST, Gpu, bool, false, "GPU-FAST: Use GPU version of FAST. This option is enabled only if OpenCV is built with CUDA and GPUs are detected.");
|
||||
RTABMAP_PARAM(FAST, GpuKeypointsRatio, double, 0.05, "Used with FAST GPU.");
|
||||
RTABMAP_PARAM(FAST, MinThreshold, int, 1, "Minimum threshold. Used only when FAST/GridRows and FAST/GridCols are set.");
|
||||
RTABMAP_PARAM(FAST, MaxThreshold, int, 200, "Maximum threshold. Used only when FAST/GridRows and FAST/GridCols are set.");
|
||||
RTABMAP_PARAM(FAST, GridRows, int, 4, "Grid rows (0 to disable). Adapts the detector to partition the source image into a grid and detect points in each cell.");
|
||||
RTABMAP_PARAM(FAST, GridCols, int, 4, "Grid cols (0 to disable). Adapts the detector to partition the source image into a grid and detect points in each cell.");
|
||||
|
||||
RTABMAP_PARAM(GFTT, QualityLevel, double, 0.0001, "");
|
||||
RTABMAP_PARAM(GFTT, QualityLevel, double, 0.01, "");
|
||||
RTABMAP_PARAM(GFTT, MinDistance, double, 10, "");
|
||||
RTABMAP_PARAM(GFTT, BlockSize, int, 3, "");
|
||||
RTABMAP_PARAM(GFTT, UseHarrisDetector, bool, false, "");
|
||||
@@ -312,7 +316,7 @@ class RTABMAP_EXP Parameters
|
||||
RTABMAP_PARAM(RGBD, ProximityPathRawPosesUsed, bool, true, "When comparing to a local path, merge the scan using the odometry poses (with neighbor link optimizations) instead of the ones in the optimized local graph.");
|
||||
|
||||
// Graph optimization
|
||||
RTABMAP_PARAM(RGBD, OptimizeStrategy, int, 0, "Graph optimization strategy: 0=TORO and 1=g2o.");
|
||||
RTABMAP_PARAM(RGBD, OptimizeStrategy, int, 0, "Graph optimization strategy: 0=TORO, 1=g2o and 2=GTSAM.");
|
||||
RTABMAP_PARAM(RGBD, OptimizeIterations, int, 100, "Optimization iterations.");
|
||||
RTABMAP_PARAM(RGBD, OptimizeSlam2D, bool, false, "If optimization is done only on x,y and theta (3DoF). Otherwise, it is done on full 6DoF poses.");
|
||||
RTABMAP_PARAM(RGBD, OptimizeVarianceIgnored, bool, false, "Ignore constraints' variance. If checked, identity information matrix is used for each constraint. Otherwise, an information matrix is generated from the variance saved in the links.");
|
||||
|
||||
@@ -38,7 +38,7 @@ class RegistrationVis : public Registration
|
||||
{
|
||||
public:
|
||||
RegistrationVis(const ParametersMap & parameters = ParametersMap());
|
||||
virtual ~RegistrationVis() {}
|
||||
virtual ~RegistrationVis();
|
||||
|
||||
virtual void parseParameters(const ParametersMap & parameters);
|
||||
|
||||
@@ -67,18 +67,7 @@ private:
|
||||
double _PnPReprojError;
|
||||
int _PnPFlags;
|
||||
|
||||
int _NNType;
|
||||
float _NNDR;
|
||||
int _featureType;
|
||||
int _maxWords;
|
||||
float _maxDepth;
|
||||
float _minDepth;
|
||||
std::string _roiRatios;
|
||||
|
||||
int _subPixWinSize;
|
||||
int _subPixIterations;
|
||||
double _subPixEps;
|
||||
|
||||
ParametersMap _featureParameters;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -45,8 +45,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
namespace rtabmap
|
||||
{
|
||||
|
||||
class Memory;
|
||||
|
||||
class RTABMAP_EXP Signature
|
||||
{
|
||||
|
||||
|
||||
Reference in New Issue
Block a user