2

我使用了Nister的5點方法來計算基本矩陣。使用RANSAC和Sampson錯誤閾值進一步改善了異常值抑制。我隨機選擇5個點集,估計基本矩陣並評估匹配向量的Sampson誤差。其Sampson誤差低於閾值t的點座標(在我舉例的示例中設置爲0.01)被設置爲非正常值。對所有基本矩陣都重複這個過程,我們保留一個具有最高得分的內點。五點基本矩陣估計的桑普森誤差

我已經注意到d的大部分值,即sampson錯誤的向量太大:例如,如果d的大小是(1x1437),如果我做的話 g = find(abs(d)> 0.01 ); (g) 長度(g)

然後長度(g)= 1425這意味着只有7個值是具有該閾值的不正確的內部值!

如何設置閾值?如何解釋Sampson錯誤值?

請幫助我。謝謝

回答

7

桑普森距離是幾何距離的一階近似。可以理解如下:

給定一個基本矩陣F和一對對應關係(x,x'),使得x'Fx = e,這對對應的距離/誤差是多少?對於所有對應關係(y,y')定義幾何距離,使得y'Fy = 0,|| xy ||^2 + || x'-y'||^2的最小值(換句話說,與(x,x')完全符合F矩陣的最接近的對應關係)。可以證明,桑普森誤差是這個最小距離的第一個近似值。直觀地說,桑普森誤差可以粗略地認爲是點x到對應的極線x'F之間的平方距離。在這種情況下,0.01的閾值太小(你很少找到一個基本矩陣,所有的對應關係都在0.1像素精度內)。建議的閾值將介於1到10之間(1〜3像素誤差),具體取決於圖像對的大小/分辨率/質量。

+0

我認爲你的回答有點不清楚,爲什麼不能在相應的極線上投影x,x'並總結點與它們的投影之間的距離。 – Vlad 2015-11-23 23:07:30

1

0.01是一個太小的閾值。 作爲最後一個答案,1到10更好。

x和x'使用sampson錯誤意味着它們都不在每條極線上,我們需要計算這兩個點的誤差。

如果您修復了x,使用F和x來計算第二個圖像中的線(此圖像上的x'),那麼您可以計算點與線之間的距離(x'到極線)。這意味着你認爲點x是正確的,就在它的行中。

這兩種方式是不同的。