Wie sinnvoll wäre es, die Textur eines Bildes anhand von Merkmalen einer diskreten Cosinustransformation zu klassifizieren? Googeln "Textur Klassifikation dct" findet nur eine akademische Arbeit zu diesem Thema unter Verwendung eines neuronalen Netzwerks.
Für meine Anwendung habe ich einen großen Korpus von etikettierten Bildern, in denen das gesamte Bild eine konsistente Textur aufweist (z. B. Nahaufnahmen einer Decke, Baumrinde, einer Wiese usw.).
Inspiriert von einer Antwort auf eine frühere Frage , dachte ich über den folgenden Ansatz nach:
- Teilen Sie jedes Bild in NxN Pixelblöcke auf
- Nimm die DCT jedes Blocks
- Reduzieren Sie jeden DCT zu einem 1xM-Array, geben Sie ihn an einen K-Means-Clustering-Algorithmus weiter und ermitteln Sie die Cluster-Bezeichnung für jeden DCT
- Berechnen Sie ein Histogramm der Clustering-Beschriftungen für jedes Bild, indem Sie jede Beschriftung pro Bild von # 3 abzählen
- Trainieren Sie einen SVM-Klassifikator, indem Sie ihm einen Satz von [(Histogramm, Bildbezeichnung)] zuführen.
Wie gut würde das funktionieren? Ich habe ein ähnliches System implementiert, das Funktionen verwendet, die mit den SIFT / SURF-Algorithmen extrahiert wurden, aber ich konnte nur eine Genauigkeit von ca. 60% erzielen.
Auf welche andere Weise könnte ich die DCT verwenden, um Texturen zu klassifizieren?