Benutzerdefinierte Modelle mit ML Kit

Standardmäßig nutzen die APIs von ML Kit die von Google trainierten Modelle für maschinelles Lernen. Diese Modelle decken eine breite Palette von Anwendungen ab. Für einige Anwendungsfälle sind jedoch Modelle erforderlich, die besser ausgerichtet sind. Aus diesem Grund können Sie bei einigen ML Kit APIs jetzt die Standardmodelle durch benutzerdefinierte TensorFlow Lite-Modelle ersetzen.

Sowohl Image Labeling als auch Object Detection & Tracking API unterstützen benutzerdefinierte Modelle zur Bildklassifizierung. Sie sind mit einer Auswahl an hochwertigen vortrainierten Modellen auf TensorFlow Hub oder mit Ihrem eigenen benutzerdefinierten Modell kompatibel, das mit TensorFlow, AutoML Vision Edge oder TensorFlow Lite Model Maker trainiert wurde.

Wenn Sie eine benutzerdefinierte Lösung für andere Domains oder Anwendungsfälle benötigen, finden Sie auf der Seite Maschinelles Lernen auf dem Gerät Anleitungen zu allen Lösungen und Tools von Google für maschinelles Lernen auf dem Gerät.

Vorteile von ML Kit mit benutzerdefinierten Modellen

Die Verwendung eines benutzerdefinierten Bildklassifizierungsmodells mit ML Kit bietet folgende Vorteile:

  • Nutzerfreundliche High-Level-APIs: Keine Notwendigkeit für einfache Modelleingaben/-ausgaben, für die Vor-/Nachverarbeitung von Images oder für das Erstellen einer Verarbeitungspipeline.
  • Sie müssen sich keine Gedanken über die Labelzuordnung machen, denn ML Kit extrahiert die Labels aus den TFLite-Modellmetadaten und übernimmt die Zuordnung für Sie.
  • Unterstützt benutzerdefinierte Modelle aus einer Vielzahl von Quellen, von vortrainierten Modellen auf TensorFlow Hub bis zu neuen Modellen, die mit TensorFlow, AutoML Vision Edge oder TensorFlow Lite Model Maker trainiert wurden.
  • Unterstützt mit Firebase gehostete Modelle. Verringert die APK-Größe, indem Modelle bei Bedarf heruntergeladen werden. Modellaktualisierungen per Push übertragen, ohne Ihre App neu zu veröffentlichen, und einfache A/B-Tests mit Firebase Remote Config durchführen
  • Optimiert für die Einbindung in die Kamera-APIs von Android.

Insbesondere bei der Objekterkennung und dem Tracking:

  • Verbessern Sie die Klassifizierungsgenauigkeit, indem Sie zuerst die Objekte lokalisieren und den Klassifikator nur im entsprechenden Bildbereich ausführen.
  • Interaktive Interaktionen in Echtzeit: Nutzer erhalten unmittelbar Feedback zu Objekten, wenn diese erkannt und klassifiziert werden.

Vortrainiertes Bildklassifizierungsmodell verwenden

Sie können vortrainierte TensorFlow Lite-Modelle verwenden, wenn sie eine Reihe von Kriterien erfüllen. Über TensorFlow Hub bieten wir eine Reihe von geprüften Modellen von Google oder anderen Modellerstellern an, die diese Kriterien erfüllen.

Auf TensorFlow Hub veröffentlichtes Modell verwenden

TensorFlow Hub bietet eine große Auswahl vortrainierter Bildklassifizierungsmodelle von verschiedenen Modellerstellern, die mit den APIs für Labeling und Objekterkennung und Tracking verwendet werden können. Gehen Sie dazu so vor:

  1. Wählen Sie ein Modell aus der Sammlung von ML Kit-kompatiblen Modellen aus.
  2. Laden Sie die .tflite-Modelldatei auf der Seite mit den Modelldetails herunter. Wählen Sie, sofern verfügbar, ein Modellformat mit Metadaten aus.
  3. In unseren Leitfäden für die Image Labeling API oder die Object Detection and Tracking API erfahren Sie, wie Sie eine Modelldatei mit Ihrem Projekt bündeln und in Ihrer Android- oder iOS-Anwendung verwenden können.

Eigenes Bildklassifizierungsmodell trainieren

Wenn kein vortrainiertes Bildklassifizierungsmodell Ihren Anforderungen entspricht, gibt es verschiedene Möglichkeiten, Ihr eigenes TensorFlow Lite-Modell zu trainieren. Einige davon werden unten ausführlicher beschrieben.

