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

计算机视觉-拟合

一、拟合

拟合的作用主要是给物体有一个更好的描述

根据任务选择对应的方法(最小二乘,全最小二乘,鲁棒最小二乘,RANSAC)

边缘提取只能告诉边,但是给不出来数学描述(应该告诉这个点线是谁的)

1.1 拟合任务

如何从边缘找出真正的线?

存在问题
①噪声(偏离)    
②外点、离群点
③缺失数据(线上的点看不到了)

1.2 最小二乘

沿着y方向的距离

问题:

不能描述垂直的线

摄像机方向改变可能就不能求解了

1.3 全最小二乘

找的线跟这条线上的法向量上的投影越短越好

度量的是点到直线的距离而不是点在y方向到直线的距离

1.4 极大似然估计

真实的点沿着法向量方向产生了一个由噪声引起的误差,这个点的概率满足高斯分布

 概率越大越好,由\varepsilon决定,概率大的那个点就是我们要的直线附近的点

有外点效果不好,用鲁棒的最小二乘

总损失=点到直线的距离

1.5 鲁棒的最小二乘

不用点到直线的距离作为损失

u是点到直线的距离,σ(尺度参数)来控制点到直线距离的影响(距离多少点没有贡献了),太远的点就是噪声点,就不考虑了。

σ=10时,超过10以后贡献就小了,远的点不要了

        σ选的太小

        σ选的太大,和最小二乘就没有区别了,解决不了问题了

        σ最好选择1.5倍的平均残差

1.6 RANSAC

多条线,噪点太多,外点太多

随机采样一致性算法
1.选择一个最小的集合:随机选2个点

2.写出直线方程(2点确定一条直线)
3.剩下的点给这个直线投票,就是看剩下的点到直线的距离之和,设置一个小门限,如果这条直线有90个点进行投票就记下这条直线

再选两点,重复上3个步骤,哪条直线的票数高就留下哪条直线,就是最后的输出

最小二乘的方法: (不对)

 RANSAC方法:

1.任选两点

2.写出直线方程(2点确定一条直线)

3.剩下的点给这个直线投票,就是看剩下的点到直线的距离之和

4.设置一个小门限,如果这条直线有90个点投票(在门限内)就记下这条直线

5.重复上述步骤

6.确定最合适的直线

1.7 RANSAC参数

s:几个点

N:迭代多少次才能选择出合适的点,先给出得出这条线的正确概率

1-e:属于这条线点的概率

外点率e越高,需要迭代的次数N就越多

1.8自适应方法

真实情况下很多时候不知道外点率e,N就不知道

        先假设N=无穷,先随便选两个点计算出内点率,就能得出外点率e,带入算出N。计算出的N越小越好,依次迭代                      找到直线l和内点数d

1.9 RANSAC的应用实例

随便选取三对点,算出abcdef,用其他的点进行投票(满足一致性),重复上述步骤,

1.10 霍夫变换
  • 适用于检测具有明确数学表达式的形状,如直线、圆、椭圆等。在道路检测、车道线检测等场景中,霍夫变换可以快速检测出直线状的道路边界或车道线。

图像空间中的一条直线对应参数空间中的一个点

图像空间中的一个点对应参数空间中的一条直线

直线垂直时?

极坐标表示

一个点选取\theta为0-180度,算出一条直线,选取所有直线的交点对应的\rho\theta

 噪声影响

噪声点多,投票的格子变少

随机点多,也会对产生投票,会产生很多线

梯度方向?(不需要选取θ为180度范围那么大)

霍夫变换改进算法:

Canny算子把边缘的点提取出来,知道梯度方向就知道\theta,只选取\theta附近计算就可以了

针对圆形,先找到梯度方向,针对一个点选取不同的r(一个r就会有两个点,对应两个圆心)画出直线,会有两条,一个向心一个离心,

http://www.lryc.cn/news/535148.html

相关文章:

  • CSS 实现下拉菜单效果实例解析
  • DeepSeek模拟阿里面试——Mysql
  • MVVM设计模式
  • 解决:Cannot find a valid baseurl for repo: base/7/x86_64
  • ffmpeg -codecs
  • 社区版IDEA中配置TomCat(详细版)
  • 强化学习 DPO 算法:基于人类偏好,颠覆 PPO 传统策略
  • 长安链支撑全国不动产登记数据可信流通
  • GitCode 助力 Dora SSR:开启游戏开发新征程
  • 获取 Windows 视频时长的正确方式——Windows Shell API 深度解析
  • Linux系统安装Nginx详解(适用于CentOS 7)
  • 深入理解Java对接DeepSeek
  • flutter isolate到底是啥
  • 深入剖析 Apache Shiro550 反序列化漏洞及复现
  • 计算机毕业设计——Springboot的简历系统
  • 【kubernetes组件合集】深入解析Kubernetes组件之三:client-go
  • 线程池-抢票系统性能优化
  • WebSocket 握手过程
  • VMware 虚拟机 ubuntu 20.04 扩容工作硬盘
  • 备战蓝桥杯:二分算法之牛可乐和魔法封印问题
  • 普通用户授权docker使用权限
  • 【实战篇】DeepSeek + ElevenLabs:让人工智能“开口说话”,打造你的专属语音助手!
  • Vision Transformer:打破CNN垄断,全局注意力机制重塑计算机视觉范式
  • LabVIEW国内外开发的区别
  • 【并发控制、更新、版本控制】.NET开源ORM框架 SqlSugar 系列
  • 淘宝App交易链路终端混合场景体验探索
  • 数据中心网络监控
  • 【含开题报告+文档+PPT+源码】基于springboot的汽车销售管理系统的设计与实现
  • flink cdc2.2.1同步postgresql表
  • rebase和merge