python - 当我们已经匹配关键点时,为什么我们需要使用 RANSAC?
问题描述
我目前正在研究将图像拼接在一起的计算机视觉程序。我使用 KAZE 算法来寻找关键点并描述它们。比我使用蛮力匹配器来匹配它们。从这个阶段开始,我已经准备好缝合它们,我想是因为我知道哪个点属于哪里,对吧?因为我正在研究一些文献等。我看到它们总是匹配关键点,然后使用随机的 RANSAC?当我已经通过蛮力匹配知道哪个关键点属于哪个关键点时,为什么还要使用 Ransac?
谢谢你的回答,祝你有美好的一天
解决方案
RANSAC(和变体)是一种算法,用于将匹配的关键点稳健地拟合到从一个图像到另一个图像的转换(“扭曲”)的数学模型,例如单应性。这里的关键词是“稳健”:算法非常努力地识别出一个大的(理想情况下是最大的)匹配关键点集,这些关键点是可以接受的,因为它们在支持模型的特定值方面彼此一致。
这样做是因为匹配的关键点对可能是“错误的”,要么是因为匹配算法搞砸了(认为左眼匹配到右眼),要么是因为匹配是正确的,但它不符合模型(认为匹配当两张图像相隔一段时间拍摄时,移动汽车的同一点)。当估计过程不稳健时,这些错误匹配或“异常值”可以(并且通常会)抛出模型估计。
推荐阅读
- kubernetes - 包 helm chart 引用额外的配置文件
- graphql - 如何使用 gatsby-source-prismic 在 graphql 中执行嵌套查询
- python - Networkx:按波遍历图
- css - 页面调整大小时使 div 高度响应
- c# - 如何创建具有有用绑定的自定义四按钮控件?
- swift - Dispatch Group 命令在代码中的什么位置?
- firebase - 如何在 Firestore 中的多个位置更新头像/photoUrl?
- php - 如何使用 IOT 访问公共 Facebook 页面上的信息?
- java - Java 性能问题:需要使用目标分支检查迭代超过 800 万条记录
- javascript - 为什么这个 Javascript 代码是异步的?