首页 > 其他分享 >sim(3)变换的理论与推导

sim(3)变换的理论与推导

时间:2024-12-14 20:31:53浏览次数:6  
标签:推导 变换 矩阵 残差 三维 四元 向量 坐标系 sim

前言

Sim(3)三维空间的相似变换,计算Sim(3)实际上就是计算三个参数:旋转R、平移t、尺度因子s。

计算Sim(3) 的目的: 已知至少三个匹配的不共线的三维点对,求它们之间的相对旋转、平移、尺度因子。

假设坐标系1下有三个不共线的三维点P1,P2,P3,它们分别和坐标系2下的三个不共线的三维点 Q1 , Q2 ,Q3对应。

1.构建一个新的坐标系: 

根据坐标系1下的三个点,计算各个方向的单位向量。

1.x方向 

2.y方向 

后者利用了向量的投影公式。 

3. z方向

同理也可对坐标系2求解坐标系单位向量。

2.由坐标系单位向量构成的基底矩阵分别记为: 

3.设一向量v,它在不同基底的坐标系下分为v1,v2,两者是同一向量在不同坐标系下的表示,满足下列关系: 

4.由此推出从坐标系1到坐标系2的旋转为:

利用上述方法计算Sim(3)中的参数R会存在一些问题:

1.假设我们在构建新的坐标系时,不是以P1为坐标原点时,得到的结果会不同。

2.这种方法只适合匹配点是三对的情况,当大于三对点时则不适用。

所以我们采用一种更稳定、更精确的计算方式:最小二乘法

 最小二乘法求解sim(3)变换 

1.构建残差方程 

假如我们得到了n(n>3)对匹配的三维点观测坐标分别记为P = {Pi} 和Q = {Qi} ,根据变换关系有:

我们定义一个误差ei: 

最后的目的就转化为寻找s、R、t使得ei最小,这就变成了一个最小二乘问题: 

定义两个三维点集合中所有三维点的均值向量:

求解去中心化后的坐标向量: 

性质: 

将残差方程作适当变形和化简:

令: 

化简为: 

利用去中心化坐标向量的性质化简: 

2. 计算sim(3)中的尺度因子s

利用残差方程的第一项:

对第一项进行展开并化简有: 

其中旋转对模长无影响则有:

最后的结果为: 

适当的进行变形: 

可以看出这是一个关于s的一元二次方程,利用方程性质得出s的值为:

但是这里存在一个不对称问题:我们调换了变换顺序但是尺度因子却不是倒数:

因此尺度因子并不具有对称性,因此要利用下面的构造函数来使其对称:

从这个等式可以看出第一项只和s有关,我们可以的出最优解s使第一项等于0: 

从等式的第二项可以看出使D尽可能大就会使残差尽可能小。 

3. 计算sim(3)中的旋转R

在利用旋转矩阵时需要保证矩阵的正交性的约束但是这个约束太强了,因此我们可以用四元数来代替,这样只需要保证四元数的模值为1即可,有利于推导。

对于空间中的三维点P=[x,y,z]可以用一个虚四元数进行表示: 

四元数的一些性质: 

1. 旋转可以用单位四元数q\dot{} 进行表示,旋转变换为:

其中单位四元数的逆是其共轭四元数。 

2.四元数的矩阵表示:

3. 

计算R 

我们对求尺度因子s中D做出适当化简变形:

令去中心化的坐标向量分别为: 

利用四元数性质转换成对称矩阵的形式: 

我们先定义一个矩阵M来简化矩阵N的表示: 

则最后的矩阵N的形式为: 

我们对其进行特征值分解,求出最大特征值对应的特征向量就是待求的最优四元数。 

4.计算sim(3)中的平移t

利用残差方程的第二项: 

我们观察残差方程等式右侧全是大于等于0的平方项并且只有第二项与平移t有关,因此只需要让第二项为0即可找到最优解t使得残差尽可能小: 

结束语

以上就是我学习到的内容,如果对您有帮助请多多支持我,如果哪里有问题欢迎大家在评论区积极讨论,我看到会及时回复。

标签:推导,变换,矩阵,残差,三维,四元,向量,坐标系,sim
From: https://blog.csdn.net/2301_76831056/article/details/144474385

