光流(五)--HS光流及稠密光流
阿新 • • 發佈:2019-02-19
轉自:
是一個誤差函式,根據不同的需求可以取絕對值函式,二次函式等一些非負對稱且正半軸單調遞增的函式。
由於是稠密匹配,如果單一隻有上面的資料項是不夠的,因為對純色區域的點顯然是沒法通過上式找到準確的偏移量的,因此還需要加入一個平滑項。平滑項的目的就是,對於特徵比較弱的區域的點,其偏移量儘量向強特徵點的偏移量靠近,或者說相鄰兩個特徵點的偏移量相差不能太大,也就是偏移量的變化率不能太大,用數學語言描述就是:
上式中
是梯度的模長,
是一個類似
的誤差函式。
將上面兩個公式合併起來就得到了最終的目標函式:
為了描述簡單,上面的偏移量
就不寫成顯著的函式形式,
是一個權重因子。目前主流的稠密光流演算法中,主要根據誤差函式取絕對值函式和二次函式分成兩大類(其他函式由於複雜度較高,一般比較少討論):L1-光流(L1-範數)和L2-光流(L2-範數)。下面就兩大類光流進行討論:
稠密光流
L2-光流是最早進行研究的稠密光流,由於其兩個誤差函式都是二次函式,因此被稱為L2-光流。由於二次函式是所有誤差函式中最容易進行極值求解的,因此這種方法在快速計算中經常被用到。L2-光流最早是Horn和Schunck在1981年提出並求解的[1],因此也被稱為H-S演算法。
L2-光流的目標函式如下:
為了方便計算,可以考慮用稀疏光流中近似方法,對資料項進行線性近似,從而得到新的目標函式:
原始論文中的標準解法是採用變分法,得到一個Euler-Lagrange方程,然後通過數值方法求解偏微分方程。考慮到一般人沒學過泛函分析,此處我用初等微積分的知識進行求解。
將上面的定積分形式改寫成離散的形式:
注意上面的
是
的簡寫形式,不是偏導數。由此
可以看成是所有
構成的多元函式,應用多元函式的極值求解不難得到:
平滑項求偏導數含有4項是因為
這三項中均含有
這一項,為了書寫方便,捨去下標得到方程組:
上式中:
,
,
上面的方程組實際是一個大型稀疏線性方程組,一般採用迭代法求解,最容易程式設計實現的就是SOR(超鬆弛迭代法),解出上面的二元一次方程就可以得到相應的雅克比迭代公式:
Lluís Garrido提供了HS-演算法的c語言實現[3]