《计算机视觉中的多视图几何》笔记(3)

2023-09-14 04:09:00

3 Projective Geometry and Transformations of 3D

这章主要讲的是3D的射影几何,与2D的射影几何差不多。主要区别是:

  1. 3D射影几何对偶的是点和平面,直线是自对偶的。
  2. 3D空间中直线有4个自由度,这一现象并不是那么容易直接得出。一种方法是把直线用正交平面两个交点表示。
    在这里插入图片描述

3.1 Points and projective transformations

三维空间的齐次坐标就是 x 1 , x 2 , x 3 , x 4 x_1,x_2,x_3,x_4 x1,x2,x3,x4,比二维空间多一个。 x 4 x_4 x4一般是1,如果是0那就代表无穷远的点。

三维空间投影矩阵 H H H 4 × 4 4 \times 4 4×4的,有15个自由度。

3.2 Representing and transforming planes, lines and quadrics

三维投影空间中点和面是对偶的。也就是说它们可以互相交换运算中的位置。

3.2.1 Planes

三维空间面就是:
π 1 X + π 2 Y + π 3 Z + π 4 = 0 \pi_1 X + \pi_2 Y +\pi_3 Z + \pi_4 = 0 π1X+π2Y+π3Z+π4=0

π 1 , π 2 , π 3 \pi_1,\pi_2,\pi_3 π1π2π3就是平面的法向量。

相交关系

  1. 三点确定一个平面
  2. 两个相交平面确定一个线
  3. 三个相交平面确定一个点

下面来讨论这几个关系的代数表述。

三个点确定一平面 我们假设点是 X i X_i Xi, 平面式 π \pi π
确定平面需要解以下方程:
[ X 1 T X 2 T X 3 T ] π = 0 \left[ \begin{matrix} X_1^T \\ X_2^T \\ X_3^T \\ \end{matrix} \right] \pi = 0 X1TX2TX3T π=0
书中p67 3.4式给了一个解析解。

三个平面确定一个点 把上述方程点和面的位置换一下就行。
[ π 1 T π 2 T π 3 T ] X = 0 \left[ \begin{matrix} \pi_1^T \\ \pi_2^T \\ \pi_3^T \\ \end{matrix} \right] X = 0 π1Tπ2Tπ3T X=0

3.2.2 Lines

线段在三维空间中表示比较尴尬,因为点和面是对偶的,如果要表示线,那就需要5维向量。本节介绍了3种方法,我们掌握一种就可以了。

零空间理论 我们假设 A , B A,B A,B是两个点,经过这两个点的直线除了叉乘,还可以表示为:
W = [ A T B T ] W= \left[ \begin{matrix} A^T\\ B^T \end{matrix} \right] W=[ATBT]

那么把 A , B A,B A,B换成平面,上式就是两个平面相交形成的点。

3.2.3 Quadrics and dual quadrics

三维空间中的二次曲面定义如下:
X T Q X = 0 X^T Q X = 0 XTQX=0

Q是一个 4 × 4 4 \times 4 4×4的对称矩阵,主要有以下性质:

  1. Q有9个自由度
  2. 8个点确定一个二次曲面
  3. Q如果是奇异矩阵,那么二次曲面退化了
  4. 二次曲面可以确定一个点和一个极平面 π = Q X \pi=QX π=QX
  5. 平面 π \pi π和Q的交线就是圆锥
  6. 如果点变换是 X ′ = H X X'=HX X=HX,那么Q上的点就会被变换成 Q ′ = H − T Q H − 1 Q'=H^{-T} Q H^{-1} Q=HTQH1
  7. Q Q Q的对偶定义为 Q ∗ Q^* Q,是由与Q相切的面组成的

3.2.4 Classification of quadrics

在这里插入图片描述

