经典的参数估计技术,如最小二乘,(根据指定的目标函数)优化了函数描述(模型)对所有数据的拟合。这些技术没有检测和排除严重错误的内部机制。它们是基于假设(平滑假设)的平均技术,即任何数据与假设模型的最大期望偏差是数据集大小的直接函数,因此无论数据集的大小如何,总会有足够的好值来平滑任何粗偏差。

在许多实际的参数估计问题中,平滑假设不成立,即数据包含无补偿的粗差。针对这种情况,提出了几种启发式算法。通常采用的方法是先利用所有的数据导出模型参数,然后定位与实例化模型最接近的数据,如果它是一个粗误差,删除它,然后迭代这个过程,直到最大偏差小于某个预设的阈值或直到不再有足够的数据进行处理。

由上面的例子,我们可以得出,传统的最小二乘法,首先通过全部的数据,进行解算的到了一个模型,然后通过计算迭代误差,不断剔除掉与原数据残差比较大的数据,我们可以从迭代次数可以看出,在进行迭代了四次后,本来作为粗差的点7,残差最小,将无法剔除。

RANSAC程序与传统平滑技术相反:相比较使用尽可能多的数据来获得初始解,然后尝试消除无效的数据点,RANSAC尽可能使用小的初始数据集,并在可能的情况下扩大这个一致数据集。例如,给定将一个圆的圆弧拟合成一组二维点的任务,RANSAC方法将是选择一个由三个点组成的集合(因为确定一个圆需要三个点),计算隐含圆的中心和半径,并计算与该圆足够接近的点数,以表明它们与圆的兼容性(即,它们的偏差足够小,足以成为测量误差)。如果有足够多的相容点,RANSAC将使用平滑技术,如最小二乘,在确定了一组相互一致的点后,计算圆参数的改进估计。

RANSAC正式流程说明如下:

从上面的表述中,我们可以看出SANSAC有两个可以改进的地方:

首先,如果存在与选择点形成一致集的问题相关的理由,则使用确定性的选择过程而不是随机的选择过程。

第二,一旦找到合适的共识集S*并实例化模型M*,将P中与M*一致的任何新点添加到S*中,并在此大集合的基础上计算新模型。

RANSAC范式包含三个未指定的参数:

(1)用于确定点是否与模型兼容的容错性的容差;(2)要尝试的子集数k;(3)阈值t,即用于表示已找到正确模型兼容的一致集点数。

以下详细说明这三个参数的推导:

(一)建立数据/模型兼容性的误差

通常数据/模型的容差通常是一个与数据误差和模型误差有关的函数,如果模型是数据点构造成的一个简单函数,通过在解析中建立合理的误差容限是可行的。然而,前面的方法通常是没用的。在以下情况下,通常有可能在实验上估计误差容限。采样的偏差通常是由扰动数据产生,计算模型和测量隐含的误差,容差可以被设置成一个或两个超出测量平均误差的的值。数据与假设模型的期望偏差一般是函数,因此每组数据的误差容差应是不同的。然而,通常容差的变化相比较于粗差的值相对较小,因此,对于所有的数据来说,设置单一的容差值通常是有效的。

(二)尝试找到一致集的最大次数

停止选择P中的新子集的决定可以基于选择含有n个好数据点的子集所需的预期试验次数k。设w为任意选定的数据点在模型的误差容限内的概率。故有:

结合前面的几何级数的恒等式,可得如下:

(三)可接受的一致集大小的下界值

在RANSAC,阈值t是一个未指定的参数,它被用作确定p的n个子集被发现的基础,它意味着一个足够大的一致集,允许算法终止。因此,必须选择足够大的t来满足两个目的:为数据找到了正确的模型,并且找到了足够数量的相互一致的点,以满足最终平滑过程的需要(该过程计算模型参数的改进估计)。

为了避免最终一致集与错误模型兼容的可能性,并假设y是任何给定数据点在错误模型的容错范围内的概率,我们希望y^t-n非常小。虽然没有精确确定y的一般方法,但假定它小于w(w是给定数据点在正确模型的误差容限内的先验概率)当然是合理的。假设y<0.5,t-n=5的值将提供95%以上的概率,即不会出现与不正确模型的兼容性。

为了满足最终平滑过程的需要,必须指定要使用的特定过程。如果要使用最小二乘平滑,可以在许多情况下调用正式方法来确定产生所需精度所需的点数。

  • 具体可参考原论文:Martin A. Fischler & Robert C. Bolles (June 1981). "Random Sample Consensus: A Paradigm for Model Fitting with Applications to Image Analysis and Automated Cartography" (PDF). Comm. ACM. 24 (6): 381–395. doi:10.1145/358669.358692.

