点云配准--对称式ICP

对称式ICP

写在前面的话

针对于局部平面不完美的情况,提出了一种对称式ICP目标函数,相较于传统的ICP方法,增大了收敛域,提高了收敛速度。论文理论说明不甚清楚,实验较少,但代码开源。

理论

对称目标函数

在icp中对于一对对应点p,q:在点到法线的度量中:
( p − q ) ⋅ n q (3) (p-q) \cdot n_q\tag{3} (pq)nq(3)
只有当局部表面是一个完美平面时上式才成立,因此提出一种标准对称式度量:
( p − q ) ⋅ ( n p + n q ) . (4) (p-q) \cdot\left(n_p+n_q\right) .\tag{4} (pq)(np+nq).(4)
在这里插入图片描述

如图1所示,只要p,q位于圆弧上,此时向量(p-q)垂直于向量(np-nq),等式4恒成立。
在这里插入图片描述

图2中,当 p 相对于 q 移动时,只要存在某个与 p、q、np 和 nq 一致的圆弧,性质 (p − q) · (np + nq ) = 0 就成立。点到面:当 p 位于 q 和 nq 定义的平面中时,无论 np 如何,点到平面度量为零。
对于等式4而言,在 3D 中也成立:只要 p 和 q 及其法线与某个圆柱体一致,方程 4 的计算结果就为零。
此外,4.1 节研究了一个不同的属性:只要 p 和 q 与位于它们之间的局部二阶曲面一致,方程 4 也成立。虽然此约束仍然为 (p, np ) 相对于 (q, nq ) 移动提供了更大的自由度,但它是比点到平面度量提供的“更有用”的自由形式。(增大了收敛域,更容易找到全局最优变换)。
对于目标函数而言,大多数先前的工作仅将刚体变换应用于其中一个表面(例如,点到面中的变换仅应用于 p),但我们考虑变换的对称形式:我们想象在一个固定的“中性”坐标中(既不在p坐标系也不在q坐标系中)评估度量,并对 P 和 Q 应用相反的变换。因此,我们可以将对称目标制定为:
E s y m m − R N = ∑ i [ ( R i − R − 1 q i + t ) ⋅ ( R n p , i + R − 1 n q , i ) ] 2 , (5) \mathcal{E}_{s y m m-R N}=\sum_i\left[\left(\mathrm{R}_i-\mathrm{R}^{-1} q_i+t\right) \cdot\left(\mathrm{R} n_{p, i}+\mathrm{R}^{-1} n_{q, i}\right)\right]^2,\tag{5} EsymmRN=i[(RiR1qi+t)(Rnp,i+R1nq,i)]2,(5)
我们还探索了该目标的一个更简单的版本,其中法线不旋转。也就是说,每个点对的最小化方向保持固定,而点本身沿相反方向旋转:
E s y m m = ∑ i [ ( R i − R − 1 q i + t ) ⋅ ( n p , i + n q , i ) ] 2 (6) \mathcal{E}_{s y m m}=\sum_i\left[\left(\mathrm{R}_i-\mathrm{R}^{-1} q_i+t\right) \cdot\left(n_{p, i}+n_{q, i}\right)\right]^2\tag{6} Esymm=i[(RiR1qi+t)(np,i+nq,i)]2(6)
为什么这是一个合理的简化?考虑二维中两个单位长度向量的总和。对向量应用相反的旋转可以保留它们的总和的方向,以便每个点对对目标的两个变体的贡献在一定程度上是相同的。在 3D 中,并非所有旋转轴都如此,但当 np 接近 nq 时,这一点也接近正确。 4.3 节中的实验表明,两个目标导致相似的收敛,但 Esymm 导致更简单的推导和实现。因此,本文的其余部分采用 Esymm 作为对称目标。

线性化

