Руководство по переходу с ML Kit на AutoML Vision Edge

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

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

Если вы используете AutoML Vision Edge API, следуйте инструкциям по переходу для 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

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

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

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

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

Swift

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