Руководство по миграции ML Kit AutoML Vision Edge

Вы можете передавать обученную с помощью AutoML модель классификации изображений в API пользовательских моделей. Вы можете либо продолжать включать модель в свое приложение, либо размещать ее в консоли Firebase как пользовательскую модель. API для разметки изображений AutoML был удален из ML Kit, поскольку он полностью заменен API для разметки изображений с помощью пользовательских моделей.

API Что меняется?
API для разметки изображений AutoML Vision Edge Он полностью заменен API для разметки изображений Custom Model. Существующий API для разметки изображений AutoML Vision Edge удален.

Если вы в настоящее время используете ML Kit с API AutoML Vision Edge, пожалуйста, следуйте инструкциям по миграции для Android и iOS.

Часто задаваемые вопросы

Почему произошли эти изменения?

Это упрощает API ML Kit и облегчает интеграцию ML Kit в ваше приложение. Благодаря этому изменению вы можете использовать модель, обученную с помощью AutoML, точно так же, как и пользовательскую модель. Это также позволяет использовать модели, обученные с помощью AutoML, для обнаружения и отслеживания объектов, в дополнение к разметке изображений, которую мы в настоящее время поддерживаем. Кроме того, API для пользовательских моделей поддерживает как модели с картой меток, встроенной в метаданные, так и модели с отдельными файлами манифеста и меток.

Какие преимущества я получу от перехода на новый SDK?

  • Новые возможности: Возможность использовать модели, обученные с помощью AutoML, как для разметки изображений, так и для обнаружения и отслеживания объектов, а также возможность использовать модели с картой меток, встроенной в их метаданные.

Руководство по миграции для Android

Шаг 1: Обновите импорт Gradle.

Обновите зависимости для библиотек ML Kit Android в файле Gradle вашего модуля (уровня приложения) (обычно app/build.gradle ) в соответствии со следующей таблицей:

Особенность Старинные артефакты Новый артефакт
Автоматическая разметка изображений с помощью AutoML без удаленной загрузки модели. com.google.mlkit:image-labeling-automl:16.2.1 com.google.mlkit:image-labeling-custom:16.0.0-beta5
Автоматическая разметка изображений с использованием AutoML и удаленной загрузкой моделей. 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

Шаг 2: Обновите названия классов.

Если ваш класс указан в этой таблице, внесите соответствующее изменение:

Старый класс Новый класс
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

Шаг 3: Обновите названия методов.

Изменения в коде минимальны:

  • Теперь LocalModel можно инициализировать либо путем к файлу модели (если модель содержит метаданные с картой меток), либо путем к файлу манифеста модели (если манифест, модель и метки находятся в отдельных файлах).
  • Вы можете разместить пользовательскую модель удаленно через консоль Firebase и инициализировать CustomRemoteModel с помощью FirebaseModelSource .

Вот несколько примеров старых и новых методов Kotlin:

Старый

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()

Новый

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()

Вот несколько примеров старых и новых методов Java:

Старый

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();

Новый

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();

Руководство по миграции для iOS

Предварительные требования

  • Требуется Xcode версии 13.2.1 или выше.

Шаг 1: Обновите Cocoapods

Обновите зависимости для Cocoapods ML Kit для iOS в файле Podfile вашего приложения:

Особенность Старое(ые) название(я) пода Новое(ые) название(я) пода
Автоматическая разметка изображений с помощью AutoML без удаленной загрузки модели. GoogleMLKit/ImageLabelingAutoML GoogleMLKit/ImageLabelingCustom
Автоматическая разметка изображений с использованием AutoML и удаленной загрузкой моделей. GoogleMLKit/ImageLabelingAutoML
GoogleMLKit/LinkFirebase
GoogleMLKit/ImageLabelingCustom
GoogleMLKit/LinkFirebase

Шаг 2: Обновите названия классов.

Если ваш класс указан в этой таблице, внесите соответствующее изменение:

Быстрый

Старый класс Новый класс
AutoMLImageLabelerLocalModel LocalModel
AutoMLImageLabelerRemoteModel CustomRemoteModel
AutoMLImageLabelerOptions CustomImageLabelerOptions

Objective-C

Старый класс Новый класс
MLKAutoMLImageLabelerLocalModel MLKLocalModel
MLKAutoMLImageLabelerRemoteModel MLKCustomRemoteModel
MLKAutoMLImageLabelerOptions MLKCustomImageLabelerOptions

Objective-C

Шаг 3: Обновите названия методов.

Изменения в коде минимальны:

  • Теперь LocalModel можно инициализировать либо путем к файлу модели (если модель содержит метаданные с картой меток), либо путем к файлу манифеста модели (если манифест, модель и метки находятся в отдельных файлах).
  • Вы можете разместить пользовательскую модель удаленно через консоль Firebase и инициализировать CustomRemoteModel с помощью FirebaseModelSource .

Вот несколько примеров старых и новых методов Swift:

Старый

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

Новый

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)

Вот несколько примеров старых и новых методов Objective-C:

Старый

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];

Новый

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];