我们从 Rodrigues 旋转公式开始的线性化,以了解旋转 R 对向量 v 的影响:
R v = v cos ⁡ θ + ( a × v ) sin ⁡ θ + a ( a ⋅ v ) ( 1 − cos ⁡ θ ) (7) \mathrm{R} v=v \cos \theta+(a \times v) \sin \theta+a(a \cdot v)(1-\cos \theta)\tag{7} Rv=vcosθ+(a×v)sinθ+a(av)(1cosθ)(7)
其中 a 和 θ 是旋转轴和角度。我们观察到,(7) 中的最后一项与增量旋转角 θ 成二次方,因此我们将其丢弃以进行线性化:
R v ≈ v cos ⁡ θ + ( a × v ) sin ⁡ θ = cos ⁡ θ ( v + ( a ~ × v ) ) , (8) \begin{aligned} \mathrm{R} v & \approx v \cos \theta+(a \times v) \sin \theta \\ & =\cos \theta(v+(\tilde{a} \times v)), \end{aligned}\tag{8} Rvvcosθ+(a×v)sinθ=cosθ(v+(a~×v)),(8)

where a ~ = a tan ⁡ θ \tilde{a}=a \tan \theta a~=atanθ. Substituting into (6),
E symm  ≈ ∑ i [ cos ⁡ θ ( p i − q i ) ⋅ n i + cos ⁡ θ ( a ~ × ( p i + q i ) ) ⋅ n i + t ⋅ n i ] 2 = ∑ i cos ⁡ 2 θ [ ( p i − q i ) ⋅ n i + ( ( p i + q i ) × n i ) ⋅ a ~ + n i ⋅ t ~ ] 2 , (9) \begin{aligned} \mathcal{E}_{\text {symm }} \approx & \sum_i\left[\cos \theta\left(p_i-q_i\right) \cdot n_i+\right. \\ & \left.\cos \theta\left(\tilde{a} \times\left(p_i+q_i\right)\right) \cdot n_i+t \cdot n_i\right]^2 \\ =\sum_i \cos ^2 \theta & {\left[\left(p_i-q_i\right) \cdot n_i+\right.} \\ & \left.\left(\left(p_i+q_i\right) \times n_i\right) \cdot \tilde{a}+n_i \cdot \tilde{t}\right]^2, \end{aligned}\tag{9} Esymm =icos2θi[cosθ(piqi)ni+cosθ(a~×(pi+qi))ni+tni]2[(piqi)ni+((pi+qi)×ni)a~+nit~]2,(9)
其中 n i = n p , i + n q , i n_i=n_{p, i}+n_{q, i} ni=np,i+nq,i and t ~ = t / cos ⁡ θ \tilde{t}=t / \cos \theta t~=t/cosθ。现在,我们对目标进行额外的近似加权 1/cos2 θ ,对于较小的 θ ,该值接近 1。 为了数值稳定性进一步考虑归一化,等式9变为如下形式:
∑ i [ ( p ~ i − q ~ i ) ⋅ n i + ( ( p ~ i + q ~ i ) × n i ) ⋅ a ~ + n i ⋅ t ~ ] 2 (10) \sum_i\left[\left(\tilde{p}_i-\tilde{q}_i\right) \cdot n_i+\left(\left(\tilde{p}_i+\tilde{q}_i\right) \times n_i\right) \cdot \tilde{a}+n_i \cdot \tilde{t}\right]^2\tag{10} i[(p~iq~i)ni+((p~i+q~i)×ni)a~+nit~]2(10)
where p ~ i = p i − p ˉ \tilde{p}_i=p_i-\bar{p} p~i=pipˉ and q ~ i = q i − q ˉ \tilde{q}_i=q_i-\bar{q} q~i=qiqˉ. This is a least-squares problem in a ~ \tilde{a} a~ and t ~ \tilde{t} t~, and the final transformation from P \mathcal{P} P to Q Q Q is:
trans ⁡ ( q ˉ ) ∘ rot ⁡ ( θ , a ~ ∥ a ~ ∥ ) ∘ trans ⁡ ( t ~ cos ⁡ θ ) ∘ rot ⁡ ( θ , a ~ ∥ a ~ ∥ ) ∘ trans ⁡ ( − p ˉ ) , (11) \operatorname{trans}(\bar{q}) \circ \operatorname{rot}\left(\theta, \frac{\tilde{a}}{\|\tilde{a}\|}\right) \circ \operatorname{trans}(\tilde{t} \cos \theta) \circ \operatorname{rot}\left(\theta, \frac{\tilde{a}}{\|\tilde{a}\|}\right) \circ \operatorname{trans}(-\bar{p}),\tag{11} trans(qˉ)rot(θ,a~a~)trans(t~cosθ)rot(θ,a~a~)trans(pˉ),(11)
where θ = tan ⁡ − 1 ∥ a ~ ∥ \theta=\tan ^{-1}\|\tilde{a}\| θ=tan1a~.
理论到此结束,后面我会对代码进行分析测试。

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

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

