DLT(Direct Linear Transform)算法


1、DLT定义

           DLT是一个 用于解决包含尺度问题的最小二乘问题 的算法。

          DLT解决问题的标准形式为:

                               {x_k}{\propto}A{y_k}       (1)

         另一种表现形式为:

                         {x_k}={\alpha}A{y_k}   或者 {\alpha}{x_k}=A{y_k}    (2)

         这种模型在投影几何中会经常遇到。

         例如,针孔相机投影模型,3D点到图像平面的投影关系;

                 两视图几何中的单应性矩阵(Homography);

2、DLT求解

           因为尺度\alpha的存在,因为不能用线性齐次最小二乘法直接求解。

         由(1)(2)式子可知:x_kAy_k的方向是相同的,即叉乘结果为0:

                                  {x_k}{\times}A{y_k}=0       (3)

            对(3)用叉乘矩阵来表示:

                           {\left[{{x_k}}\right]_\times}A{y_k}=0      (4)

          对于(4)式,可参考:向量叉乘与叉乘矩阵

          对(4)式进行变型就可以得到一个线性齐次最小二乘求解问题。可以参考:最小二乘法

3、举例

                          {\alpha}{x_k}=A{y_k}

                       {x_k}=\left[{\begin{array}{*{20}{c}}
{{x_{1k}}}\\
{{x_{2k}}}
\end{array}}\right]      {y_k}=\left[{\begin{array}{*{20}{c}}
{{y_{1k}}}\\
{{y_{2k}}}\\
{{y_{3k}}}
\end{array}}\right]      A=\left[{\begin{array}{*{20}{c}}
{{a_{11}}}&{{a_{12}}}&{{a_{13}}}\\
{{a_{21}}}&{{a_{22}}}&{{a_{23}}}
\end{array}}\right]

           由公式(4):

                       {\left[{{x_k}}\right]_\times}A{y_k}=\left[{\begin{array}{*{20}{c}}
{{x_{2k}}}&{-{x_{1k}}}
\end{array}}\right]\left[{\begin{array}{*{20}{c}}
{{a_{11}}}&{{a_{12}}}&{{a_{13}}}\\
{{a_{21}}}&{{a_{22}}}&{{a_{23}}}
\end{array}}\right]\left[{\begin{array}{*{20}{c}}
{{y_{1k}}}\\
{{y_{2k}}}\\
{{y_{3k}}}
\end{array}}\right]

           展开:

                       \begin{array}{l}
{\left[{{x_k}}\right]_\times}A{y_k}=\;{a_{11}}{x_{2k}}{y_{1k}}-{a_{21}}{x_{1k}}{y_{1k}}+{a_{12}}{x_{2k}}{y_{2k}}\\
\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;-{a_{22}}{x_{1k}}{y_{2k}}+{a_{13}}{x_{2k}}{y_{3k}}-{a_{23}}{x_{1k}}{y_{3k}}
\end{array}

           写成矩阵的形式:

                                 {\left[{{x_k}}\right]_\times}A{y_k}={b_k}a=0

           其中:

                      {b_k}=\left[{\begin{array}{*{20}{c}}
{{x_{2k}}{y_{1k}}}\\
{-{x_{1k}}{y_{1k}}}\\
{{x_{2k}}{y_{2k}}}\\
{-{x_{1k}}{y_{2k}}}\\
{{x_{2k}}{y_{3k}}}\\
{-{x_{1k}}{y_{3k}}}
\end{array}}\right]         a=\left[{\begin{array}{*{20}{c}}
{{a_{11}}}\\
{{a_{21}}}\\
{{a_{12}}}\\
{{a_{22}}}\\
{{a_{13}}}\\
{{a_{23}}}
\end{array}}\right]


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM