计算机视觉之三维重建(3)---单视几何

文章目录


一、问题提出

1. 当摄像机标定后,内部参数 K K K 已知,外部参数 [ R , T ] [R,T] [R,T] 已知,是否可以根据单个图像的测量值 p p p 去估算 P P P? 答:一般情况下不能,因为 P P P 可以位于 C C C 和 p p p 定义的直线上的任意位置。

2. 一般情况下不能,但是总有一些场合可以从二维图像转换到三维场景结构。那接下就要研究比如如何将下面这幅图从二维图像转换成三维场景。

二、无穷远点、无穷远线、无穷远平面

注:对于下面所有的坐标均用齐次坐标表述,而不是欧式坐标。

2.1 2D空间

1. 对于一条2D平面上的直线,我们可以用 a x 1 + b x 2 + c = 0 ax_1+bx_2+c=0 ax1+bx2+c=0 来表示。把其中的参数拿出来构成向量并定义为 l l l(一般说到参数向量 l l l 就表示直线)。 x x x 作为直线上的一个点,齐次坐标表示为 x = [ x 1 , x 2 , 1 ] T x=[x1,x2,1]^T x=[x1,x2,1]T。 x x x 和 l l l 满足 x T l = 0 x^Tl=0 xTl=0 或者 l T x = 0 l^Tx=0 lTx=0。

2. 定义两条直线叉乘得到的积,表示交点的坐标。(这里由叉乘的定义可以理解)

3. (1) 下图右上角的齐次坐标 x ∞ x_∞ x∞ 在欧式坐标下表示无穷远点。 (2) 任意选取两条直线 l l l, l ′ l' l′,使得 − a / b = − a ′ / b ′ -a/b=-a'/b' −a/b=−a′/b′,即斜率相同的两条线平行。 (3) 直线 l l l, l ′ l' l′ 叉乘得到 x ∞ x_∞ x∞。

4. 同一平面直线(在2D平面上均为同一平面)的无穷远点均位于同一无穷远线上,我们定义无穷远线为 l ∞ = [ 0 , 0 , 1 ] T l_∞=[0,0,1]^T l∞=[0,0,1]T。

2.2 3D空间

1. 对于一个3D空间中的面可以定义为 a x 1 + b x 2 + c x 3 + d = 0 ax_1+bx_2+cx_3+d=0 ax1+bx2+cx3+d=0。同理可以将参数拿出来构成参数向量形式,定义参数表示的面 Π = [ a , b , c , d ] T Π=[a,b,c,d]^T Π=[a,b,c,d]T。对于一个面上的点 x = [ x 1 , x 2 , x 3 , 1 ] T x=[x1,x2,x3,1]^T x=[x1,x2,x3,1]T,仍然有 x T Π = 0 x^TΠ=0 xTΠ=0 或者 Π T x = 0 Π^Tx=0 ΠTx=0 成立。

2. 3D空间中的直线,一般很难去表示,可以用直线方向来粗略表示。

3. 3D空间中的无穷远点,定义齐次坐标中的 x 4 x_4 x4 为0,其他三个坐标为直线的方向。此时必须保证同一平面上的平行线相交于同一无穷远点。

4. 平行平面上的任意一对平行线,在无穷远处都会相交于无穷远点。很多个无穷远点会构成无穷远线。所以:对于平行平面会在无穷远处相交于同一条公共线,即无穷远直线;而若干条无穷远直线形成无穷远平面。定义无穷远平面为 Π ∞ = [ 0 , 0 , 0 , 1 ] T Π_∞=[0,0,0,1]^T Π∞=[0,0,0,1]T。

三、影消点和影消线

影消点和影消线是无穷远点和无穷远线投影到像素平面的对应关系。

3.1 2D平面上的无穷远点,无穷远线变换

1. 对于2D平面上点到点的变换就是乘以一个变换矩阵的映射关系,即 p ′ = H p p'=Hp p′=Hp, H H H 表示变换矩阵。对于透视和仿射变换而言,仿射变换后的无穷远点还是无穷远点,透视变换后的无穷远点不再是无穷远点。

2. 线的变换等价于任意点 x x x 在线 l l l 上,该点 x x x 进行变换得到 x ′ x' x′,变换后的点 x ′ x' x′ 又一定在变换后的线 l ′ l' l′ 上,所以通过式子的代换得到了线与线之间变换是乘以一个变换矩阵的转置的逆的映射关系,即 l ′ = H − T l l'=H^{-T}l l′=H−Tl。推导过程如下所示:

