zoukankan      html  css  js  c++  java
  • RANSAC 原理

    RANSAC, Random Sample Consensus(随机抽样一致算法)是一个通用的鲁棒估计算法,由Fischler和Bolles提出文献

    算法原理很简单,如图:
    算法

    现以平面点集拟合直线为例进行说明。已知点集 xi,yi,i n ,估计直线 y=kx+b
    根据RANSAC算法思想,得到如下步骤:

    1. 随机地从 xi,yi,i n 中选择2个点,得到一条直线L1;
    2. 计算其它点到直线L1的距离,确定距离小于阈值 Td 的点集 Si
    3. 如果 Si 中点的个数大于阈值 Tn ,则该直线L1即为所求;
    4. 如果 Si 中点的个数小于阈值 Tn ,选择新的2个点,重复上述过程;
    5. 经过 N 次重复后,选择具有最多点的个数的点集Si,其对于的直线即为所求。

      直线拟合

    三个问题:

    • 什么是距离阈值?
      我们希望选择的距离阈值 t 使点为内点的概率是α。该计算需要知道内点到模型距离的概率分布。实际中距离阈值通常靠经验选取,但是,如果假定测量误差为均值为0,标准差为 σ 的高斯分布,那么 t 的值可以计算出来。

    距离阈值

    • 采样多少次为宜?
      尝试每个可能的样本通常在计算上不可行也不必要。只要采样次数N足够大,保证由s个点组成的随机样本中至少有一次没有野值点的概率是 p 。通常,p=0.99。假定 w 是任意选择一个数据点为内点的概率,那么,ϵ=1w是其为野值点的概率,从而至少需要N次选择,每次 s 个点,其中(1ws)N=1p, 得到 N=log(1p)/log(1(1ϵ)s)

    采样

    • 一致集多大为宜?
      根据经验,给定野值的假定比率后,如果一致集大小接近期望属于该数据集的内点数时迭代就停止,即对 n 个数据,T=(1ϵ)n.对于直线拟合的例子, ϵ 的保守估计是 ϵ=0.2 ,因此 T=(10.2)12=10
  • 相关阅读:
    oracle当需要commit
    Win7 扩容磁盘分区
    MP3的频率、比特率、码率与音质的关系
    关于cocos2dx 3.0升级崩溃报错(unable to load native library) 和(Fatal signal 11 (SIGSEGV) at 0x00000000)
    开机黑屏 仅仅显示鼠标 电脑黑屏 仅仅有鼠标 移动 [已成功解决]
    Java串口通信具体解释
    android 计时器,倒计时
    联想A208T ROOT
    三层架构(我的理解及具体分析)
    Java实现BASE64编解码
  • 原文地址:https://www.cnblogs.com/brother-louie/p/13976568.html
Copyright © 2011-2022 走看看