Die Idee mit neuronalen Netzen ist, dass sie wenig Vorverarbeitung benötigen, da das schwere Heben durch den Algorithmus erfolgt, der für das Lernen der Merkmale verantwortlich ist.
Die Gewinner des Data Science Bowl 2015 haben einen tollen Überblick über ihren Ansatz. Der größte Teil des Inhalts dieser Antwort stammt aus der
Klassifizierung von Plankton mit tiefen neuronalen Netzen . Ich schlage vor, Sie lesen es, insbesondere den Teil über Vorverarbeitung und Datenerweiterung .
- Ändern Sie die Größe der Bilder
Für verschiedene Größen, Auflösungen oder Abstände können Sie Folgendes tun. Sie können einfach die größte Seite jedes Bildes auf eine feste Länge skalieren.
Eine andere Möglichkeit ist die Verwendung von openCV oder scipy. und dies wird die Größe des Bildes ändern, um 100 Spalten (Breite) und 50 Zeilen (Höhe) zu haben:
resized_image = cv2.resize(image, (100, 50))
Eine weitere Option ist die Verwendung des scipy-Moduls unter Verwendung von:
small = scipy.misc.imresize(image, 0.5)
- Datenerweiterung
Die Datenerweiterung verbessert immer die Leistung, obwohl die Menge vom Dataset abhängt. Wenn Sie die Daten erweitern möchten, um die Größe des Datasets künstlich zu erhöhen, können Sie im Einzelfall die folgenden Schritte ausführen (dies wäre beispielsweise nicht der Fall, wenn Bilder von Häusern oder Personen vorhanden wären, bei denen beim Drehen um 180 Grad alle Informationen verloren gehen würden aber nicht, wenn Sie sie umdrehen wie ein Spiegel):
- Drehung: zufällig mit einem Winkel zwischen 0 ° und 360 ° (gleichmäßig)
- Übersetzung: zufällig mit Verschiebung zwischen -10 und 10 Pixel (einheitlich)
- Neuskalierung: zufällig mit Skalierungsfaktor zwischen 1 / 1,6 und 1,6 (logarithmisch einheitlich)
- Spiegeln: ja oder nein (Bernoulli)
- Scheren: zufällig mit einem Winkel zwischen -20 ° und 20 ° (gleichmäßig)
- Dehnung: zufällig mit Dehnungsfaktor zwischen 1 / 1,3 und 1,3 (logarithmisch einheitlich)
Sie können die Ergebnisse auf den Data Science-Schüsselbildern sehen.
Vorverarbeitete Bilder
erweiterte Versionen der gleichen Bilder
-Weitere Techniken
Diese befassen sich mit anderen Bildeigenschaften wie Beleuchtung und beziehen sich bereits auf den Hauptalgorithmus, eher auf einen einfachen Vorverarbeitungsschritt. Überprüfen Sie die vollständige Liste auf: UFLDL Tutorial
import scipy.misc
. stackoverflow.com/questions/13581593/…Obwohl die Antwort von wacax vollständig und wirklich erklärend ist, möchte ich ein paar Dinge hinzufügen, falls jemand über diese Antwort stolpert.
Zunächst einmal sind die meisten
scipy.misc
Bild verwandte Funktionen (imread
,imsave
,imresize
EFR) haben sich für entweder veraltet geworden ImageIO oder skimage .Zweitens würde ich die Python-Bibliothek imgaug für jede Erweiterungsaufgabe empfehlen . Es ist sehr einfach zu bedienen und verfügt über praktisch alle Augmentationstechniken, die Sie verwenden möchten.
quelle