3D射影几何与变换(1)

这篇主要介绍在3D射影几何中的基本元素,包括平面和直线,以及他们各自的性质。
3D射影几何的许多内容是2D射影几何的直接推广,但也有许多不一样的地方,比如这篇要介绍的一个重要不同:在IP3IP^3IP3中,点与平面对偶,而直线自对偶。


平面

  • 平面方程
    在3D空间中,平面方程写作:
    π1X+π2Y+π3Z+π4=0\pi_1 X + \pi_2 Y + \pi_3 Z + \pi_4 = 0 π1​X+π2​Y+π3​Z+π4​=0
    显然,该等式乘一个非0标量仍成立,所以只有3个自由度,可以写成齐次坐标:π=(π1,π2,π3,π4)T\pi = (\pi_1, \pi_2,\pi_3,\pi_4)^Tπ=(π1​,π2​,π3​,π4​)T,这就是IP3IP^3IP3中的平面齐次坐标表示。
    这个齐次坐标形式对应于欧式几何中的写法:nX^+d=0n\hat{X}+d=0nX^+d=0,其中n=(π1,π2,π3)T,X^=(X,Y,Z)T,X4=1,π4=dn=(\pi_1,\pi_2,\pi_3)^T,\hat{X}=(X,Y,Z)^T,X_4=1,\pi_4=dn=(π1​,π2​,π3​)T,X^=(X,Y,Z)T,X4​=1,π4​=d,其中d∣∣n∣∣\frac{d}{||n||}∣∣n∣∣d​为平面到原点的距离。
    对于在平面上的点X,有方程:πTX=0\pi^TX=0πTX=0。

  • 平面的代数确定
    众所周知,三点确定一条平面。我们可以将三个点在平面上的方程堆叠成一个矩阵:
    [X1TX2TX3T]π=0\left[ \begin{matrix} X_1^T \\ X_2^T \\ X_3^T \end{matrix} \right]\pi = 0 ⎣⎡​X1T​X2T​X3T​​⎦⎤​π=0
    矩阵大小为3x4,则该平面由矩阵的一维右零空间确定。若该矩阵不满秩,则说明三点在一条直线上,此时由零空间确定以该直线为轴的平面束。
    在具体计算中,我们可以从一个矩阵开始,它包含确定平面的三个点和一个任意点:
    M=[X,X1,X2,X3]M = [X, X_1, X_2, X_3] M=[X,X1​,X2​,X3​]
    当X在平面上时,该矩阵的秩退化为3,于是行列式等于0,按点X=(x1,x2,x3,x4)TX=(x_1,x_2,x_3,x_4)^TX=(x1​,x2​,x3​,x4​)T展开行列式可得:
    detM=x1D234−x2D134+x3D124−x4D123=0detM = x_1D_{234} - x_2 D_{134} + x_3 D_{124} - x_4D_{123}=0 detM=x1​D234​−x2​D134​+x3​D124​−x4​D123​=0
    所以平面有以下表示:
    π=(D234,−D134,D124,−D123)\pi = (D_{234}, -D_{134}, D_{124}, -D_{123}) π=(D234​,−D134​,D124​,−D123​)

  • 射影变换
    对应于点变换:x′=Hxx'=Hxx′=Hx,平面的单应变换为π′=H−Tπ\pi' = H^{-T}\piπ′=H−Tπ,与2D中直线变换一样。

  • 平面上点的参数表示
    平面上的点只有2个自由度,所以可以用三维向量来表示,这种三维向量表示称为平面上点的参数化表示。
    给出平面上三个不共线的点X1,X2,X3X_1,X_2,X_3X1​,X2​,X3​,则平面上任意一点可以写作这三个点的线性组合:
    X=αX1+βX2+γX3X=\alpha X_1 + \beta X_2 + \gamma X_3X=αX1​+βX2​+γX3​
    这样就得到了平面上点的参数化表示:x=(α,β,γ)Tx=(\alpha, \beta, \gamma)^Tx=(α,β,γ)T。


直线

