2016-05-07 5 views
11

Ich habe 3 Ordner mit Farbbildern. Der Name des Ordners ist eine Bezeichnung für die darin enthaltenen Bilder.Keras laden Farbbilder

cls1 
    |____img_0.png 
    |____ ... 
    |____img_n.png 
cls2 
    |____img_0.png 
    |____ ... 
    |____img_n.png 
cls3 
    |____img_0.png 
    |____ ... 
    |____img_n.png 

Ich mag Keras Bibliothek verwenden Faltungs neuronales Netz zur Klassifizierung zu schaffen, aber ich nicht finden kann, wie Daten-Set von Farbbildern erstellen. Können Sie mir helfen?

Antwort

11

Bitte beachten Sie dies gist of pre-trained VGG-16 model with example usage die ich illustrative finden:

Fassen wir zusammen:

  1. Laden Sie Ihre Bilder mit OpenCV oder scikit-Bild usw. (L58)
  2. Resize und/oder zuschneiden Bilder passend zur Eingabegröße (224 * 224 für VGG-16) (L58)
  3. Berechnen und subtrahieren Sie für jedes Bild den Mittelwert (L59 ~ L61)
  4. Tauschen Sie die Farbdimension vor Höhe und Breite (L62)
  5. Wenn Sie scikit-Bild verwenden, müssen Sie die drei Farbkanäle weil OpenCV Last Bilder als BGR Kanäle aber scikit-Bild laden Sie es als RGB Kanäle tauschen.
  6. Fügen Sie die Losgröße Dimension (L63)
  7. Shuffle, partitionieren und verketten sie (entlang Dimension 0) X_train, Testdaten X_test etc., um die Trainingsdaten zu bilden, zusammen mit Grundwahrheit Y_train, Y_test usw.
  8. Wenn Ihr Datensatz ist zu groß, um in den Speicher zu passen, verwenden Sie stattdessen einen Generator und die Funktion fit_generator, um das Training durchzuführen. (Keras hat auch evaluate_generator und predict_generator)
  9. Sie sind jetzt bereit für das Training.
+0

Danke! Ich habe nach einem solchen kurzen Überblick gesucht. gute Antwort. –

+1

Der dritte Schritt wird die Farbunähnlichkeit Ihrer Bilder entfernen. Dies funktioniert im dargestellten Beispiel, weil es versucht, eine Katze zu klassifizieren, die unabhängig von Farbänderungen im Bild weiterhin eine Katze ist. Wenn Sie denken, dass diese Information für Sie wichtig ist (z. B. zwischen Tag und Nacht wählen; drinnen/draußen; ein Bild von seinem Autor klassifizieren), dann sollten Sie es wahrscheinlich behalten. Die "globale" Standardisierung könnte in diesem Fall die Lösung sein (d. H. "(Bild - Dataset_Mean)/Dataset_Std"). – ldavid