É possível transmitir um modelo de classificação de imagem treinado pelo AutoML para as APIs de modelo personalizado. É possível continuar agrupando o modelo no seu 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 Custom Model Image Labeling.
API | O que está mudando? |
---|---|
API de rotulagem de imagens do AutoML Vision Edge | Ela foi totalmente substituída pela API de rotulagem de imagens de modelos personalizados. A API atual de rotulagem de imagens do AutoML Vision Edge foi removida. |
Se você for um usuário do Kit de ML que usa a API AutoML Vision Edge, siga as instruções de migração para Android e iOS.
Perguntas frequentes
Qual é o motivo dessa 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 exatamente da mesma forma que um modelo personalizado. Ele também permite usar modelos treinados pelo AutoML para detecção e rastreamento de objetos, além da rotulagem de imagens com suporte atualmente. Além disso, a API de modelo personalizado oferece suporte aos dois modelos com mapa de rótulos incorporado nos metadados e com arquivos separados de manifesto e rótulo.
Quais são os benefícios de migrar 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 da capacidade 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
, de acordo com a seguinte
tabela:
Engenharia de | Artefatos antigos | Novo artefato |
---|---|---|
Rotulagem de imagens 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 |
Fazendo download do modelo remoto do AutoML de rotulação de imagens |
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 com.google.mlkit:linkfirebase:17.0.0 |
Etapa 2: atualizar os nomes das classes
Se sua turma aparecer nesta tabela, faça a alteração indicada:
Classe 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.CustomRemoteModel |
com.google.mlkit.vision.label.automl.AutoMLImageLabelerOptions | com.google.mlkit.vision.label.custom.CustomImageLabelerOptions |
Etapa 3: atualizar os nomes dos métodos
Há pequenas mudanças no código:
- Agora, o
LocalModel
pode ser inicializado com um caminho de arquivo de modelo (se o modelo tiver metadados contendo o mapa de rótulos) ou um caminho de arquivo de manifesto de modelo (se o manifesto, o modelo e os rótulos estiverem em arquivos separados). - É possível hospedar um modelo personalizado remotamente pelo Console do Firebase e inicializar um
CustomRemoteModel
com umFirebaseModelSource
.
Confira alguns exemplos de métodos Kotlin antigos e novos:
Antiga
val localModel = AutoMLImageLabelerLocalModel.Builder() .setAssetFilePath("automl/manifest.json") // or .setAbsoluteFilePath(absolute file 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
val localModel = LocalModel.Builder() .setAssetManifestFilePath("automl/manifest.json") // or .setAbsoluteManifestFilePath(absolute file path to manifest file) .build() val optionsWithLocalModel = CustomImageLabelerOptions.Builder(localModel) .setConfidenceThreshold(0.5f) .build() val firebaseModelSource = FirebaseModelSource.Builder("automl_remote_model") .build() val remoteModel = CustomRemoteModel.Builder(firebaseModelSource).build() val optionsWithRemoteModel = CustomImageLabelerOptions.Builder(remoteModel) .build()
Aqui estão alguns exemplos de métodos Java novos e antigos:
Antiga
AutoMLImageLabelerLocalModel localModel = new AutoMLImageLabelerLocalModel.Builder() .setAssetFilePath("automl/manifest.json") // or .setAbsoluteFilePath(absolute file 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
LocalModel localModel = new LocalModel.Builder() .setAssetManifestFilePath("automl/manifest.json") // or .setAbsoluteManifestFilePath(absolute file path to manifest file) .build() CustomImageLabelerOptions optionsWithLocalModel = new CustomImageLabelerOptions.Builder(localModel) .setConfidenceThreshold(0.5f) .build(); FirebaseModelSource firebaseModelSource = new FirebaseModelSource.Builder("automl_remote_model").build(); CustomRemoteModel remoteModel = new CustomRemoteModel.Builder(firebaseModelSource).build(); CustomImageLabelerOptions optionsWithRemoteModel = new CustomImageLabelerOptions.Builder(remoteModel).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:
Engenharia de | Nomes de pods antigos | Novos nomes de pods |
---|---|---|
Rotulagem de imagens AutoML sem download de modelo remoto | GoogleMLKit/ImageLabelingAutoML | GoogleMLKit/ImageLabelingCustom |
Fazendo download do modelo remoto do AutoML de rotulação de imagens |
GoogleMLKit/ImageLabelingAutoML GoogleMLKit/LinkFirebase |
GoogleMLKit/ImageLabelingCustom GoogleMLKit/LinkFirebase |
Etapa 2: atualizar os nomes das classes
Se sua turma aparecer nesta tabela, faça a alteração indicada:
Swift
Classe antiga | Nova turma |
---|---|
AutoMLImageLabelerLocalModel | LocalModel |
AutoMLImageLabelerRemoteModel | CustomRemoteModel |
AutoMLImageLabelerOptions | CustomImageLabelerOptions |
Objective-C
Classe antiga | Nova turma |
---|---|
MLKAutoMLImageLabelerLocalModel | MLKLocalModel |
MLKAutoMLImageLabelerRemoteModel | MLKCustomRemoteModel |
MLKAutoMLImageLabelerOptions | MLKCustomImageLabelerOptions |
Objective-C
Etapa 3: atualizar os nomes dos métodos
Há pequenas mudanças no código:
- Agora, o
LocalModel
pode ser inicializado com um caminho de arquivo de modelo (se o modelo tiver metadados contendo o mapa de rótulos) ou um caminho de arquivo de manifesto de modelo (se o manifesto, o modelo e os rótulos estiverem em arquivos separados). - É possível hospedar um modelo personalizado remotamente pelo Console do Firebase e inicializar um
CustomRemoteModel
com umFirebaseModelSource
.
Veja alguns exemplos de métodos Swift antigos e novos:
Antiga
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
guard let localModel = LocalModel(manifestPath: "automl/manifest.json") else { return } let optionsWithLocalModel = CustomImageLabelerOptions(localModel: localModel) let firebaseModelSource = FirebaseModelSource(name: "automl_remote_model") let remoteModel = CustomRemoteModel(remoteModelSource: firebaseModelSource) let optionsWithRemoteModel = CustomImageLabelerOptions(remoteModel: remoteModel)
Aqui estão alguns exemplos de métodos Objective-C novos e antigos:
Antiga
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
MLKLocalModel *localModel = [[MLKLocalModel alloc] initWithManifestPath:"automl/manifest.json"]; MLKCustomImageLabelerOptions *optionsWithLocalModel = [[MLKCustomImageLabelerOptions alloc] initWithLocalModel:localModel]; MLKFirebaseModelSource *firebaseModelSource = [[MLKFirebaseModelSource alloc] initWithName:@"automl_remote_model"]; MLKCustomRemoteModel *remoteModel = [[MLKCustomRemoteModel alloc] initWithRemoteModelSource:firebaseModelSource]; MLKCustomImageLabelerOptions *optionsWithRemoteModel = [[MLKCustomImageLabelerOptions alloc] initWithRemoteModel:remoteModel];