直线在三维射影空间中表示为两点的连接或者平面的交线,所以直线有4个自由度,也因为这个原因,在3维射影空间上难以表示直线(4个自由度需要5维的齐次坐标),所以就有以下两种并非直接的表示方式。

  • 点表示法 - 生成子空间表示
    假定点X1,X2X_1,X_2X1​,X2​不重合,连接成一条线,令W是这两个点的齐次坐标作为行构成的2x4的矩阵,有下述结论:1)点束L={X=WT(α,β)T∣(α,β)∈R2}L=\{X=W^T(\alpha , \beta )^T|(\alpha , \beta )\in R^2\}L={X=WT(α,β)T∣(α,β)∈R2}是连接两个空间点X1,X2X_1,X_2X1​,X2​的直线。2)矩阵W的二维右零空间是以L为轴的直线束。

  • 面表示法 - 零空间表示
    根据IP3IP^3IP3中点与平面的对偶,同样可以由平面来表示直线:两个平面π1,π2\pi_1,\pi_2π1​,π2​,定义一个矩阵W=(π1T,π2T)TW=(\pi_1^T,\pi_2^T)^TW=(π1T​,π2T​)T,同样有以下两个结论:1)απ1+βπ2=WT(α,β)T,(α,β)∈R2\alpha \pi_1 + \beta \pi_2=W^T(\alpha , \beta )^T,(\alpha , \beta )\in R^2απ1​+βπ2​=WT(α,β)T,(α,β)∈R2。2)W的二维右零空间是直线L构成的点束。

  • Plucker矩阵表示
    连接两点A,B的直线可以用Plucker矩阵表示:
    L=ABT−BATL=AB^T - BA^T L=ABT−BAT
    这是一个4x4的反对称矩阵,有4个自由度,其二维生成子空间是以该直线为轴的平面束。根据点与直线的对偶,可以得到用平面表示的直线:
    L∗=π1π2T−π2π1TL^*=\pi_1 \pi_2^T - \pi_2 \pi_1^T L∗=π1​π2T​−π2​π1T​
    在plucker矩阵的表示下,有下述结论:
    1)点与直线的关系:L∗X=0L^*X=0L∗X=0表示X在直线上,否则L∗X=πL^*X=\piL∗X=π是点与直线确定的平面。
    2)面与直线的关系:Lπ=0L\pi=0Lπ=0表示l在平面上,否则Lπ=XL\pi=XLπ=X是直线与平面的交点。


