Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

Bildklassifizierung

Verwenden Sie ein vorab trainiertes und optimiertes Modell, um Hunderte von Objektklassen zu identifizieren, darunter Menschen, Aktivitäten, Tiere, Pflanzen und Orte.

Loslegen

Wenn Sie mit dem Konzept der Bildklassifizierung nicht vertraut sind, lesen Sie zunächst Was ist Bildklassifizierung?

Um zu erfahren, wie Sie die Bildklassifizierung in einer mobilen App verwenden, empfehlen wir Ihnen, unsere Beispielanwendungen und Anleitungen zu lesen .

Wenn Sie eine andere Plattform als Android oder iOS verwenden oder bereits mit den TensorFlow Lite-APIs vertraut sind, können Sie unser Starterbildklassifizierungsmodell und die zugehörigen Etiketten herunterladen.

Startermodell und Etiketten herunterladen

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. Anleitungen finden Sie unter Auswählen eines anderen Modells .

Beispielanwendungen und Anleitungen

Wir haben Beispielanwendungen für die Bildklassifizierung für Android und iOS. Für jedes Beispiel stellen wir eine Anleitung zur Verfügung, die erklärt, wie es funktioniert.

Android

Android-Beispiel anzeigen

Lesen Sie die Android-Beispielanleitung, um zu erfahren, wie die App funktioniert.

iOS

IOS-Beispiel anzeigen

Lesen Sie die iOS-Beispielanleitung, um zu erfahren, wie die App funktioniert.

Bildschirmfoto

Der folgende Screenshot zeigt das Beispiel für die Klassifizierung von Android-Bildern.

Screenshot des Android-Beispiels

Was ist Bildklassifizierung?

Eine häufige Verwendung des maschinellen Lernens besteht darin, zu identifizieren, was ein Bild darstellt. Zum Beispiel möchten wir vielleicht wissen, welche Art von Tier auf dem folgenden Foto erscheint.

Hund

Die Aufgabe, vorherzusagen, was ein Bild darstellt, wird als Bildklassifizierung bezeichnet . Ein Bildklassifizierungsmodell wird trainiert, um verschiedene Klassen von Bildern zu erkennen. Beispielsweise könnte ein Modell darauf trainiert werden, Fotos zu erkennen, die drei verschiedene Tierarten darstellen: Kaninchen, Hamster und Hunde.

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

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

Anhand der Ausgabe können wir sehen, dass das Klassifizierungsmodell vorausgesagt hat, dass das Bild eine hohe Wahrscheinlichkeit hat, einen Hund darzustellen.

Training, Labels und Inferenz

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 .

Um eine Inferenz durchzuführen, wird ein Bild als Eingabe an ein Modell übergeben. Das Modell gibt dann ein Array von Wahrscheinlichkeiten zwischen 0 und 1 aus. Bei unserem Beispielmodell sieht dieser Prozess möglicherweise folgendermaßen aus:

Hund [0,07, 0,02, 0,91]

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

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

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 Wahrscheinlichkeiten immer zu 1 summieren, können Sie die Wahrscheinlichkeit auf die Etiketten verteilen, wenn das Bild nicht sicher als zu einer der Klassen gehörend erkannt wird, für die das Modell trainiert wurde, ohne dass ein Wert signifikant größer ist.

Folgendes könnte beispielsweise auf ein mehrdeutiges Ergebnis hinweisen:

Etikette Wahrscheinlichkeit
Hase 0,31
Hamster 0,35
Hund 0,34

Verwendungen und Einschränkungen

Die von uns bereitgestellten Bildklassifizierungsmodelle sind nützlich für die Einzeletikettenklassifizierung. Dies bedeutet, dass vorhergesagt wird, welches Einzeletikett 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 gegenüber 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. Anleitungen finden Sie unter Auswählen eines anderen Modells .

Leistungsbenchmarks

Leistungsbenchmarkzahlen werden mit dem hier beschriebenen 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 auf dem iPhone verwendete Threads für das beste Leistungsergebnis.

Wählen Sie ein anderes Modell

Eine große Anzahl von Bildklassifizierungsmodellen finden Sie in unserer Liste der gehosteten Modelle . Sie sollten versuchen, das optimale Modell für Ihre Anwendung basierend auf Leistung, Genauigkeit und Modellgröße auszuwählen. Es gibt Kompromisse zwischen jedem von ihnen.

Performance

Wir messen die Leistung anhand der Zeit, 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 unserer quantisierten MobileNet-Modelle reicht von 3,7 ms bis 80,3 ms.

Richtigkeit

Wir messen die Genauigkeit daran, 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.

Unsere Liste der gehosteten Modelle enthält Top-1- und Top-5-Genauigkeitsstatistiken. Top-1 gibt an, wie oft das richtige Etikett als 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 Top-5-Höchstwahrscheinlichkeiten in der Ausgabe des Modells angezeigt wird.

Die Top-5-Genauigkeit unserer quantisierten MobileNet-Modelle liegt zwischen 64,4 und 89,9%.

Größ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öße unserer quantisierten MobileNet-Modelle reicht von 0,5 bis 3,4 MB.

Die Architektur

In der Liste der gehosteten Modelle sind verschiedene Modellarchitekturen verfügbar, die durch den Namen des Modells angegeben werden. Sie können beispielsweise zwischen MobileNet, Inception und anderen wählen.

Die Architektur eines Modells wirkt sich auf seine Leistung, Genauigkeit und Größe aus. Alle unsere gehosteten Modelle werden mit denselben Daten trainiert. Sie können sie also anhand der bereitgestellten Statistiken vergleichen und auswählen, welche für Ihre Anwendung optimal sind.

Modell anpassen

Die von uns 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 eine als Transferlernen bekannte Technik verwenden, um ein Modell neu zu trainieren, um 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 oder mit dem Modellbauer-Toolkit das Transferlernen in Blumen erkennen durchführen.