Wenn Sie ein Modell für das Bild-Labeling trainieren möchten, stellen Sie AutoML Vision Edge eine Reihe von Bildern und die entsprechenden Labels zur Verfügung. Mit AutoML Vision Edge wird anhand dieses Datasets ein neues Modell in der Cloud trainiert, das Sie für die On-Device-Bilderkennung in Ihrer App verwenden können. Allgemeine Informationen zu dieser Funktion finden Sie in der Übersicht.
AutoML Vision Edge ist ein Google Cloud-Dienst. Die Nutzung des Dienstes unterliegt der Lizenzvereinbarung für die Google Cloud Platform und den dienstspezifischen Nutzungsbedingungen. Die Abrechnung erfolgt entsprechend. Informationen zur Abrechnung finden Sie auf der AutoML-Preisseite.
Hinweis
Wenn Sie noch kein Firebase- oder Google Cloud-Projekt haben, erstellen Sie eines in der Firebase Console.
Machen Sie sich mit den Richtlinien im Leitfaden zu inklusivem ML – AutoML vertraut.
Wenn Sie AutoML Vision Edge nur ausprobieren möchten und keine eigenen Trainingsdaten haben, laden Sie ein Beispiel-Dataset herunter, z. B. eines der folgenden:
- Offizielles Blumenbild-Beispiel-Dataset von TensorFlow
- Dieses Dataset zum Alphabet der US-amerikanischen Gebärdensprache (American Sign Language, ASL)
Weitere Datasets finden Sie auf Kaggle.
1. Trainingsdaten zusammenstellen
Zuerst müssen Sie ein Trainings-Dataset mit gekennzeichneten Bildern zusammenstellen. Beachten Sie dabei die folgenden Richtlinien:
Die Bilder müssen in einem der folgenden Formate vorliegen: JPEG, PNG, GIF, BMP oder ICO.
Jedes Bild darf maximal 30 MB groß sein. Beachten Sie, dass AutoML Vision Edge die meisten Bilder während der Vorverarbeitung herunterskaliert. Daher bietet die Bereitstellung von Bildern mit sehr hoher Auflösung in der Regel keinen Vorteil in Bezug auf die Genauigkeit.
Fügen Sie für jedes Label mindestens 10 und vorzugsweise mindestens 100 Beispiele hinzu.
Verwenden Sie für jedes Label mehrere Blickwinkel, Auflösungen und Hintergründe.
Die Trainingsdaten sollten den Daten, für die Vorhersagen getroffen werden sollen, möglichst ähnlich sein. Wenn Ihr Anwendungsfall beispielsweise verschwommene Bilder mit niedriger Auflösung (etwa von einer Überwachungskamera) beinhaltet, sollten Ihre Trainingsdaten aus verschwommenen Bildern mit niedriger Auflösung bestehen.
Die von AutoML Vision Edge generierten Modelle sind für Fotos von Objekten aus dem richtigen Leben optimiert. Sie eignen sich möglicherweise nicht gut für Röntgenbilder, Handzeichnungen, gescannte Dokumente oder Belege.
Außerdem können die Modelle in der Regel keine Labels vorhersagen, die von Menschen nicht zugewiesen werden können. Wenn also ein Mensch nicht darin unterwiesen werden kann, beim Betrachten eines Bildes innerhalb von 1 bis 2 Sekunden ein Label zuzuweisen, kann Ihr Modell wahrscheinlich auch nicht dafür trainiert werden.
Wenn Sie Ihre Trainingsbilder fertig haben, bereiten Sie sie für den Import in Firebase vor. Sie haben drei Möglichkeiten:
Option 1: Strukturiertes ZIP-Archiv
Ordnen Sie Ihre Trainingsbilder in Verzeichnissen an, die jeweils nach einem Label benannt sind und Bilder enthalten, die Beispiele für dieses Label sind. Komprimieren Sie dann die Verzeichnisstruktur in einem ZIP-Archiv.
Die Verzeichnisnamen in diesem ZIP-Archiv dürfen maximal 32 ASCII-Zeichen lang sein und nur alphanumerische Zeichen und den Unterstrich (_
) enthalten.
Beispiel:
my_training_data.zip |____accordion | |____001.jpg | |____002.jpg | |____003.jpg |____bass_guitar | |____hofner.gif | |____p-bass.png |____clavier |____well-tempered.jpg |____well-tempered (1).jpg |____well-tempered (2).jpg
Option 2: Cloud Storage mit CSV-Index
Laden Sie Ihre Trainingsbilder in Google Cloud Storage hoch und erstellen Sie eine CSV-Datei mit der URL jedes Bildes und optional den richtigen Labels für jedes Bild. Diese Option ist hilfreich, wenn Sie sehr große Datenmengen verwenden.
Laden Sie Ihre Bilder beispielsweise in Cloud Storage hoch und erstellen Sie eine CSV-Datei wie die folgende:
gs://your-training-data-bucket/001.jpg,accordion gs://your-training-data-bucket/002.jpg,accordion gs://your-training-data-bucket/003.jpg,accordion gs://your-training-data-bucket/hofner.gif,bass_guitar gs://your-training-data-bucket/p-bass.png,bass_guitar gs://your-training-data-bucket/well-tempered.jpg,clavier gs://your-training-data-bucket/well-tempered%20(1).jpg,clavier gs://your-training-data-bucket/well-tempered%20(2).jpg,clavier
Die Bilder müssen in einem Bucket gespeichert sein, der zum entsprechenden Google Cloud-Projekt Ihres Firebase-Projekts gehört.
Weitere Informationen zum Vorbereiten der CSV-Datei finden Sie in der Cloud AutoML Vision-Dokumentation unter Trainingsdaten vorbereiten.
Option 3: Bilder ohne Labels
Fügen Sie Ihren Trainingsbildern in der Firebase-Konsole Labels hinzu, nachdem Sie sie entweder einzeln oder als unstrukturierte ZIP-Datei hochgeladen haben. Fahren Sie mit dem nächsten Schritt fort.
2. Modell trainieren
Trainieren Sie als Nächstes ein Modell mit Ihren Bildern:
Öffnen Sie in der Google Cloud-Konsole die Seite Vision-Datasets. Wählen Sie Ihr Projekt aus, wenn Sie dazu aufgefordert werden.
Klicken Sie auf Neues Dataset, geben Sie einen Namen für das Dataset ein, wählen Sie den Modelltyp aus, den Sie trainieren möchten, und klicken Sie auf Dataset erstellen.
Laden Sie auf dem Tab Importieren Ihres Datasets entweder ein ZIP-Archiv Ihrer Trainingsbilder oder eine CSV-Datei mit den Cloud Storage-Standorten hoch, an die Sie sie hochgeladen haben. Weitere Informationen finden Sie unter Trainingsdaten zusammenstellen.
Prüfen Sie nach Abschluss der Importaufgabe auf dem Tab Bilder die Trainingsdaten und labeln Sie alle nicht gekennzeichneten Bilder.
Klicken Sie auf dem Tab Trainieren auf Training starten.
Geben Sie einen Namen für das Modell ein und wählen Sie den Modelltyp Edge aus.
Konfigurieren Sie die folgenden Trainingseinstellungen, die die Leistung des generierten Modells steuern:
Modell optimieren für… Die zu verwendende Modellkonfiguration. Sie können schnellere, kleinere Modelle trainieren, wenn eine geringe Latenz oder eine kleine Paketgröße wichtig sind, oder langsamere, größere Modelle, wenn die Genauigkeit am wichtigsten ist. Knotenstundenbudget Die maximale Zeit in Rechenstunden für das Training des Modells. Eine längere Trainingszeit führt in der Regel zu einem genaueren Modell.
Das Training kann in weniger als der angegebenen Zeit abgeschlossen werden, wenn das System feststellt, dass das Modell optimiert ist und eine zusätzliche Schulung die Genauigkeit nicht verbessern würde. Ihnen werden nur die tatsächlich genutzten Stunden in Rechnung gestellt.
Übliche Trainingszeiten Sehr kleine Datensätze 1 Stunde 500 Bilder 2 Stunden 1.000 Bilder 3 Stunden 5.000 Bilder 6 Stunden 10.000 Bilder 7 Stunden 50.000 Bilder 11 Stunden 100.000 Bilder 13 Stunden 1.000.000 Bilder 18 Stunden
3. Modell bewerten
Nach Abschluss des Trainings können Sie auf den Tab Bewerten klicken, um die Leistungsmesswerte für das Modell aufzurufen.
Auf dieser Seite finden Sie wichtige Informationen zum Ermitteln des Konfidenzgrenzwerts, der für Ihr Modell am besten geeignet ist. Der Konfidenzgrenzwert ist das minimale Vertrauen, das das Modell haben muss, um einem Bild ein Label zuzuweisen. Wenn Sie den Schieberegler für den Konfidenzwert bewegen, können Sie sehen, wie sich unterschiedliche Schwellenwerte auf die Leistung des Modells auswirken. Die Modellleistung wird anhand von zwei Messwerten gemessen: Precision und Recall.
Im Kontext der Bildklassifizierung ist die Precision das Verhältnis zwischen der Anzahl der Bilder, die richtig gekennzeichnet wurden, und der Anzahl der Bilder, die das Modell unter Berücksichtigung des ausgewählten Grenzwerts gekennzeichnet hat. Wenn ein Modell eine hohe Genauigkeit hat, weist es Labels seltener falsch zu (weniger falsch positive Ergebnisse).
Die Trefferquote ist das Verhältnis zwischen der Anzahl der Bilder, die korrekt gekennzeichnet wurden, und der Anzahl der Bilder mit Inhalten, die das Modell hätte kennzeichnen können. Wenn ein Modell einen hohen Recall hat, kann es kein Label seltener zuweisen (weniger falsch negative Ergebnisse).
Ob Sie die Genauigkeit oder die Trefferquote optimieren, hängt von Ihrem Anwendungsfall ab. Weitere Informationen finden Sie im Einstiegsleitfaden für AutoML Vision und im Leitfaden zu inklusivem ML – AutoML.
Wenn Sie einen Konfidenzgrenzwert finden, mit dem Sie zufrieden sind, notieren Sie sich diesen. Sie verwenden den Konfidenzgrenzwert, um das Modell in Ihrer App zu konfigurieren. Sie können dieses Tool jederzeit verwenden, um einen geeigneten Grenzwert zu erhalten.
4. Modell veröffentlichen oder herunterladen
Wenn Sie mit der Leistung des Modells zufrieden sind und es in einer App verwenden möchten, haben Sie drei Möglichkeiten, aus denen Sie eine beliebige Kombination auswählen können: das Modell für Onlinevorhersagen bereitstellen, das Modell in Firebase veröffentlichen oder das Modell herunterladen und mit Ihrer App bündeln.
Modell bereitstellen
Auf dem Tab Testen und verwenden Ihres Datasets können Sie Ihr Modell für die Onlinevorhersage bereitstellen. Dabei wird Ihr Modell in der Cloud ausgeführt. Weitere Informationen zu dieser Option finden Sie in den Dokumenten zu Cloud AutoML. In den Dokumenten auf dieser Website werden die beiden verbleibenden Optionen behandelt.
Modell veröffentlichen
Wenn Sie das Modell in Firebase veröffentlichen, können Sie es aktualisieren, ohne eine neue App-Version zu veröffentlichen. Außerdem können Sie Remote Config und A/B Testing verwenden, um verschiedene Modelle dynamisch an verschiedene Nutzergruppen bereitzustellen.
Wenn Sie das Modell nur über Firebase hosten und nicht mit Ihrer App bündeln, können Sie die ursprüngliche Downloadgröße Ihrer App verringern. Beachten Sie jedoch, dass alle modellverbundenen Funktionen erst verfügbar sind, wenn Ihre App das Modell zum ersten Mal herunterlädt.
Sie haben zwei Möglichkeiten, Ihr Modell zu veröffentlichen:
- Laden Sie das TF Lite-Modell von der Seite Test & Use (Test und Nutzung) Ihres Datasets in der Google Cloud-Konsole herunter und laden Sie das Modell dann auf der Seite Custom model (Benutzerdefiniertes Modell) der Firebase-Konsole hoch. Das ist in der Regel die einfachste Möglichkeit, ein einzelnes Modell zu veröffentlichen.
- Veröffentlichen Sie das Modell direkt über das Admin SDK aus Ihrem Google Cloud-Projekt in Firebase. Mit dieser Methode können Sie mehrere Modelle gleichzeitig veröffentlichen oder automatisierte Veröffentlichungspipelines erstellen.
So veröffentlichen Sie das Modell mit der Model Management API des Admin SDK:
Veröffentlichen Sie das Modell.
Sie müssen die Ressourcen-ID des Modells angeben. Das ist ein String, der in etwa so aussieht:
projects/PROJECT_NUMBER/locations/us-central1/models/MODEL_ID
PROJECT_NUMBER
Die Projektnummer des Cloud Storage-Buckets, der das Modell enthält. Das kann Ihr Firebase-Projekt oder ein anderes Google Cloud-Projekt sein. Sie finden diesen Wert auf der Seite „Einstellungen“ der Firebase Console oder im Dashboard der Google Cloud Console. MODEL_ID
Die ID des Modells, die Sie von der AutoML Cloud API erhalten haben. Python
# First, import and initialize the SDK. # Get a reference to the AutoML model source = ml.TFLiteAutoMlSource('projects/{}/locations/us-central1/models/{}'.format( # See above for information on these values. project_number, model_id )) # Create the model object tflite_format = ml.TFLiteFormat(model_source=source) model = ml.Model( display_name="example_model", # This is the name you will use from your app to load the model. tags=["examples"], # Optional tags for easier management. model_format=tflite_format) # Add the model to your Firebase project and publish it new_model = ml.create_model(model) new_model.wait_for_unlocked() ml.publish_model(new_model.model_id)
Node.js
// First, import and initialize the SDK. (async () => { // Get a reference to the AutoML model. See above for information on these // values. const automlModel = `projects/${projectNumber}/locations/us-central1/models/${modelId}`; // Create the model object and add the model to your Firebase project. const model = await ml.createModel({ displayName: 'example_model', // This is the name you use from your app to load the model. tags: ['examples'], // Optional tags for easier management. tfliteModel: { automlModel: automlModel }, }); // Wait for the model to be ready. await model.waitForUnlocked(); // Publish the model. await ml.publishModel(model.modelId); process.exit(); })().catch(console.error);
Modell herunterladen und mit Ihrer App bündeln
Wenn Sie Ihr Modell mit Ihrer App bündeln, können Sie dafür sorgen, dass die ML-Funktionen Ihrer App auch dann funktionieren, wenn das in Firebase gehostete Modell nicht verfügbar ist.
Wenn Sie das Modell veröffentlichen und es mit Ihrer App bündeln, verwendet die App die neueste verfügbare Version.
Klicken Sie auf der Seite Testen und verwenden des Datasets auf TF Lite, um das Modell herunterzuladen.
Nächste Schritte
Nachdem Sie das Modell veröffentlicht oder heruntergeladen haben, erfahren Sie hier, wie Sie es in Ihren iOS- und Android-Apps verwenden.