ML Kit AutoML Vision Edge-Migrationsanleitung

Sie können ein von AutoML trainiertes Bildklassifizierungsmodell an die APIs für benutzerdefinierte Modelle übergeben. Sie können das Modell weiterhin entweder in Ihre App einbinden oder es als benutzerdefiniertes Modell in der Firebase Console hosten. Die AutoML Image Labeling API wurde aus ML Kit entfernt, da sie vollständig durch die Custom Model Image Labeling API ersetzt wurde.

APIWas ändert sich?
AutoML Vision Edge API zum Versehen von Bildern mit Labels Sie wird vollständig durch die Custom Model Image Labeling API ersetzt. Die vorhandene AutoML Vision Edge API zum Labeln von Bildern wurde entfernt.

Wenn Sie die AutoML Vision Edge API verwenden, folgen Sie der Migrationsanleitung für Android und iOS.

Häufig gestellte Fragen

Was ist der Grund für diese Änderung?

Dadurch werden die ML Kit-APIs vereinfacht und die Integration von ML Kit in Ihre App wird erleichtert. Mit dieser Änderung können Sie ein von AutoML trainiertes Modell genauso verwenden wie ein benutzerdefiniertes Modell. Außerdem können Sie zusätzlich zur Bildlabelung, die wir unterstützen, auch AutoML-trainierte Modelle für die Objekterkennung und das Objekt-Tracking verwenden. Außerdem unterstützt die API für benutzerdefinierte Modelle sowohl Modelle mit einer in den Metadaten eingebetteten Labelzuordnung als auch Modelle mit separaten Manifest- und Labeldateien.

Welche Vorteile bietet die Migration zum neuen SDK?

  • Neue Funktionen: AutoML-trainierte Modelle können sowohl für die Bildkennzeichnung als auch für die Objekterkennung und ‑verfolgung verwendet werden. Außerdem können Modelle mit einer in den Metadaten eingebetteten Labelzuordnung verwendet werden.

Migrationsanleitung für Android

Schritt 1: Gradle-Importe aktualisieren

Aktualisieren Sie die Abhängigkeiten für die ML Kit Android-Bibliotheken in der Gradle-Datei Ihres Moduls (auf App-Ebene, in der Regel app/build.gradle.kts) gemäß der folgenden Tabelle:

FunktionAlte ArtefakteNeues Artefakt
AutoML für Bild-Labeling ohne Herunterladen von Remote-Modellen com.google.mlkit:image-labeling-automl:16.2.1 com.google.mlkit:image-labeling-custom:16.0.0-beta5
AutoML für Bild-Labeling mit Remote-Modelldownload com.google.mlkit:image-labeling-automl:16.2.1
com.google.mlkit:linkfirebase:16.0.1
com.google.mlkit:image-labeling-custom:16.0.0-beta5
Wenn Sie benutzerdefinierte Modelle hosten und herunterladen möchten, verschieben Sie Ihre Modelle in Cloud Storage und fügen Sie Ihrer App Downloadlogik hinzu, um sie mit LocalModel zu laden. Weitere Informationen finden Sie im [Migrationsleitfaden für Firebase ML zu Cloud Storage][migrate-storage].

Schritt 2: Kursnamen aktualisieren

Wenn Ihre Klasse in dieser Tabelle aufgeführt ist, nehmen Sie die angegebene Änderung vor:

Alte KlasseNeue Klasse
com.google.mlkit.vision.label.automl.AutoMLImageLabelerLocalModel com.google.mlkit.common.model.LocalModel
com.google.mlkit.vision.label.automl.AutoMLImageLabelerRemoteModel com.google.mlkit.common.model.LocalModel
Ihre App muss Logik zum Herunterladen von Remote-Modellen und zum Initialisieren dieser Modelle mit LocalModel enthalten.
com.google.mlkit.vision.label.automl.AutoMLImageLabelerOptions com.google.mlkit.vision.label.custom.CustomImageLabelerOptions

