为什么 sim(3) 中的尺度 s 与旋转 R 相乘,而不是平移 t?

文章目录

  • 为什么 sim(3) 中的尺度 s 与旋转 R 相乘,而不是平移 t?
    • 1️⃣ sim(3) vs SE(3):结构对比与核心差异
    • 2️⃣ 为什么尺度 s 不乘在 t 上?
      • 🚫 数学破坏:
      • 🧭 几何解释:
    • 3️⃣ t 是“相对位置”,s 才是“真实尺度”
    • 4️⃣ 图解:SE(3) 与 sim(3) 的视觉差异
    • 5️⃣ 延伸思考:SLAM 系统中尺度恢复方式
    • ✅ 总结一句话:
  • 参考


为什么 sim(3) 中的尺度 s 与旋转 R 相乘,而不是平移 t?

在视觉 SLAM 和三维重建中,相似变换 sim(3) 是一个关键数学模型,它可以表示三维空间中物体的旋转、平移与尺度变化。但许多初学者和研究者在面对 sim(3) 变换时都会提出一个非常有代表性的问题:

既然 sim(3) 中的尺度 s 是用来恢复真实物理尺度的,那为什么 s 只作用在旋转 R 上,而不是也作用在平移 t 上?

这篇文章将从变换结构、几何逻辑和 SLAM 系统中尺度不确定性的本质三个角度,深入分析这个问题。


1️⃣ sim(3) vs SE(3):结构对比与核心差异

在欧式变换 SE(3) 中,我们熟悉的刚性变换形式是:

T=[Rt01],x′=Rx+tT = \begin{bmatrix} R & t \\ 0 & 1 \end{bmatrix}, \quad x' = R x + t T=[R0t1],x=Rx+t

这个变换会保持物体的形状与尺度,不会改变两点之间的距离。

而在相似变换 sim(3) 中,我们引入了尺度因子 s,变换形式为:

T=[sRt01],x′=sRx+tT = \begin{bmatrix} sR & t \\ 0 & 1 \end{bmatrix}, \quad x' = sR x + t T=[sR0t1],x=sRx+t

这里的 s 和 R 是共同作用于点 x 的,而 t 是直接叠加的平移项

核心结论:

sim(3) 改变了物体的尺度(边长变了),但保持了形状(角度、比例不变)。


2️⃣ 为什么尺度 s 不乘在 t 上?

很多人会自然地想象成:

x′=sRx+stx' = s R x + s t x=sRx+st

但这实际上破坏了 sim(3) 的群结构,并且在数学和几何逻辑上都不合理:

🚫 数学破坏:

若将变换写成:

T=[sRst01]T = \begin{bmatrix} sR & st \\ 0 & 1 \end{bmatrix} T=[sR0st1]

我们可以提取一个因子 s:

T=s⋅[Rt01s]T = s \cdot \begin{bmatrix} R & t \\ 0 & \frac{1}{s} \end{bmatrix} T=s[R0ts1]

这不再是一个仿射变换,也不符合 Lie 群 sim(3) 的封闭性和组合规律。

🧭 几何解释:

  • R 与 s 一起描述“对物体的变换”:旋转 + 缩放
  • t 单独控制“变换后物体位于哪里”,是纯平移

如果你也对 t 进行缩放,反而失去了 t 的原始几何意义


3️⃣ t 是“相对位置”,s 才是“真实尺度”

在实际系统中(尤其是单目 SLAM),恢复出来的 t 本身只是“方向”或“相对距离”:

t^=1st\hat{t} = \frac{1}{s} t t^=s1t

也就是说:我们无法从图像中知道 t 的真实长度,只能恢复方向,尺度信息则全都被 s 吸收了。

所以:

sim(3) 中的 t 只是一个相对位移量,而不是可用于恢复物理尺度的“基线”向量。


4️⃣ 图解:SE(3) 与 sim(3) 的视觉差异

下面这张图展示了 Se(3) 与 sim(3) 的核心区别:

  • 左边:SE(3) 变换仅包含旋转 + 平移,图形大小不变
  • 右边:sim(3) 变换引入了尺度因子,图形大小发生变化

图中也强调:s 与 R 一起作用于物体本体,而 t 控制变换后的“相对摆放位置”


5️⃣ 延伸思考:SLAM 系统中尺度恢复方式

不同类型的 SLAM 系统,对尺度 s 的恢复能力不同:

SLAM 类型能否恢复 s?原因说明
单目 SLAM❌ 无法恢复没有绝对基线信息,t 是 up-to-scale
双目 SLAM✅ 可恢复基线长度已知,通过三角化解出尺度
IMU 融合✅ 可恢复IMU 提供真实加速度和重力方向
GPS/融合定位✅ 可恢复GPS 提供全局坐标参考系

✅ 总结一句话:

在 sim(3) 中,尺度 s 是用来缩放物体自身的几何结构,而 t 是物体变换后的位置偏移,两者语义不同、作用不同,因此 s 只能乘在 R 上,不能乘在 t 上。

参考

怎么解释相似变换sim(3)中的尺度?


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

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

相关文章

如何为你的 Docker 容器设置代理网络

一文搞定!如何为你的 Docker 容器设置代理网络(及一个最常见的“坑”) 你是否遇到过这样的窘境:在你的服务器上,代理工具(比如 Clash, V2Ray)运行得好好的,浏览器也能科学上网,但一旦把应用放进 Docker 容器,它就瞬间“失联”,无法访问外部世界? 别担心,这是每个…

LeetCode Day3 -- 哈希表

目录 1. 啥是哈希表? 2. 啥时候用哈希表? 2.1 存在性检查 → 集合Set 2.2 键值映射 → 字典Dict 2.3 频率统计 → Dict or Counter 3. LeetCode 3.1 集合 (1)2215 找出两数组的不同 (2)1207 独一无…

三子棋装置(电赛24E题)K230/STM32全开源

三子棋装置(电赛24E题)K230/STM32全开源,后续有具体代码参数讲解,帮助大家移植k230代码import time, os, sysfrom media.sensor import * from media.display import * from media.media import *from machine import UART from m…

终端安全检测与防御

1. 终端安全风险主要问题:企业网络中80%的安全事件源于终端,终端成为黑客攻击的重要目标。攻击手段:勒索病毒:直接勒索用户。横向渗透:通过受控终端攻击内部服务器。僵尸网络危害:信息窃取、钓鱼网站引导、…

Video_AVI_Packet(2)

博主声明:内容来自网络,仅供参考,仅适用于浅了解,如有错误,自行甄别,由此引起的后果概不负责 Video_AVI_Packet(2)一、Video Picture Aspect Ratio 与 Active Format Aspect Ratio1.…

八月补丁星期二:微软修复 111 个漏洞

微软将在2025 年 8 月补丁星期二修复 111 个漏洞,这一数量与近期平均水平大致相同。 与上个月的情况类似,微软知道今天发布的漏洞中只有一个已被公开披露,但声称没有证据表明存在野外利用。同样,截至发布时,唯一的补丁…

《C++进阶之继承多态》【普通类/模板类的继承 + 父类子类的转换 + 继承的作用域 + 子类的默认成员函数】

