Standardmäßig verwenden die APIs von ML Kit von Google trainierte Modelle für maschinelles Lernen. Diese Modelle sind für ein breites Spektrum an Anwendungen konzipiert. In einigen Anwendungsfällen sind jedoch präzisere Modelle erforderlich. Aus diesem Grund können Sie bei einigen ML Kit APIs jetzt die Standardmodelle durch benutzerdefinierte TensorFlow Lite-Modelle ersetzen.
Sowohl die Image Labeling als auch die Object Detection & Tracking API unterstützen benutzerdefinierte Bildklassifizierungsmodelle. Sie sind mit einer Auswahl hochwertiger vortrainierter Modelle in 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 zum maschinellen Lernen auf dem Gerät Informationen zu allen Lösungen und Tools von Google für maschinelles Lernen auf dem Gerät.
Vorteile der Verwendung von ML Kit mit benutzerdefinierten Modellen
Die Verwendung eines benutzerdefinierten Bildklassifizierungsmodells mit ML Kit bietet folgende Vorteile:
- Nutzerfreundliche High-Level-APIs – Sie müssen sich nicht um die Low-Level-Modelleingabe/-ausgabe, die Vor-/Nachverarbeitung von Bildern oder das Erstellen einer Verarbeitungspipeline kümmern.
- Sie müssen sich keine Gedanken über die Labelzuordnung selbst machen. ML Kit extrahiert die Labels aus den Metadaten des TFLite-Modells und übernimmt die Zuordnung für Sie.
- Unterstützt benutzerdefinierte Modelle aus einer Vielzahl von Quellen, von vortrainierten Modellen, die auf TensorFlow Hub veröffentlicht wurden, bis hin zu neuen Modellen, die mit TensorFlow, AutoML Vision Edge oder TensorFlow Lite Model Maker trainiert wurden.
- Unterstützt mit Firebase gehostete Modelle. Reduziert die APK-Größe, indem Modelle bei Bedarf heruntergeladen werden. Sie können Modellaktualisierungen übertragen, ohne Ihre App noch einmal zu veröffentlichen, und mit Firebase Remote Config einfache A/B-Tests durchführen.
- Optimiert für die Integration mit den Kamera-APIs von Android.
Insbesondere für Objekterkennung und -tracking gilt Folgendes:
- Verbessern Sie die Genauigkeit der Klassifizierung, indem Sie zuerst die Objekte lokalisieren und den Klassifikator nur für den zugehörigen Bildbereich ausführen.
- Bieten Sie Ihren Nutzern ein interaktives Echtzeiterlebnis, indem Sie ihnen unmittelbares Feedback zu Objekten geben, die erkannt und klassifiziert werden.
Vortrainiertes Bildklassifizierungsmodell verwenden
Sie können vortrainierte TensorFlow Lite-Modelle verwenden, sofern sie eine Reihe von Kriterien erfüllen. Über TensorFlow Hub bieten wir eine Reihe geprüfter Modelle von Google oder anderen Modellentwicklern an, die diese Kriterien erfüllen.
In TensorFlow Hub veröffentlichtes Modell verwenden
TensorFlow Hub bietet eine breite Palette vortrainierter Bildklassifizierungsmodelle von verschiedenen Modellerstellern, die mit den Image Labeling API, Object Detection and Tracking APIs verwendet werden können. Gehen Sie dazu so vor:
- Wählen Sie aus der Sammlung ML Kit-kompatibler Modelle ein Modell aus.
- Laden Sie die .tflite-Modelldatei von 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 die Modelldatei mit Ihrem Projekt bündeln und in Ihrer Android- oder iOS-Anwendung verwenden.
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 genauer erläutert.
Optionen zum Trainieren eines eigenen Bildklassifizierungsmodells | |
---|---|
AutoML Vision Edge |
|
TensorFlow Lite Model Maker |
|
TensorFlow-Modell in TensorFlow Lite konvertieren |
|
AutoML Vision Edge
Mit AutoML Vision Edge trainierte Bildklassifizierungsmodelle werden von den benutzerdefinierten Modellen in den APIs Image Labeling und Object Detection and Tracking API unterstützt. Diese APIs unterstützen auch das Herunterladen 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 Anleitungen für benutzerdefinierte Modelle für die einzelnen APIs (je nach Anwendungsfall).
TensorFlow Lite Model Maker
Die TFLite Model Maker-Bibliothek 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 unter Colab für die Bildklassifizierung mit TensorFlow Lite Model Maker.
Weitere Informationen zur Verwendung eines mit Model Maker trainierten Modells in Ihren Android- und iOS-Apps finden Sie je nach Anwendungsfall in unseren Leitfäden für die Image Labeling API oder die Object Detection and Tracking API.
Mit dem TensorFlow Lite-Konverter erstellte Modelle
Wenn Sie bereits ein TensorFlow-Bildklassifizierungsmodell haben, können Sie es mit dem TensorFlow Lite-Konverter konvertieren. Achten Sie darauf, dass das erstellte Modell die unten aufgeführten Kompatibilitätsanforderungen erfüllt.
Weitere Informationen zur Verwendung eines TensorFlow Lite-Modells in Android- und iOS-Apps finden Sie je nach Anwendungsfall in unseren Anleitungen für die Image Labeling API oder die Object Detection and Tracking API.
TensorFlow Lite-Modellkompatibilität
Sie können jedes vortrainierte TensorFlow Lite-Bildklassifizierungsmodell verwenden, sofern es die folgenden Anforderungen erfüllt:
Tensoren
- Das Modell darf nur einen Eingabetensor mit den folgenden Einschränkungen haben:
- Die Daten liegen im RGB-Pixelformat vor.
- Die Daten sind vom Typ UINT8 oder FLOAT32. Wenn der Eingabetensortyp FLOAT32 ist, müssen die NormalizationOptions durch Anhängen von Metadata angegeben werden.
- Der Tensor hat vier Dimensionen : BxHxBxC, wobei:
- B ist die Batchgröße. Dieser Wert muss 1 sein (Inferenz auf größere Batches wird nicht unterstützt).
- B und H stehen für Breite und Höhe der Eingabe.
- C ist die Anzahl der erwarteten Channels. Der Wert muss 3 sein.
- Das Modell muss mindestens einen Ausgabetensor mit N Klassen und entweder 2 oder 4 Dimensionen haben:
- (1 × N)
- (1x1x1xN)
- Derzeit werden nur Ein-Kopf-Modelle vollständig unterstützt. Mehrkopfmodelle können unerwartete Ergebnisse ausgeben.
Metadaten
Sie können der TensorFlow Lite-Datei Metadaten hinzufügen, wie unter Metadaten zu TensorFlow Lite-Modell hinzufügen erläutert.
Wenn Sie ein Modell mit einem 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 AssociatedFile vom Typ TENSOR_AXIS_LABELS angibt. Andernfalls können nur die numerischen Ausgabeklassenindexe zurückgegeben werden.
- Ein Standardgrenzwert für Punktzahlen, unter dem Ergebnisse als zu niedrig für die Rückgabe eingestuft werden, als ProcessUnit mit ScoreThresholdingOptions.