2017-02-27 6 views
0

J'ai un problème avec la fonction bagoffeatures implémentée dans matlab computer vision system toolbox. Je fais une étude d'une classification de différents types d'images, tout d'abord j'essaie d'utiliser des bagoffeatures avec des extracteurs personnalisés de diffenrets, je veux diviser mon travail en 2 branches, d'abord extraire les points SURF et extraire 3 différents types de descripteurs, par exemple SURF VIF et FREAK, quand je l'utilise dans mon extracteur personnalisé la ligne suivante:bagoffeatures extraire différents types de fonctionnalités

features = extractFeatures(grayImage,multiscaleGridPoints,'Upright',true, 'method', 'SURF'); 

Il faut AllWays pour obtenir la méthode SURF pour travailler, mais je dois être en mesure d'obtenir différents types des descripteurs. Puis-je utiliser le sac des fonctions de la boîte à outils du système de vision par ordinateur pour ce faire? ou ne supporte-t-il que des extractions de surfforture?

+0

Avez-vous lu la documentation? Y at-il quelque chose qui n'est pas clair là-bas? –

+0

oui, lire la documentation, et j'ai testé la fonction et cherché une solution, je veux juste savoir si quelqu'un sait si vous pouvez extraire un autre type de descripteurs. –

+0

Vous ne l'avez pas lu. Deuxième ligne de la documentation: * bag = bagOfFeatures (imds, 'CustomExtractor', extractorFcn) renvoie un sac de fonctions qui utilise une fonction d'extraction de fonction personnalisée pour extraire des entités du sac de sortie afin d'apprendre son vocabulaire visuel. extractorFcn est un handle de fonction pour une fonction d'extraction de fonction personnalisée. * –

Répondre

0

Malheureusement, vous ne pouvez pas utiliser BRISK ou FREAK avec la mise en œuvre de MATLAB de sac-de-fonctionnalités, parce que l'algorithme de bag-of-features utilise K-means clustering pour créer les "mots visuels". Le problème est que les descripteurs BRISK et FREAK sont des chaînes de bits binaires, et vous ne pouvez pas les grouper avec K-means, qui ne fonctionne que sur des vecteurs réels.

Vous pouvez certainement utiliser différents types de détecteurs de point d'intérêt avec le framework MATLAB. Cependant, vous êtes limité aux descripteurs qui sont des vecteurs à valeur réelle. Donc, SURF et SIFT fonctionneront, mais BRISK et FREAK ne fonctionneront pas. Si vous devez absolument utiliser BRISK et FREAK, vous devrez implémenter votre propre sac de fonctionnalités. Il y a plusieurs méthodes pour grouper des descripteurs binaires, mais je ne sais pas si elles fonctionnent bien dans le contexte du sac-de-fonctionnalités.

+0

Devrais-je mettre en place mon propre sac de mots pour résoudre mon problème? J'ai vraiment besoin de combiner différents types de détecteurs et d'extracteurs pour classer mes images avec différentes méthodes –

+0

J'ai édité ma réponse. – Dima

+0

Merci pour la réponse, eh bien je n'ai pas besoin d'utiliser spécialement ces 2 descripteurs, mais puisque je voulais utiliser la boîte à outils de vision par ordinateur j'essaierai de faire 2 types de tests: Obtenir des keyPoints rapides et utiliser des descripteurs SURF, BRISK et FREAK , et le second obtient les points clés SURF et utilise les descripteurs SURF BRISK et FREAK. Je vais essayer de mettre en place mon propre sac, je vous remercie pour votre réponse, j'apprécie –