Pergunta

I'm currently implementing a panorama stitcher for a computer vision assignment, and I have a question about the second-best ratio test (as described in the SIFT paper by Lowe). Here's my understanding of what to do after the interest points/descriptors have been computed for each image:

For each descriptor in image 1 we find the 2 closest descriptor matches in image 2. If the closest neighbor is within some threshold, we compute the ratio of the distances of each neighbor to the descriptor from image 1. If the ratio is low enough (i.e. the closest neighbor is relatively much closer than the second closest neighbor), then we consider this a good match.

It seems like this process is asymmetrical, such that switching image 1 and image 2 will change the matches found. For example, imagine that image 1 has some distinctive point, P1, and image 2 has two similar distinctive points P2 and P3. Assume that our interest point detector finds all 3 of these points and computes similarly valued descriptors for all of them, and that all other interest points are far away in the descriptor space.

Now imagine we run feature matching as described above, iterating over the interest points in image 1. When we get to P1, we will reject a match with P2 or P3 because of the second best ratio test (both are similarly distanced from P1 in the feature space).

However, iterating over image 2 seems to have different results. We iterate over P2 and P3 and both times we assign a match to P1, since there so there's no close second neighbor in image 1.

This seems like it would be a real problem when running the algorithm, so I'm assuming I'm missing something. When iterating over image 2, should we compare the ratio between dist(P2,P1) and dist(P3,P1) after finding out that they match with the same point in image 1? Even if we do this, it still seems like there's some inherent asymmetry between running matching from image 1 to image 2 and vice versa. Is there a step in the algorithm that I'm missing?

Foi útil?

Solução

Shortly, yes, it is assymetric. You don't miss the step. Is it really problem for stitching? You have have already hundreds of the fine matchings...

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top