Вы можете передавать обученную с помощью AutoML модель классификации изображений в API пользовательских моделей. Вы можете либо продолжать включать модель в свое приложение, либо размещать ее в консоли Firebase как пользовательскую модель. API для разметки изображений AutoML был удален из ML Kit, поскольку он полностью заменен API для разметки изображений с помощью пользовательских моделей.
| API | Что меняется? |
|---|---|
| API для разметки изображений AutoML Vision Edge | Он полностью заменен API для разметки изображений Custom Model. Существующий API для разметки изображений AutoML Vision Edge удален. |
Если вы используете API AutoML Vision Edge, следуйте инструкциям по миграции для 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
Обновите зависимости для Cocoapods ML Kit для iOS в файле Podfile вашего приложения:
| Особенность | Старое(ые) название(я) пода | Новое(ые) название(я) пода |
|---|---|---|
| Автоматическая разметка изображений с помощью AutoML без удаленной загрузки модели. | GoogleMLKit/ImageLabelingAutoML | GoogleMLKit/ImageLabelingCustom |
| Автоматическая разметка изображений с использованием AutoML и удаленной загрузкой моделей. | GoogleMLKit/ImageLabelingAutoML GoogleMLKit/LinkFirebase | GoogleMLKit/ImageLabelingCustom Чтобы разместить и загрузить пользовательские модели, переместите свои модели в Cloud Storage и добавьте в приложение логику загрузки, позволяющую загружать их как локальные модели. Подробности см. в [руководстве по миграции Firebase ML в Cloud Storage][migrate-storage]. |
Шаг 2: Обновите названия классов.
Если ваш класс указан в этой таблице, внесите соответствующее изменение:
Быстрый
| Старый класс | Новый класс |
|---|---|
| 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];