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

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

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

Если вы в настоящее время являетесь пользователем ML Kit, использующим 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 ) в соответствии со следующей таблицей:

Особенность Старые Артефакты Новый Артефакт
Маркировка изображений 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 Console и инициализировать 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 ЛокальнаяМодель
AutoMLImageLabelerRemoteModel CustomRemoteModel
AutoMLImageLabelerOptions CustomImageLabelerOptions

Objective-C

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

Objective-C

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

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

  • LocalModel теперь можно инициализировать либо с помощью пути к файлу модели (если модель имеет метаданные, содержащие карту меток), либо с помощью пути к файлу манифеста модели (если манифест, модель и метки находятся в отдельных файлах).
  • Вы можете разместить пользовательскую модель удаленно через Firebase Console и инициализировать 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];