É possível transmitir um modelo de classificação de imagens treinado pelo AutoML para as APIs de modelo personalizado. Você pode continuar agrupando o modelo no app ou hospedá-lo no Console do Firebase como um modelo personalizado. A API de rotulagem de imagens do AutoML foi removida do Kit de ML porque foi totalmente substituída pela API de rotulagem de imagens de modelo personalizado.
| API | O que vai mudar? |
|---|---|
| API de rotulagem de imagens do AutoML Vision Edge | Ela foi totalmente substituída pela API de rotulagem de imagens de modelo personalizado. A API de rotulagem de imagens do AutoML Vision Edge existente foi removida. |
Se você usa a API AutoML Vision Edge, siga as instruções de migração para Android e iOS.
Perguntas frequentes
Por que essa mudança?
Ela ajuda a simplificar as APIs do Kit de ML e facilita a integração do Kit de ML ao seu app. Com essa mudança, você pode usar um modelo treinado pelo AutoML da mesma forma que um modelo personalizado. Ela também permite usar modelos treinados pelo AutoML para detecção e rastreamento de objetos, além da rotulagem de imagens, que já oferecemos suporte. Além disso, a API de modelo personalizado oferece suporte a modelos com mapa de rótulos incorporado nos metadados e modelos com arquivos de manifesto e rótulos separados.
Quais são os benefícios da migração para o novo SDK?
- Novos recursos: capacidade de usar modelos treinados pelo AutoML para rotulagem de imagens e detecção e rastreamento de objetos, além de usar modelos com mapa de rótulos incorporado nos metadados.
Guia de migração para Android
Etapa 1: atualizar as importações do Gradle
Atualize as dependências das bibliotecas do Android do Kit de ML no arquivo Gradle do módulo (nível do app), geralmente app/build.gradle.kts, de acordo com a tabela a seguir:
| Recurso | Artefatos antigos | Novo artefato |
|---|---|---|
| Rotulagem de imagens do AutoML sem download de modelo remoto | com.google.mlkit:image-labeling-automl:16.2.1 | com.google.mlkit:image-labeling-custom:16.0.0-beta5 |
| Rotulagem de imagens do AutoML com download de modelo remoto |
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 Para hospedar e fazer o download de modelos personalizados, mova seus modelos para o Cloud Storage e adicione a lógica de download no app para carregá-los usando LocalModel. Para detalhes, consulte o [guia de migração do Firebase ML para o Cloud Storage][migrate-storage]. |
Etapa 2: atualizar os nomes das classes
Se a classe aparecer nesta tabela, faça a mudança indicada:
| Classe antiga | Nova classe |
|---|---|
| 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 Seu app precisa incluir lógica para fazer o download de modelos hospedados remotamente e inicializá-los usando LocalModel. |
| com.google.mlkit.vision.label.automl.AutoMLImageLabelerOptions | com.google.mlkit.vision.label.custom.CustomImageLabelerOptions |
Etapa 3: atualizar os nomes dos métodos
Há mudanças mínimas no código:
- O
LocalModelagora pode ser inicializado com um caminho de modelo (se o modelo tiver metadados que contenham o mapa de rótulos) ou um caminho de manifesto de modelo (se o manifesto, o modelo e os rótulos estiverem em arquivos separados). - Adicione lógica ao app para fazer o download de modelos hospedados remotamente para o armazenamento local e carregá-los usando
LocalModel.
Confira alguns exemplos de métodos Kotlin antigos e novos:
Antigo
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()
Novo
// 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()
Confira alguns exemplos de métodos Java antigos e novos:
Antigo
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();
Novo
// 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();
Guia de migração para iOS
Pré-requisitos
- É necessário o Xcode 13.2.1 ou mais recente.
Etapa 1: atualizar o Cocoapods
Atualize as dependências dos cocoapods do Kit de ML para iOS no Podfile do app:
| Recurso | Nomes de pods antigos | Novos nomes de pods |
|---|---|---|
| Rotulagem de imagens do AutoML sem download de modelo remoto | GoogleMLKit/ImageLabelingAutoML | GoogleMLKit/ImageLabelingCustom |
| Rotulagem de imagens do AutoML com download de modelo remoto |
GoogleMLKit/ImageLabelingAutoML GoogleMLKit/LinkFirebase |
GoogleMLKit/ImageLabelingCustom Para hospedar e fazer o download de modelos personalizados, mova seus modelos para o Cloud Storage e adicione a lógica de download no app para carregá-los como modelos locais. Para mais detalhes, consulte o [guia de migração do Firebase ML para o Cloud Storage][migrate-storage]. |
Etapa 2: atualizar os nomes das classes
Se a classe aparecer nesta tabela, faça a mudança indicada:
Swift
| Classe antiga | Nova classe |
|---|---|
| AutoMLImageLabelerLocalModel | LocalModel |
| AutoMLImageLabelerRemoteModel |
LocalModel Para hospedar e fazer o download de modelos personalizados, mova seus modelos para o Cloud Storage e adicione a lógica de download no app para carregá-los como modelos locais. Para mais detalhes, consulte o [guia de migração do Firebase ML para o Cloud Storage][migrate-storage]. |
| AutoMLImageLabelerOptions | CustomImageLabelerOptions |
Objective-C
| Classe antiga | Nova classe |
|---|---|
| MLKAutoMLImageLabelerLocalModel | MLKLocalModel |
| MLKAutoMLImageLabelerRemoteModel |
MLKLocalModel Para hospedar e fazer o download de modelos personalizados, mova seus modelos para o Cloud Storage e adicione a lógica de download no app para carregá-los como modelos locais. Para mais detalhes, consulte o [guia de migração do Firebase ML para o Cloud Storage][migrate-storage]. |
| MLKAutoMLImageLabelerOptions | MLKCustomImageLabelerOptions |
Etapa 3: atualizar os nomes dos métodos
Há mudanças mínimas no código:
- O
LocalModelagora pode ser inicializado com um caminho de modelo (se o modelo tiver metadados que contenham o mapa de rótulos) ou um caminho de manifesto de modelo (se o manifesto, o modelo e os rótulos estiverem em arquivos separados). - Adicione lógica ao app para fazer o download de modelos hospedados remotamente para o armazenamento local e carregá-los usando
LocalModel.
Confira alguns exemplos de métodos Swift antigos e novos:
Antigo
let localModel =
AutoMLImageLabelerLocalModel(manifestPath: "automl/manifest.json")
let optionsWithLocalModel = AutoMLImageLabelerOptions(localModel: localModel)
let remoteModel = AutoMLImageLabelerRemoteModel(name: "automl_remote_model")
let optionsWithRemoteModel = AutoMLImageLabelerOptions(remoteModel: remoteModel)Novo
// 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)
Confira alguns exemplos de métodos Objective-C antigos e novos:
Antigo
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];
Novo
// 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];