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