幾種新的評判光流的方式與它們的效果比較

對於一個光流演算法表現得好不好,意味著由演算法算出的光流與真正的光流差距有多少,為此我們需要有可以量化的評價標準(Metric),其中最常見的評判方式有兩種:EPE和AAE。

EPE指的是End Point Error,顧名思義,它就是端點之間的距離。光流有x方向和y方向的分量,所以可以把它在平面上表示成一個向量,然後取「真正的光流」向量與「算出的光流」向量的兩個端點之間的距離,就是End Point Error。(圖一)
圖一、End Point Error示意圖

從圖一中可以看出End Point Error就是「誤差」向量的長度,在數學上「誤差」向量可以表示為「算出的光流」向量減「真正的光流」向量,而長度則可以用兩個向量的xy分量和勾股定理得到。以上我們已經算出一個像素上的EPE了,接著只要對每個像素都算一次再平均,就是這一幀的誤差值。

至於另一個常用的評判方式AAE則更加簡單,指的是Average Angular Error,就是算兩個向量的夾角,只要用程式呼叫反三角函數就行了。

這兩種評判方式雖然被廣泛使用,但也有缺點。首先AAE的缺點很明顯,它沒有描述長度方面的資訊。至於EPE,它其實是同時包含了長度誤差和角度誤差的資訊,然而缺點就是模糊,兩者混在一起,分不清楚誤差到底是來自角度還是長度的誤差。

為了改善傳統評判方式所具有的缺點,Alhersh等人在Metrics Performance Analysis of Optical Flow這篇研究裡,提出了五種新的評判方法。他們首先用一張圖形象地說明了EPE的模糊性:(圖二)
圖二、EPE的模糊性。幾種相差甚大的光流有著相同的EPE。

至於AAE,它其實還有著不準確的問題,因為傳統的Angular Error計算方式中,為了避免除以零的情況,額外做了個+1的動作:(式一)
式一

以下是他們所提出的五種新的評價方法的簡介:
1.Point Rotational Error (PRE) -- 這其實就是AE的改進,把多餘的+1去掉,並用條件判斷來避免除以零。(式二)
式二

2.Generalized Point Rotational Error(GPRE) -- 這是上面那項的拓展,把+1那項拿回來,改成兩個任意數,用於三維空間。
3.Linear Projection Error (LPE) -- 投影是一個判斷誤差的好方法,因為我們可以輕易看出,當兩個向量越相似,投影的長度就會越接近另一個向量的長度。(圖三)
圖三、用投影判斷誤差

4.Normalized Euclidean Error (NEE) -- 這是把EPE除以兩個向量中較長者的長度的平方(省去開根號的動作)。要做標準化是因為一般來說正確的光流本身越長,誤差也會受影響膨脹,需要標準化才能橫向比較。

5.Enhanced Normalized Euclidean Error(ENEE) -- 這個部分是NEE的改進,列出了幾種不同的標準化方式。

然後他們就要測試這幾種評價方法誰比較好。對於一個評價方法來說,誤差越大,它表現出來的數值也要越大,同時當誤差增加,表現數值增加得越多代表越靈敏。測試的方法是對正確的光流做一些變換以產生各種已知的誤差,然後使用這幾種評價方法去得出各自的誤差估計值。(圖四)
圖四、在Kitti資料集的測試結果。橫軸是變換的程度,縱軸是誤差估計值。

最後他們結論說,表現最好的估計方法是NEE和ENEE1。


撰稿人:劉徹


參考資料:
Alhersh, Taha, Samir Brahim Belhaouari, and Heiner Stuckenschmidt. "Metrics Performance Analysis of Optical Flow." VISIGRAPP (4: VISAPP). 2020.

留言