2016-05-07 23 views
11

Mam 3 foldery z kolorowymi obrazami. Nazwa folderu to etykieta obrazów wewnątrz.Kasy ładowanie obrazów kolorowych

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

chciałbym użyć biblioteki Keras stworzyć splotowego sieci neuronowej do klasyfikacji, ale nie mogę znaleźć, jak utworzyć zestaw danych z obrazów kolorowych. Czy możesz mi pomóc?

Odpowiedz

11

Proszę rozważyć ten gist of pre-trained VGG-16 model with example usage co uważam ilustracyjne:

Podsumowując:

  1. Załaduj obrazy z OpenCV lub scikit wizerunku itp (L58)
  2. Resize i/lub przyciąć obrazy do rozmiaru wejściowego (224 * 224 dla VGG-16) (L58)
  3. Obliczyć i odjąć dla każdego obrazu wartość średnią (L59 ~ L61)
  4. Zamiana wymiaru koloru przed Wysokość i szerokość (wymiary L62)
  5. Jeśli używasz scikit wizerunek, trzeba zamienić kanały 3 kolor ponieważ obrazy obciążenia OpenCV jak BGR kanałów ale scikit-image załadować go jako RGB kanałów.
  6. Dodaj wymiar wielkości partii (L63)
  7. shuffle, partycji i złączyć je (wraz wymiar 0) w celu utworzenia danych treningowych X_train, dane testowe X_test itp wraz z gruntu prawdy Y_train, Y_test itp
  8. Jeśli Twój zestaw danych jest zbyt duży, aby zmieścić się w pamięci, użyj zamiast niego generatora i funkcji fit_generator. (Keras ma także evaluate_generator i predict_generator)
  9. Jesteś teraz gotowy do treningu.
+0

Dzięki! Szukałem tego rodzaju krótkiego przeglądu. dobra odpowiedź. –

+1

Trzeci krok usunie odmienność kolorów obrazów. Działa to w przedstawionym przykładzie, ponieważ próbuje klasyfikować kota, który nadal będzie kotem niezależnie od zmian koloru w obrazie. Jeśli uważasz, że ta informacja jest dla Ciebie ważna (np. Zdecyduj pomiędzy dniem/nocą, w pomieszczeniu/na zewnątrz, zaklasyfikuj obraz według autora), prawdopodobnie powinieneś go zachować. W takim przypadku rozwiązaniem może być "globalna" standaryzacja (tzn. '(Image - dataset_mean)/dataset_std'). – ldavid

Powiązane problemy