5 votes

OpenCV SIFT vs l'implémentation SIFT de David Lowe, OpenCV bien pire

J'ai essayé la détection d'objets pour deux objets différents, en utilisant tous les deux la fonction La mise en œuvre de David Lowe y Mise en œuvre d'OpenCV (il suffit de changer 'SurfFeatureDetector' -> 'SiftFeatureDetector' et 'SurfDescriptorExtractor' -> 'SiftDescriptorExtractor' dans ce code).

Il semble que l'implémentation d'opencv soit bien pire ! Beaucoup de faux positifs et moins de points clés détectés ! J'ai essayé de jouer avec les paramètres de 'SiftFeatureDetector' comme sigma/contrastThreshold etc mais les résultats étaient toujours bien pires que la version originale de David.

  • L'implémentation opencv de SIFT est-elle très "différente" de l'implémentation originale de David Lowe ?

  • Quelqu'un connaît-il un bon jeu de paramètres pour 'SiftFeatureDetector' afin que les résultats pour les images d'objets fournies avec l'implémentation de David (comme box.pgm/basmati.pgm..) puissent sembler similaires à la version de David.

2voto

VLFeat 's Mise en œuvre de SIFT est assez proche (en termes de résultats) par rapport à la mise en œuvre initiale.

0voto

J'utilise l'implémentation OpenCV de SIFT et je la compare à celle de David Lowe disponible sur son site web. En ajustant certains paramètres, j'ai obtenu de bons résultats.

0voto

GuillaumeL Points 200

Voici ce que j'utilise en Python :

 detector = cv2.xfeatures2d.SIFT_create(
        nfeatures = 0,  # def 0 
        nOctaveLayers = 3,  # def 3
        contrastThreshold = 0.04,  # def 0.04 
        edgeThreshold = 10,  # def 10 
        sigma = 1.6)  # def 1.6 

Toutes les valeurs par défaut. J'obtiens de bons résultats, bien que l'exécution soit assez lente.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X