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