关闭

RANSAC算法的学习(一)

标签: RANSAC
289人阅读 评论(0) 收藏 举报
分类:

RANSAC拟合直线的伪代码

确定:
  n——所需的最少点数
  k——需要的迭代次数
  t——用来判断一个点是否拟合得很好的阈值
  d——判断一个点是否拟合的很好所需要的临近点数
直到k次迭代完成
    从数据中均匀随机的采样n个点
    对这n个点进行拟合
    对于在采样外的每一个点
        用t比较点到直线的距离,如果距离小于t,那么点是很靠近的
    end
    如果有d或更多个点靠近直线,那么是一个好的拟合。重新用这些点拟合直线
end
使用拟合误差作为标准,挑出最好的拟合

对于一般的模型

对于一般的模型M和给定的测量数据点集D,RANSAC估计模型参数p的一般步骤如下:
1.确定求解模型M,即确定模型参数p ,所需要的最小数据点的个数n。由n个数据点组成的子集称为模型M的一个样本;
2.从数据点集D中随机地抽取一个样本J由该样本计算模型的一个实例M_p(J),确定与M_p(J)之间几何距离<阈值t的数据点所构成的集合,并记做S(M_p(J)),称为实例M_p(J)的一致集;
3.如果在一致集S(M_p(J))中的数据点个数T_{S(M_p(J))}>阈值T,则用S(M_p(J))重新估计模型M并输出结果;如果T_{S(M_p(J))}<阈值T,返回步骤2;
4.经过K次随机抽样,选择最大的一致集S(M_p(J)),用S(M_p(J))重新估计模型M输出结果

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:16511次
    • 积分:343
    • 等级:
    • 排名:千里之外
    • 原创:17篇
    • 转载:2篇
    • 译文:0篇
    • 评论:17条
    文章分类
    最新评论