计算机视觉-拟合

一、拟合

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

根据任务选择对应的方法(最小二乘,全最小二乘,鲁棒最小二乘,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.mzph.cn/web/69283.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【自开发工具介绍】SQLSERVER的ImpDp和ExpDp工具演示05

SQLSERVER的ImpDp和ExpDp工具演示 1、表部分数据导出 (-query) ※「-query」和「-include_table」必须一起使用 「-query」后面字符串是sql文的where语句,但要注意要使用%,需要写%% 验证用:导出的表,导入到新的数据库 db的数…

《qt6+Open3d网格读取》

《qt6+Open3d网格读取》 效果显示一、创建步骤1.1 创建动作及槽函数二、注意效果显示 一、创建步骤 1.1 创建动作及槽函数 按照以下步骤创建动作,并将动作拉入菜单栏文件中,创建槽函数。 在mainwindow.h添加 private:geometry

mapbox进阶,添加绘图扩展插件,绘制圆形

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀前言1.1 ☘️mapboxgl.Map 地图对象1.2 ☘️mapboxgl.Map style属性1.3 ☘️MapboxDraw 绘图控件二、🍀添加绘图扩…

C#控件开发6—指示灯

按钮功能:手自动旋转,标签文本显示、点击二次弹框确认(源码在最后边); 【制作方法】 找到控件的中心坐标,画背景外环、内圆;再绘制矩形开关,进行角度旋转即可获得; 【关…

电商平台的设计与实现(代码+数据库+LW)

摘 要 如今社会上各行各业,都喜欢用自己行业的专属软件工作,互联网发展到这个时候,人们已经发现离不开了互联网。新技术的产生,往往能解决一些老技术的弊端问题。因为传统商品交易信息管理难度大,容错率低&#xff0…

【deepseek实战】绿色好用,不断网

前言 最佳deepseek火热网络,我也开发一款windows的电脑端,接入了deepseek,基本是复刻了网页端,还加入一些特色功能。 助力国内AI,发出自己的热量 说一下开发过程和内容的使用吧。 目录 一、介绍 二、具体工作 1.1、引…

【OS】AUTOSAR架构下的Interrupt详解(上篇)

目录 前言 正文 1.中断概念分析 1.1 中断处理API 1.2 中断级别 1.3 中断向量表 1.4 二类中断的嵌套 1.4.1概述 1.4.2激活 1.5一类中断 1.5.1一类中断的实现 1.5.2一类中断的嵌套 1.5.3在StartOS之前的1类ISR 1.5.4使用1类中断时的注意事项 1.6中断源的初始化 1.…

llama.cpp GGUF 模型格式

llama.cpp GGUF 模型格式 1. Specification1.1. GGUF Naming Convention (命名规则)1.1.1. Validating Above Naming Convention 1.2. File Structure 2. Standardized key-value pairs2.1. General2.1.1. Required2.1.2. General metadata2.1.3. Source metadata 2.2. LLM2.2.…

Java/Kotlin双语革命性ORM框架Jimmer(一)——介绍与简单使用

概览 Jimmer是一个Java/Kotlin双语框架 包含一个革命性的ORM 以此ORM为基础打造了一套综合性方案解决方案,包括 DTO语言 更全面更强大的缓存机制,以及高度自动化的缓存一致性 更强大客户端文档和代码生成能力,包括Jimmer独创的远程异常 …

yolov11模型在Android设备上运行【踩坑记录】

0) 参考资料: https://github.com/Tencent/ncnn?tabreadme-ov-file https://github.com/pnnx/pnnx https://github.com/nihui/ncnn-android-yolov5 https://github.com/Tencent/ncnn?tabreadme-ov-file 1) :将xxx.pt模型转化成 xxx.onnx ONNX(Ope…

快速上手——.net封装使用DeekSeek-V3 模型

📢欢迎点赞 :👍 收藏 ⭐留言 📝 如有错误敬请指正,赐人玫瑰,手留余香!📢本文作者:由webmote 原创📢作者格言:新的征程,用爱发电,去丈量人心,是否能达到人机合一?开工大吉 新的一年就这么水灵灵的开始了,在这里,祝各位读者新春快乐,万事如意! 新年伊…

【WebLogic】Oracle发布WebLogic 14c最新版本-14.1.2.0

根据Oracle官方产品经理的博客,Oracle于2024年12月20日正式对外发布了WebLogic 14c的第二个正式版本,版本号为 14.1.2.0.0 ,目前官方已开放客户端下载。该版本除继续支持 Jakarta EE 8 版本外,还增加了对 Java SE 17(J…

Spider 数据集上实现nlp2sql训练任务

NLP2SQL(自然语言处理到 SQL 查询的转换)是一个重要的自然语言处理(NLP)任务,其目标是将用户的自然语言问题转换为相应的 SQL 查询。这一任务在许多场景下具有广泛的应用,尤其是在与数据库交互的场景中&…

IDEA+DeepSeek让Java开发起飞

1.获取DeepSeek秘钥 登录DeepSeek官网 : https://www.deepseek.com/ 进入API开放平台,第一次需要注册一个账号 进去之后需要创建一个API KEY,然后把APIkey记录保存下来 接着我们获取DeepSeek的API对话接口地址,点击左边的:接口…

intra-mart实现简易登录页面笔记

一、前言 最近在学习intra-mart框架,在此总结下笔记。 intra-mart是一个前后端不分离的框架,开发时主要用的就是xml、html、js这几个文件; xml文件当做配置文件,html当做前端页面文件,js当做后端文件(js里…

Linux+Docer 容器化部署之 Shell 语法入门篇 【Shell 替代】

🎀🎀Shell语法入门篇 系列篇 🎀🎀 LinuxDocer 容器化部署之 Shell 语法入门篇 【准备阶段】LinuxDocer 容器化部署之 Shell 语法入门篇 【Shell变量】LinuxDocer 容器化部署之 Shell 语法入门篇 【Shell数组与函数】LinuxDocer 容…

Intellij IDEA如何查看当前文件的类

快捷键:CtrlF12,我个人感觉记快捷键很麻烦,知道具体的位置更简单,如果忘了快捷键(KeyMap)看一下就记起来了,不需要再Google or Baidu or GPT啥的,位置:Navigate > Fi…

C++----继承

一、继承的基本概念 本质:代码复用类关系建模(是多态的基础) class Person { /*...*/ }; class Student : public Person { /*...*/ }; // public继承 派生类继承基类成员(数据方法),可以通过监视窗口检…

2025.2.5——五、[网鼎杯 2020 青龙组]AreUSerialz 代码审计|反序列化

题目来源:BUUCTF [网鼎杯 2020 青龙组]AreUSerialz 目录 一、打开靶机,整理信息 二、解题思路 step 1:代码审计 step 2:开始解题 突破protected访问修饰符限制 三、小结 一、打开靶机,整理信息 直接得到一串ph…

Docker深度解析:安装各大环境

安装 Nginx 实现负载均衡: 挂载 nginx html 文件: 创建过载目录: mkdir -p /data/nginx/{conf,conf.d,html,logs} 注意:在挂载前需要对 conf/nginx.conf 文件进行编写 worker_processes 1;events {worker_connections 1024; …