Inhaltsverzeichnis[Ausblenden][Zeigen]
- Was ist Bildklassifizierung?
- Wie funktioniert die Bildklassifizierung?
Bildklassifizierung mit Tensorflow & Keras in Python+-
- 1. Installationsvoraussetzungen
- 2. Abhängigkeiten importieren
- 3. Parameter initialisieren
- 4. Laden des Datensatzes
- 5. Erstellen des Modells
- 6. Modell trainieren
- Testen des Modells
- 7. Importieren der Dienstprogramme zum Testen
- 8. Erstellen eines Python-Verzeichnisses
- 9. Laden von Testdaten und Modell
- 10. Bewertung & Vorhersage
- 11. Ergebnisse
- Zusammenfassung
Es ist beruhigend zu wissen, dass es uns gelungen ist, Roboter mit unserer angeborenen Fähigkeit auszustatten, anhand von Beispielen zu lernen und ihre Umgebung wahrzunehmen. Die grundlegende Herausforderung besteht darin, Computern beizubringen, wie Menschen zu „sehen“, was viel mehr Zeit und Mühe erfordern würde.
Wenn wir jedoch den praktischen Wert berücksichtigen, den diese Fähigkeit Organisationen und Unternehmen derzeit bietet, lohnt sich der Aufwand. In diesem Artikel erfahren Sie mehr über die Bildklassifizierung, ihre Funktionsweise und ihre praktische Umsetzung. Lass uns anfangen.
Was ist Bildklassifizierung?
Die Aufgabe, ein Bild in eine neuronale Netzwerk und die Ausgabe einer Art Label für dieses Bild wird als Bilderkennung bezeichnet. Die Ausgabebezeichnung des Netzwerks entspricht einer vordefinierten Klasse.
Dem Bild können mehrere Klassen oder nur eine zugewiesen sein. Bei nur einer Klasse wird häufig der Begriff „Anerkennung“, bei mehreren Klassen häufig der Begriff „Klassifizierung“ verwendet.
Objekterkennung ist eine Teilmenge der Bildklassifizierung, bei der bestimmte Instanzen von Objekten als zu einer bestimmten Klasse gehörend erkannt werden, z. B. Tiere, Fahrzeuge oder Menschen.
Wie funktioniert die Bildklassifizierung?
Ein Bild in Form von Pixeln wird von einem Computer analysiert. Dies wird erreicht, indem das Bild als eine Sammlung von Matrizen behandelt wird, deren Größe durch die Bildauflösung bestimmt wird. Einfach gesagt ist die Bildklassifizierung die Untersuchung statistischer Daten unter Verwendung von Algorithmen aus der Perspektive eines Computers.
Die Bildklassifizierung erfolgt in der digitalen Bildverarbeitung durch Gruppieren von Pixeln in vorbestimmte Gruppen oder „Klassen“. Die Algorithmen unterteilen das Bild in eine Reihe bemerkenswerter Merkmale, was die Belastung für den endgültigen Klassifikator verringert.
Diese Qualitäten informieren den Klassifizierer über die Bedeutung des Bildes und die mögliche Klassifizierung. Da die weiteren Prozesse bei der Klassifizierung eines Bildes davon abhängen, ist die Merkmalsextraktionsmethode die kritischste Phase.
Das Daten zur Verfügung gestellt Der Algorithmus ist auch bei der Bildklassifizierung von entscheidender Bedeutung, insbesondere bei der überwachten Klassifizierung. Im Vergleich zu einem schrecklichen Datensatz mit Datenungleichgewicht basierend auf Klasse und geringer Bild- und Anmerkungsqualität schneidet ein gut optimierter Klassifizierungsdatensatz bewundernswert ab.
Bildklassifizierung mit Tensorflow & Keras in Python
Wir werden das benutzen CIFAR-10 Datensatz (der Flugzeuge, Flugzeuge, Vögel und andere 7 Dinge enthält).
1. Installationsvoraussetzungen
Der folgende Code installiert alle Voraussetzungen.
2. Abhängigkeiten importieren
Erstellen Sie eine train.py-Datei in Python. Der folgende Code importiert Tensorflow- und Keras-Abhängigkeiten.
3. Parameter initialisieren
CIFAR-10 enthält nur 10 Bildkategorien, daher bezieht sich die Anzahl der Klassen einfach auf die Anzahl der zu klassifizierenden Kategorien.
4. Laden des Datensatzes
Die Funktion verwendet das Tensorflow Datasets-Modul, um das Dataset zu laden, und wir setzen mit info auf True, um einige Informationen darüber zu erhalten. Sie können es ausdrucken, um zu sehen, was Felder und ihre Werte sind, und wir verwenden die Informationen, um die Anzahl der Beispiele in den Trainings- und Testsätzen abzurufen.
5. Erstellen des Modells
Jetzt bauen wir drei Schichten auf, die jeweils aus zwei ConvNets mit Max-Pooling- und ReLU-Aktivierungsfunktion bestehen, gefolgt von einem vollständig verbundenen 1024-Einheiten-System. Im Vergleich zu ResNet50 oder Xception, die hochmoderne Modelle sind, dürfte dies ein vergleichsweise kleines Modell sein.
6. Modell trainieren
Ich habe Tensorboard verwendet, um die Genauigkeit und den Verlust in jeder Epoche zu messen und uns nach dem Import der Daten und der Generierung des Modells eine schöne Anzeige zu bieten. Führen Sie den folgenden Code aus; Abhängig von Ihrer CPU/GPU dauert das Training mehrere Minuten.
Um Tensorboard zu verwenden, geben Sie einfach den folgenden Befehl im Terminal oder in der Eingabeaufforderung im aktuellen Verzeichnis ein:
Sie werden sehen, dass der Validierungsverlust abnimmt und die Genauigkeit auf etwa 81 % steigt. Das ist fantastisch!
Testen des Modells
Wenn das Training beendet ist, werden das endgültige Modell und die Gewichte im Ergebnisordner gespeichert, sodass wir einmal trainieren und Vorhersagen treffen können, wann immer wir wollen. Folgen Sie dem Code in einer neuen Python-Datei namens test.py.
7. Importieren der Dienstprogramme zum Testen
8. Erstellen eines Python-Verzeichnisses
Erstellen Sie ein Python-Wörterbuch, das jeden ganzzahligen Wert in die entsprechende Bezeichnung des Datensatzes übersetzt:
9. Laden von Testdaten und Modell
Der folgende Code lädt die Testdaten und das Modell.
10. Bewertung & Vorhersage
Der folgende Code wird die Froschbilder auswerten und Vorhersagen treffen.
11. Ergebnisse
Das Modell sagte den Frosch mit einer Genauigkeit von 80.62 % voraus.
Zusammenfassung
Okay, wir sind mit dieser Lektion fertig. Obwohl 80.62 % für ein wenig CNN nicht gut sind, rate ich Ihnen dringend, das Modell zu ändern oder sich ResNet50, Xception oder andere hochmoderne Modelle anzusehen, um bessere Ergebnisse zu erzielen.
Nachdem Sie nun Ihr erstes Bilderkennungsnetzwerk in Keras erstellt haben, sollten Sie mit dem Modell experimentieren, um herauszufinden, wie sich verschiedene Parameter auf seine Leistung auswirken.
Hinterlassen Sie uns einen Kommentar