基于M估计样本一致性算法的点云平面拟合
平面拟合
- 1、算法简介
- 2、参考文献
- 3、实现效果
- 4、相关代码

1、算法简介
RANSAC 是在给定模型和距离阈值 T T T的情况下,通过寻找最小代价 C C C来确定内点数据并拟合模型。如式(1)所示的代价函数,当点到模型的距离 e e e小于阈值 T T T时,该点被判定为内点且权重为0;否则为外点。由于所有内点的权重为0,所以RANSAC选取的最优模型是内点最多且权重和最小的模型。如果用于区分异常值的阈值 T T T过大,则会造成RANSAC 拟合误差增大。
ρ ( e , T ) = { 1 , T ≤ e 0 , T > e (1) \rho(e,T)= \begin{cases} 1,\quad T\leq e\\ 0, \quad T>e \end{cases} \tag{1} ρ(e,T)={1,T≤e0,T>e(1)
MSAC 是RANSAC 的一种改进方法,目的是降低算法对于距离阈值 T T T选取的依赖。修改后的代价函数如式(1)所示,当点到模型的距离 e e e 小于阈值 T T T时,该点被判定为内点且权重为 e e e ;否则为外点且权重为 T T T 。
ρ ( e , T ) = { T , T ≤ e e , T > e (2) \rho(e,T)= \begin{cases} T,\quad T\leq e\\ e, \quad T>e \end{cases} \tag{2} ρ(e,T)={T,T≤ee,T>e(2)
由于使用更加精确的距离表达代价函数,因此,MSAC 不仅可以得到更好的模型,还可以降低阈值的敏感度以及提高收敛速度。利用MSAC 进行局部基准面拟合的具体步骤如下:
- 从数据集中不重复地随机选择用于平面模型拟合的最小数据集 Q Q Q。
- 利用最小二乘法和数据集 Q Q Q拟合平面模型 S S S ,得到模型参数。
- 计算所有点到平面模型 S S S的距离,在允许误差阈值范围内的点标记为“内点”,并计算该平面模型的代价 C i C_i Ci 。
- 比较当前模型的代价 C i C_i Ci 与之前最好模型的代价 C b C_b Cb的大小,记录较小者作为新的最好模型的代价,并记录对应的“内点”和模型参数。
- 重复步骤①-④,直到迭代结束,并得到“内点”数据。
- 利用“内点”数据,通过最小二乘法拟合平面模型,得到最佳的平面模型参数。
2、参考文献
[1] 马新江;岳东杰;沈月千;刘如飞;王旻烨;俞家勇;张春阳. 基于车载激光点云的路面坑槽检测方法 [J/OL]. 中国激光, 1-25[2023-11-25] http://kns.cnki.net/kcms/detail/31.1339.TN.20230817.1814.022.html.
3、实现效果
1、标准模拟数据

2、模拟数据的平面参数

3、添加高斯噪声点

4、高斯噪声点添加结果

5、MSAC拟合结果

平面模型系数coeff(a,b,c,d): 0.00987843 -0.714149 0.699925 17.943
偏差有点大???神奇!!!
4、相关代码
- matlab 点云最小二乘拟合平面(PCA法)
- matlab 点云最小二乘拟合平面(PCA法详细过程版)
- matlab 最小二乘拟合平面并与XOY平面对齐
- Open3D 最小二乘拟合平面(PCA法 python详细过程版)
- Open3D 进阶(12)PCA拟合平面
相关文章:
基于M估计样本一致性算法的点云平面拟合
平面拟合 1、算法简介2、参考文献3、实现效果4、相关代码 1、算法简介 RANSAC 是在给定模型和距离阈值 T T T的情况下,通过寻找最小代价 C C C来确定内点数据并拟合模型。如式(1)所示的代价函数,当点到模型的距离 e e e小于阈值 T…...
【VRTK】【VR开发】【Unity】8-可交互对象
课程配套学习资源下载 https://download.csdn.net/download/weixin_41697242/88485426?spm=1001.2014.3001.5503 【概述】 之前我们只是用了一个简单方块作为可交互对象。其实可交互对象可以有许多细节设置,包括具体抓握物体的哪个点,指定抓握的方向,指定Secondary Acti…...
Huggingface 超详细介绍
Hugging face 起初是一家总部位于纽约的聊天机器人初创服务商,他们本来打算创业做聊天机器人,然后在github上开源了一个Transformers库,虽然聊天机器人业务没搞起来,但是他们的这个库在机器学习社区迅速大火起来。目前已经共享了超…...
pycharm 怎么切换Anaconda简单粗暴
(1)创建一个环境 (2)选择一下自己conda的安装路径中conba.exe (3)选择存在的环境,一般会自动检测到conda创建有哪些环境,导入就行...
笔记二十二、使用路由state进行传递参数
22.1 父组件设置state路由参数 <NavLink toclassify state{{param_C: this.state.name, param_D: this.state.age}} className{this.activeStyle}>classify</NavLink> 父组件 Home/index.jsx import React from "react"; import {NavLink, Outlet} from…...
2023 OI 总结
2023 O I 2023 \space OI 2023 OI ここは总 • 结です ここは总\space• \space结です ここは总 • 结です 我也不知道要写些什么,就随便写了 csp/s第一题10min出ac思路,结果写炸了qwq,被旁边的大哥影响稍微有点大,没调完第一题…...
ESP32-Web-Server编程-HTML 基础
ESP32-Web-Server编程-HTML 基础 概述 HTML(HyperText Markup Language) 是用来描述网页的一种语言。其相关内容存储在前端代码的 .html 文件中。 当浏览器向 web 服务器请求网页时,一个 HTML 文件被发送给浏览器,浏览器解释该文件的内容,…...
【docker】docker安装与优化
目录 一、安装Docker 1、关闭防火墙 2、安装依赖包 3、设置阿里云镜像源 4、安装Docker-CE社区版并设置为开机自启动 5、查看Docker信息 二、设置镜像加速 1、申请加速地址 2、实现加速操作 三、网络优化 1、如何网络优化 2、具体操作 四、docker-server端配置文件…...
https到底把什么加密了?
首先直接说结论, https安全通信模式,是使用TLS加密传输所有的http协议。再重复一遍,是所有! 通常将TLS加密传输http这个通信过程称为https,如果使用协议封装的逻辑结构来表达就是: IP TCP TLS 【 HTTP 】…...
python爬虫防乱码方案
python爬虫防乱码方案 一、chardet库 自动检测编码:使用 Python 库 chardet 可以自动检测文本的编码,然后使用检测到的编码来解码文本。你可以尝试使用 chardet 库来检测编码,然后解码网页内容。 案例 import requests import chardet…...
Java 语言的入门级教程有哪些?
1、Java SE 1.1、Java基础 基础概念/语法:面向对象(继承、封装、多态)基础、包、类、接口、方法、对象、属性、第一个 Java 程序。 数据类型: 1)基本数据类型8种:byte、short、int、long、float、doubl…...
STM32算法
1.通过编码器对返回的错误速度进行滤波 #define MOTOR_BUFF_CIRCLE_SIZE 4 #define STATIC_ENCODER_VALUE 6int32_t LMotor_Encoder_buff[MOTOR_BUFF_CIRCLE_SIZE] {0}; uint8_t LEindex 0; int32_t LMotor_Encoder_last 0; int32_t L_Encoder_change 0;int32_t RMotor_…...
论文阅读 (106):Decoupling maxlogit for out-of-distribution detection (2023 CVPR)
文章目录 1 概述1.1 要点1.2 代码1.3 引用 2 预备知识3 方法3.1 MaxLogit3.2 改进MaxCosine和MaxNorm3.3 DML 1 概述 1.1 要点 题目:解耦最大logit分布外检测 (Decoupling maxlogit for out-of-distribution detection) 方法: 提出了一种心机基于log…...
毅速丨3D打印随形水路为何受到模具制造追捧
在模具制造行业中,随形水路镶件正逐渐成为一种革命性的技术,其提高冷却效率、优化产品设计、降低成本等优点,为模具制造带来了巨大的创新价值。 随形水路是一种根据产品形状定制的冷却水路,其镶件可以均匀地分布在模具的表面或内部…...
【LeetCode:1670. 设计前中后队列 | 数据结构设计】
🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…...
OpenCV将两张图片拼接成一张图片
OpenCV将两张图片拼接成一张图片 示例代码1示例代码2代码示例3示例代码4 可以用opencv或者numpy的拼接函数,直接将两张图拼接到一起,很简单方便,参考代码2,推荐此方式。新建图片,将两张图片的像素值填充到新图片对应位…...
4G5G智能执法记录仪在保险公司车辆保险远程定损中的应用
4G智能执法记录仪:汽车保险定损的**利器 随着科技的不断进步,越来越多的智能设备应用到日常生活中。而在车辆保险定损领域,4G智能执法记录仪的出现无疑是一大**。它不仅可以实现远程定损,还能实现可视化操作、打印保单以及数据融…...
二十七、RestClient查询文档
目录 一、MatchALL查询 二、Match查询 三、bool查询 四、排序和分页 五、高亮 一、MatchALL查询 Testvoid testMatchAll() throws IOException { // 准备Request对象SearchRequest request new SearchRequest("hotel"); // 准备DSLrequest.source().q…...
百度云Ubuntu22.04
1. download 百度云 2. sudo dpkg -i ***.deb...
解除word文档限制,快速轻松,seo优化。
文章解密、找回和去除word文档密码的安全、简单、高效方法 具体步骤如下:1. 百度搜索【密码帝官网】,2. 点击“立即开始”在用户中心上传需要解密的文件,稍等片刻即可找回密码。这是最简单的办法,无需下载软件,适用于手…...
PHP和Node.js哪个更爽?
先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...
【磁盘】每天掌握一个Linux命令 - iostat
目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...
大语言模型如何处理长文本?常用文本分割技术详解
为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...
ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放
简介 前面两期文章我们介绍了I2S的读取和写入,一个是通过INMP441麦克风模块采集音频,一个是通过PCM5102A模块播放音频,那如果我们将两者结合起来,将麦克风采集到的音频通过PCM5102A播放,是不是就可以做一个扩音器了呢…...
从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...
Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)
参考官方文档:https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java(供 Kotlin 使用) 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...
嵌入式常见 CPU 架构
架构类型架构厂商芯片厂商典型芯片特点与应用场景PICRISC (8/16 位)MicrochipMicrochipPIC16F877A、PIC18F4550简化指令集,单周期执行;低功耗、CIP 独立外设;用于家电、小电机控制、安防面板等嵌入式场景8051CISC (8 位)Intel(原始…...
jdbc查询mysql数据库时,出现id顺序错误的情况
我在repository中的查询语句如下所示,即传入一个List<intager>的数据,返回这些id的问题列表。但是由于数据库查询时ID列表的顺序与预期不一致,会导致返回的id是从小到大排列的,但我不希望这样。 Query("SELECT NEW com…...
一些实用的chrome扩展0x01
简介 浏览器扩展程序有助于自动化任务、查找隐藏的漏洞、隐藏自身痕迹。以下列出了一些必备扩展程序,无论是测试应用程序、搜寻漏洞还是收集情报,它们都能提升工作流程。 FoxyProxy 代理管理工具,此扩展简化了使用代理(如 Burp…...
2.3 物理层设备
在这个视频中,我们要学习工作在物理层的两种网络设备,分别是中继器和集线器。首先来看中继器。在计算机网络中两个节点之间,需要通过物理传输媒体或者说物理传输介质进行连接。像同轴电缆、双绞线就是典型的传输介质,假设A节点要给…...
