4PCS、super4PCS粗配准算法理解

2023-10-27

参考了泡泡点云时空的文章4PCS点云粗配准算法介绍
一、4PCS系列的点云配准方法有点类似Ransac,通过找出目标点云和带配准点云中对应的两组点进行旋转平移求解出T,然后在众多的候选T中旋转一组最大重合的T。只是怎么找出对应点方法不一样,Ransac一般通过特征点及描述子去找对应点,而4PCS则是通过对应的同一平面四点组仿射不变性去找。该方法适用于重叠区域较小或者重叠区域发生较大变化场景点云配准,无需对输入数据进行预滤波和去噪,算法能够快速准确的完成点云配准。
4PCS论文 :4-POINTS CONGRUENT SETS FOR ROBUST SURFACE REGISTRATION
1.找出对应四点组
(1)基本原理
仿射不变性,两对点形成的线段交点其距离比例肯定是不变的
上图右侧每条线上应该是四个点,上面只显示从一个起始点其可能的交点,(一个连线,对面那个点也可以是起始点)。注意这些线段都是有方向的,即起始点和终点是有顺序的。
在这里插入图片描述
在这里插入图片描述

(2)方法描述
目标点云P中寻找满足要求的长基线(基线的确定与输入参数中overlap有很大关系,overlap越大,基线选择越长,长基线能够保证匹配的鲁棒性,且匹配数量较少)共面四点基,如图1用B={a,b,c,d}表示,然后提取共面四点基的拓扑信息,按式(1)计算四点基间的两个比例因子r1、r2,两比例因子在点云旋转和平移变化中具有仿射不变性。按式(2)计算q1,q2∈Q四种可能存在的交点位置,进而计算所有Q中长基线点对交点坐标,比较交点坐标确定匹配集合,ei≈ej表示寻找到对应的一致全等四点,i,j分别表示第i个和第j个Q中长基线点对。图1中B={a,b,c,d}的全等四点对为C={q1,q3,q4,q5}。寻找点云中所有P的共面四点集合记为E={B1,B2,…,Bm},m为P中四点集总数,重复上述步骤可得到全等四点集合D={C1,C2,…,Cn},n为全等四点集合总数。
最后,在集合D={C1,C2,…,Cn}寻找最优全等四点对,4PCS使用LCP策略寻找最优全等四点匹配,即计算全等四点旋转和平移变化参数,将四点转化应用到全局点云转化,记录全局配准中包含最大的一致区域匹配记为最优匹配,至此完成4PCS算法局部粗配准工作。
二 super 4PCS
论文:SUPER 4PCS Fast Global Pointcloud Registrationvia Smart Indexing
主要是优化了寻找四点组的方法,有点像RANSAC中去筛选随机点的方法,其中之一通过限定距离范围以及角度去筛选,之后用一种索引优化方法进行优化,具体的看完原文再续。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

