Unit test for SIFT features extraction based on VLFeat fails on Ubuntu 12.04 32bits
Created by: laurentes
There is currently an issue with the test of the SIFT features under Ubuntu 12.04 32 bits. For unknown reason, the SIFT descriptors computed by Ubuntu 12.04 32 bits are different from the reference one generated with Ubuntu 10.04 32 bits. This happens despite the fact that we are using the exact same version of VLFeat 0.9.14 (last release), and that VLFeat has almost no external dependence:
$ ldd /usr/lib/libvl.so linux-gate.so.1 => (0x00b52000) libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0x00412000) libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0x0073c000) libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0x00174000) /lib/ld-linux.so.2 (0x00b8b000)
Tracking the problem, it likely originates from the keypoint detection, as there is no such an issue with the Dense SIFT features, which also relies on VLFeat. I guess that some of them are slightly below the threshold to be considered as keypoints on 12.04 but slightly above on 10.04. This is particularly annoying as this then shift the whole keypoints, making the comparison of the descriptors tough.
There are three possible options:
- Remove the test, considering that this is a VLFeat issue
- Add additional references and checking that one of them matches the values generated
- Add a more clever test. which will allow some keypoints more (or less), and able to still match the descriptors in such a situation.
Personally, I will go for the first one.