2017-11-04 4 views
0

Ich versuche, Bilder (unterteilen sie in zwei Klassen, sauber und defekt) mit SIFT und SVM. Je nach Art des Bildes kann ich zwischen 5 und 100 SIFT Deskriptoren extrahieren. Dies sind die Schritte, die ich so weit verfolgt hat:SIFT Funktionen Dimensionalitätsreduktion

  • Extrakt (variable Anzahl von) SIFT Merkmale aus einem Bild;
  • Führen Sie K-Means-Clustering durch, um eine konstante Anzahl von Vektoren (K-Means-Zentren) von jedem Bild zu erhalten;
  • Bilden Sie einen Zeilenvektor, indem Sie die im vorherigen Schritt gefundenen Zentren verketten: Dieser Vektor wird ein einzelnes Element des Trainingssatzes sein;
  • Wiederholen vorherigen Schritte und eine Trainings Matrix bilden
  • Zug SVM (die Dimensionen NUM_IMAGES x 128 haben wird) und bewerten ihre Leistung

Die Kreuzvalidierung Genauigkeit liegt bei etwa 85% und nicht sehr viel ändert Wenn ein nichtlinearer (poly oder rbf) -Kernel verwendet wird, denke ich, dass eine Verbesserung nur durch die Entwicklung besserer Funktionen erreicht werden kann. Die Probleme, die ich bin zu kämpfen mit sind:

  • Die Anzahl der Cluster I ist wenig nutzen kann (sonst werde ich nicht in der Lage sein, die Bilder mit einer geringen Anzahl von SIFT-Deskriptoren zu analysieren): daher ausgeschlossen I dem Beutel voller Worte folgen.
  • Die Dimensionalität des Eingangsvektors ist hoch, was auch die Wahl für K. begrenzt

Ich versuche, diese Dimensionalität zu reduzieren, indem PCA unter Verwendung von (90% der Varianz kann durch 10-Komponenten erläutert) , aber ich weiß nicht genau, wo ich es anwenden soll: Wenn ich die Theorie dahinter verstehe, macht es keinen Sinn, PCA für jedes Bild separat durchzuführen: Soll ich den gleichen Ansatz wie zuvor verwenden, konstruiere die Trainingsmatrix und führe sie dann aus PCA? Und wie sollte ich die Hauptkomponenten während der Auswertung auswählen (ich muss ein Bild nach dem anderen testen)?

Gibt es einen anderen Ansatz, dem ich folgen könnte (zum Beispiel die Vermeidung der Verwendung von K-Means und immer noch das Erhalten einer konstanten Anzahl von SIFT-Features), angesichts meiner Einschränkungen?

Antwort

0

Sind Sie mehr oder weniger neu erfinden die Bag of Words method?

+0

Ja, irgendwie. Aber wenn ich die Bag of Words-Methode richtig verstanden habe, würde jedes Bild am Ende der Prozedur durch ein Histogramm der Codewörter dargestellt werden, dh ein K-dimensionaler Vektor, in dem jede Komponente angibt, wie viele SIFT-Deskriptoren diesem bestimmten Cluster zugeordnet wurden . Da in meinem Fall K klein sein muss (5-7), wird die Eingabe in den Klassifikator niedrigdimensional sein, und die Genauigkeit (sogar unter Verwendung von nichtlinearen Kernen) wird niedrig sein. – user1046