基于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,Te0,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,Tee,T>e(2)

  由于使用更加精确的距离表达代价函数,因此,MSAC 不仅可以得到更好的模型,还可以降低阈值的敏感度以及提高收敛速度。利用MSAC 进行局部基准面拟合的具体步骤如下:

  1. 从数据集中不重复地随机选择用于平面模型拟合的最小数据集 Q Q Q
  2. 利用最小二乘法和数据集 Q Q Q拟合平面模型 S S S ,得到模型参数。
  3. 计算所有点到平面模型 S S S的距离,在允许误差阈值范围内的点标记为“内点”,并计算该平面模型的代价 C i C_i Ci
  4. 比较当前模型的代价 C i C_i Ci 与之前最好模型的代价 C b C_b Cb的大小,记录较小者作为新的最好模型的代价,并记录对应的“内点”和模型参数。
  5. 重复步骤①-④,直到迭代结束,并得到“内点”数据。
  6. 利用“内点”数据,通过最小二乘法拟合平面模型,得到最佳的平面模型参数。

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拟合平面

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/195207.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

服务器运行情况及线上排查问题常用命令

一、top命令 指令行: top返回: 返回分为两部分 (一)系统概览,见图知意 以下是几个需要注意的参数 1、load average: 系统负载,即任务队列的平均长度。三个数值分别为 1分钟、5分钟、15分…

华为拆分零部件业务,长安入股,赛力斯接洽中

作者 |德新 编辑 |王博 11月26日,长安汽车官宣与华为在智能汽车零部件业务上的投资与合作: 华为拟成立一家新的公司,并将其在智能汽车解决方案业务上的核心技术和资源注入新公司,长安汽车及关联方有意投资该新公司。 参照目前长…

基于Webserver的工业数据采集控制

http协议 http简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于Web Browser(浏览器)到Web Server(服务器)进行数据交互的传输协议。 HTTP是应用层协议 HTTP是一个基于…

【日常总结】Swagger 3.0 + 集成 knife4j ,并设置header入参

一、场景 环境: 二、问题 思路 : 三、解决方案 (推荐) Stage 1:接入knife4j 依赖 Stage 2:修改 yaml 配置 Stage 3:修改 swagger 3 配置文件 Stage 4:查看效果 Swagger UI …

Spring源码解读之创建bean

本文章我们会解读一下Spring如何根据beanDefinition创建bean的; 代码入口: AnnotationConfigApplicationContext applicationContext new AnnotationConfigApplicationContext(AppConfig.class);applicationContext.refresh(); 当spring执行refresh(…

使用vscode中编写c语言——无法打开 源 文件 “stdlib.h“C/C++(1696)问题

出现这个问题原因如下: 1、没有下载编辑器或者是没有配置好该编辑器的环境变量。 可以通过如下方法检查是否安装并配置好编辑器:打开终端:按winR cmd,然后输入gcc-v,查看是否有mingw64编辑器,如下图是已经…

什么是yum?

🎈个人主页:🎈 :✨✨✨初阶牛✨✨✨ 🐻推荐专栏1: 🍔🍟🌯C语言初阶 🐻推荐专栏2: 🍔🍟🌯C语言进阶 🔑个人信条: 🌵知行合一 &#x1f…

JAVA进阶之路JVM-2:类加载机制,类的生命周期,类加载过程,类加载时机,类加载器,双亲委派模型,对象创建过程

JVM类加载机制 类加载 ​ 在JVM虚拟机实现规范中,通过ClassLoader类加载把*.class字节码文件(文件流)加载到内存,并对字节码文件内容进行验证,准备,解析和初始化,最终形成可以被虚拟机直接使用…

易基因: MeRIP-seq等从m6A RNA甲基化角度揭示NFATc1对破骨细胞的调控机制|研究速递

大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。 双膦酸盐类药物是强效骨吸收抑制剂,是治疗骨质疏松症、多发性骨髓瘤、骨转移等疾病的首选药物。这些药物通过抑制甲羟戊酸通路和促进破骨细胞凋亡来促进骨吸收。双膦酸盐类药…

计算机网络:快速了解网络框架

文章目录 前言一、什么是Internet?1.从具体构成角度什么是协议? 2.从服务角度3小结 二、网络边缘1.采用网络设施面向连接服务(TCP)2.采用基础设施的无连接服务(UDP) 三、网络的核心1.电路交换2.分组交换3.分…

如何在外远程访问本地NAS威联通QNAP?

🌈个人主页:聆风吟 🔥系列专栏:数据结构、Cpolar杂谈 🔖少年有梦不应止于心动,更要付诸行动。 文章目录 📋前言一. 威联通安装cpolar内网穿透二. 内网穿透2.1 创建隧道2.2 测试公网远程访问 三.…

DDD全网最通俗易懂讲解(二)

领域事件相关案例 我来给你介绍一个保险承保业务过程中有关领域事件的案例。 一个保单的生成,经历了很多子域、业务状态变更和跨微服务业务数据的传递。这个过程会产生很多的领域事件,这些领域事件促成了保险业务数据、对象在不同的微服务和子域之间的…

数据库基础入门 — 关联查询

我是南城余!阿里云开发者平台专家博士证书获得者! 欢迎关注我的博客!一同成长! 一名从事运维开发的worker,记录分享学习。 专注于AI,运维开发,windows Linux 系统领域的分享! 本…

docker容器运维操作命令

docker exec :在运行的容器中执行命令 docker exec [OPTIONS] CONTAINER COMMAND [ARG...] OPTIONS说明: -d :分离模式: 在后台运行 -i :即使没有附加也保持STDIN 打开 -t :分配一个伪终端docker ps : 列出容器 docker ps [OPTIONS] OPTIONS说明&#…

P8安全基本理论A001-CIA安全模型-使用PGP描述网络安全CIA模型之私密性、完整性案例

【教学资源名称】 CIA安全模型-使用PGP描述网络安全CIA模型之私密性、完整性案例 【预备知识】 在信息安全等级保护工作中,根据信息系统的机密性(Confidentiality)、完整性(Integrity)、可用性(Availabilit…

MySQL的索引

📑打牌 : da pai ge的个人主页 🌤️个人专栏 : da pai ge的博客专栏 ☁️宝剑锋从磨砺出,梅花香自苦寒来 目录 🌤️概念 &#x1f…

vue3安装eslint和prettier,最简单的步骤

第1步: 安装eslint yarn add eslint -D 第2步: 在根文件夹中,创建.eslintrc.js文件 第3步: 在package.json文件中新增命令 "lint": "eslint --fix --ext .ts,.tsx,.vue src --quiet","prettier"…

Day49:647. 回文子串、516.最长回文子序列

文章目录 647. 回文子串思路代码实现 516.最长回文子序列思路代码实现 647. 回文子串 题目链接 思路 确定dp数组(dp table)以及下标的含义 布尔类型的dp[i][j]:表示区间范围[i,j] (注意是左闭右闭)的子串是否是回文…

第20章 多线程

创建线程 继承Thread 类 Thread 类时 java.lang 包中的一个类,从类中实例化的对象代表线程,程序员启动一个新线程需要建立 Thread 实例。 Thread 对象需要一个任务来执行,任务是指线程在启动时执行的工作,start() 方法启动线程&am…

mysql 命令行导入sql 数据,windows导入,强制导入

线上用了polarDB, 本地导入的时候,通过navicat 的备份导入和执行sql文件的方式导入都失败了 用命令行的方式可以导入sql 当我用windows 的cmd 导入的时候,会报一些命令行的错误。 那其实我检查了这个命令是没有问题的。 mysql -uroot -p hu…