Руководство по миграции 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 удален.

Если вы используете 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.kts ) в соответствии со следующей таблицей:

Особенность Старинные артефакты Новый артефакт
Автоматическая разметка изображений с помощью 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
Чтобы размещать и загружать пользовательские модели, переместите свои модели в Cloud Storage и добавьте в приложение логику загрузки, позволяющую загружать их с помощью LocalModel. Подробности см. в [руководстве по миграции Firebase ML в Cloud Storage][migrate-storage].

Шаг 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.LocalModel
Ваше приложение должно содержать логику для загрузки удаленно размещенных моделей и их инициализации с помощью LocalModel.
com.google.mlkit.vision.label.automl.AutoMLImageLabelerOptions com.google.mlkit.vision.label.custom.CustomImageLabelerOptions

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

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

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

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

Старый

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

Новый

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

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

Старый

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

Новый

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

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

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

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

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

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

Особенность Старое(ые) название(я) пода Новое(ые) название(я) пода
Автоматическая разметка изображений с помощью AutoML без удаленной загрузки модели. GoogleMLKit/ImageLabelingAutoML GoogleMLKit/ImageLabelingCustom
Автоматическая разметка изображений с использованием AutoML и удаленной загрузкой моделей. GoogleMLKit/ImageLabelingAutoML
GoogleMLKit/LinkFirebase
GoogleMLKit/ImageLabelingCustom
Чтобы разместить и загрузить пользовательские модели, переместите свои модели в Cloud Storage и добавьте в приложение логику загрузки, позволяющую загружать их как локальные модели. Подробности см. в [руководстве по миграции Firebase ML в Cloud Storage][migrate-storage].

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

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

Быстрый

Старый класс Новый класс
AutoMLImageLabelerLocalModel LocalModel
AutoMLImageLabelerRemoteModel LocalModel
Чтобы разместить и загрузить пользовательские модели, переместите свои модели в Cloud Storage и добавьте в приложение логику загрузки, позволяющую загружать их как локальные модели. Подробности см. в [руководстве по миграции Firebase ML в Cloud Storage][migrate-storage].
AutoMLImageLabelerOptions CustomImageLabelerOptions

Objective-C

Старый класс Новый класс
MLKAutoMLImageLabelerLocalModel MLKLocalModel
MLKAutoMLImageLabelerRemoteModel MLKLocalModel
Чтобы разместить и загрузить пользовательские модели, переместите свои модели в Cloud Storage и добавьте в приложение логику загрузки, позволяющую загружать их как локальные модели. Подробности см. в [руководстве по миграции Firebase ML в Cloud Storage][migrate-storage].
MLKAutoMLImageLabelerOptions MLKCustomImageLabelerOptions

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

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

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

Вот несколько примеров старых и новых методов 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)

Новый

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

Вот несколько примеров старых и новых методов 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];

Новый

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