随机样本一致性:一种用于图像分析和自动制图的模型拟合模型(1)--RANRAC相关推荐

  1. 随机样本一致性:一种用于图像分析和自动制图的模型拟合模型(6)--(计算共线矩阵T)

    (一)计算共线矩阵T (注意:转置就是行变列) 例子: 具体可参考原论文:Martin A. Fischler & Robert C. Bolles (June 1981). "Ra ...

  2. 随机样本一致性:一种用于图像分析和自动制图的模型拟合模型(5)--(P4P的解析解)

    (一)P4P问题的解析解 条件:已知物平面和像平面中的四对同名像点:透视中心到像平面的距离(即摄影系统的焦距):像平面中主光点的位置(位置,也就是像平面中的坐标,该点是主光轴在像平面上的焦点): 求解 ...

  3. 随机样本一致性:一种用于图像分析和自动制图的模型拟合模型(4)--(计算透视中心的三维位置)

    (一)计算透视中心的三维位置 给出了透视四面体的三个控制点和三条腿的长度,透视中心的三维位置可以确定如下: (1)构造一个平面P1,它相对于平面P-ABL是正交的.这个平面的构造不需要知道透视中心L的 ...

  4. 随机样本一致性:一种用于图像分析和自动制图的模型拟合模型(3)--(P3P的迭代解)

    (1)P3P问题的迭代解法(待理解)   求解P3P问题的解析解较为复杂,有时可以通过足够的迭代来求解P3P问题显得更加简便.下滑控制点三角形中的任意一点,寻找其它两个顶点位于各自腿上的三角形位置.如 ...

  5. 随机样本一致性:一种用于图像分析和自动制图的模型拟合模型(2)--(P3P)

    (1)P1P和P2P PIP问题(n=1)不提供约束信息,因此解的无穷大是可能的.P2P问题(n=2),如图3所示,也允许无穷大的解:CP可以驻留在直径为Rab/sin(θab)的圆上,在空间中围绕连 ...

  6. WSDM 2022 | 一种用于在线广告自动竞价的协作竞争多智能体框架

    丨目录: · 摘要 · 背景 · 基础概念 ·  IL的行为分析 · 我们的方法 · 实验 · 总结 · 参考文献 ▐ 摘要 在在线广告中,自动竞价已经成为广告主优化自身广告性能的必需工具,自动竞价允 ...

  7. 尝试使用sklearn自动进行多模型预测并计算权重

    待解决的问题 在拥有多个模型的情况下,是否可以通过给多个模型分配权重(weight),使得加权后的多模型预测结果要好于单模型? 思路 是否存在通用的多模型weight计算方式? 如果没有,是否存在其他 ...

  8. 海岸鸿蒙慕建洲,用于校准液体自动颗粒计数器的标准物质及其制备方法.pdf

    用于校准液体自动颗粒计数器的标准物质及其制备方法 技术领域 本发明属于标准物质制备技术领域,涉及用于校准液体自动颗粒计数器的标准物 质及其制备方法,并涉及一种用于校准液体自动颗粒计数器的标准物质的制备 ...

  9. python 超参数_完整介绍用于Python中自动超参数调剂的贝叶斯优化

    完整介绍用于Python中自动超参数调剂的贝叶斯优化-1.jpg (109.5 KB, 下载次数: 0) 2018-7-4 23:45 上传 调剂机器学习超参数是一项繁琐但至关重要的任务,因为算法的性 ...

最新文章

  1. 内科学与计算机专业的相关性,急性心肌梗死患者QT间期变异性及心率变异性与室性心律失常的相关性分析-内科学专业论文.docx...
  2. 华为服务器故障灯不开机_总有故障灯亮却不知道是怎么回事?详解这些你不认识的故障灯...
  3. .NET Core RSA密钥的xml、pkcs1、pkcs8格式转换和JavaScript、Java等语言进行对接
  4. 域 无法管理计算机,计算机无法加入域的终级解决方法
  5. Java 中类的静态成员与类的实例对象回收
  6. cuda linux编译器_linux下如何编译CUDA+QT(qtcreator下)
  7. [导入]C#实现WEB浏览器
  8. 如何应对软件项目的投标答辩
  9. Qt拖放 drag and drop
  10. 2018-携程-春招题
  11. 数据可视化 —— 数据流图(Data Flow Diagram)
  12. SuperIndicator开源库源码分析
  13. 从人工到自动,泛微云上自动化部署实践
  14. 【背包问题】基于matlab离散粒子群算法求解背包问题【含Matlab源码 423期】
  15. MACD神器 通达信指标公式 副图 源码 无加密 无未来
  16. PostgreSQL 删除重复数据
  17. 9008刷机教程oppo_OPPO和Realme手机刷机后内部存储不足,无法下载软件
  18. 从0基础学习Python(17)[面向对象三大特征[多态]]
  19. 小学生C++编程基础 课程18(共6题)
  20. 【WSAGetLastError】WSAGetLastError返回值

热门文章

  1. NGINX配置基于Node.js服务的负载均衡服务器
  2. ETL(数据仓库技术)
  3. 分布式事物框架--EasyTransaction的入门介绍
  4. java 课后习题 三角形面积计算
  5. 【C语言】一元二次方程(求实根和虚根)
  6. C#LeetCode刷题之#404-左叶子之和​​​​​​​​​​​​​​(Sum of Left Leaves)
  7. windbg调试windows下的程序
  8. 基于分位数回归的动态CoVaR计算 案例与代码
  9. 如何删除office2007、以及安装新版本office
  10. 全国315个城市,用python爬取肯德基老爷爷的店面信息