此页面由 Cloud Translation API 翻译。
Switch to English

Bildklassifizierung

Die Aufgabe, zu identifizieren, was ein Bild darstellt, wird als Bildklassifizierung bezeichnet . Ein Bildklassifizierungsmodell wird trainiert, um verschiedene Klassen von Bildern zu erkennen. Sie können beispielsweise ein Modell trainieren, um Fotos zu erkennen, die drei verschiedene Tierarten darstellen: Kaninchen, Hamster und Hunde. TensorFlow Lite bietet optimierte vorgefertigte Modelle, die Sie in Ihren mobilen Anwendungen bereitstellen können. Weitere Informationen zur Bildklassifizierung mit TensorFlow finden Sie hier .

Das folgende Bild zeigt die Ausgabe des Bildklassifizierungsmodells unter Android.

Screenshot des Android-Beispiels

Loslegen

Wenn Sie TensorFlow Lite noch nicht kennen und mit Android oder iOS arbeiten, wird empfohlen, die folgenden Beispielanwendungen zu untersuchen, die Ihnen den Einstieg erleichtern können.

Sie können die Out-of-Box-API aus der TensorFlow Lite Task Library nutzen, um Bildklassifizierungsmodelle in nur wenigen Codezeilen zu integrieren. Sie können auch Ihre eigene benutzerdefinierte Inferenz-Pipeline mithilfe der TensorFlow Lite-Unterstützungsbibliothek erstellen.

Das folgende Android-Beispiel zeigt die Implementierung für beide Methoden als lib_task_api bzw. lib_support .

Android-Beispiel anzeigen

IOS-Beispiel anzeigen

Wenn Sie eine andere Plattform als Android / iOS verwenden oder bereits mit den TensorFlow Lite-APIs vertraut sind, laden Sie das Startermodell und die unterstützenden Dateien herunter (falls zutreffend).

Startermodell herunterladen

Modellbeschreibung

Wie es funktioniert

Während des Trainings werden einem Bildklassifizierungsmodell Bilder und die zugehörigen Beschriftungen zugeführt. Jedes Etikett ist der Name eines bestimmten Konzepts oder einer bestimmten Klasse, die das Modell zu erkennen lernt.

Bei ausreichenden Trainingsdaten (häufig Hunderte oder Tausende von Bildern pro Etikett) kann ein Bildklassifizierungsmodell lernen, vorherzusagen, ob neue Bilder zu einer der Klassen gehören, für die es trainiert wurde. Dieser Vorhersageprozess wird Inferenz genannt . Beachten Sie, dass Sie das Transferlernen auch verwenden können, um neue Bildklassen mithilfe eines bereits vorhandenen Modells zu identifizieren. Für das Transferlernen ist kein sehr großer Trainingsdatensatz erforderlich.

Wenn Sie anschließend ein neues Bild als Eingabe für das Modell bereitstellen, werden die Wahrscheinlichkeiten des Bildes ausgegeben, das jeden der Tierarten darstellt, auf denen es trainiert wurde. Eine Beispielausgabe könnte wie folgt aussehen:

Tierart Wahrscheinlichkeit
Hase 0,07
Hamster 0,02
Hund 0,91

Jede Nummer in der Ausgabe entspricht einer Bezeichnung in den Trainingsdaten. Wenn Sie die Ausgabe mit den drei Beschriftungen verknüpfen, auf denen das Modell trainiert wurde, können Sie sehen, dass das Modell eine hohe Wahrscheinlichkeit vorhergesagt hat, dass das Bild einen Hund darstellt.

Möglicherweise stellen Sie fest, dass die Summe aller Wahrscheinlichkeiten (für Kaninchen, Hamster und Hund) gleich 1 ist. Dies ist eine übliche Art der Ausgabe für Modelle mit mehreren Klassen (weitere Informationen finden Sie unter Softmax ).

Mehrdeutige Ergebnisse

Da sich die Ausgabewahrscheinlichkeiten immer zu 1 summieren, kann die Wahrscheinlichkeit, wenn ein Bild nicht sicher als zu einer der Klassen gehörend erkannt wird, für die das Modell trainiert wurde, auf die Etiketten verteilt sein, ohne dass ein Wert wesentlich größer ist.

Folgendes könnte beispielsweise auf ein mehrdeutiges Ergebnis hinweisen:

Etikette Wahrscheinlichkeit
Hase 0,31
Hamster 0,35
Hund 0,34
Wenn Ihr Modell häufig mehrdeutige Ergebnisse liefert, benötigen Sie möglicherweise ein anderes, genaueres Modell.

Auswahl einer Modellarchitektur

TensorFlow Lite bietet Ihnen eine Vielzahl von Bildklassifizierungsmodellen, die alle auf dem Originaldatensatz trainiert sind. Modellarchitekturen wie MobileNet, Inception und NASNet sind auf der Seite für gehostete Modelle verfügbar. Um das beste Modell für Ihren Anwendungsfall auszuwählen, müssen Sie die einzelnen Architekturen sowie einige der Kompromisse zwischen verschiedenen Modellen berücksichtigen. Einige dieser Modellkompromisse basieren auf Metriken wie Leistung, Genauigkeit und Modellgröße. Beispielsweise benötigen Sie möglicherweise ein schnelleres Modell zum Erstellen eines Barcodescanners, während Sie möglicherweise ein langsameres, genaueres Modell für eine medizinische Bildgebungs-App bevorzugen. Beachten Sie, dass die Bildklassifizierungsmodelle bereitgestellt unterschiedliche Größen von Eingabe akzeptieren. Bei einigen Modellen ist dies im Dateinamen angegeben. Beispielsweise akzeptiert das Modell Mobilenet_V1_1.0_224 eine Eingabe von 224 x 224 Pixel. Alle Modelle benötigen drei Farbkanäle pro Pixel (rot, grün und blau). Quantisierte Modelle benötigen 1 Byte pro Kanal und Float-Modelle 4 Byte pro Kanal. Die Codebeispiele für Android und iOS zeigen, wie Kamerabilder in voller Größe für jedes Modell in das erforderliche Format verarbeitet werden.