4PCS、super4PCS粗配准算法理解 的相关文章

  • c++ STL vector知识点

    c 知识点 vector基本概念及定义 vector函数的构造 vector函数实现 vector基本概念及定义 头文件 include
  • VTK入门001——HelloVTK

    include VTKPlatform h vtkConeSource 是 VTK 库中的一个类 用于生成一个圆锥体的几何形状 include
  • 网站数据分析报告怎么写?

    网站数据分析报告怎么写 1 目标 Objective 是前提 网站分析报告的起点不是从现象开始的 而是从网站的目标 objective 开始的 我相信大多数网站的目标不应该超过1个 那些各种目标都应该归结为一个最终的最根本的目标 如果你的老
  • CTF show 萌新web-1

    首先看题目 代码整体逻辑是先通过GET请求传递参数id 如果id大于999 报错 如果小于999 则输出当前的执行的sql语句 如果根据id参数能在数据库中查到值 row 则将其打印出来 而flag则是id为1000的 row中的内容 这道
  • excel表格(.csv)保存到数据库--QT数据库

    刚学QT的菜鸟 无聊的时候总会找一点事情做 言归正传 将excel表格保存到数据库 是比较简单的 我的想法简单粗暴 从路径中获取文件 通过按键控制加载 将大象放进冰箱需要是三步 这个同样 1 获取路径 2 读取Excel文件 3 将其保存到
  • Domain-Specific Languages 23

    Domain Specific Languages Whenever you listen to a discussion by experts in any domain be it chess players kindergarten
  • 红日靶场(五)

    红日5 一 环境搭建 此次靶场虚拟机共用两个 一个外网一个内网 用来练习红队相关内容和方向 主要包括常规信息收集 Web攻防 代码审计 漏洞利用 内网渗透以及域渗透等相关内容学习 1 环境拓扑图 2 靶机下载地址 漏洞详情 3 我们设置VM
  • elasticsearch 集群配置

    主节点配置 集群名称 cluster name demo 节点名称 每个节点的名称不能重复 node name es node 1 ip 地址 每个节点的地址不能重复 network host 172 16 10 1 是不是有资格主节点 n
  • Python-schema的使用

    不管我们做什么应用 只要和用户输入打交道 就有一个原则 永远不要相信用户的输入数据 意味着我们要对用户输入进行严格的验证 web开发时一般输入数据都以JSON形式发送到后端API API要对输入数据做验证 一般我都是加很多判断 各种if 导
  • Python生成随机数,并将生成的随机数组成10道加减乘除的基本算术题目

    编写一个小学生算术能力测试题 提供10道加减乘除四种基本算术运算的题目 联系者根据显示的题目输入自己的答案 程序自动判断输入的答案是否正确并显示出相应的信息 生成一到一百的随机数 import random x random randint
  • SRM系统是什么?

    SRM全称Supplier Relationship Management 即供应商关系管理 SRM管理系统即供应商关系管理系统 供应商管理系统是采购管理系统的一个子系统 也是采购管理系统的一个重要模块 是用于改进企业与供应商关系的联系 完
  • Mysql主键约束和唯一约束

    Mysql约束 1 作用 约束定义为确保数据完整性必须遵循的规则 约束可以在创建表的过程中创建 也可以稍后再添加 在创建表后添加约束时 它将检查现有数据以确定其是否违背该约束 如果现有数据违背了将添加的约束 那么将不会向指定列施加该约束 2
  • 找不到文件、主类名和文件名不一致、缺少分号的解决方法

    1 找不到文件 解决方法 源文件名不存在或写错 或者当前路径错误 2 主类名和文件名不一致 解决方法 声明为public的主类应与文件名一致 否则编译失败 3 缺少分号 解决方法 编译失败 注意错误出现的行数 再到源代码中指定位置改错
  • shell实例流程控制&函数

    条件 if then elif then fi if的条件部分经常使用test EXPRESSION或 EXPRESSION 实现 test的用法可以参见test if 条件1 if 条件1 then then 执行语句1 elif 条件2
  • MetaMask安装使用指南

    前言 MetaMask是一个以太坊钱包插件 虽然只能在Chrome浏览器中使用 但作为以太坊钱包的metamask却很受以太坊开发者欢迎 MetaMask除了是一个简单的钱包 它主要卖点是让使用者可以很容易跟以太坊的智能合约互动 或者说说M
  • DLUT C++上机作业(实验六)

    注意 博客所有代码在VS上均能编译通过 codeblocks等编译器可能因为某些变量名无法识别而无法编译 我的VS上不能用end做变量名就很迷呀 2 有一个交通工具类vehicle 将它作为基类派生小车类car 卡车类truck和轮船类bo
  • Java面试必备,JVM核心知识点总结!

    JVM基础 程序计数器 Program Counter Register CPU中的寄存器 作用 记住下一条JVM指令 特点 线程私有 唯一一个不会出现内存溢出的区域 虚拟机栈 Java virtual mechine Stack 线程私有
  • 数据库查询: 列出表的所有字段,“*”符号,查询指定字段数据,DISTINCT查询,IN查询,BETWEEN AND查询,LIKE模糊查询,对查询结果排序,分组查询,统计分组查询

    数据库查询 列出表的所有字段 符号 查询指定字段数据 DISTINCT查询 IN查询 BETWEEN AND查询 LIKE模糊查询 对查询结果排序 分组查询 统计分组查询 列出表的所有字段 通过SQL语句SELECT列出表的所有字段 具体语

