随笔 - 54  文章 - 0  评论 - 45  阅读 - 45万 

1  投影空间

 欧氏空间,主要描述角度和形状,针对的是理想几何物体。例如,两条 ∥ 线永不相交,或交于无穷远点 (虚拟的点)。中学时代的 “平面与立体几何”,便属于欧式空间。

 投影空间,指实际物体,被相机拍摄后,成像所在的空间,常用于计算机视觉中。在投影空间里,两条直线必会相交于一点,只不过当这两条线平行时,交点为无穷远。

  

 如图所示,现实中的两条铁轨,成像在投影空间时,相交于某一点,也即无穷远点;但在欧氏空间中,无穷远点是理想点,并没有实际意义。

 这样,就需要一种新的表示方法 -- 齐次坐标,将欧氏空间的无穷远点,与投影空间中有实际意义的点,建立起映射关系

 

 2  齐次坐标

 在平面几何里,采用笛卡尔坐标,则一个点可表示为 (x,y)T。如果增加一个坐标值,表示为 (x,y,1)T,且约定 (x,y,1)T(kx,ky,k)T 表示的是同一个点 (其中 k ≠ 0),

则这种用一个 N+1 维的向量,来表示 N 维向量的方法,称为齐次坐标法。

 这样,由齐次坐标 (x,y,w),可推导出笛卡尔坐标 (xw,yw)

2.1  无穷远点

    欧式空间中,两条平行线方程组,如下:

 {AX+BY+C=0AX+BY+D=0 ,其中 C ≠ D

 齐次坐标点(x,y,w)T 与 欧氏空间点 (X,Y)T 的对应关系为: X=xw,Y=yw,代入上面方程组得:

 {Axw+Byw+C=0Axw+Byw+D=0  =>  {Ax+By+Cw=0Ax+By+Dw=0 => w=0

 既然 w = 0,则齐次坐标(x,y,0)T,对应笛卡尔坐标 (x0,y0)T,表示的是无穷远点 (,)T

2.2  合并加法

 点 (x,y,z)T,经过伸缩和平移后,成为点 (x,y,z)T=(r1x+t1,r2y+t2,r3z+t3)T,该变换过程可用如下公式表示:

 [xyz]=[r1000r2000r3][xyz]+[t1t2t3]

 如果使用齐次坐标,则可将平移变换,转化为矩阵乘法,消除了上式中的矩阵加法

 [xyz1]=[r100t10r20t200r3t30001][xyz1]

2.3 向量和点

    齐次坐标还可以区分向量和点,具体如何区分的,尚待研究 ... ...

 

3  刚体变换

3.1  刚体定义

 欧氏空间中,当物体被视为刚体时,不管是该物体的位置或朝向发生变化,还是更换观察的坐标系,其大小和形状都保持不变

    形象点说,猪八戒的九齿钉耙,由冰铁铸造而成,便是一种刚体;而镇元子大仙的七星鞭,由于是龙皮做的,故为非刚体。

3.2  位置和朝向

 所谓刚体变换,就是一个可被看做刚体的物体,从一个状态 (位置朝向),转换为另一个状态的过程。

   

 如上所示,从世界坐标系相机坐标系的转换,朝向由旋转矩阵 R 表示,位置则由平移矩阵 T 来表示: Pc=RPw+T

 其中,旋转矩阵 R=[r11r12r13r21r22r23r31r32r33],平移矩阵 T=[t1t2t3]

 旋转矩阵 R 为正交矩阵 (也即,RR' = E,E 为单位矩阵),则满足以下 6 个约束条件

 (1)  大小约束   {r112+r122+r132=1r212+r222+r232=1r312+r322+r332=1        (2) 方向约束   {r11r21+r12r22+r13r23=0r21r31+r22r32+r23r33=0r31r11+r32r12+r33r13=0

   可用一个最简单的正交矩阵 E,来理解上面的约束条件

       [100010001]

3.3  转换关系

    若已知 RT,则可将世界坐标系内的空间点,与相机坐标系内的空间点,建立起一一对应的关系

 [XcYcZc]=[RT][XwYwZw]

3.3.1  约束分析

    RT 共有 12 个未知量,减去正交约束的 6 个方程,则还剩 6 个未知量。

    表面上看,似乎只需 2 组共轭点,就可得到 6 个约束方程,对应求出剩余的 6 个未知量。实际上,这 6 个方程是有冗余信息的 (两组共轭点,在各自的坐标系下,两点之间的距离相等)

    因此,第 2 组共轭点,只是提供了 2 个约束方程,加上第 1 组共轭点的 3 个约束,共有 5 个独立的约束方程。

    显然,还需要第 3 组共轭点,提供 1 个独立的方程,才能求得 RT

3.3.2  几何解释

    如下图所示,考虑两个刚体,它们之间存在着相互 旋转 和 平移

   

   首先,在每个刚体上,各选一个点 L1 和 R1,移动其中一个刚体,使得这两个点重合。此时,一个刚体可相对于另一个刚体转动 (以三种不同的方式)。

   然后,在每个刚体上,再分别取一个点 L2 和 R2,并且 | L2 - L1 | = | R2 - R1 |,移动一个刚体,使得这两对点,分别重合。此时,一个刚体可以相对另一个转动 (以一种方式)。

   最后,在每个刚体上,分别取第三个点 L3 和 R3,满足 | L3 - L1 | = | R3 - R1 | 且 | L3 - L2 | = | R3 - R2 |,然后将这三个点对齐。此时,两个刚体便牢牢的连在了一起。

 

 参考资料

    <视觉测量> 张广军,第2章

    <Robot Vision> Chapter 13

    <An Invitation to 3D Vision> Chapter 2

    Homogeneous Coordinates

 

posted on   飞鸢逐浪  阅读(8300)  评论(7编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示