Verwendungen und Einschränkungen

Die TensorFlow Lite-Bildklassifizierungsmodelle sind nützlich für die Einzeletikettenklassifizierung. das heißt, vorherzusagen, welches einzelne Etikett das Bild am wahrscheinlichsten darstellt. Sie sind darauf trainiert, 1000 Bildklassen zu erkennen. Eine vollständige Liste der Klassen finden Sie in der Beschriftungsdatei in der Modell-Zip- Datei. Wenn Sie ein Modell trainieren möchten, um neue Klassen zu erkennen, lesen Sie Modell anpassen . Für die folgenden Anwendungsfälle sollten Sie einen anderen Modelltyp verwenden:
  • Vorhersage des Typs und der Position eines oder mehrerer Objekte in einem Bild (siehe Objekterkennung )
  • Vorhersage der Zusammensetzung eines Bildes, z. B. Motiv oder Hintergrund (siehe Segmentierung )
Sobald das Startermodell auf Ihrem Zielgerät ausgeführt wird, können Sie mit verschiedenen Modellen experimentieren, um das optimale Gleichgewicht zwischen Leistung, Genauigkeit und Modellgröße zu finden.

Modell anpassen

Die bereitgestellten vorgefertigten Modelle sind darauf trainiert, 1000 Bildklassen zu erkennen. Eine vollständige Liste der Klassen finden Sie in der Beschriftungsdatei in der Modell-Zip- Datei. Sie können Transferlernen auch verwenden, um ein Modell neu zu trainieren und Klassen zu erkennen, die nicht im ursprünglichen Satz enthalten sind. Sie können das Modell beispielsweise neu trainieren, um zwischen verschiedenen Baumarten zu unterscheiden, obwohl die ursprünglichen Trainingsdaten keine Bäume enthalten. Dazu benötigen Sie für jedes der neuen Labels, die Sie trainieren möchten, eine Reihe von Trainingsbildern. Erfahren Sie, wie Sie im TognorFlow-Codelab Blumen erkennen oder in der Model Maker-Bibliothek Transferlernen durchführen.

Leistungsbenchmarks

Die Modellleistung wird anhand der Zeit gemessen, die ein Modell benötigt, um auf einer bestimmten Hardware Inferenz auszuführen. Je kürzer die Zeit, desto schneller das Modell. Die Leistung, die Sie benötigen, hängt von Ihrer Anwendung ab. Die Leistung kann für Anwendungen wie Echtzeitvideos wichtig sein, bei denen es wichtig sein kann, jedes Bild in der Zeit vor dem Zeichnen des nächsten Bilds zu analysieren (z. B. muss die Inferenz schneller als 33 ms sein, um eine Echtzeitinferenz für einen 30-fps-Videostream durchzuführen). . Die Leistung der quantisierten MobileNet-Modelle von TensorFlow Lite reicht von 3,7 ms bis 80,3 ms. Leistungsbenchmarkzahlen werden mit dem Benchmarking-Tool generiert.
Modellname Modellgröße Gerät NNAPI Zentralprozessor
Mobilenet_V1_1.0_224_quant 4,3 Mb Pixel 3 (Android 10) 6ms 13ms *
Pixel 4 (Android 10) 3,3 ms 5ms *
iPhone XS (iOS 12.4.1) 11ms **

* 4 Threads verwendet.

** 2 Threads, die auf dem iPhone verwendet werden, um das beste Leistungsergebnis zu erzielen.

Modellgenauigkeit

Die Genauigkeit wird daran gemessen, wie oft das Modell ein Bild korrekt klassifiziert. Beispielsweise kann erwartet werden, dass ein Modell mit einer angegebenen Genauigkeit von 60% ein Bild in durchschnittlich 60% der Fälle korrekt klassifiziert.

Die Liste der gehosteten Modelle enthält Top-1- und Top-5-Genauigkeitsstatistiken. Top-1 bezieht sich darauf, wie oft das richtige Etikett als das Etikett mit der höchsten Wahrscheinlichkeit in der Ausgabe des Modells angezeigt wird. Top-5 bezieht sich darauf, wie oft das richtige Etikett in den 5 höchsten Wahrscheinlichkeiten in der Ausgabe des Modells erscheint.

Die Top-5-Genauigkeit der quantisierten MobileNet-Modelle von TensorFlow Lite liegt zwischen 64,4 und 89,9%.

Modellgröße

Die Größe eines Modells auf der Festplatte hängt von seiner Leistung und Genauigkeit ab. Die Größe kann für die mobile Entwicklung (wo sie sich auf die Größe des App-Downloads auswirken kann) oder bei der Arbeit mit Hardware (wo der verfügbare Speicher begrenzt sein kann) wichtig sein.

Die Größen der quantisierten MobileNet-Modelle von TensorFlow Lite reichen von 0,5 bis 3,4 MB.

Weiterführende Literatur und Ressourcen

Verwenden Sie die folgenden Ressourcen, um mehr über Konzepte zur Bildklassifizierung zu erfahren: