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 derzeit die AutoML Vision Edge API im ML Kit verwenden, folgen Sie bitte 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 AutoML-trainierte Modelle für die Objekterkennung und das Objekt-Tracking verwenden. Bisher wurde nur die Bildkennzeichnung unterstützt. Außerdem unterstützt die benutzerdefinierte Modell-API sowohl Modelle mit einer in den Metadaten eingebetteten Label-Map als auch Modelle mit separaten Manifest- und Label-Dateien.

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) gemäß der folgenden Tabelle:

FunktionAlte ArtefakteNeues Artefakt
AutoML für Bildlabeling 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-Modell-Download 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
com.google.mlkit:linkfirebase:17.0.0

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.CustomRemoteModel
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 Modelldateipfad (wenn das Modell Metadaten mit der Labelzuordnung enthält) oder mit einem Modellmanifestdateipfad (wenn sich Manifest, Modell und Labels in separaten Dateien befinden) initialisiert werden.
  • Sie können ein benutzerdefiniertes Modell remote über die Firebase Console hosten und ein CustomRemoteModel mit einem FirebaseModelSource initialisieren.

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

Alt

val localModel = AutoMLImageLabelerLocalModel.Builder()
    .setAssetFilePath("automl/manifest.json")
    // or .setAbsoluteFilePath(absolute file 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

val localModel = LocalModel.Builder()
    .setAssetManifestFilePath("automl/manifest.json")
    // or .setAbsoluteManifestFilePath(absolute file path to manifest file)
    .build()

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

val firebaseModelSource = FirebaseModelSource.Builder("automl_remote_model")
    .build()
val remoteModel = CustomRemoteModel.Builder(firebaseModelSource).build()
val optionsWithRemoteModel = CustomImageLabelerOptions.Builder(remoteModel)
    .build()

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

Alt

AutoMLImageLabelerLocalModel localModel =
    new AutoMLImageLabelerLocalModel.Builder()
        .setAssetFilePath("automl/manifest.json")
        // or .setAbsoluteFilePath(absolute file 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

LocalModel localModel =
    new LocalModel.Builder()
        .setAssetManifestFilePath("automl/manifest.json")
        // or .setAbsoluteManifestFilePath(absolute file path to manifest file)
        .build()
CustomImageLabelerOptions optionsWithLocalModel =
    new CustomImageLabelerOptions.Builder(localModel)
        .setConfidenceThreshold(0.5f)
        .build();
FirebaseModelSource firebaseModelSource =
    new FirebaseModelSource.Builder("automl_remote_model").build();
CustomRemoteModel remoteModel =
    new CustomRemoteModel.Builder(firebaseModelSource).build();
CustomImageLabelerOptions optionsWithRemoteModel =
    new CustomImageLabelerOptions.Builder(remoteModel).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-CocoaPods für iOS in der Podfile-Datei Ihrer App:

FunktionAlte Pod-NamenName(n) des neuen Pods
AutoML für Bildlabeling ohne Herunterladen von Remote-Modellen GoogleMLKit/ImageLabelingAutoML GoogleMLKit/ImageLabelingCustom
AutoML für Bild-Labeling mit Remote-Modell-Download GoogleMLKit/ImageLabelingAutoML
GoogleMLKit/LinkFirebase
GoogleMLKit/ImageLabelingCustom
GoogleMLKit/LinkFirebase

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 CustomRemoteModel
AutoMLImageLabelerOptions CustomImageLabelerOptions

Objective-C

Alte KlasseNeue Klasse
MLKAutoMLImageLabelerLocalModel MLKLocalModel
MLKAutoMLImageLabelerRemoteModel MLKCustomRemoteModel
MLKAutoMLImageLabelerOptions MLKCustomImageLabelerOptions

Objective-C

Schritt 3: Methodennamen aktualisieren

Es sind nur geringfügige Codeänderungen erforderlich:

  • LocalModel kann jetzt entweder mit einem Modelldateipfad (wenn das Modell Metadaten mit der Labelzuordnung enthält) oder mit einem Modellmanifestdateipfad (wenn sich Manifest, Modell und Labels in separaten Dateien befinden) initialisiert werden.
  • Sie können ein benutzerdefiniertes Modell remote über die Firebase Console hosten und ein CustomRemoteModel mit einem FirebaseModelSource initialisieren.

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

guard let localModel = LocalModel(manifestPath: "automl/manifest.json") else { return }
let optionsWithLocalModel = CustomImageLabelerOptions(localModel: localModel)
let firebaseModelSource = FirebaseModelSource(name: "automl_remote_model")
let remoteModel = CustomRemoteModel(remoteModelSource: firebaseModelSource)
let optionsWithRemoteModel = CustomImageLabelerOptions(remoteModel: remoteModel)

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

MLKLocalModel *localModel =
    [[MLKLocalModel alloc] initWithManifestPath:"automl/manifest.json"];
MLKCustomImageLabelerOptions *optionsWithLocalModel =
    [[MLKCustomImageLabelerOptions alloc] initWithLocalModel:localModel];
MLKFirebaseModelSource *firebaseModelSource =
    [[MLKFirebaseModelSource alloc] initWithName:@"automl_remote_model"];
MLKCustomRemoteModel *remoteModel =
    [[MLKCustomRemoteModel alloc] initWithRemoteModelSource:firebaseModelSource];
MLKCustomImageLabelerOptions *optionsWithRemoteModel =
    [[MLKCustomImageLabelerOptions alloc] initWithRemoteModel:remoteModel];