Optionen zum Trainieren eines eigenen Bildklassifizierungsmodells
AutoML Vision Edge
  • Über KI-Produkte von Google Cloud angeboten
  • Moderne Bildklassifizierungsmodelle erstellen
  • Ganz einfach zwischen Leistung und Größe bewerten
TensorFlow Lite-Modell-Erstellungstool
  • Trainiert ein Modell neu (Lerntransfer), erfordert weniger Zeit und erfordert weniger Daten als das Training eines Modells von Grund auf
TensorFlow-Modell in TensorFlow Lite konvertieren
  • Modell mit TensorFlow trainieren und dann in TensorFlow Lite konvertieren

AutoML Vision Edge

Bildklassifizierungsmodelle, die mit AutoML Vision Edge trainiert wurden, werden von den benutzerdefinierten Modellen in den APIs Image Labeling und Object Detection and Tracking API unterstützt. Diese APIs unterstützen auch den Download von Modellen, die mit der Firebase-Modellbereitstellung gehostet werden.

Weitere Informationen zur Verwendung eines mit AutoML Vision Edge trainierten Modells in Ihren Android- und iOS-Apps finden Sie in den benutzerdefinierten Modellleitfäden für die einzelnen APIs, je nach Anwendungsfall.

TensorFlow Lite-Modell-Erstellungstool

Die TFLite-Modellerstellungsbibliothek vereinfacht das Anpassen und Konvertieren eines neuronalen TensorFlow-Netzwerkmodells in bestimmte Eingabedaten, wenn dieses Modell für ML-Anwendungen auf dem Gerät bereitgestellt wird. Weitere Informationen finden Sie im Colab zur Bildklassifizierung mit TensorFlow Lite Model Maker.

Weitere Informationen zur Verwendung eines mit dem Modell-Erstellungstool trainierten Modells in Ihren Android- und iOS-Apps finden Sie in unseren Leitfäden für die Image Labeling API oder die Object Detection and Tracking API (je nach Anwendungsfall).

Mit TensorFlow Lite-Converter erstellte Modelle

Wenn Sie bereits ein TensorFlow-Bildklassifizierungsmodell haben, können Sie es mit dem TensorFlow Lite-Converter konvertieren. Das erstellte Modell muss die folgenden Kompatibilitätsanforderungen erfüllen.

Weitere Informationen zur Verwendung eines TensorFlow Lite-Modells in Ihren Android- und iOS-Apps finden Sie in unseren Leitfäden für die Image Labeling API oder die Object Detection and Tracking API (je nach Anwendungsfall).

Kompatibilität mit TensorFlow Lite-Modellen

Sie können jedes vortrainierte Bildklassifizierungsmodell in TensorFlow Lite verwenden, sofern es die folgenden Anforderungen erfüllt:

Tensoren

  • Das Modell darf nur einen Eingabetensor mit den folgenden Einschränkungen haben:
    • Die Daten sind im RGB-Pixelformat.
    • Die Daten sind vom Typ UINT8 oder FLOAT32. Wenn der Eingabetensortyp FLOAT32 lautet, muss er die NormalizationOptions durch Anhängen von Metadaten angeben.
    • Der Tensor hat vier Abmessungen : BxHxBxC, wobei:
      • B ist die Batchgröße. Er muss 1 sein (Ableitung auf größere Batches wird nicht unterstützt).
      • B und H sind die Eingabebreite und -höhe.
      • C ist die Anzahl der erwarteten Kanäle. Der Wert muss 3 sein.
  • Das Modell muss mindestens einen Ausgabetensor mit N-Klassen und entweder 2 oder 4 Dimensionen haben:
    • (1xN)
    • (1x1x1xN)
  • Derzeit werden nur Einzelkopfmodelle vollständig unterstützt. Mehrkopfmodelle können unerwartete Ergebnisse ausgeben.

Metadaten

Sie können Metadaten zur TensorFlow Lite-Datei hinzufügen, wie unter Metadaten zu TensorFlow Lite-Modell hinzufügen erläutert.

Wenn Sie ein Modell mit FLOAT32-Eingabetensor verwenden möchten, müssen Sie die NormalizationOptions in den Metadaten angeben.

Wir empfehlen außerdem, diese Metadaten an den Ausgabetensor TensorMetadata anzuhängen:

  • Eine Labelzuordnung, die den Namen jeder Ausgabeklasse als RelatedFile mit dem Typ TENSOR_AXIS_LABELS angibt. Andernfalls können nur die numerischen Ausgabeindexe zurückgegeben werden.
  • Ein Standard-Schwellenwert, unter dessen Ergebnisse die Konfidenz als zu niedrig eingestuft wird, als ProcessUnit mit ScoreThresholdingOptions