Вы можете передать модель классификации изображений, обученную с помощью AutoML, в API пользовательской модели. Вы можете по-прежнему встраивать модель в приложение или размещать ее в консоли Firebase как пользовательскую модель. AutoML Image Labeling API удален из ML Kit, поскольку его полностью заменяет Custom Model Image Labeling API.
| API | Что изменилось |
|---|---|
| AutoML Vision Edge image labeling API | Его полностью заменяет 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) в соответствии со следующей таблицей:
| Функция | Старые объекты | Новый объект |
|---|---|---|
| Автоматическая разметка изображений без скачивания удаленной модели | com.google.mlkit:image-labeling-automl:16.2.1 | com.google.mlkit:image-labeling-custom:16.0.0-beta5 |
| Автоматическая разметка изображений с удаленным скачиванием модели |
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 |
| Автоматическая разметка изображений с удаленным скачиванием модели |
GoogleMLKit/ImageLabelingAutoML GoogleMLKit/LinkFirebase |
GoogleMLKit/ImageLabelingCustom Чтобы разместить и скачать собственные модели, перенесите их в Cloud Storage и добавьте в приложение логику скачивания, чтобы загружать их как локальные модели. Подробнее о переносе данных из Firebase ML в Cloud 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… |
| 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];