前言:对两片点云描述子进行特征描述以后,如何匹配得到初始点集?
注意关键点提取不是描述子,描述子最终结果都是向量。
关键点常用算法:ISS关键点提取、NARF关键点提取、SIFT关键点提取、Harris关键点提取等
点云描述子算法:PFH、FPFH等。
一.原理
特征的匹配是针对特征描述子进行的,上面提到特征描述子通常是一个向量,两个特征描述子的之间的距离可以反应出其相似的程度,也就是这两个特征点是不是同一个。
根据描述子的不同,可以选择不同的距离度量。如果是浮点类型的描述子,可以使用其欧式距离;对于二进制的描述子(BRIEF)可以使用其汉明距离(两个不同二进制之间的汉明距离指的是两个二进制串不同位的个数)。
有了计算描述子相似度的方法,那么在特征点的集合中如何寻找和其最相似的特征点,这就是特征点的匹配了。最简单直观的方法就是上面使用的:暴力匹配方法(Brute-Froce Matcher),计算某一个特征点描述子与其他所有特征点描述子之间的距离,然后将得到的距离进行排序,取距离最近的一个作为匹配点。这种方法简单粗暴,其结果也是显而易见的,通过上面的匹配结果,也可以看出有大量的错误匹配,这就需要使用一些机制来过滤掉错误的匹配。
二.matlab实现
在matlab中封装好了现成的实现函数pcmatchfeatures,但是不知道原理是什么,具体实现看这里2。