É 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 hospedando-o no Console do Firebase como um modelo personalizado. A API AutoML Image Labeling foi removida do Kit de ML porque foi totalmente substituída pela API Custom Model Image Labeling.
| API | O que vai mudar? |
|---|---|
| API AutoML Vision Edge para rotulagem de imagens | Ela foi totalmente substituída pela API Custom Model Image Labeling. A API de rotulagem de imagens do AutoML Vision Edge foi removida. |
Se você usa a API AutoML Vision Edge, siga as instruções de migração para Android e iOS.
Perguntas frequentes
Qual é o motivo da mudança?
Isso 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, é possível usar um modelo treinado pelo AutoML da mesma forma que um modelo personalizado. Além disso, é possível usar modelos treinados com o AutoML para detecção e rastreamento de objetos, além da rotulagem de imagens, que também é compatível. Além disso, a API de modelo personalizado é compatível com modelos com mapa de rótulos incorporado nos metadados e modelos com manifesto e arquivos de rótulos separados.
Quais são os benefícios da migração para o novo SDK?
- Novos recursos: capacidade de usar modelos treinados com o 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 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 com o AutoML sem download remoto de modelos | com.google.mlkit:image-labeling-automl:16.2.1 | com.google.mlkit:image-labeling-custom:16.0.0-beta5 |
| Rotulagem de imagens com AutoML e download remoto de modelos |
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 seu app para carregá-los usando LocalModel. Para mais detalhes, consulte o [guia de migração do Firebase ML para o Cloud Storage][migrate-storage]. |
Etapa 2: atualizar nomes de classes
Se a sua classe aparecer nesta tabela, faça a mudança indicada:
| Turma antiga | Nova turma |
|---|---|
| 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 baixar 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:
- Agora,
LocalModelpode ser inicializado com um caminho de modelo (se o modelo tiver metadados que contenham o mapa de rótulos) ou um caminho de manifesto do modelo (se o manifesto, o modelo e os rótulos estiverem em arquivos separados). - Adicione lógica ao seu app para baixar modelos hospedados remotamente no 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 ter o Xcode 13.2.1 ou uma versão 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 antigos dos pods | Novos nomes de pod |
|---|---|---|
| Rotulagem de imagens com o AutoML sem download remoto de modelos | GoogleMLKit/ImageLabelingAutoML | GoogleMLKit/ImageLabelingCustom |
| Rotulagem de imagens com AutoML e download remoto de modelos |
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 nomes de classes
Se a sua classe aparecer nesta tabela, faça a mudança indicada:
Swift
| Turma antiga | Nova turma |
|---|---|
| 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
| Turma antiga | Nova turma |
|---|---|
| MLKAutoMLImageLabelerLocalModel | MLKLocalModel |
| MLKAutoMLImageLabelerRemoteModel |
MLKLocalModel Para hospedar e fazer o download de modelos personalizados, mova os 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:
- Agora,
LocalModelpode ser inicializado com um caminho de modelo (se o modelo tiver metadados que contenham o mapa de rótulos) ou um caminho de manifesto do modelo (se o manifesto, o modelo e os rótulos estiverem em arquivos separados). - Adicione lógica ao seu app para baixar modelos hospedados remotamente no 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];