目標跟蹤:光流法閱讀記錄 — determining optical flow

論文地址:提取碼:uof0

基本公式

假設在一幅圖片中,某一點(x,y)的亮度變化是均勻的,設這一點在時刻t的亮度爲 E(x,y,t),那麼容易得到
dEdt=0{dE\over dt} =0
根據鏈式法則,可以進一步得到
dEdxdxdt+dEdydydt+dEdt=0{dE\over dx}{dx\over dt}+{dE\over dy}{dy\over dt}+{dE\over dt} = 0
接下來令 dxdt=u{dx\over dt} = udydt=v{dy\over dt} = v,對偏導進行縮寫得到
Exu+Eyv+Et=0E_xu+E_yv+E_t = 0(Ex,Ey)(u,v)=Et(E_x,E_y)(u,v) = -E_t
因此得到,光流在亮度梯度(Ex,Ey)(E_x,E_y)方向上的分量等於
EtEx2+Ey2-E_t\over{\sqrt{E_x^2+E_y^2}}

但是,目前還不能確定在等亮度輪廓方向上與亮度基準成直角的運動分量,在不引入其他約束的情況下無法局部計算流速(u,v)(u,v)

平滑約束

如果亮度模式的每個點都可以獨立移動,那麼恢復速度的希望就很小。 幸而更常見的是看到有限尺寸的不透明物體經受剛性運動或變形。
圖1.圖像亮度方程式的基本變化率限制了光流速。 速度(u,v)必須沿着垂直於速度空間中亮度梯度矢量的特定線放置
圖1.圖像亮度方程式的基本變化率限制了光流速。 速度(u,v)(u,v)必須沿着垂直於速度空間中亮度梯度矢量的特定線放置

在這種情況下,物體上的相鄰點具有相似的速度,並且圖像中亮度模式的速度場幾乎在任何地方都平滑變化。 在一個物體遮擋另一物體的情況下,可能會出現流動不連續的情況。
表示附加約束的一種方法是限制點的流速與包含該點的小鄰域上的平均速度之差。 等效地,我們可以最小化流的xy分量的拉普拉斯算子的平方和。 uv的拉普拉斯定義爲
2u=2ux2+2uy2▽^2u = {{∂^2u\over∂x^2}+{∂^2u\over∂y^2}}
2v=2vx2+2vy2▽^2v = {{∂^2v\over∂x^2}+{∂^2v\over∂y^2}}
在簡單情況下,兩個拉普拉斯算子均爲零。 如果觀察者平行於平面物體平移,繞垂直於表面的直線旋轉或垂直於表面行進(假定垂直投影),則u和v的第二部分導數將消失。 請注意,文中的方法與Fennema Thompson(1979)提出的方法相反,後者提出了一種算法,該算法間接包含了諸如表面光滑度或對象剛度之類的其他假設。

量化與噪聲

  • 可以在固定的點網格上以一定間隔採樣圖像。 儘管明顯的細分具有某些優勢(Mersereau 1979,Gray 1971),爲方便起見,我們將假定圖像以規則的間隔在正方形網格上進行採樣。 假設在第k個圖像幀中第i行和第j列的交點處測得的亮度爲Ei,j,kE_{i,j,k}。 理想情況下,每次測量應爲整個像素區域和叉齒內部長度的平均值。 這裏引用的實驗中,在時空的離散點上採樣。
  • 除了在空間和時間上進行量化外,測量結果實際上還將在亮度上進行量化。 此外,在任何實際系統中獲得的測量結果中噪聲都會很明顯

估計偏導數

我們必須從可用的離散圖像亮度測量集中估算亮度的導數。 重要的是,Ex,Ey,EtE_x,E_y,E_t的估計值必須保持一致。 也就是說,它們都應同時指向圖像中的同一點。 雖然有許多近似微分的公式(Conte de Boor 1965,Hamming 1962),但我們將使用一個集合,該集合可爲我們提供由八次測量形成的立方體中心點的Ex,Ey,EtE_x,E_y,E_t的估計值。 這些測量之間的空間和時間關係如圖2所示。每個估計值都是立方體中相鄰測量值的四分之一的平均值。
在這裏插入圖片描述
這裏的長度單位是每個圖像幀中的網格間隔,時間單位是圖像幀採樣週期
在這裏插入圖片描述
圖2.立方體中心圖像亮度的三個偏導數分別是根據沿着立方體四個平行邊緣的一階差的平均值估算的。 此處列索引 j 對應於圖像中的 x 方向,行索引 i 對應於 y 方向,而 k 沿時間方向

估計流速的拉普拉斯算子

本文還必須近似uv的拉普拉斯算子。 一種近似的近似形式如下
在這裏插入圖片描述
如果如圖2所示計算平均值,並再次假定長度單位等於網格間隔,則比例因子K等於3。 圖3說明了權重分配給相鄰點的情況。
在這裏插入圖片描述
圖3.拉普拉斯算子是通過從相鄰點的值的加權平均值中減去某個點的值來估算的。 此處顯示的是可以乘以值的合適權重

最小化

接下來的問題是使圖像亮度變化率方程中的誤差總和最小化
ϵb=Exu+Eyv+Et\epsilon_b = E_xu+E_yv+E_t
以及速度流中偏離平滑度的估計
ϵc2=(uu)2+(vv)2\epsilon_c^2 = {(\overline u-u)}^2+{(\overline v-v)}^2
這兩個因素的相對權重應該是多少? 實際上,圖像亮度測量會因量化誤差和噪聲而產生損失,因此我們不能期望ϵb\epsilon_b等於零。 該量將傾向於具有與測量中的噪聲成比例的誤差幅度。 這個事實指導我們選擇合適的加權因子,用α\alpha表示,稍後將看到。

總誤差定義爲
ϵ2=α2ϵc2+ϵb2\epsilon^2 = \alpha^2\epsilon_c^2+\epsilon_b^2

通過找到合適的光速(u,v)(u,v)值可以實現最小化,我們將ϵ2\epsilon^2求出
在這裏插入圖片描述
將這兩個導數設置爲零會得出uv中的兩個方程
在這裏插入圖片描述
係數矩陣的行列式等於α2(α2+Ex2+Ey2)\alpha^2(\alpha^2+E_x^2+E_y^2),求解(u,v)(u,v)得到
在這裏插入圖片描述

一個點的流量與本地平均值之差

上面的公式可以寫成另一種形式
在這裏插入圖片描述
這個式子表明使誤差ϵ2\epsilon^2最小的流速(u,v)的值位於沿着與約束線成直角相交的線的朝向約束線的方向。 圖4中以幾何方式說明了這種關係。當用u,v\overline u,\overline v代替u,vu,v時,距本地平均值的距離與亮度變化率基本公式中的誤差成比例。最後我們可以看到α\alpha在僅對亮度梯度較小的區域起了很大作用,防止偶然估計調整導數中的噪聲引起的估計流速。此參數應大致等於Ex2+Ey2E_x^2+E_y^2估計中的預期噪聲。
在這裏插入圖片描述
圖4.使誤差最小化的流速值位於一條從垂直於約束的流速局部平均值繪製的線上

迭代方法求解上述方程

現在,對於圖像中的每個點,都有一對方程式。 通過一種標準方法(例如高斯-喬丹消除法)(Hamming 1962,Hildebrand 1952)解決這些方程計算量非常大。 由於行和列的數量等於圖像中圖片單元的數量的兩倍,因此相應的矩陣稀疏也非常大。 由此推薦使用迭代方法,例如高斯-西德爾方法(Hamming 1962,Hildcbrand 1956)。 根據估計的導數和先前速度估計值(un,vn)(u^n,v^n)的平均值,計算出一組新的速度估計值(un+1,vn+1)(u^{n+1},v^{n+1})
在這裏插入圖片描述
有趣的是,特定點的新估算不直接依賴於同一點上的先前估算。

填充聯合區域

在亮度梯度爲零的圖像部分中,速度估計將只是相鄰速度估計的平均值。 沒有本地信息來約束這些區域中亮度模式的視在運動速度。 最終,此類區域周圍的值將向內傳播。 如果區域邊界上的速度全部相同,那麼在足夠數量的迭代之後,區域中的點也將被分配該值。 因此從恆定亮度區域的邊界填充形成速度。

迭代次數

如果邊界上的值不完全相同,則填充的值將對應於給定邊界條件的拉普拉斯方程的解(Ames 1977,Milne 1953,Richtmyer morton 957)。 這種填充現象的進展類似於熱方程解中的傳播效應,其中溫度的時間變化率與拉普拉斯方程成比例。 這爲我們提供了一種從物理角度理解迭代方法並估算步驟數的方法。迭代次數應大於必須填充的最大區域的橫截面。如果事先不知道此類區域的大小,則可以使用整個圖像的橫截面作爲保守估計。

約束嚴密性

當一個區域的亮度是圖像座標的線性函數時,我們只能獲得光流在梯度方向上的分量。 如上所述,從該區域的邊界填充直角的分量。 通常,在亮度梯度大並且在點到點的方向上存在變化的區域中,方向的估計是最準確的。 然後,可以在每個點的相對較小的鄰域中獲得約束光流速的兩個分量的信息。 另一方面,亮度的劇烈波動是不希望的,因爲導數的估計會由於欠採樣和混疊而損壞。

迭代方案的選擇

實際上,可以選擇如何將迭代與時間步長交織在一起。一方面,可以迭代直到解穩定爲止,然後再前進到下一個圖像幀。 另一方面,給定良好的初始猜測,每個時間步長可能只需要一個迭代就可以從先前的時間步獲得對光流速度的良好的初始猜測。

後一種方法的優點包括每單位時間能夠處理更多的圖像,並更好地估計某些區域的光流速度。 亮度梯度小的區域會導致不確定的、嘈雜的估計,部分是通過從周圍填充來獲得的。 通過考慮進一步的圖像可以改善這些估計。 圖像測量中的噪聲將是獨立的,並且傾向於抵消。 也許更重要的是,圖案的不同部分將在圖像中漂移給定點。 由於這些原因,實際的實現方式很可能每個時間步長使用一個迭代。

我們在實驗中說明了這兩種方法。

實驗

迭代方案已經實現並應用在了對應多個簡單流型的圖像序列。 此處顯示的結果是在32 x 32像素的較小圖像上顯示的。 亮度測量被大約1%的噪聲故意破壞,然後量化爲256級,以模擬真實的成像情況。 底層表面反射率模式是空間正交正弦曲線的線性組合。 選擇它們的波長以提供合理強的亮度梯度,而不會導致欠採樣問題。 避免了不連續性,以確保所需的導數在任何地方都存在。

例如,在圖5中顯示的是四個圖像幀,描繪了一個球體繞着朝向觀看者傾斜的軸旋轉。 在球體表面上繪製了平滑變化的反射率圖案。 球體從各個方向均勻照明,因此沒有陰影。

結果

首先要研究的流程是整個亮度模式的簡單線性平移。計算所得的流程是如圖1所示的針圖,分別進行了1、4、16和64次迭代。 估計的流速用短線表示,顯示了一個時間步長期間的表觀位移。 在此示例中,僅採取了一個時間步長,因此計算僅基於兩個圖像。

最初,流速的估計爲零。 因此,第一次迭代顯示了亮度梯度方向上的矢量。 後來,估計值將逼近圖像所有部分的正確值。 當速度向量的error約爲10%時,在32次迭代後幾乎沒有變化。 估計值可能太小,而不是太大,可能是由於偏導數的估計較低。 發生最嚴重的錯誤,可以預料的是,錯誤發生在亮度梯度很小的區域。

在第二個實驗中,在相同的線性平移圖像序列上每個時間步長使用一次迭代。圖7中顯示了1、4、16和64個時間步長的計算結果流。 估計值可以更快地逼近正確的值,並且不會像以前的實驗中那樣趨於太小。 速度向量的誤差約爲7%時,經過16次迭代後幾乎沒有變化。正如所料想的那樣,最大的誤差發生在亮度測量中噪聲最多的區域。
在這裏插入圖片描述
在這裏插入圖片描述
圖6.爲簡單轉換亮度模式而計算的流模式。 在1、4、16和64次迭代後的估計值顯示速度爲0。每個時間間隔在x方向上有0.5個像元,在y方向上有1個像元。兩個圖像用作輸入,分別在一個時間間隔內描述了兩次分開的情況
在這裏插入圖片描述

圖7.顯示了爲1、4、16和64個時間步長後的亮度模式估計值的簡單轉換而計算的流模式。 在這裏,每個時間步長迭代一次,收斂速度更快,並且可以準確估算速度。

儘管各個速度的估計值可能不是很準確,但整個圖像的平均值在正確值的1%以內。然後,該方法被應用於簡單旋轉和亮度圖案的簡單收縮。 經過32個時間步長後的結果如圖8所示。請注意,在這兩種情況下,速度的大小都與距流動原點的距離成比例。

到目前爲止,在所有示例中,兩個流速分量的拉普拉斯算子在各處均爲零。 我們還研究了並非如此的更困難的情況。 特別是,如果讓速度的大小隨着距原點的距離的倒數而變化,則會產生圍繞線頂點的流動,而二維流動會下降。 計算的流模式如圖9所示。此處的計算涉及基於單個時間步長的多次迭代。 最嚴重的錯誤發生在流型起源處的奇點附近,在該處發現的速度每次都比一個像元大得多。最後,我們考慮了剛體運動。 圖10中顯示的是爲繞其軸旋轉的圓柱體和旋轉球體計算的流量。 在這兩種情況下,流的拉普拉斯算子都不爲零,實際上,速度分量之一的拉普拉斯算子在閉塞邊界上變爲無窮大。 由於速度本身仍然是有限的,因此仍然可以獲得合理的解。 正確的流動模式如圖11所示。將計算出的值與精確值進行比較,可以發現最嚴重的錯誤發生在遮擋邊界上。 這些邊界構成了平面的一維子集,因此可以預期,隨着圖像分辨率的提高,估計流量嚴重錯誤的相對點數將減少。

在附錄B中,表明流速分量的拉普拉斯算子與表面高度的拉普拉斯算子之間存在直接關係。 這可以用來查看我們的平滑度約束如何適用於不同的對象。 例如,旋轉多面體將產生拉普拉斯算子爲零的流,但圖像線是圖像體邊緣的投影。

總結

本文提出了一種用於根據一系列圖像計算光流的方法。 根據觀察,流速具有兩個分量,並且圖像亮度變化率的基本方程式僅提供一個約束。 低的平滑度是第二個約束條件。 然後,提出了一種求解結果方程的迭代方法。一個簡單的實現以針狀圖的形式直觀地驗證瞭解決方案的收斂性。 研究了幾種不同類型的光流模式的示例,這些情況包括流的拉普拉斯算子爲零的情況以及在奇點或沿邊界曲線變得無限的情況。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章