相关文章

  • 无刷电机的控制模型(Park变换 )
    目录概述1无刷电机的转动原理1.1转动原理模型 1.2引入控制原理2数学模型的介绍(Park变换)2.1Park变换2.1.1(Iα​,Iβ​)坐标系2.1.2(Id​,Iq)坐标系2.1.3变换方法实现2.2 Park逆运算2.3Park变换的应用概述本文主要介绍直流无刷电机的控制原理和数学模型......
  • 变换ip是什么意思?如何变ip地址
    在网络的世界里,IP地址扮演着至关重要的角色,它如同设备的“网络身份证”,确保信息的准确传输。然而,在某些情况下,我们可能需要变换这个“身份证”,也就是更换IP地址。那么,变换IP到底是什么意思?如何改变IP地址呢?接下来,我们将深入探讨这两个问题。【一】变换IP是什么意思变换IP,即......
  • 【线性代数】矩阵的初等变换与线性方程组
    线性代数第三章矩阵的初等变换与线性方程组\(\S1\)矩阵的初等变换定义1初等变换(i)对换两行;(ii)以数\(k(k\not=0)\)乘某一行中的所有元;(iii)把某一行所有元的\(k\)倍加到另一行对应的元上去。显然上述三种变换均为可逆变换。将上述的行改为列即可得到初等列变......
  • 三维坐标旋转矩阵推导过程以及C语言实现
    此篇文章在2023年9月13日被记录前提:坐标使用右手坐标系,角度逆时针旋转为正。绕X轴旋转角度为俯仰角即Pitch绕Y轴旋转角度为偏航角即Yaw(Head)绕Z轴旋转角度为翻滚角即Roll1、平面二维坐标点的旋转根据三角函数关系,可以列出向量OP与OP'的坐标表示形式:x=|OP|•co......
  • QT日志类SimpleQtLogger的简单记录
    在现代软件开发中,日志记录是必不可少的部分。它不仅帮助开发者在调试和维护软件时了解程序的运行状态,还能提供关键的错误信息。对于使用Qt框架开发应用程序的开发者来说,选择一个合适的日志库至关重要。本文将详细介绍Qt日志库SimpleQtLogger的特点、安装方法、使用示例以及它在实......
  • 企业消费管理再进阶:SIMPLE模型帮你选择服务商
    公司上万名员工每天满世界飞,差旅应该怎么管?员工出差、加班,每天数万单打车费用,怎么管?招待用餐和员工用餐,如何做到能成本更低,体验更好?包括差旅、招待用餐、员工用餐、用车、福利等,都是企业消费的核心场景。在当前的经济形势下,企业焦点已经从单纯追求用户规模增长,转向企业经营的全方......
  • 题解:P10252 线性变换
    思路好的,乍一看可以暴力枚举,但本蒟蒻不会。打这场赛时,我在上课,然后我灵机一动,如果\(x\timesa-b\gex\)就直接输出\(x\),否则输出\(x\timesa-b\),结果拿了个20分,我也没多想。在经过一些思考和寻求帮助后,我发现,\(a=0\)或\(a=1\)时,要有个特判:\(a=0\)时,看看......
  • Dapper.SimpleCRUD:Dapper的CRUD助手
    我们在项目开发中,面对一些高并发、大数据量等业务场景,往往对SQL语句的性能要求比较高,这个时候为了方便灵活控制,我们一般就会编写原生的SQL。Dapper就是一个非常高性能的轻量级ORM框架,Dapper采用原生SQL语句的方式,对于CRUD这些简单操作我们一般都会自行封装,不然就会变成很繁琐。......
  • Simulink在机器人视觉场景下的应用——基于视觉的无人机自主导航与避障
    目录项目实例:Simulink在机器人视觉场景下的应用——基于视觉的无人机自主导航与避障项目背景1.系统架构1.1硬件平台1.2软件平台2.系统功能模块2.1图像采集与预处理2.2地形识别与建图2.3障碍物检测与分类2.4环境建图与定位2.5路径规划与避障2.6飞行控制与......
  • 【硕士论文复现】【三相PWM整流器的研究】三相PWM整流器PI解耦双闭环控制研究(Simulink
      ......