Objekterkennungsmodell mit AutoML Vision Edge trainieren

Ein Objekterkennungsmodell ähnelt einem Bild-Labeling-Modell, allerdings ganzen Bildern Beschriftungen zuweist, werden Bildbereichen Beschriftungen zugewiesen. Sie können Objekterkennungsmodelle verwenden, um Objekte in einem Bild zu erkennen und zu lokalisieren die Bewegungen eines Objekts über einer Reihe von Bildern verfolgen.

Um ein Objekterkennungsmodell zu trainieren, stellen Sie AutoML Vision Edge eine Reihe von mit entsprechenden Objektlabels und Objektgrenzen. AutoML Vision Edge verwendet dieses Dataset, um ein neues Modell in der Cloud zu trainieren, das Sie für Objekterkennung auf dem Gerät.

Hinweis

1. Trainingsdaten zusammenstellen

Zuerst müssen Sie ein Trainings-Dataset mit Bildern mit Labels zusammenstellen. Behalten Sie die folgenden Richtlinien beachten:

  • 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 während der Vorverarbeitung der meisten Bilder, sodass die Genauigkeit sehr hochauflösende Bilder liefern.

  • Geben Sie mindestens 10, vorzugsweise 100 oder mehr Beispiele jedes Labels an.

  • Geben Sie für jedes Label mehrere Blickwinkel, Auflösungen und Hintergründe an.

  • 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. Für Röntgenaufnahmen, Handzeichnungen gescannte Dokumente, Belege usw.

    Außerdem können die Modelle in der Regel keine Labels vorhersagen, die von Menschen nicht zugewiesen werden können. Also: Wenn ein Mensch keine Beschriftungen zuweisen kann, indem er das Bild 1 bis 2 Sekunden lang ansieht, kann Ihr Modell wahrscheinlich auch nicht trainieren.

Wenn Ihre Trainingsbilder fertig sind, bereiten Sie sie für den Import in Google Cloud Es stehen zwei Optionen zur Verfügung:

Option 1: Cloud Storage mit CSV-Index

Trainingsbilder in Google Cloud Storage hochladen und bereiten Sie eine CSV-Datei vor, in der die URL jedes Bildes und optional die für jedes Bild korrekte Objektlabels und Begrenzungsrahmen. Diese Option ist mit großen Datasets.

Laden Sie beispielsweise Ihre Bilder auf Cloud Storage hoch und bereiten Sie eine CSV-Datei wie Folgendes:

gs://your-training-data-bucket/001.jpg,accordion,0.2,0.4,,,0.3,0.5,,
gs://your-training-data-bucket/001.jpg,tuba,0.2,0.5,,,0.4,0.8,,
gs://your-training-data-bucket/002.jpg,accordion,0.2,0.2,,,0.9,0.8,,

Objektbegrenzungsrahmen werden als relative Koordinaten im Bild angegeben. Weitere Informationen finden Sie unter CSV-Datei mit Trainingsdaten formatieren

Die Images müssen in einem Bucket gespeichert werden, der sich in der Region us-central1 befindet und Teil des entsprechenden Google Cloud-Projekts Ihres Firebase-Projekts.

Option 2: Bilder ohne Label

Beschriften Sie Ihre Trainingsbilder und zeichnen Sie Objektgrenzen in der Google Cloud nach dem Hochladen. Diese Option wird nur für kleine Datasets. Fahren Sie mit dem nächsten Schritt fort.

2. Modell trainieren

Als Nächstes trainieren Sie ein Modell mit Ihren Bildern:

  1. Öffnen Sie die Vision-Datasets. in der Google Cloud-Konsole. Wählen Sie Ihr Projekt aus, wenn Sie dazu aufgefordert werden.

  2. 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.

  3. Laden Sie auf dem Tab Importieren des Datasets Ihre Trainingsbilder, ein ZIP-Archiv, Ihrer Trainingsbilder oder eine CSV-Datei mit dem Cloud Storage Standorte, in die Sie sie hochgeladen haben. Weitere Informationen finden Sie unter Trainingsdaten zusammenstellen

  4. Prüfen Sie nach Abschluss der Importaufgabe die Trainingsdaten auf dem Tab Bilder.

  5. Wenn Sie keine CSV-Datei hochgeladen haben, zeichnen Sie für jedes Bild Begrenzungsrahmen um die die Sie erkennen möchten, und fügen Sie jedem Objekt ein Label hinzu.

  6. Klicken Sie auf dem Tab Trainieren auf Training starten.

    1. Geben Sie dem Modell einen Namen und wählen Sie den Modelltyp Edge aus.

    2. Konfigurieren Sie die folgenden Trainingseinstellungen, die die Leistung des generierten Modells steuern:

      Modell optimieren für… Die zu verwendende Modellkonfiguration. Sie können schneller, kleiner, wenn niedrige Latenz oder geringe Paketgröße wichtig ist, oder langsamer, größer, oder wenn Genauigkeit am wichtigsten ist.
      Knotenstundenbudget

      Die maximale Zeit in Rechenstunden für das Training des modellieren. Mehr Trainingszeit führt im Allgemeinen zu einer genaueren modellieren.

      Das Training kann in weniger als der angegebenen wenn das System feststellt, dass das Modell optimiert ist, zusätzliche Schulungen die Genauigkeit nicht verbessern würden. Dir wird eine Rechnung gestellt. nur für die tatsächlich genutzten Stunden.

      Typische Trainingszeiten
      Sehr kleine Sets1 Stunde
      500 Bilder2 Stunden
      1.000 Bilder3 Stunden
      5.000 Bilder6 Stunden
      10.000 Bilder7 Stunden
      50.000 Bilder11 Stunden
      100.000 Bilder13 Stunden
      1.000.000 Bilder18 Stunden

