我应该使用什么距离量度来匹配RIFT描述子?

时间:2019-06-12 13:32:10

标签: c++ computer-vision point-cloud-library flann

我目前正在尝试使用PCL库中的FLANN模块在其特征空间中找到该点的最近邻居。

我要比较的点是RIFT描述符,格式为pcl::Histogram<32>,因为我使用4个bin作为距离,使用8个bin作为渐变(就像原始文章中一样)。
我想知道应该使用哪种距离度量,因为默认度量是L2范数,当在高维特征空间中匹配点时,它似乎有些虚弱。
我使用FLANN的KdTreeMultiIndexCreator索引来加快搜索速度。

我一定要使用flann模块,如下所示:

// Useful types
typedef pcl::Histogram<32> FeatureT;
typedef flann::L2<float> DistanceT;
typedef pcl::search::FlannSearch<FeatureT, DistanceT> SearchT;
typedef typename SearchT::FlannIndexCreatorPtr CreatorPtrT;
typedef typename SearchT::KdTreeMultiIndexCreator IndexT;
typedef typename SearchT::PointRepresentationPtr RepresentationPtrT;
// Instantiate search object with 4 randomized trees and 128 checks
SearchT search (true, CreatorPtrT (new IndexT (4)));
search.setPointRepresentation (RepresentationPtrT (new DefaultFeatureRepresentation<FeatureT>));
search.setChecks (128); // The more checks the more precise the solution
// search_cloud is filled with the keypoints to match
search.setInputCloud (search_cloud);
search.nearestKSearch(point_to_match, 1, indices, distances);

那么,FLANN中最适合我的问题的距离测量方法是什么?

0 个答案:

没有答案