Ich versuche, HoG + SVM Objekte in verschiedene Kategorien zu klassifizieren. Das Problem ist, dass die Dimension der Trainingsbilder unterschiedlich ist. Die resultierenden HoG-Deskriptoren haben also variable Längen. Ich habe die Merkmale aller Trainingsbilder in eine Zelle extrahiert. Jedes Element i der Zelle ist ein Vektor von HoG-Deskriptoren für das Bild i in dem Datensatz. Meine Frage ist, wie mache ich es kompatibel für das Training der SVM-Klassifikator (mit Svmtrain-Funktion)?Training SVM mit variabler Größe Beschreibung der Trainingsbilder (MATLAB)
Antwort
Wie lejlot richtig erwähnt, kann SVM nicht mit Vektoren variabler Länge trainiert werden.
Sie können die Bildgröße einfach auf eins normieren, d. H. 256x256. Es gibt 3 Möglichkeiten, dies zu tun:
- Crop die 256x256 Patch um den Mittelpunkt.
- Bildgröße auf 256x256 ändern und das ursprüngliche Seitenverhältnis verwerfen.
- Bild auf 256xM skalieren, wobei M < 256 ist - das ursprüngliche Seitenverhältnis bleibt erhalten. Dann füge graue Streifen links und rechts (oder oben und unten) hinzu, um das Bild auf 256x256 zu füllen.
Alle Varianten werden von verschiedenen Autoren verwendet und Sie müssen überprüfen, welche für Ihre Aufgabe am besten geeignet ist.
SVM kann nicht trainiert werden mit Vektoren variabler Länge. Sie müssen eine Art von Transformation verwenden, die Ihre Daten in eine Darstellung mit konstanter Länge abbildet. Sie können zum Beispiel bekannte Dimensionalitätsreduktionstechniken ausführen.
Irgendwelche Ideen zum Umgang mit dem Problem außer Dimensionalität Reduktion? –
- 1. Training benutzerdefinierte SVM mit HOGDescriptor in OpenCV
- 2. Opencv 3 SVM Training
- 3. Matlab SVM für Bildklassifizierung
- 4. SVM-Visualisierung in MATLAB
- 5. Training SVM mit Bildern von verschiedenen Dimensionen
- 6. Wirklich niedrige Genauigkeit mit SVM + Matlab und libsvm
- 7. tensorflow konstant mit variabler Größe
- 8. Suport Vector Machine (SVM) Training mit mehreren Funktionen
- 9. Verwenden Sie sequentialfs mit SVM in Matlab
- 10. Bitset variabler Größe
- 11. variabler Länge MATLAB Argumente Variable
- 12. Nachricht mit variabler Größe in MPI
- 13. Eins-zu-eins-SVM in MATLAB
- 14. C++ verbietet Array variabler Größe
- 15. Ändern der Bias-Parameter b in Scikit SVM nach dem Training, vor der Vorhersage
- 16. Zug Branderkennung mit opencv SVM
- 17. Matlab Bildposition und Größe
- 18. Python: argparse eine Liste von variabler Größe
- 19. Speichern variabler Größe Teil der Zeichenfolge auf eine andere Variable
- 20. In einen Bereich variabler Größe schreiben
- 21. Java NIO: Blöcke variabler Größe lesen
- 22. Ein multidimensionales Array variabler Größe übergeben
- 23. OpenCV - Training neuer LatentSVMDetector Modelle
- 24. Training Tensorflow RNN mit großen Datensätzen
- 25. Vergleichen von Objekten mit variabler Größe in Javascript
- 26. TensorFlow concat ein variabler Größe Platzhalter mit einem Vektor
- 27. Beispiel einer 10-fachen SVM-Klassifizierung in MATLAB
- 28. eine Gleichung mit Matlab (Matrix-Größe)
- 29. C Kompilierfehler: "Objekt mit variabler Größe kann nicht initialisiert werden"
- 30. Array mit variabler Größe in C in VS
Vielen Dank old-ufo, das war sehr hilfreich. Ich werde es jetzt ausprobieren. –