Reputation: 327
I understand that Prosac algorithm is a modified version of Ransac algorithm that it samples according to the quality of data points. However, I cannot understand the details of the algorithm implementation. Specifically, I cannot understand the two "ifs" in both step 1 and step 2. Why do they mean in the algorithm and what are their importance?
Reference:
Matching with PROSAC – Progressive Sample Consensus http://cmp.felk.cvut.cz/~matas/papers/chum-prosac-cvpr05.pdf
Upvotes: 3
Views: 1329
Reputation: 41
Let's start by defining the variables at play here.
N: Total number of samples.
m: Complexity of the geometric model.
t: Number of iterations of the loop.
n*: Termination length (number of samples to consider before stopping).
TN: Parameter that defines after how many samples PROSAC becomes equivalent to RANSAC.
Tn: Average number of samples from the n top-ranked points.
Tn': Ceiled value of Tn
The first if checks if you have exhausted the possible samples (meaning that you have sampled Tn' samples). So, to avoid sampling again a sample already sampled, you increase the number of considered points. You can increase the number if n < n*, meaning that you can't consider more than n* points, your stopping criteria.
For the second if, we have to look at the behavior of Tn' with respect to t. We know that when t = Tn', we add one point in our considered points set. So, Tn' will always be bigger than t, except when we can't sample more points, aka when n = n* (the first if).
When we consider the n* top-ranked points, Tn' will stop growing and t will eventually become bigger or equal to Tn'.
So, as long as t does not exceed Tn', we will sample the PROSAC way (point n and m-1 points from the top n-1.
When we have sampled at least Tn' times, we do just like RANSAC, sample m points from all from the n* top-ranked points.
Upvotes: 2