相关文章

elementUI树节点全选,反选,半选状态

// <template>部分 <div class"check-block"><el-divider></el-divider><el-checkbox :indeterminate"indeterminate" v-model"checkAll" change"handleCheckAllChange">全选</el-checkbox><e…

1-1 prometheus 概述

一、概述 二、特点 三、核心组件 四、基础架构 4.1 Prometheus 的主要模块包含 4.2 运行逻辑 五、Prometheus 与 Zabbix 的对比 六、总结 一、概述 1. 什么是prometheus? 开源系统监控 和 警报工具包受启发于Google的Brogmon监控系统(相似的Kubernetes是从Google的Br…

518抽奖软件,可从Excel~Word~Pdf~网页导入名单

518抽奖软件简介 518抽奖软件&#xff0c;518我要发&#xff0c;超好用的年会抽奖软件&#xff0c;简约设计风格。 包含文字号码抽奖、照片抽奖两种模式&#xff0c;支持姓名抽奖、号码抽奖、数字抽奖、照片抽奖。(www.518cj.net) 从Excel、WPS表格导入 整列&#xff1a; 用鼠…

华泰证券:新奥能源:零售气待恢复,泛能与智家仍是亮点

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 猛兽财经获悉&#xff0c;由于新奥能源&#xff08;02688&#xff09;发布三季度经营数据&#xff1a; 1-3Q23&#xff1a;天然气零售量yoy-4.7%&#xff0c;燃气批发量yoy17.6%&#xff0c;综合能源销量yoy34.2%&#xff…

Java中 #{}和${}的区别

2023.10.31 #{}&#xff1a;先编译sql语句&#xff0c;再给占位符传值&#xff0c;底层是PreparedStatement实现。可以防止sql注入&#xff0c;比较常用。 ${}&#xff1a;先进行sql语句拼接&#xff0c;然后再编译sql语句&#xff0c;底层是Statement实现。存在sql注入现象。…

A. Directional Increase -前缀和与差分理解 + 思维

题面 分析 观察指针移动的性质&#xff0c;可以发现每一段都是从起点走到终点&#xff0c;在原路返回&#xff0c;这样每一段也就表示&#xff0c;在起点处加一&#xff0c;在终点处减一&#xff0c;形成了很明显的差分结构&#xff0c;思考能否构造出a数组的关键就是他的前缀…

JavaScript之React

前言 React 是一个用于构建用户界面的 JavaScript 库&#xff0c;由 Facebook 开发。它可以让开发者编写可重复使用的 UI 组件&#xff0c;并且可以自动地更新 UI。React 的运行原理可以分为两个部分&#xff1a;虚拟 DOM 和组件更新。 虚拟 DOM React 使用虚拟 DOM 来代表实…

生态扩展:Flink Doris Connector

生态扩展&#xff1a;Flink Doris Connector 官网地址&#xff1a; https://doris.apache.org/zh-CN/docs/dev/ecosystem/flink-doris-connector flink的安装&#xff1a; tar -zxvf flink-1.16.0-bin-scala_2.12.tgz mv flink-1.16.0-bin-scala_2.12.tgz /opt/flinkflink环境…

相关性网络图 |显著性标记

一边学习&#xff0c;一边总结&#xff0c;一边分享&#xff01; 本期教程 写在前面 此图是一位同学看到后&#xff0c;想出的一期教程。 最近&#xff0c;自己的事情比较多&#xff0c;会无暇顾及社群和公众号教程。 1 安装和加载相关的R包 library(ggraph) library(tidy…

MATLAB R2018b详细安装教程(附资源)

云盘链接&#xff1a; pan.baidu.com/s/1SsfNtlG96umfXdhaEOPT1g 提取码&#xff1a;1024 大小&#xff1a;11.77GB 安装环境&#xff1a;Win10/Win8/Win7 安装步骤&#xff1a; 1.鼠标右击【R2018b(64bit)】压缩包选择【解压到 R2018b(64bit)】 2.打开解压后的文件夹中的…

笔记本电脑的键盘鼠标如何共享控制另外一台电脑

环境&#xff1a; 联想E14 x2 Win10 across 2.0 问题描述&#xff1a; 笔记本电脑的键盘鼠标如何共享控制另外一台电脑 解决方案&#xff1a; 1.下载across软件&#xff0c;2台电脑都按装&#xff0c;一台设为服务端&#xff0c;一台客户端 2.把配对好设备拖到右边左侧…

第3章_基本select语句

文章目录 SQL概述SQL背景知识SQL分类 SQL语言的规则与规范SQL语言的规则SQL大小写规范注释命令规则&#xff08;暂时了解&#xff09;数据导入指令 基本的select语句select ...select ... from列的别名去除重复行空值参与运算着重号查询常数 显示表结构讲课代码课后练习 SQL概述…

【Spring Boot】详解restful api

目录 1.restful api 1.1.历史 1.2.内容 1.3.传参 2.Spring Boot中的Restful Api 1.restful api 1.1.历史 RESTful API&#xff08;Representational State Transferful Application Programming Interface&#xff09;是一种设计风格&#xff0c;用于构建基于网络的应用…

微信小程序怎么制作?【小程序开发平台教学】

随着移动互联网的快速发展&#xff0c;微信小程序已经成为了人们日常生活中不可或缺的一部分。从购物、支付、出行到社交、娱乐、教育&#xff0c;小程序几乎涵盖了我们生活的方方面面。那么&#xff0c;对于有营销需求的企业商家来说&#xff0c;如何制作一个自己的微信小程序…

RPC与HTTP的关系

首选理清楚关系 RPC与HTTP是两个不同维度的东西 HTTP 协议&#xff08;Hyper Text Transfer Protocol&#xff09;&#xff0c;又叫做超文本传输协议&#xff0c;是一种传输协议&#xff0c;平时通过浏览器浏览网页网页&#xff0c;用到的就是 HTTP 协议。 而 RPC&#xff0…

10.2 一文读懂SPI与DSPI、QSPI、OSPI关系与异同

本文主要内容: 1 SPI与DSPI、QSPI、OSPI定义 2 SPI与xSPI对比 3 常用的nor flash 4 驱动架构 5 xSPI镜像烧录 1 SPI与DSPI、QSPI、OSPI定义 1)标准SPI 通过说的SPI,称为标准SPI,是一种串行外设接口,通过有4根线控制,CLK、CS、MISO、MOSI,可工作于4种模式,一般是主机…

