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

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

APIЧто изменилось
AutoML Vision Edge image labeling API Его полностью заменяет 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) в соответствии со следующей таблицей:

ФункцияСтарые объектыНовый объект
Автоматическая разметка изображений без скачивания удаленной модели com.google.mlkit:image-labeling-automl:16.2.1 com.google.mlkit:image-labeling-custom:16.0.0-beta5
Автоматическая разметка изображений с удаленным скачиванием модели 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
Автоматическая разметка изображений с удаленным скачиванием модели GoogleMLKit/ImageLabelingAutoML
GoogleMLKit/LinkFirebase
GoogleMLKit/ImageLabelingCustom
Чтобы разместить и скачать собственные модели, перенесите их в Cloud Storage и добавьте в приложение логику скачивания, чтобы загружать их как локальные модели. Подробнее о переносе данных из Firebase ML в Cloud 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…
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];