Différence entre la détection D'une caractéristique et L'Extraction D'un descripteur

personne Ne sait la différence entre FeatureDetection et DescriptorExtraction dans OpenCV 2.3? Je comprends que ce dernier est nécessaire pour l'appariement en utilisant DescriptorMatcher. Si c'est le cas, à quoi sert FeatureDetection?

Merci.

39
demandé sur jmartel 2011-07-26 19:55:52

2 réponses

détection D'éléments

  • dans la vision par ordinateur et le traitement de l'image, le concept de détection de caractéristique renvoie à des méthodes qui visent à calculer des abstractions d'information d'image et à prendre des décisions locales à chaque point d'image, qu'il y ait ou non une caractéristique d'image d'un type donné à ce point. Les traits résultants seront des sous-ensembles du domaine d'image, souvent sous forme de points isolés, de courbes continues ou connecté régions.

    détection de traits = comment trouver certains points (traits) intéressants dans l'image.(Ex: trouver un coin, un modèle et ainsi de suite...)

"extraction D'éléments

  • dans la reconnaissance de motifs et dans le traitement d'image, l'extraction de traits est une forme spéciale de réduction de la dimensionnalité. Lorsque les données d'entrée d'un algorithme est trop importante pour être traitée et il est soupçonné d'être notoirement redondante (beaucoup de données, mais pas beaucoup d'informations), puis les données d'entrée sera transformé en une représentation réduite ensemble de fonctions (appelées aussi fonctions vectorielles). Transformer les données d'entrée en un ensemble de fonctionnalités est appelé extraction de fonctionnalités. Si les caractéristiques extraites sont choisies avec soin, on s'attend à ce que l'ensemble des caractéristiques extraie les informations pertinentes des données d'entrée dans ordre pour effectuer la tâche désirée en utilisant cette représentation réduite au lieu de la pleine entrée de taille.

    extraction de traits = comment représenter les points intéressants que nous avons trouvés pour les comparer avec d'autres points intéressants (traits) dans l'image. (Ex, l'intensité locale de ce point? L'orientation locale de la zone autour du point? et ainsi de suite...)

Exemple pratique : vous pouvez trouver un coin avec la méthode harris corner, mais vous pouvez le décrire avec n'importe quelle méthode que vous voulez (histogrammes , HOG, Orientation locale dans la 8ème adjacence par exemple)

vous pouvez voir ici plus d'informations, lien Wikipédia

Julien, (Aidé avec wikipédia :p)

89
répondu jmartel 2011-08-05 06:10:32

les deux, Feature Detection et Feature descriptor extraction sont des parties du Feature based image registration . Il est tout à fait logique de les considérer dans le contexte de l'ensemble du processus d'enregistrement des images en fonction des caractéristiques pour comprendre en quoi consiste leur travail.

algorithme D'enregistrement basé sur les caractéristiques

l'image suivante de la documentation PCL montre un tel pipeline D'enregistrement:

PCL pairwise registration

  1. acquisition des données: une image d'entrée et une image de référence sont introduites dans l'algorithme. Les images doivent montrer la même scène à partir de points de vue légèrement différents.

  2. Keypoint estimation (Feature detection): un keypoint ( interest point ) est un point à l'intérieur du nuage de points qui: présente les caractéristiques suivantes:

    1. il a une claire, de préférence mathématiquement bien-fondé, de la définition de
    2. il a une position bien définie dans l'espace d'image,
    3. la structure de l'image locale autour du point d'intérêt est riche en contenus d'information locale.

      OpenCV est livré avec plusieurs implémentations pour Feature detection , tels que:

    de tels points saillants d'une image sont tellement utiles parce que leur somme caractérise l'image et aide à en distinguer différentes parties.

  3. descripteurs de caractéristiques (extracteur de descripteurs): après avoir détecté les points de clés, nous allons à calculer un descripteur pour chacun d'eux. "Un descripteur local une représentation compacte d'un local du point de quartier. Contrairement aux descripteurs globaux décrivant un objet complet ou un nuage de points, les descripteurs locaux essaient de ressembler à la forme et à l'apparence seulement dans un voisinage local autour d'un point et sont donc très appropriés pour le représenter en termes de correspondance." (Dirk Holz et al.) . OpenCV options :

  4. Correspondence Estimation (descriptor matcher): la tâche suivante consiste à trouver des correspondances entre les points de clés trouvés dans les deux images.Par conséquent, les caractéristiques extraites sont placées dans une structure qui peut être recherchée efficacement (tel qu'un KD-tree ). En général, il suffit de regarder toutes les caractéristiques locales-descripteurs et correspondent chacun à son correspondant homologue de l'autre image. Cependant, étant donné que deux images d'une même scène n'ont pas nécessairement le même nombre de descripteurs de fonctionnalités qu'un nuage peut avoir plus de données que l'autre, nous devons lancer un processus de rejet de correspondance séparé. OpenCV options :

  5. rejet de correspondance: l'une des approches les plus courantes pour effectuer le rejet de correspondance est d'utiliser RANSAC (consensus D'échantillon aléatoire).

  6. Estimation De La Transformation: Après que les correspondances robustes entre les deux images sont calculées un Absolute Orientation Algorithm est utilisé pour calculer une matrice de transformation qui est appliquée sur l'image d'entrée pour correspondre à l'image de référence. Il existe de nombreuses approches algorithmiques différentes pour ce faire, une approche commune est: décomposition de la valeur singulière (SVD).

20
répondu Kevin Katzke 2016-08-29 22:06:30