3. 根据线到线的变换关系,可以得到对于无穷远线经过仿射变换不变,透视变换会改变。

3.2 影消点

1. 影消点:三维空间中的无穷远点经过摄像机在图像中的投影点。

2. 一般我们定义三维空间的平行线方向为 d = [ a , b , c ] T d=[a,b,c]^T d=[a,b,c]T,而三维空间中的无穷远点为 x ∞ = [ a , b , c , 0 ] T x_∞=[a,b,c,0]^T x∞=[a,b,c,0]T。假设像平面的影消点为 v v v,那么一定有 v = K d v=Kd v=Kd 成立。结论:给一个影消点和摄像机的内外参数,我们就可以知道三维空间中一组平行线的方向。

.

3.3 影消线

1. 影消点:三维空间中的无穷远线经过摄像机在图像中的投影线。影消线与无穷远线的关系为 l ′ = H − T l l'=H^{-T}l l′=H−Tl。

2. 下图为三维空间下,同一平面的两条平行线在无穷远处相交,在像平面下形成的影消点。无数影消点形成影消线。

3. 影消线与平面法向量的关系:我们可以知道多个平行平面会聚在无穷远处得到无穷远线,无穷远线经过投影变换到像平面得到影消线。假设一个点 P P P 位于生成无穷远线的平行平面中的任意一个 Π Π Π 上的一点,记平面法向量为 n n n,那么一定满足 n T P = 0 n^T P=0 nTP=0。另外该点经过投影变换一定在影消线上,满足 l h T ( K [ I 0 ] P ) = 0 l_h ^T(K[I \hspace{0.25cm} 0]P)=0 lhT(K[I0]P)=0 成立,所以一定有 n = K T l h n=K^Tl_h n=KTlh 成立 。

4. 总结:

四、单视重构

1. 注意是一共是四条线,两组平行线之间的夹角为 θ θ θ,根据余弦定理可以得到夹角与两组平行线直线方向的关系,如下图所示:

2. 由于 K K K 有 5 5 5 个自由度,而一般我们只能找到三组互相垂直的平行线,如下图这种典型的三个平面互相垂直,在三个平面上选择三组平行线,那么最多只能得到三个方程,而三个方程不能精确的解出五个未知数,所以一般我们规定零倾斜,正方形像素,此时内参矩阵中的 θ = 90 ° θ=90° θ=90°, α = β α=β α=β,此时只剩下三个未知数,理论上可以解出图像中的任意点,直线位置。

3. 我们也可以根据平面法向量和影消线之间的关系重构出世界坐标下的任何一个平面。

4. 弊端:我们无法还原出真实世界与重构场景之间的缩放比例大小,我们也不知道摄像机如何拍摄这张照片,场景的真实世界地理位置。

相关推荐
北京搜维尔科技有限公司2 分钟前
搜维尔科技:【应用】Xsens在荷兰车辆管理局人体工程学评估中的应用
人工智能·安全
说私域5 分钟前
基于开源 AI 智能名片 S2B2C 商城小程序的视频号交易小程序优化研究
人工智能·小程序·零售
YRr YRr5 分钟前
深度学习:Transformer Decoder详解
人工智能·深度学习·transformer
知来者逆10 分钟前
研究大语言模型在心理保健智能顾问的有效性和挑战
人工智能·神经网络·机器学习·语言模型·自然语言处理
云起无垠19 分钟前
技术分享 | 大语言模型赋能软件测试:开启智能软件安全新时代
人工智能·安全·语言模型
老艾的AI世界33 分钟前
新一代AI换脸更自然,DeepLiveCam下载介绍(可直播)
图像处理·人工智能·深度学习·神经网络·目标检测·机器学习·ai换脸·视频换脸·直播换脸·图片换脸
翔云API1 小时前
PHP静默活体识别API接口应用场景与集成方案
人工智能
浊酒南街1 小时前
吴恩达深度学习笔记:卷积神经网络(Foundations of Convolutional Neural Networks)4.9-4.10
人工智能·深度学习·神经网络·cnn
Tony聊跨境1 小时前
独立站SEO类型及优化:来检查这些方面你有没有落下
网络·人工智能·tcp/ip·ip
懒惰才能让科技进步1 小时前
从零学习大模型(十二)-----基于梯度的重要性剪枝(Gradient-based Pruning)
人工智能·深度学习·学习·算法·chatgpt·transformer·剪枝