Question

Je recherche une métrique utilisable pour SURF. Comme à quel point une image correspond à une autre sur une échelle, disons de 0 à 1, où 0 signifie aucune similitude et 1 signifie la même image.

SURF fournit les données suivantes:

  • points d'intérêt (et leurs descripteurs) dans l'image de requête (ensemble Q)
  • points d'intérêt (et leurs descripteurs) dans l'image cible (ensemble T)
  • en utilisant des paires d'algorithmes du plus proche voisin peut être créé à partir des deux ensembles d'en haut

J'essayais quelque chose jusqu'à présent, mais rien ne semblait trop bien fonctionner:

  1. métrique utilisant la taille des différents ensembles: d= N / min (taille (Q), taille (T)) où N est le nombre de points d'intérêt correspondants. Cela donne pour des images assez similaires une note assez faible, par exemple 0,32 même lorsque 70 points d'intérêt ont été mis en correspondance entre environ 600 en Q et 200 en T. Je pense que 70 est un très bon résultat. Je pensais utiliser une mise à l'échelle logarithmique pour que seuls des nombres très faibles obtiennent des résultats faibles, mais je n'arrive pas à trouver la bonne équation. Avec d = log(9*d0+1), j'obtiens un résultat de 0,59, ce qui est plutôt bon, mais cela détruit en quelque sorte la puissance de SURF.

  2. métrique utilisant les distances dans les paires: j'ai fait quelque chose comme trouver le meilleur match K et ajouter leurs distances. La plus petite distance est la similitude des deux images. Le problème avec ceci est que je ne sais pas quelles sont les valeurs maximum et minimum pour un élément de descripteur de point d'intérêt, à partir duquel la distance est calculée, donc je ne peux trouver que le résultat relativement (à partir de nombreuses entrées, ce qui est le meilleur). Comme je l'ai dit, je voudrais placer la métrique exactement entre 0 et 1. J'en ai besoin pour comparer SURF à d'autres métriques d'image.

Le plus gros problème avec ces deux éléments est d'exclure l'autre. L'un ne prend pas en compte le nombre de matches, l'autre la distance entre les matches. Je suis perdu.

EDIT : Pour le premier, une équation de log (x * 10 ^ k) / k où k vaut 3 ou 4 donne un bon résultat la plupart du temps, le min n'est pas bon , il peut rendre le d plus grand que 1 dans de rares cas, sans que les petits résultats ne soient de retour.

Était-ce utile?

La solution

Vous pouvez facilement créer une métrique correspondant à la somme pondérée des deux métriques. Utilisez des techniques d'apprentissage automatique pour apprendre les pondérations appropriées.

Ce que vous décrivez est étroitement lié au domaine de la récupération d'images basée sur le contenu, qui est un domaine très riche et diversifié. Googler qui vous donnera beaucoup de hits. Bien que SURF soit un excellent détecteur de caractéristiques de niveau bas-moyen à usage général, il est loin d'être suffisant. SURF et SIFT (dont SURF est dérivé), sont excellents pour la détection des doublons ou des quasi-doublons, mais ne sont pas très bons pour capturer la similitude perceptuelle.

Les systèmes CBIR les plus performants utilisent généralement un ensemble de fonctionnalités combinées de manière optimale via un ensemble d'entraînement. Certains détecteurs intéressants à essayer incluent GIST (détecteur rapide et bon marché, le mieux utilisé pour détecter environnements artificiels ou naturels) et Object Bank (un détecteur basé sur un histogramme lui-même composé de 100 de sorties de détecteur d'objet).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top