当前位置: 首页 > news >正文

【IPMV】图像处理与机器视觉:Lec13 Robust Estimation with RANSAC

【IPMV】图像处理与机器视觉:Lec13 鲁棒估计方法:RANSAC算法

本系列为2025年同济大学自动化专业**图像处理与机器视觉**课程笔记
Lecturer: Rui Fan、Yanchao Dong


Lec0 Course Description

Lec3 Perspective Transformation

Lec7 Image Filtering

Lec8 Image Pyramid

Lec9 Laplace Blending

Lec10 Edges and Lines

Lec11 Keypoint Features and Corners

Lec12 Blob Detector

Lec13 Robust Estimation with RANSAC

持续更新中

文章目录

  • 【IPMV】图像处理与机器视觉:Lec13 鲁棒估计方法:RANSAC算法
  • Lec13 Robust Estimation with RANSAC
    • 1 概述
    • 2 核心原理与实现步骤
      • 2.1 基础算法流程
      • 2.2 关键参数解析
      • 2.3 自适应 RANSAC
    • 3 RANSAC 算法的优缺点
      • 3.1 优点
      • 3.2 缺点
    • 4 RANSAC 算法应用实例:圆的拟合
    • 5 RANSAC 算法的拓展与变种
    • 6 总结


Lec13 Robust Estimation with RANSAC

  • Basic RANSAC
  • Adaptive RANSAC

1 概述

随机抽样一致性(RANdom SAmple Consensus, RANSAC)是一种在包含大量异常值的数据中稳健估计模型参数的迭代方法。

  • 基本假设:数据由 “内点” (Inliers)和 “外点” (Outliers)组成。内点符合某种模型分布(可能包含噪声),而外点则不满足该模型;
  • 核心思想:通过随机抽样模型验证来区分数据中的内点和外点,从而避免异常值对模型估计的影响


2 核心原理与实现步骤

2.1 基础算法流程

目标:鲁棒地将模型 y = f ( x ; α ) y = f(x; \boldsymbol{\alpha}) y=f(x;α) 拟合到数据集 S = { x i } S = \{ \boldsymbol{x}_i \} S={xi}

RANSAC的实现基于投票机制,通过以下步骤寻找最优拟合模型:

  1. 随机抽样:从输入数据集中随机选择包含 n n n 个随机数据点 { x 1 , x 2 , … , x n } \{ \boldsymbol{x}_1, \boldsymbol{x}_2, \dots, \boldsymbol{x}_n \} {x1,x2,,xn} 的子集,该子集的大小需足够确定模型参数。
  2. 模型拟合:仅使用该子集的数据计算模型参数 α tst \boldsymbol{\alpha}_{\text{tst}} αtst
  3. 内点验证:检查整个数据集中哪些元素与基于估计参数的模型一致。若数据点与模型偏差(距离)在误差阈值 t t t范围内的数据点构成内点集 S tst ⊆ S S_{\text{tst}} \subseteq S StstS,否则为外点。
  4. 迭代优化:如果 S tst S_{\text{tst}} Stst 是目前遇到的最大内点集,保留该模型,令 S IN = S tst S_{\text{IN}} = S_{\text{tst}} SIN=Stst α = α tst \boldsymbol{\alpha} = \boldsymbol{\alpha}_{\text{tst}} α=αtst,重复上述过程,直至测试了 N N N 个模型。

2.2 关键参数解析

  • 随机样本数量 n \boldsymbol{n} n:通常为估计模型所需的最小数据点数量。
  • 误差阈值 t \boldsymbol{t} t:确定数据点是否符合模型的标准,通常根据应用需求和数据集特性(如噪声水平)设定,高斯噪声场景下可取 2 σ 2σ 2σ
  • 迭代次数 N \boldsymbol{N} N:根据我们希望有多大把握能至少抽样得到一个不含外点的数据集合 { x 1 , x 2 , … , x n } \{x_1, x_2, \dots, x_n\} {x1,x2,,xn} 来选择。可通过公式 N = log ⁡ ( 1 − p ) log ⁡ ( 1 − w n ) N = \frac{\log(1-p)}{\log(1-w^n)} N=log(1wn)log(1p)计算,其中 p p p 为期望成功概率(常用 0.99), w w w 为随机数据点为内点的概率。
  • 内点概率 ω \boldsymbol{\omega} ω w = ∣ S I N ∣ ∣ S ∣ = 数据中的内点数量 数据点总数 w = \frac{|S_{IN}|}{|S|}=\frac{数据中的内点数量}{数据点总数} w=SSIN=数据点总数数据中的内点数量,通常是未知的,实际应用中常通过自适应方法动态更新。

2.3 自适应 RANSAC

Basic RANSAC 的一个局限是需要预先知道内点比例 w w w,而 Adaptive RANSAC 通过动态更新 w w w 来优化迭代次数 N N N

  1. 初始化 N = ∞ N = \infty N= 和空内点集 S I N = ∅ S_{IN}=\emptyset SIN=
  2. 迭代条件:迭代次数小于 N N N,重复执行步骤3~5。
  3. 随机抽样与模型拟合:n 个随机数据点 { x 1 , x 2 , … , x n } \{ \boldsymbol{x}_1, \boldsymbol{x}_2, \dots, \boldsymbol{x}_n \} {x1,x2,,xn} 中确定一个测试模型 y = f ( x ; α tst ) y = f(x; \boldsymbol{\alpha}_{\text{tst}}) y=f(x;αtst)
  4. 内点验证
  5. 迭代优化:如果 S tst S_{\text{tst}} Stst是目前遇到的最大内点集,就保留该模型,并更新内点概率 ω \omega ω 和迭代次数 N N N
    1. S IN = S tst S_{\text{IN}} = S_{\text{tst}} SIN=Stst α = α tst \boldsymbol{\alpha} = \boldsymbol{\alpha}_{\text{tst}} α=αtst
    2. 每次迭代后根据当前最大内点集大小更新 w = ∣ S I N ∣ ∣ S ∣ w = \frac{|S_{IN}|}{|S|} w=SSIN
    3. 重新计算 N = log ⁡ ( 1 − p ) log ⁡ ( 1 − w n ) N = \frac{\log(1-p)}{\log(1-w^n)} N=log(1wn)log(1p),动态调整迭代次数。