3.4 The hierarchy of transformations

  1. 投影变换15个自由度,不变量是相交的平面、垂直的平面
  2. 仿射变换12个自由度,不变量是平行的平面、体积之间的比例、无穷远处的平面.
  3. 相似变换7个自由度,不变量是无穷远处的圆锥
  4. 刚体变换6个自由度,不变量是体积
    在这里插入图片描述

3.5 The plane at infinity

我们记得在二维投影空间中有一个无穷远的直线 l ∞ l_{\infty} l,那么类似地,在三维投影空间就有一个无穷远平面 π ∞ \pi_{\infty} π,在该平面上还有一个绝对圆锥 Ω ∞ \Omega_{\infty} Ω

  1. π ∞ \pi_{\infty} π是两个平行平面的交点
  2. 平行线的交点在 π ∞ \pi_{\infty} π上,与平面平行的直线也在 π ∞ \pi_{\infty} π

结论3.7 无穷远平面在投影变换下保持不变当且仅当该变换是仿射变换。

3.6 The absolute conic

绝对圆锥 Ω ∞ \Omega_{\infty} Ω π ∞ = ( 0 , 0 , 0 , 1 ) \pi_{\infty}=(0,0,0,1) π=(0,0,0,1) 上的圆锥,满足:
X 1 2 + X 2 2 + X 3 2 = 0 X 4 2 = 0 X_1^2 + X_2^2 + X_3^2 = 0 \\ X_4^2=0 X12+X22+X32=0X42=0

写成圆锥表达式就是:
( X 1 , X 2 , X 3 ) I ( X 1 , X 2 , X 3 ) T = 0 (X_1,X_2,X_3)I(X_1,X_2,X_3)^T = 0 (X1,X2,X3)I(X1,X2,X3)T=0

结论3.9 绝对圆锥在投影变换下保持不变,当且仅当该变换是相似变换。

所有的圆都和绝对圆锥相交于两点,所有的球都和绝对圆椎相交于 π ∞ \pi_{\infty} π

度量性质 当我们知道了绝对圆锥,我们就可以恢复度量性质,比如直线之间的夹角:

cos ⁡ θ = d 1 T Ω ∞ d 2 ( d 1 T Ω ∞ d 2 ) ( d 1 T Ω ∞ d 2 ) \cos \theta = \frac{d_1^T \Omega_{\infty} d_2}{\sqrt{(d_1^T \Omega_{\infty} d_2)(d_1^T \Omega_{\infty} d_2)} } cosθ=(d1TΩd2)(d1TΩd2) d1TΩd2

3.7 The absolute dual quadric

就是由与绝对圆锥相切的平面组成的圆锥,记为 Q ∞ ∗ Q_{\infty}^* Q,对偶圆锥也在相似变换下保持不变。 π ∞ \pi_{\infty} π Q ∞ ∗ Q_{\infty}^* Q的零向量。

更多推荐

企业蓄电池怎么实时监测?这个方法最简单使用!

在这个数字时代,企业对电力的依赖性愈发显著,这使得电池系统成为维持业务连续性的不可或缺的一环。蓄电池监控不仅有助于实时跟踪电池系统的性能和状态,还有助于预测问题,提前采取措施以防止电力中断。它还可以帮助企业降低能源成本,延长电池寿命,提高能源效率,以及满足可持续性和环保目标。客户案例常州某制药公司生产设施在各地内分布,

C++回顾录03-C++类和对象

类是创建对象的模板,一个类可以创建多个对象,每个对象都是类类型的一个变量;创建对象的过程也叫类的实例化。每个对象都是类的一个具体实例(Instance),拥有类的成员变量和成员函数。类是用户自定义的类型,如果程序中要用到类,必须提前说明,或者使用已存在的类(别人写好的类、标准库中的类等),C++语法本身并不提供现成的类

京东医疗器械分类汇总

京东医疗器械分类汇总,发布医药商品的时候需要选择的分类,有需要的吗整理为HTML代码<selectname="type"><optionvalue=""></option><optionvalue="Ⅱ类6866">Ⅱ类6866</option><optionvalue="Ⅱ类6822">Ⅱ类6822</option>

