首页 > 解决方案 > 当我们已经匹配关键点时,为什么我们需要使用 RANSAC?

问题描述

我目前正在研究将图像拼接在一起的计算机视觉程序。我使用 KAZE 算法来寻找关键点并描述它们。比我使用蛮力匹配器来匹配它们。从这个阶段开始,我已经准备好缝合它们,我想是因为我知道哪个点属于哪里,对吧?因为我正在研究一些文献等。我看到它们总是匹配关键点,然后使用随机的 RANSAC?当我已经通过蛮力匹配知道哪个关键点属于哪个关键点时,为什么还要使用 Ransac?

谢谢你的回答,祝你有美好的一天

标签: pythoncomputer-visionimage-stitchingkeypointransac

解决方案


RANSAC(和变体)是一种算法,用于将匹配的关键点稳健地拟合到从一个图像到另一个图像的转换(“扭曲”)的数学模型,例如单应性。这里的关键词是“稳健”:算法非常努力地识别出一个大的(理想情况下是最大的)匹配关键点集,这些关键点是可以接受的,因为它们在支持模型的特定值方面彼此一致。

这样做是因为匹配的关键点对可能是“错误的”,要么是因为匹配算法搞砸了(认为左眼匹配到右眼),要么是因为匹配是正确的,但它不符合模型(认为匹配当两张图像相隔一段时间拍摄时,移动汽车的同一点)。当估计过程不稳健时,这些错误匹配或“异常值”可以(并且通常会)抛出模型估计。


推荐阅读