Schritt 3: Methodennamen aktualisieren

Es sind nur geringfügige Codeänderungen erforderlich:

  • LocalModel kann jetzt entweder mit einem Modellpfad (wenn das Modell Metadaten mit der Labelzuordnung enthält) oder mit einem Modellmanifestpfad initialisiert werden (wenn sich Manifest, Modell und Labels in separaten Dateien befinden).
  • Fügen Sie Ihrer App Logik hinzu, um remote gehostete Modelle in den lokalen Speicher herunterzuladen und mit LocalModel zu laden.

Hier sind einige Beispiele für alte und neue Kotlin-Methoden:

Alt

val localModel = AutoMLImageLabelerLocalModel.Builder()
    .setAssetFilePath("automl/manifest.json")
    // or .setAbsoluteFilePath(absolute path to manifest file)
    .build()

val optionsWithLocalModel = AutoMLImageLabelerOptions.Builder(localModel)
    .setConfidenceThreshold(0.5f)
    .build()

val remoteModel = AutoMLImageLabelerRemoteModel.Builder("automl_remote_model")
    .build()

val optionsWithRemoteModel = AutoMLImageLabelerOptions.Builder(remoteModel)
    .build()

Neu

// Similar process for both local and remotely-hosted models (that have been downloaded)
val localModel = LocalModel.Builder()
    .setAssetManifestFilePath("automl/manifest.json")
    // or .setAbsoluteManifestFilePath(absolute path to manifest file)
    .build()

val optionsWithLocalModel = CustomImageLabelerOptions.Builder(localModel)
    .setConfidenceThreshold(0.5f)
    .build()

Hier sind einige Beispiele für alte und neue Java-Methoden:

Alt

AutoMLImageLabelerLocalModel localModel =
    new AutoMLImageLabelerLocalModel.Builder()
        .setAssetFilePath("automl/manifest.json")
        // or .setAbsoluteFilePath(absolute path to manifest file)
        .build();
AutoMLImageLabelerOptions optionsWithLocalModel =
    new AutoMLImageLabelerOptions.Builder(localModel)
        .setConfidenceThreshold(0.5f)
        .build();
AutoMLImageLabelerRemoteModel remoteModel =
    new AutoMLImageLabelerRemoteModel.Builder("automl_remote_model").build();
AutoMLImageLabelerOptions optionsWithRemoteModel =
    new AutoMLImageLabelerOptions.Builder(remoteModel)
        .build();

Neu

// Similar process for local models and remotely-hosted models (that have been downloaded)
LocalModel localModel =
    new LocalModel.Builder()
        .setAssetManifestFilePath("automl/manifest.json")
        // or .setAbsoluteManifestFilePath(absolute path to manifest file)
        .build();
CustomImageLabelerOptions optionsWithLocalModel =
    new CustomImageLabelerOptions.Builder(localModel)
        .setConfidenceThreshold(0.5f)
        .build();

Migrationsanleitung für iOS

Vorbereitung

  • Xcode 13.2.1 oder höher ist erforderlich.

Schritt 1: Cocoapods aktualisieren

Aktualisieren Sie die Abhängigkeiten für die ML Kit iOS-CocoaPods in der Podfile-Datei Ihrer App:

FunktionAlte Pod-NamenName(n) des neuen Pods
AutoML für Bild-Labeling ohne Herunterladen von Remote-Modellen GoogleMLKit/ImageLabelingAutoML GoogleMLKit/ImageLabelingCustom
AutoML für Bild-Labeling mit Remote-Modelldownload GoogleMLKit/ImageLabelingAutoML
GoogleMLKit/LinkFirebase
GoogleMLKit/ImageLabelingCustom
Wenn Sie benutzerdefinierte Modelle hosten und herunterladen möchten, verschieben Sie Ihre Modelle in Cloud Storage und fügen Sie Ihrer App Download-Logik hinzu, um sie als lokale Modelle zu laden. Weitere Informationen finden Sie im [Migrationsleitfaden von Firebase ML zu Cloud Storage][migrate-storage].

