ML Kit AutoML Vision Edge-Migrationsanleitung

Sie können ein von AutoML trainiertes Bildklassifizierungsmodell an die APIs des benutzerdefinierten Modells übergeben. Sie können das Modell weiterhin entweder in Ihrer App bündeln oder 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 Image Labeling API Sie wurde vollständig durch die Image Labeling API für benutzerdefinierte Modelle ersetzt. Die vorhandene AutoML Vision Edge Image Labeling API wird entfernt.

Wenn Sie ein ML Kit-Nutzer sind und die AutoML Vision Edge API verwenden, folgen Sie der Migrationsanleitung für Android und iOS.

Häufig gestellte Fragen

Warum diese Änderung?

Sie vereinfacht ML Kit APIs und erleichtert die Einbindung von ML Kit in Ihre Anwendung. Mit dieser Änderung können Sie ein von AutoML trainiertes Modell genau wie ein benutzerdefiniertes Modell verwenden. Außerdem können Sie damit zusätzlich zur Bildlabeling-Funktion, die wir derzeit unterstützen, auch AutoML-trainierte Modelle für die Objekterkennung und das Objekt-Tracking verwenden. Darüber hinaus unterstützt die API für benutzerdefinierte Modelle sowohl Modelle mit in die Metadaten eingebetteter Labelzuordnung als auch Modelle mit separaten Manifest- und Labeldateien.

Welche Vorteile bietet die Migration zum neuen SDK?

  • Neue Features: Von AutoML trainierte Modelle können sowohl für Bildlabel als auch für Objekterkennung und -tracking verwendet werden. Außerdem haben Sie die Möglichkeit, Modelle mit in die Metadaten eingebetteter Labelzuordnung zu verwenden.

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
Bildbeschriftung in AutoML ohne Herunterladen von Remote-Modellen com.google.mlkit:image-labeling-automl:16.2.1 com.google.mlkit:image-labeling-custom:16.0.0-beta5
Bildbeschriftung in AutoML 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
com.google.mlkit:linkfirebase:17.0.0

Schritt 2: Kursnamen aktualisieren

Wenn Ihr Kurs in dieser Tabelle angezeigt wird, nehmen Sie die entsprechende Änderung vor:

Alter KursNeuer Kurs
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 gibt nur geringfügige Änderungen am Code:

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

Voraussetzungen

  • 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 Ihrer App:

FunktionAlte Pod-NamenNeuer Pod-Name(n)
Bildbeschriftung in AutoML ohne Herunterladen von Remote-Modellen GoogleMLKit/ImageLabelingAutoML GoogleMLKit/ImageLabelingCustom
Bildbeschriftung in AutoML mit Remote-Modelldownload GoogleMLKit/ImageLabelingAutoML
GoogleMLKit/LinkFirebase
GoogleMLKit/ImageLabelingCustom
GoogleMLKit/LinkFirebase

Schritt 2: Kursnamen aktualisieren

Wenn Ihr Kurs in dieser Tabelle angezeigt wird, nehmen Sie die entsprechende Änderung vor:

Swift

Alter KursNeuer Kurs
AutoMLImageLabelerLocalModel LocalModel
AutoMLImageLabelerRemoteModel CustomRemoteModel
AutoMLImageLabelerOptions CustomImageLabelerOptions

Objective-C

Alter KursNeuer Kurs
MLKAutoMLImageLabelerLocalModel MLKLocalModel
MLKAutoMLImageLabelerRemoteModel MLKCustomRemoteModel
MLKAutoMLImageLabelerOptions MLKCustomImageLabelerOptions

Objective-C

Schritt 3: Methodennamen aktualisieren

Es gibt nur geringfügige Änderungen am Code:

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