Руководство по миграции 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 LocalModel
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];