【Unity小技巧】可靠的相机抖动及如何同时处理多个震动(附项目源码)

文章目录 每篇一句前言安装虚拟相机虚拟相机震动测试代码控制震动清除震动控制震动的幅度和时间 两个不同的强弱震动同时发生源码完结 每篇一句 围在城里的人想逃出来&#xff0c;站在城外的人想冲进去&#xff0c;婚姻也罢&#xff0c;事业也罢&#xff0c;人生的欲望大都如此…

三.RocketMQ单机安装及集群搭建

RocketMQ单机安装及集群搭建 一&#xff1a;安装环境1.软硬件要求2.下载RocketMQ 二.安装单机MQ1.上传并解压2.目录介绍3.修改MQ启动时初始JVM内存4.启动NameServer与Broker5.测试RocketMQ 三.RocketMQ集群搭建1.集群概念特点2.集群模式分类3.集群工作流程4.双主双从集群搭建4.…

【C++】C++11常见特性

&#x1f307;个人主页&#xff1a;平凡的小苏 &#x1f4da;学习格言&#xff1a;命运给你一个低的起点&#xff0c;是想看你精彩的翻盘&#xff0c;而不是让你自甘堕落&#xff0c;脚下的路虽然难走&#xff0c;但我还能走&#xff0c;比起向阳而生&#xff0c;我更想尝试逆风…