3 RANSAC 算法的优缺点

3.1 优点

  • 鲁棒性强:即使数据集中存在大量外点(可达 50 % 50\% 50%),仍能准确估计模型参数。
  • 模型适应性广:适用于直线、圆、单应性矩阵等多种数学模型的参数估计。
  • 实现灵活:可与其他估计方法(如最小二乘法)结合,通过内点集优化模型精度。RANSAC先通过迭代等方式找出内点,然后基于内点,使用处理“干净”数据时效果好、但相对不那么鲁棒的估计方法(如最小二乘法)优化模型参数。

3.2 缺点

  • 时间复杂度不确定:理论上迭代次数没有上限(除非进行穷举 ),可能导致计算时间不可控。若限制迭代次数,得到的解可能非最优,甚至无法良好拟合数据;增加迭代次数虽能提升获得合理模型的概率,但会耗费更多时间,存在计算成本与模型质量的权衡。
  • 参数敏感性:需要设置问题特定的阈值,且只能估计单一模型。
  • 初始假设依赖:若内点比例过低或抽样未覆盖足够内点,可能收敛到次优解。

4 RANSAC 算法应用实例:圆的拟合

  1. 确定最小确定圆方程的参数:从 3 3 3 个随机点估计圆参数 ( x 0 , y 0 , r ) (x_0, y_0, r) (x0,y0,r)
  2. 评估内点的方法:点到圆的距离小于阈值,即 d = ∣ ( x i − x 0 ) 2 + ( y i − y 0 ) 2 − r ∣ < t d = |\sqrt{(x_i - x_0)^2 + (y_i - y_0)^2} - r|<t d=(xix0)2+(yiy0)2 r<t

或者根据RANSAC返回的最大内点集合,使用better but less robust algorithm,如最小二乘法


5 RANSAC 算法的拓展与变种

  1. 渐进抽样一致性(PROgressive Sample and Consensus, PROSAC):优先选择可信度高的点进行抽样,减少无效迭代。
  2. M估计抽样一致性(M-estimator Sample and Consensus, MSAC):引入损失函数替代简单的阈值判定,提高模型精度。
  3. 最小中位数平方(Least Median Squares, ):通过最小化残差中位数来抵抗异常值。
  4. 最大似然抽样一致性(Maximum Likelihood Estimation Sampleand Consensus, MLESAC):基于概率模型计算最优参数。


6 总结

RANSAC

  • A robust iterative method for estimating the parameters of a mathematical model from a set of observed data containing outliers
  • Separates the observed data into“inliers”and“outliers”which is very useful if we want to use better, but less robust, estimation methods
http://www.lryc.cn/news/579980.html

相关文章:

  • AI智能体革命:从ChatGPT到自主决策的技术演进
  • 飞凌OK3568核心板与FPGA之间PCIe通信测试操作手册
  • 设计模式-应用分层
  • 01背包P1048 [NOIP 2005 普及组] 采药
  • [netty5: ByteToMessageCodec MessageToByteEncoder ByteToMessageDecoder]-源码分析
  • CCViM Block(上下文聚类视觉曼巴模块),通过多方向扫描(水平 / 垂直 / 翻转)提取目标延展特征,结合聚类层对边界点的动态聚合,提升目标的定位能力
  • Python爬虫 模拟登录状态 requests版
  • Vue2中的keep-alive:组件状态缓存与性能优化实战指南
  • Linux 如何上传本地文件以及下载文件到本地命令总结
  • Linux探秘坊-------13.进程间通信
  • 五、Flutter动画
  • 【AI总结】Git vs GitHub vs GitLab:深度解析三者联系与核心区别
  • 【Git】git命令合集
  • 网安系列【4】之OWASP与OWASP Top 10:Web安全入门指南
  • Rust 闭包
  • 暴雨服务器成功中标华中科技大学集成电路学院服务器采购项目
  • 封装一个png的编码解码操作
  • 数据库位函数:原理、应用与性能优化
  • 企业该怎么做竞争分析?一文了解
  • Linux-进程概念(3)
  • 【WEB】Polar靶场 6-10题 详细笔记
  • 类图+案例+代码详解:软件设计模式----原型模式
  • vue3 el-table 行筛选 设置为单选
  • 电商分拣的“效率密码”:艾立泰轻量化托盘引领自动化流水线革新
  • vue3 获取选中的el-table行数据
  • 【WRFDA第三期】OBSPROC namelist 变量总结
  • Ubuntu 22.04 + MySQL 8 无密码登录问题与 root 密码重置指南
  • OpenCV中DPM(Deformable Part Model)目标检测类cv::dpm::DPMDetector
  • 前端基础知识Webpack系列 - 03(webpack中常见的Loader?解决了什么问题?)
  • STM32CubeMX教程1 实现点灯点灯