Hadoop设置固定ip无效的解决办法

今天配置Hadoop的时候,执行vi/etc/sysconfig/network-scripts/ifcfg-ens33修改网络配置文件后,一切正常,但重启后IP改变了,并且在修改以及重启网络连接数次后,IP依旧不按照我在ifcfg-ens33中配置的那样,检查了各处地方,仍然不行,在数小时的查错改错过程中发现了问题所

提升利润的秘密武器:超好用的跨境电商系统源码推荐

在竞争激烈的电商市场中,提高利润是每个卖家的追求。而跨境电商系统源码成为了许多成功卖家的秘密武器。本文将揭示为什么选择跨境电商系统源码,以及它在利润提升方面的重要作用。超好用的跨境电商系统源码推荐如果你正在寻找一款功能强大、易于使用和定制的跨境电商系统,那么你来对地方了。在本节中,我们将推荐一款超好用的跨境电商系统源码

60从零开始学Java之与数字相关的类有哪些?

作者:孙玉昌,昵称【一一哥】,另外【壹壹哥】也是我哦千锋教育高级教研员、CSDN博客专家、万粉博主、阿里云专家博主、掘金优质作者前言我们在解决实际问题时,会经常对数字、日期和系统设置进行处理,比如在我们的代码中,经常会遇到一些数字&数学问题、随机数问题、日期问题和系统设置问题等。为了解决这些问题,Java给我们提供了多

【无标题】

昨天(2023年9月20日),汉字小达人的主办方在官方发布了《“中文自修杯”第十届上海市小学生“美丽汉字小达人”区级活动“自由报名”区级初选规则》的通知,区级比赛自由报名的参赛从9月25日到9月30日,共持续六天。现将该规则的核心内容划重点如下:无需提前报名,在比赛期间直接用学生正确的学校、姓名、学号等信息,通过微信公

【Redis GEO】3、地理位置类型的性能优化及使用限制

在使用Redis的地理位置类型时,为了提高查询性能和降低资源消耗,需要进行一些优化和性能考虑1、使用合适的半径在执行GEOADD和GEORADIUS命令时,需要根据实际情况选择合适的半径。如果半径过大,可能会导致查询时间过长和资源消耗增加;如果半径过小,可能会导致查询结果不完整。因此,需要根据实际需求进行合理的配置。2

Excel VLOOKUP 初学者教程:通过示例学习

目录前言一、VLOOKUP的用法二、应用VLOOKUP的步骤三、VLOOKUP用于近似匹配四、在同一个表里放置不同的VLOOKUP函数结论前言Vlookup(V代表“垂直”)是excel中的内置函数,允许在excel的不同列之间建立关系。换句话说,它使您可以从一列数据中查找(查找)一个值,并从另一列中返回其相应或对应的

国产化BI平滑替代,某知名寿险Cognos替换项目分享

​长期使用国外BI软件可能存在安全风险,其中包括数据安全、信息安全以及系统安全等经营的风险。与数据库等环节不同,就整体替代难度而言,目前中国企业BI国产化替代可行性已今非昔比,完全可实现用100%自主可控、安全高效的亿信ABI产品取代甚至升级替换国外产品。面对国产化BI替代大势,亿信华辰抓住时代的要求,开发了Cogno

Python学习 -- 常用数据交换格式(CSV、XML、JSON)

数据交换格式是在不同系统之间交换数据时使用的一种标准化格式。在Python中,我们常用的数据交换格式有CSV、XML和JSON。本篇技术博客将介绍这三种数据交换格式的详细使用方法,并提供具体的代码案例,帮助初学者快速掌握这些格式的使用。CSV(逗号分隔值)格式CSV是一种简单的文本文件格式,使用逗号作为字段之间的分隔符

热文推荐