ransac对sift点对进行剔除用的什么原理?

guanyonglai 2017-09-21 04:07:51
网上看到很多介绍的,大致为:
(1) 从样本集中随机抽选一个RANSAC样本,即4个匹配点对
(2) 根据这4个匹配点对计算变换矩阵M
(3) 根据样本集,变换矩阵M,和误差度量函数计算满足当前变换矩阵的一致集consensus,并返回一致集中元素个数
(4) 根据当前一致集中元素个数判断是否最优(最大)一致集,若是则更新当前最优一致集
(5) 更新当前错误概率p,若p大于允许的最小错误概率则重复(1)至(4)继续迭代,直到当前错误概率p小于最小错误概率

但是我一直弄不明白,ransac是通过一堆点,对其中的一部分进行随机取样,用随机取得点拟合一条直线,再看这一堆点中满足这条直线方程的点占多少比例,如果这个比例大于某个阈值,则最终以所取模型表征这一堆点的模型。
上面是ransac的原理,,但是我不知道这个和剔除不合适的sift点对之间有什么联系,看了好多博客还是不懂啊
...全文
824 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
红鱼鱼 2020-02-10
  • 打赏
  • 举报
回复 1
ransac筛选的是不在一个平面的点,因为同一个平面上的点变换矩阵才相同,网上那些博客根本就说不清楚,即使是正确的点,只要是和大部分正确的点不在同一平面,也同样会被筛除
赵4老师 2017-09-21
  • 打赏
  • 举报
回复
代码功能归根结底不是别人帮自己看或讲解或注释出来的;而是被自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。 提醒:再牛×的老师也无法代替学生自己领悟和上厕所! 单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是程序员必须掌握的技能之一。

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