计算机视觉之三维重建(三)(单视图测量)

2D变换

等距变换
  • 旋转平移
  • 保留形状、面积
  • 通常描述刚性物体运动
相似变换
  • 在等距变换的基础增加缩放特点
射影变换
  • 共线性、四共线点的交比保持不变
仿射变换
  • 面积比值、平行关系等不变
  • 仿射变换是特殊的射影变换

影消点与影消线

2D无穷远点
  • 两直线的交点可由两直线的叉乘得到,表达为 ( x 1 , x 2 , z ) (x_1, x_2, z) (x1,x2,z)。若 z = 0 z=0 z=0,则该点为无穷远点(欧式坐标表示为 ( x 1 z , x 2 z ) (\frac{x_1}{z},\frac{x_2}{z}) (zx1,zx2))。
  • 无穷远点经过射影变换后为有限远点。
  • 无穷远点经过仿射变换后仍为无穷远点。
2D无穷远线
  • 无穷远点集位于一条线上,该线成为无穷远线(可表示为 l i n f = [ 0   0   1 ] l_{inf}=[0 \space 0 \space 1] linf=[0 0 1])。
  • 无穷远点经过射影变换后为有限远点。
  • 无穷远点经过仿射变换后仍为无穷远点。
线的变换

已知 l x = 0 lx=0 lx=0,求解 l ′ H x = 0 l'Hx=0 lHx=0.
推导过程为:
已知方程: l T x = 0 添加逆矩阵: l T H − 1 H x = 0 拆组: ( H − 1 l ) T ( H x ) = 0 可得: l ′ = H − T l = 0 \begin{equation} \begin{split} 已知方程:l^{T}x=0 \\ 添加逆矩阵:l^{T}H^{-1}Hx=0 \\ 拆组:({H^{-1}l})^T(Hx)=0 \\ 可得:l'=H^{-T}l=0 \\ \end{split} \end{equation} 已知方程:lTx=0添加逆矩阵:lTH1Hx=0拆组:(H1l)T(Hx)=0可得:l=HTl=0
无穷远线表示为 [ 0 0 1 ] \begin{bmatrix} 0\\ 0\\ 1 \end{bmatrix} 001

  • 无穷远线透视(射影)变换 H = [ A t v b ] H=\begin{bmatrix} A & t\\ v &b \end{bmatrix} H=[Avtb]后不再为无穷远线。
  • 无穷远线仿射变换 H = [ A t 0 b ] H=\begin{bmatrix} A & t\\ 0 &b \end{bmatrix} H=[A0tb]后为无穷远线。
空间中的点和面
  • 面: a x + b y + c z + d = 0 ax+by+cz+d=0 ax+by+cz+d=0
  • 点: x ∞ = [ a b c 0 ] x_{\infty}=\begin{bmatrix} a\\ b\\ c\\ 0 \end{bmatrix} x= abc0
影消点
  • 三维空间的无穷远点在二维像素平面的投影点 p ∞ = [ a b c ] p_{\infty}=\begin{bmatrix} a\\ b\\ c \end{bmatrix} p= abc
  • 影消点=摄像机内参数 * 直线方向。
影消线
  • 影消点的集合。
  • 识别影消线有助于重构三维场景。

与平面法向量的关系
平面法向量 = 摄像机内参数转置矩阵 * 影消线

无穷远平面
  • 平行平面在无穷远处相较于一条公共线——无穷远线。
  • 2条或多条无穷远直线的集合定义为无穷远平面。

单视图重构

步骤

  • 标定摄像机内参数
  • 恢复三维场景面的信息
  • 重构
    缺点:手动选择影消点与影消线;需要场景先验;场景的实际比例无法恢复。

猜你喜欢

转载自blog.csdn.net/qq_44116998/article/details/132353904