我使用 SIFT 和 SURF 从图像中提取特征。然后我对图像应用了一些变换并再次计算了特征。在匹配特征时,我注意到有一些错误的匹配。例如,如果使用面部图像,则面部上的一些点与变换图像中不在面部的点匹配。
有没有办法检测那些误报?
我使用 SIFT 和 SURF 从图像中提取特征。然后我对图像应用了一些变换并再次计算了特征。在匹配特征时,我注意到有一些错误的匹配。例如,如果使用面部图像,则面部上的一些点与变换图像中不在面部的点匹配。
有没有办法检测那些误报?
减少错误匹配数量的一种简单方法是调整匹配参数,包括尝试不同的匹配策略。如果您使用简单的距离阈值来确定什么是匹配,则可以收紧它。或者,您可以使用比率测试(在 David Lowe 的演示 SIFT 实现中使用)来消除模棱两可的匹配。在那里,您可以收紧距离阈值和比率阈值。
不幸的是,这个世界并不完美,所以即使你调整了每个参数,你仍然会有一些错误的匹配。然后你需要使用额外的信息和/或对你的问题做出额外的假设。例如,您可以假设图像通过刚性变换(例如仿射)相关。您可以使用诸如 RANSAC 之类的算法从匹配中估计此转换的参数。然后,您可以将不适合此转换的匹配视为错误而拒绝。
这是一个使用 MATLAB 计算机视觉系统工具箱假设相似变换来消除错误匹配的示例。