3. Modell bewerten

Nach Abschluss des Trainings können Sie auf den Tab Bewerten klicken, sehen Sie sich die Leistungsmesswerte für das Modell an.

Auf dieser Seite können Sie unter anderem den Konfidenzgrenzwert ermitteln, der für Ihr Modell am besten geeignet ist. Der Konfidenzgrenzwert ist der minimale Konfidenzgrenzwert, den das Modell nicht haben, damit einem Bild ein Label zugewiesen werden kann. Indem Sie den Konfidenzgrenzwert verschieben 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 Precision das Verhältnis der Zahl von Bildern, die korrekt mit der Anzahl der Bilder beschriftet wurden, die vom Modell mit einem Label versehen wurden. unter Berücksichtigung des ausgewählten Schwellenwerts. Wenn ein Modell eine hohe Genauigkeit hat, weist es Labels werden seltener falsch (weniger falsch positive Ergebnisse) angezeigt.

Trefferquote ist das Verhältnis der Anzahl der Bilder, die korrekt mit dem Label Anzahl der Bilder mit Inhalten, die das Modell hätte kennzeichnen können sollen. Wann? ein Modell eine hohe Trefferquote hat, weist es keine Beschriftungen seltener zu (weniger auszuschließende Keywords).

Ob Sie die Genauigkeit oder die Trefferquote optimieren, hängt von Ihrem Anwendungsfall ab. Weitere Informationen finden Sie unter für die AutoML Vision-Einsteiger Leitfaden und die Weitere Informationen finden Sie im Leitfaden zu inklusivem ML – AutoML.

Wenn Sie einen Konfidenzgrenzwert mit Messwerten finden, mit denen Sie vertretbar sind, notieren Sie es sich. konfigurieren Sie mithilfe des Konfidenzgrenzwerts Sie können dieses Tool jederzeit verwenden, um einen angemessenen Grenzwert zu ermitteln.

4. Modell veröffentlichen oder herunterladen

Wenn Sie mit der Leistung eines Modells zufrieden sind, stehen Ihnen drei Optionen zur Verfügung, unter denen Sie eine beliebige Kombination auswählen können: Bereitstellung des für die Onlinevorhersage nutzen möchten, veröffentlichen Sie das Modell in Firebase oder laden Sie die und bündeln Sie es mit Ihrer App.

Modell bereitstellen

Auf der Registerkarte Test & Verwenden können Sie Ihr Modell online bereitstellen. Vorhersage, die Ihr Modell in der Cloud ausführt. Weitere Informationen zu dieser Option finden Sie in den Dokumenten zu Cloud AutoML. Die Dokumente auf dieser Website behandeln die verbleibenden beiden Optionen.

Modell veröffentlichen

Wenn Sie das Modell in Firebase veröffentlichen, können Sie es aktualisieren, ohne eine neue App-Version und du kannst Remote Config und A/B Testing für Folgendes verwenden: verschiedenen Gruppen von Nutzern dynamisch verschiedene Modelle bereitstellen.

Wenn Sie das Modell nur durch das Hosting mit Firebase und nicht mit Ihrer App bündeln, können Sie die anfängliche Downloadgröße Ihrer App reduzieren. Wenn das Modell nicht in Ihrer App enthalten ist, modellbezogene Funktionen sind erst verfügbar, wenn Ihre App die um ein neues Modell zu erstellen.

Zum Veröffentlichen Ihres Modells haben Sie zwei Möglichkeiten:

  • Laden Sie das TF Lite-Modell aus dem Dataset Test & verwenden im Google Cloud-Konsole und laden Sie das Modell in die Seite Benutzerdefiniertes Modell der Firebase-Konsole. Dies ist normalerweise ein einzelnes Modell zu veröffentlichen.
  • Veröffentlichen Sie das Modell direkt aus Ihrem Google Cloud-Projekt in Firebase mithilfe von des Admin SDK. Sie können diese Methode verwenden, um mehrere Modelle im Batch zu veröffentlichen oder beim Erstellen automatisierter Veröffentlichungspipelines.

So veröffentlichen Sie das Modell mit der Model Management API des Admin SDK:

  1. Installieren und initialisieren Sie das SDK.

  2. Veröffentlichen Sie das Modell.

    Sie müssen die Ressourcenkennung des Modells angeben. Diese ist ein String. Das sieht in etwa so aus:

    projects/PROJECT_NUMBER/locations/us-central1/models/MODEL_ID
    PROJECT_NUMBER Die Projektnummer des Cloud Storage-Buckets, der den modellieren. Das könnte Ihr Firebase-Projekt oder ein anderes Google Cloud sein Projekt arbeiten. Diesen Wert finden Sie auf der Seite „Einstellungen“ der Firebase-Konsole oder das Google Cloud-Dashboard der Konsole.
    MODEL_ID Die Modell-ID, 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);
    

Herunterladen und das Modell 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 sowohl das Modell veröffentlichen als auch mit Ihrer App bündeln, verwendet die App das Modell aktuelle Version verfügbar.

Klicken Sie zum Herunterladen Ihres Modells auf TF Lite im Dataset Test & finden Sie auf der Seite zur Nutzung.

Nächste Schritte

Nachdem Sie das Modell veröffentlicht oder heruntergeladen haben, können Sie sich mit der Verwendung des Modells vertraut machen. in Ihrem iOS+- und Android-Apps