Nico Cornelis

Luc Van Gool

Q: Why does the performance drop when processing a set of images that do not have the same dimensions?

A: Whenever a change in image dimensions is encountered, the algorithm will need to reallocate texture data, causing this performance hit.

Q: I have the same type of graphics card used in the paper, why doesn't my performance match the published results?

A: There are various reasons which could cause this discrepancy. Here are some useful tips for achieving maximum performance:

- Disable antialising in NVidia's control panel

- Disable anisotropic filtering

- Disable Vsync

- Make sure the powermizer level is set to maximum performance

- Use a single X-server (no multiple screens, no TwinView setup)

- ...

Q: Why do I need GLUT if I don't need the GUI?

A: GLUT is used to create a valid OpenGL context for rendering. Just because the window isn't visible when the GUI is disabled does not mean it isn't there. Depending on the GLUT version, it is possible that the window is created and destroyed without ever being visible to the user.

Q: Why didn't you include the feature matching code?

A: As proposed in the paper, creating the correlation matrix for two sets of feature data is reduced to a simple matrix-matrix multiplication using the CUBLAS library. Extracting the best matches is implemented using the CUDA library. The implementation of the latter, however, depends on the application needs (uni-directional matching, bi-directional matching, matching subsets,...). Because of the simplicity of these algorithms, we advice the users to implement the feature matching stage themselves to achieve maximum performance for their specific application. CUBLAS and CUDA documentation can be found here and do not require knowledge of graphics APIs such as OpenGL. Besides simple matrix-matrix multiplications, CUBLAS also provides functions to extract the index of an extremum in an array, a function that can prove useful when extracting single matches.

Site Map