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:
- Wählen Sie ein Modell aus der Sammlung von ML Kit-kompatiblen Modellen aus.
- Laden Sie die .tflite-Modelldatei auf der Seite mit den Modelldetails herunter. Wählen Sie, sofern verfügbar, ein Modellformat mit Metadaten aus.
- 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 |
|
TensorFlow Lite-Modell-Erstellungstool |
|
TensorFlow-Modell 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