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

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

API Что меняется?
API маркировки изображений AutoML Vision Edge Он полностью заменен API маркировки изображений пользовательской модели. Существующий 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

Обновите зависимости для библиотек Android ML Kit в файле 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 и инициализировать 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

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

Особенность Старые названия модулей Новые названия модулей
Маркировка изображений AutoML без удаленной загрузки модели GoogleMLKit/ImageLabelingAutoML GoogleMLKit/ImageLabelingCustom
Маркировка изображений AutoML с удаленной загрузкой модели GoogleMLKit/ImageLabelingAutoML
GoogleMLKit/LinkFirebase
GoogleMLKit/ImageLabelingCustom
GoogleMLKit/LinkFirebase

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

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

Быстрый

Старый класс Новый класс
AutoMLImageLabelerLocalModel Локальнаямодель
AutoMLImageLabelerRemoteModel CustomRemoteModel
AutoMLImageLabelerOptions Параметры CustomImageLabelerOptions

Цель-C

Старый класс Новый класс
MLKAutoMLImageLabelerLocalModel МЛКЛокальнаяМодель
MLKAutoMLImageLabelerRemoteModel MLKCustomRemoteModel
MLKAutoMLImageLabelerOptions MLKCustomImageLabelerOptions

Цель-C

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

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

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