Multiple View Geometry(多视图几何)学习笔记(11)—直接线性变换(DLT)算法

             直接线性变换(DLT)算法

  首先讨论由给定 2 D 2D 2D 2 D 2D 2D的四组点对应 x i ↔ x i ′ x_{i}\leftrightarrow x'_i xixi确定 H H H的一种简单的线性算法。变换由方程 x i ′ = H x i x'_i = Hx_i xi=Hxi 给出。但因为这是一个齐次矢量方程; 因此 3 维矢量 x i ′ x'_i xi H x i Hx_i Hxi不相等。可以用矢量叉乘: x i ′ × H x i = 0 x'_i\times Hx_i=0 xi×Hxi=0表示。
  如果将矩阵 H H H的第 j j j行记为 h j T h^{jT} hjT x i ′ = ( x i ′ , y i ′ , w i ′ ) T \boldsymbol{x'_i}=(x'_i,y'_i,w'_i)^T xi=(xi,yi,wi)T,则 x i ′ × H x i = 0 x'_i\times Hx_i=0 xi×Hxi=0可以转换成:
[ 0 T − w i ′ x i T y i ′ x i T w i ′ x i T 0 T − x i ′ x i T − y i ′ x i T x i ′ x i T 0 T ] ( h 1 h 2 h 3 ) = 0 \begin{bmatrix} \boldsymbol{0^{T}}&-w_{i}^{'}\boldsymbol{x_{i}^{T}} &y_{i}^{'}\boldsymbol{x_{i}^{T}} \\ w_{i}^{'}\boldsymbol{x_{i}^{T}}&\boldsymbol{0^{T}}& - x_{i}^{'}\boldsymbol{x_{i}^{T}}\\ -y_{i}^{'}\boldsymbol{x_{i}^{T}} & x_{i}^{'}\boldsymbol{x_{i}^{T}} & \boldsymbol{0^{T}} \end{bmatrix}\begin{pmatrix} \boldsymbol{h^{1}}\\ \boldsymbol{h^{2}}\\ \boldsymbol{h^{3}} \end{pmatrix}=\boldsymbol{0} 0TwixiTyixiTwixiT0TxixiTyixiTxixiT0Th1h2h3=0

h h h是由矩阵 H H H的元素组成的 9 维矢量:
h = ( h 1 h 2 h 3 ) , H = [ h 1 h 2 h 3 h 4 h 5 h 6 h 7 h 8 h 9 ] \boldsymbol{h}=\begin{pmatrix} \boldsymbol{h^{1}}\\ \boldsymbol{h^{2}}\\ \boldsymbol{h^{3}} \end{pmatrix},H=\begin{bmatrix} h_{1} & h_{2} &h_{3} \\ h_{4} & h_{5} & h_{6}\\ h_{7}&h_{8} & h_{9} \end{bmatrix} h=h1h2h3,H=h1h4h7h2h5h8h3h6h9

  • A i h = 0 A_i\boldsymbol{h} =\boldsymbol{0} Aih=0是未知矢量 h \boldsymbol{h} h 的线性方程.。矩阵 A i A_i Ai的元素是已知点的坐标的二次多项式。
  • 虽然式中有三个方程,但仅有两个是线性独立的。在解 H H H时常省去第三个等式。
  • 该方程组对 x i ′ \boldsymbol{x'_i} xi的任何齐次坐标 ( x i ′ , y i ′ , w i ′ ) T ( x'_i,y'_i, w'_i )^ T (xiyiwi)T成立。

求解 H H H

  每组点对应给出关于 H H H元素的两个独立的方程。给定四组这样的点对应,便获得方程组 A h = 0 A\boldsymbol{h} =\boldsymbol{0} Ah=0

超定解

  如果给出的点对应 x i ↔ x i ′ x_{i}\leftrightarrow x'_i xixi多于四组,方程组 A h = 0 A\boldsymbol{h} =\boldsymbol{0} Ah=0是超定的。如果点的位置是精确的,那么 A A A的秩仍然为 8 并有一维零空间,并且存在精确解 h \boldsymbol{h} h。如果图像坐标的测量是不精确的,方程组将不存在精确解。我们需要求一个适当的代价函数取最小值的矢量 h \boldsymbol{h} h。通常附加范数条件,既然不存在 A h = 0 A\boldsymbol{h} =\boldsymbol{0} Ah=0的精确解,很自然会在通常约束 ∥ h ∥ = 1 \left \| \boldsymbol{h} \right \|=1 h=1下最小化范数 ∥ A h ∥ \left \| A\boldsymbol{h} \right \| Ah。这等价于求商 ∥ A h ∥ / ∥ h ∥ \left \| A\boldsymbol{h} \right \|/\left \| \boldsymbol{h} \right \| Ah/h的最小值问题。该解是 A T A A^TA ATA的最小特征值的(单位)特征矢量。由此所得到的算法称为基本 DLT 算法

非齐次解

  另 一种方法是把等式转成非齐次线性方程组,即给矢量 h \boldsymbol{h} h中的某个元素强加上 h i = 1 h_i=1 hi=1的条件。
[ 0 0 0 − x i w i ′ − y i w i ′ − w i w i ′ x i y i ′ y i y i ′ x i w i ′ y i w i ′ w i w i ′ 0 0 0 − x i x i ′ − y i x i ′ ] h ~ = [ − w i y i ′ − w i x i ′ ] \begin{bmatrix} 0 & 0 & 0& -x_iw'_i & -y_iw'_i & -w_iw'_i &x_iy'_i & y_iy'_i\\ x_iw'_i& y_iw'_i&w_iw'_i & 0 & 0 & 0 &-x_ix'_i &-y_ix'_i \end{bmatrix}\tilde{\boldsymbol{h}}=\begin{bmatrix} -w_iy'_i\\ -w_ix'_i \end{bmatrix} [0xiwi0yiwi0wiwixiwi0yiwi0wiwi0xiyixixiyiyiyixi]h~=[wiyiwixi]

  其中 h ~ \tilde{\boldsymbol{h}} h~是由 h \boldsymbol{h} h的前 8 个元素组成的 8 维矢量。

  但是,如果事实上真正的解是 h i = 0 h_i = 0 hi=0,那么不存在一个因子 k k k使 k h i = 1 kh_i = 1 khi=1.。这意味着令 h i = 1 h_i = 1 hi=1得不到真解。

退化配置

  出现某种配置不能确定唯一解的情形称为退化。注意退化的定义既涉及配置也涉及变换类型。而且退化问题不仅限于最小配置解。如果多出来的( 精确的,即无误差的)点对应也共线,那么退化问题仍没有解决。

由线和其他,实体求解

  到目前为止以及本文的其余部分,都只讨论由点对应采计算单应。然而线对应和二次曲线的对应也可以来计算单应。于是就产生计算一个单应(或任何其他关系)需要多少组对应的问题。一般的原则是约束数必须等于或大于变换的自由度数。
  但采用混合类型的对应来计算 H H H时必须谨慎。例如一个 2 D 2D 2D单应不能由两组点对应和两组线对应唯一确定,但能由三级点和一组线或一组点和三组线来唯一确定,即使每种配置都有 8 个自由度也是如此。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不放弃的蜗牛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值