【普通类/模板类的继承 父类&子类的转换 继承的作用域 子类的默认构造函数】目录前言:------------------------一、继承的定义和使用1. 什么使继承?2. 为什么要引入继承?3. 怎么使用继承?① 父类(基类&#xf…

Ubuntu22.04安装OBS Studio

OBS官网的最新的虽然支持Ubuntu系统,但是只支持最新的24.2版本的,而我的电脑上的Ubuntu的版本是22.04,所以在网上寻求解决办法,看到了这一片博客,作为参考来实现ubuntu22.04安装OBS,这里提示一下&#xff0…

Ansible 基本使用

Ansible 清单 静态主机清单 主机清单支持多种格式,例如ini、yaml、脚本等。 本次课程使用 ini 格式。 #创建主机清单[lykcontroller ~ 13:36:01]# vim inventory#vim添加controllernode1node2node3node4​#测试连接单个服务器[lykcontroller ~ 14:08:18]$ ansibl…

网络资源模板--基于Android Studio 实现的九寨沟App

目录 一、测试环境说明 二、项目简介 三、项目演示 四、部设计详情(部分) 首页 购票页面 五、项目源码 一、测试环境说明 电脑环境 Windows 11 编写语言 JAVA 开发软件 Android Studio (2020) 开发软件只要大于等于测试版本即可(近几年官网直接下载也…

系统架构设计师备考之架构设计实践知识

1.信息系统架构设计理论与实践1.1.基本概念信息系统架构定义目前关于信息系统架构较为权威的定义有: (1)信息系统架构是系统的结构,由软件元素、元素外部可见属性和元素间关系组成。 (2)信息系统架构是软件…

【IgH EtherCAT】如何利用 RTAI 提供的实时任务和调度机制来构建一个高精度、确定性的工业控制应用

SVG图展示了系统的分层架构:RTAI实时层:包含RT_TASK、信号量和定时器EtherCAT Master层:主站、域、从站配置和PDO映射EtherCAT网络层:与实际硬件设备(EL3162模拟输入、EL2004数字输出)通信关键特点&#xf…

7款热门智能电视文件管理器横向评测

7款智能电视文件管理器横向评测 在智能电视和电视盒子日益普及的今天,一款好用的文件管理器能让您的数字生活更加便捷。本文为您评测了7款广受欢迎的TV版文件管理器,助您找到最适合自己的工具。 1. ES文件浏览器TV版 ES文件浏览器是一款广受欢迎的多功能…

Python 类元编程(导入时和运行时比较)

导入时和运行时比较 为了正确地做元编程,你必须知道 Python 解释器什么时候计算各个代码 块。Python 程序员会区分“导入时”和“运行时”,不过这两个术语没有严 格的定义,而且二者之间存在着灰色地带。在导入时,解释器会从上到 下…

[git diff] 对比检查变更 | 提交前复审 | 版本回退

git diff git diff 是 Git 版本控制系统中用于比较文件差异的核心命令,可以显示工作目录、暂存区(Index)和仓库历史之间的变化。 通过对比不同版本或状态的文件内容,帮助开发者理解代码变更。 比较工作目录与暂存区 运行以下命令查…

【数据可视化-85】海底捞门店数据分析与可视化:Python + pyecharts打造炫酷暗黑主题大屏

🧑 博主简介:曾任某智慧城市类企业算法总监,目前在美国市场的物流公司从事高级算法工程师一职,深耕人工智能领域,精通python数据挖掘、可视化、机器学习等,发表过AI相关的专利并多次在AI类比赛中获奖。CSDN…

物联网之小白调试网关设备

小伙伴们,你们好呀!我是老寇!跟我一起学习调试网关设备 相信搞过物联网的朋友,对网关设备非常熟悉,本人以小白的视角,手把手教你调试网关设备! 工作中使用的是Ubuntu操作系统,因此&a…

Node.js特训专栏-实战进阶:22. Docker容器化部署

🔥 欢迎来到 Node.js 实战专栏!在这里,每一行代码都是解锁高性能应用的钥匙,让我们一起开启 Node.js 的奇妙开发之旅! Node.js 特训专栏主页 专栏内容规划详情 我将从Docker容器化部署的基础概念入手,介绍Node.js应用容器化的步骤,包括创建Dockerfile、构建镜像、运行…

eclipse嵌入式编译速度慢

eclipse 嵌入式 编译 速度慢 同一个项目,eclipse编译速度越来越慢,一开始几秒钟编译完,后面要10分钟。只需要将以下两个程序卸载重新安装即可。

编译Android版本可用的高版本iproute2

背景: Android自带的iproute2 太老,很多指令格式不支持 直接基于Android源码,替换源码下iproute2 代码编译新版,报错太多,于是改用Android NDK工具编译 环境: android-ndk-r25c-linux.zip 下载链接&am…