Guia de migração do AutoML Vision Edge do Kit de ML

É 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, já que foi totalmente substituída pela API Custom Model Image Labeling.

APIO que muda?
API de rotulagem de imagens do AutoML Vision Edge Ele foi totalmente substituído 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 exatamente da mesma forma que um modelo personalizado. Ele também permite usar modelos treinados pelo AutoML para detecção de objeto e rastreamento, além da rotulagem de imagens, que já é 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 arquivos de manifesto e rótulo separados.

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 de objetos e rastreamento, além de usar modelos com mapa de rótulos incorporado aos metadados.

Guia de migração para Android

Etapa 1: atualizar as importações do Gradle

Atualize as dependências das bibliotecas do Kit de ML para Android no arquivo Gradle do módulo (nível do app), que geralmente é app/build.gradle.kts, de acordo com a tabela a seguir:

RecursoArtefatos antigosNovo 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 baixar modelos personalizados, mova-os para o Cloud Storage e adicione uma lógica de download ao app para carregá-los usando o LocalModel. 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:

Turma antigaNova 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 uma 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

As mudanças no código são mínimas:

  • LocalModel agora 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 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 mais recente.

Etapa 1: atualizar o CocoaPods

Atualize as dependências dos CocoaPods do Kit de ML para iOS no Podfile do app:

RecursoNomes de pods antigosNovos 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 baixar modelos personalizados, mova-os para o Cloud Storage e adicione uma lógica de download ao 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

Turma antigaNova turma
AutoMLImageLabelerLocalModel LocalModel
AutoMLImageLabelerRemoteModel LocalModel
Para hospedar e baixar modelos personalizados, mova-os para o Cloud Storage e adicione uma lógica de download ao 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 antigaNova turma
MLKAutoMLImageLabelerLocalModel MLKLocalModel
MLKAutoMLImageLabelerRemoteModel MLKLocalModel
Para hospedar e baixar modelos personalizados, mova-os para o Cloud Storage e adicione uma lógica de download ao 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

As mudanças no código são mínimas:

  • LocalModel agora 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 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];