随机推荐

  • 软考-嵌入式系统设计师-笔记:嵌入式系统软件基础知识

    文章目录 嵌入式软件基础知识 嵌入式操作系统基础知识 任务调度 信号量 页面置换算法 嵌入式系统程序设计 嵌入式软件基础知识 嵌入式软件分类 系统软件 控制和管理嵌入式系统资源 为嵌入式应用提供支持的各种软件 如设备驱动程序 嵌入式操作系统
  • build中配置resource配置,来防止资源导出失败

  • 我最喜爱的十大技术文档写作工具

    转载 老实说 我爱死微软的Word了 Adobe FrameMaker也曾辉煌过 不过你懂的 这东西有时候会令人抓狂 过去5年来 我一直使用同一套写作工具 我也曾尝试过一些新的工具 可我最终还是很专情于我的老相好们 在这里我总结了一下我所用
  • MATLAB中GUI界面内数据的读取和存储操作

    要求GUI界面的输入数据为int16中频数据文件 输出数据也为int16中频数据文件 第一步 获取数据函数 uigetfile 先自己存储数据用于验证 将仿真数据以int16的格式存于txt文件中 分I O两路 I路代表实部 O路代表虚部
  • STM32f10x学习----ADC和DMA功能 后附具体操作及使用过程中遇到的问题

    学习某一个东西 我们首先要了解这个东西的定义是什么 用来干什么的 怎么用 用的过程中有什么注意事项 这些都OK了 那么我们就算是基本掌握他了 0 前言 ADC Analog to Digital Converter的缩写 指模 数转换器或者
  • PyTorch错误定位系列之CUDA error: device-side assert triggered

    PyTorch错误定位系列之CUDA error device side assert triggered Introduction 本栏目只是提供一些自己遇到的错误的解决思路 Background 我昨天写了个模型加了focal loss
  • 遗传算法GA优化BP神经网络(GA-BP)回归预测-Matlab代码实现

    一 前言 代码获取 评论区或者私信获取 遗传算法 Genetic Algorithm GA 和反向传播神经网络 Backpropagation Neural Network BPNN 都是常用的优化算法和模型 可以联合使用进行回归预测问题的
  • python多线程低效问题

    重点 Python由于有全锁局的存在 同一时间只能有一个线程执行 并不能利用多核优势 终于找到cpu利用率低的原因了 Python解释执行原理 我是一个Python线程 我的工作就是解释执行程序员编写的Python代码 之所以说是解释执行
  • 2018年Android最新面试题(一)

    最近在忙着找工作 所以趁热打铁写一份Android最新的面试题 希望可以帮助到大家 一直被问的问题Glide的源码 重点 最好和Picasso比较着说 Glide原理 自己看 https www jianshu com p 3d699bf0
  • APP过度索取问题严重,该如何有效解决?

    近几年移动应用市场发展快速 APP种类功能繁多 给人们的生活和工作带来了无限便捷 然而事物的发展必然有对立面 APP获取用户数据问题突出 同时加大了信息泄露的风险 工信部及各通信管理局等相关部门针对APP问题频频通报 使得移动应用开发商处于
  • 封闭岛屿数量 -- 二维矩阵的dfs算法

    1254 统计封闭岛屿的数目 这道题和 岛屿数量 二维矩阵的dfs算法 类似 区别在于不算边缘部分的岛屿 那其实很简单 把上 题中那些靠边的岛屿排除掉 剩下的就是 封闭岛屿 了 关于岛屿的相似题目 岛屿数量 二维矩阵的dfs算法 封闭岛屿数
  • openEuler 22.03-LTS 基础配置

    文章目录 1 设置语言环境 1 1 显示当前语言环境状态 1 2 列出可用的语言环境 1 3 设置语言环境 2 设置键盘 2 1 显示当前设置 2 2 列出可用的键盘布局 2 3 设置键盘布局 3 设置日期和时间 3 1 使用timedat
  • 聚合工程是什么?与微服务有什么区别和联系?

    1 聚合的概念 把项目的各个模块 子工程 聚合在一起构建 一般用于分模块开发 最后整体打包发布 Maven Project独立运行 Maven Module无法独立运行 2 聚合工程开发步骤 1 根项目是一个pom项目 2 子模块 Mave
  • Eigen 简单矩阵运算

    用到 Eigen Core 和 Eigen Dense 模块 矩阵定义 Eigen Matrix lt 数据类型 行数 列数 gt 矩阵名称 已经提供的矩阵类型 Vector3d 向量名称 实质上是 Eigen Matrix
  • Python 中 import 的机制与实现

    转自 http python jobbole com 82604 本文所涉及到的代码在github上 概述 Python 是一门优美简单 功能强大的动态语言 在刚刚接触这门语言时 我们会被其优美的格式 简洁的语法和无穷无尽的类库所震撼 在真
  • pandas简单学习(Spyder)

    1 导入Excel文件 data pd read excel D 下载 PlayTennis xlsx 2 查看数据维度 data7 data shape 3 查看数据类型 type data 4 索引 索引某一列 data1 data D
  • Linux之——添加VIP

    版权声明 本文为博主原创文章 未经博主允许不得转载 https blog csdn net l1028386804 article details 81347068 转载请注明出处 https blog csdn net l10283868
  • 使用VNA(Vector Network Analyzer)对S参数进行去嵌(二)

    使用VNA Vector Network Analyzer 对S参数进行去嵌 一 小孟boy的博客 CSDN博客 vna测s11公式 去嵌过程 无论是使用 EM 仿真工具创建的简化模型 如一段理想传输线 还是复杂模型用于测试夹具 现在都需要
  • Check failed: registry.count(type) == 1 (0 vs. 1) Unknown solver type: SGD (known types: )

    问题 在xcode下面编译调试caffe cpp时出现 Check failed registry count type 1 0 vs 1 Unknown solver type SGD known types 解决方法 在caffe cp
  • 4PCS、super4PCS粗配准算法理解

    参考了泡泡点云时空的文章4PCS点云粗配准算法介绍 一 4PCS系列的点云配准方法有点类似Ransac 通过找出目标点云和带配准点云中对应的两组点进行旋转平移求解出T 然后在众多的候选T中旋转一组最大重合的T 只是怎么找出对应点方法不一样