Schritt 2: Kursnamen aktualisieren

Wenn Ihre Klasse in dieser Tabelle aufgeführt ist, nehmen Sie die angegebene Änderung vor:

Swift

Alte KlasseNeue Klasse
AutoMLImageLabelerLocalModel LocalModel
AutoMLImageLabelerRemoteModel LocalModel
Wenn Sie benutzerdefinierte Modelle hosten und herunterladen möchten, verschieben Sie Ihre Modelle in Cloud Storage und fügen Sie Ihrer App Downloadlogik hinzu, um sie als lokale Modelle zu laden. Weitere Informationen finden Sie im [Migrationsleitfaden von Firebase ML zu Cloud Storage][migrate-storage].
AutoMLImageLabelerOptions CustomImageLabelerOptions

Objective-C

Alte KlasseNeue Klasse
MLKAutoMLImageLabelerLocalModel MLKLocalModel
MLKAutoMLImageLabelerRemoteModel MLKLocalModel
Wenn Sie benutzerdefinierte Modelle hosten und herunterladen möchten, verschieben Sie Ihre Modelle in Cloud Storage und fügen Sie Ihrer App Downloadlogik hinzu, um sie als lokale Modelle zu laden. Weitere Informationen finden Sie im [Migrationsleitfaden von Firebase ML zu Cloud Storage][migrate-storage].
MLKAutoMLImageLabelerOptions MLKCustomImageLabelerOptions

Schritt 3: Methodennamen aktualisieren

Es sind nur geringfügige Codeänderungen erforderlich:

  • LocalModel kann jetzt entweder mit einem Modellpfad (wenn das Modell Metadaten mit der Labelzuordnung enthält) oder mit einem Modellmanifestpfad initialisiert werden (wenn sich Manifest, Modell und Labels in separaten Dateien befinden).
  • Fügen Sie Ihrer App Logik hinzu, um remote gehostete Modelle in den lokalen Speicher herunterzuladen und mit LocalModel zu laden.

Hier sind einige Beispiele für alte und neue Swift-Methoden:

Alt

let localModel =
    AutoMLImageLabelerLocalModel(manifestPath: "automl/manifest.json")
let optionsWithLocalModel = AutoMLImageLabelerOptions(localModel: localModel)
let remoteModel = AutoMLImageLabelerRemoteModel(name: "automl_remote_model")
let optionsWithRemoteModel = AutoMLImageLabelerOptions(remoteModel: remoteModel)

Neu

// Similar process for local models and remotely-hosted models (that have been downloaded)
guard let localModel = LocalModel(manifestPath: "automl/manifest.json") else { return }
let optionsWithLocalModel = CustomImageLabelerOptions(localModel: localModel)

Hier sind einige Beispiele für alte und neue Objective-C-Methoden:

Alt

MLKAutoMLImageLabelerLocalModel *localModel =
    [[MLKAutoMLImageLabelerLocalModel alloc]
        initWithManifestPath:"automl/manifest.json"];
MLKAutoMLImageLabelerOptions *optionsWithLocalModel =
    [[MLKAutoMLImageLabelerOptions alloc] initWithLocalModel:localModel];
MLKAutoMLImageLabelerRemoteModel *remoteModel =
    [[MLKAutoMLImageLabelerRemoteModel alloc]
        initWithManifestPath:"automl/manifest.json"];
MLKAutoMLImageLabelerOptions *optionsWithRemoteModel =
    [[MLKAutoMLImageLabelerOptions alloc] initWithRemoteModel:remoteModel];

Neu

// Similar process for local models and remotely-hosted models (that have been downloaded)
MLKLocalModel *localModel =
    [[MLKLocalModel alloc] initWithManifestPath:"automl/manifest.json"];
MLKCustomImageLabelerOptions *optionsWithLocalModel =
    [[MLKCustomImageLabelerOptions alloc] initWithLocalModel:localModel];