计算机视觉中的多视图几何 --3D射影几何中的面与直线相关推荐

  1. 计算机视觉中的多视图几何 -- 2D射影几何与变换 --无穷远直线、虚圆点及其对偶以及恢复图像的仿射性质

    2D射影几何与变换(3) 这篇主要介绍在2D射影几何中的无穷远直线.虚圆点及其对偶二次曲线,以及他们各自对应的图像的仿射和度量性质. 无穷远直线 定义 IP2IP^2IP2中的理想点(齐次坐标第三项为 ...

  2. 计算机视觉中的多视图几何 -- 2D射影几何与变换 -- 相似、仿射与射影变换的层次

    2D射影几何与变换(2) 这篇主要介绍在2D射影空间中的变换,以及各种变换的层次. 几何研究的重点在于各种变换群下,不变的性质,对应于Gibson生态视觉中的环境不变量,是计算机视觉研究的重点. 射影 ...

  3. 《计算机视觉中的多视图几何》笔记(一)有限射影摄像机

    目录 前言 1.二维射影几何与变换 1.1数学基础 1.2射影变换 2.有限射影摄像机 2.1有限摄像机模型 2.2射影摄像机的几何含义 2.3射影摄像机对点的作用 2.3.1点对射线的反向投影 2. ...

  4. 计算机视觉中的多视图几何<Part0—基础知识:射影几何、变换和估计>(1)

    1. 2D射影几何和变换 射影几何的概念和表示法是多视图几何分析的核心,使用齐次坐标就能用线性矩阵方程来表示非线性映射(例如透视投影):主要目的是为了从透视图像中恢复仿射和度量性质. 1.1 平面几何 ...

  5. 计算机视觉中的多视图几何_基于深度学习的视觉三维重建研究总结

    三维重建意义 三维重建作为环境感知的关键技术之一,可用于自动驾驶.虚拟现实.运动目标监测.行为分析.安防监控和重点人群监护等.现在每个人都在研究识别,但识别只是计算机视觉的一部分.真正意义上的计算机视 ...

  6. 计算机视觉中的多视图几何 pdf_多视图立体匹配论文解析:PVA-MVSNet

    Date:2020-11-25 作者:Shelo 来源:3D视觉工坊 论文题目:Pyramid Multi-view Stereo Net with Self-adaptive View Aggreg ...

  7. 《计算机视觉中的多视图几何》学习笔记

    困惑与解答: 问题:射影变换与仿射变换的区别 解答: 射影变换和仿射变换都是在平面几何中常用的变换.它们的区别在于是否保持直线的性质. 射影变换将一条直线映射为一条直线,但不保持线段的长度和角度大小. ...

  8. 计算机视觉学习7_多视图几何_基础矩阵

    文章目录 对极几何 本质矩阵(Essentical Matrix) 基本矩阵(Fundamental Matrix) 8点算法估算基础矩阵F 实现代码 实现结果 三维重建 对极几何 多视图几何是利用在 ...

  9. 一般向量空间的基变换_向量几何--3-D空间中的基变换与坐标变换【转】 - 回到未来 - C++博客...

    <6>3-D空间中的基变换与坐标变换-Twinsen编写 -本人水平有限,疏忽错误在所难免,还请各位数学高手.编程高手不吝赐教 -我的Email-address:popyy@netease ...

最新文章

  1. pandas计算特征与所有数值特征的相关性并排序可视化:包含pearson、spearman、kendall
  2. phalcon: 解决php7/phalcon3.2以上版本,不支持oracle数据库的方法
  3. linux内核启动后门,Linux下编写隐蔽的自启动回连后门
  4. rust油桶用什么打_选什么样的柜子才好用?别再选定制柜了,还是老手艺人打的柜子好...
  5. 台式计算机欢迎界面下不去,Win7系统开机不显示欢迎界面的方法
  6. python 定时任务系统_Python定时任务,实现自动化的方法
  7. Java Set接口详细讲解 TreeSet的定制排序和自然排序
  8. 物联网中使用的常见通信技术
  9. 2019年,区块链不得不知的 9 件大事!
  10. 汉诺塔问题的c语言实现
  11. java简历专业技能,附详细答案解析
  12. 编译原理学习笔记之上下文无关文法
  13. 【计量经济学导论】16. 面板数据模型
  14. k8s部署nacos2.0.3出现tried: server is DOWNnow, detailed error message: Optional[Distro protocol XXXX
  15. NOIP2018 复赛提高组一等奖获奖名单
  16. 有关结合律和优先规律
  17. android 多语言国家化对照表(超详细)
  18. UML软件建模技术-基于IBM RSA工具的基础实训
  19. Python全栈(九)Web前端基础之3.CSS常见样式和选择器
  20. 泛泰A900 刷4.4专用中文TWRP2.7.1.1版 支持自己主动识别手机版本号(全球首创)...

热门文章

  1. jsp+servlet实现简单商品上传、商品浏览、与商品分页技术
  2. java模拟数据库压测_java模拟数据库缓存
  3. sdnu.1026 田忌赛马续
  4. 武汉市洪山区高新技术企业认定奖励标准及申请材料、条件、要求
  5. 程序员的核心竞争力是什么?为什么?
  6. javaScript系列笔记 - JS实现MP4播放
  7. 如何区分一个FrameWork是动态链接库还是静态库
  8. 模拟语音交换机和IP电话系统的互联互通
  9. 苹果手机圆圈在哪里设置_不知道苹果手机录音在哪里?那你就落伍了
  10. Flutter项目实操---资讯、发布动弹