O Dia da Comunidade de ML é dia 9 de novembro! Junte-nos para atualização de TensorFlow, JAX, e mais Saiba mais

Android quickstart

Para começar a usar o TensorFlow Lite no Android, recomendamos explorar o exemplo a seguir.

Exemplo de classificação de imagem Android

Leia classificação de imagens TensorFlow Lite Android para uma explicação sobre o código fonte.

Este exemplo aplicativo usa classificação de imagens para continuamente classificar tudo o que vê de câmera traseira do dispositivo. O aplicativo pode ser executado no dispositivo ou emulador.

Inferência é realizada utilizando a API TensorFlow Lite Java ea Biblioteca Suporte Android TensorFlow Lite . O aplicativo de demonstração classifica os frames em tempo real, exibindo as classificações mais prováveis. Ele permite que o usuário escolha entre um ponto flutuante ou quantizada modelo, selecione a contagem da linha, e decidir se a correr na CPU, GPU, ou através NNAPI .

Construir no Android Studio

Para construir o exemplo no Android Studio, siga as instruções no README.md .

Crie seu próprio aplicativo Android

Para começar rapidamente escrever seu próprio código Android, recomendamos usar o nosso exemplo classificação de imagens Android como um ponto de partida.

As seções a seguir contêm algumas informações úteis para trabalhar com o TensorFlow Lite no Android.

Use o Android Studio ML Model Binding

Para importar um modelo TensorFlow Lite (TFLite):

  1. Botão direito do mouse sobre o módulo que você gostaria de usar o modelo TFLite ou clique em File , em seguida, New > Other > TensorFlow Lite Model Menus do botão direito para acessar a funcionalidade de importação do TensorFlow Lite

  2. Selecione a localização do seu arquivo TFLite. Note-se que as ferramentas irá configurar a dependência do módulo em seu nome com ligação ML modelo e todas as dependências automaticamente inserido do seu módulo Android build.gradle arquivo.

    Opcional: Selecione a segunda opção para importar TensorFlow GPU se você quiser usar a aceleração GPU . Diálogo de importação para o modelo TFLite

  3. Clique Finish .

  4. A tela a seguir aparecerá após a importação ser bem-sucedida. Para começar a utilizar o modelo, selecione Kotlin ou Java, copie e cole o código sob o Sample Code seção. Você pode voltar a esta tela, clicando duas vezes o modelo TFLite sob a ml diretório no Android Studio. Página de detalhes do modelo no Android Studio

Use a biblioteca de tarefas TensorFlow Lite

A Biblioteca de Tarefas do TensorFlow Lite contém um conjunto de bibliotecas específicas de tarefas poderosas e fáceis de usar para desenvolvedores de aplicativos criarem experiências de ML com TFLite. Ele fornece interfaces de modelo out-of-box otimizadas para tarefas populares de aprendizado de máquina, como classificação de imagem, pergunta e resposta, etc. As interfaces de modelo são projetadas especificamente para cada tarefa para obter o melhor desempenho e usabilidade. A biblioteca de tarefas funciona em várias plataformas e é compatível com Java, C ++ e Swift (em breve).

Para usar a biblioteca de suporte em seu aplicativo Android, recomendamos o uso do AAR hospedado no MavenCentral para biblioteca Visão Tarefa e biblioteca Texto Task , respectivamente.

Você pode especificar isso em suas build.gradle dependências da seguinte forma:

dependencies {
    implementation 'org.tensorflow:tensorflow-lite-task-vision:0.1.0'
    implementation 'org.tensorflow:tensorflow-lite-task-text:0.1.0'
}

Para usar snapshots noturnos, certifique-se que você adicionou repositório Sonatype instantâneo .

Veja a introdução na visão geral Biblioteca de Tarefas TensorFlow Lite para mais detalhes.

Use a biblioteca de suporte do TensorFlow Lite para Android

A biblioteca de suporte do TensorFlow Lite para Android facilita a integração de modelos em seu aplicativo. Ele fornece APIs de alto nível que ajudam a transformar dados de entrada brutos na forma exigida pelo modelo e interpretar a saída do modelo, reduzindo a quantidade de código clichê necessário.

Ele suporta formatos de dados comuns para entradas e saídas, incluindo imagens e matrizes. Ele também fornece unidades de pré e pós-processamento que realizam tarefas como redimensionamento e corte de imagens.

Para usar a biblioteca de suporte em seu aplicativo Android, recomendamos o uso do TensorFlow Lite Suporte Biblioteca AAR hospedado no MavenCentral .

Você pode especificar isso em suas build.gradle dependências da seguinte forma:

dependencies {
    implementation 'org.tensorflow:tensorflow-lite-support:0.1.0'
}

Para usar snapshots noturnos, certifique-se que você adicionou repositório Sonatype instantâneo .

Para começar, siga as instruções na Biblioteca Suporte Android TensorFlow Lite .

Use o TensorFlow Lite AAR da MavenCentral

Para usar TensorFlow Lite em seu aplicativo Android, recomendamos o uso do TensorFlow Lite AAR hospedado no MavenCentral .

Você pode especificar isso em suas build.gradle dependências da seguinte forma:

dependencies {
    implementation 'org.tensorflow:tensorflow-lite:0.0.0-nightly-SNAPSHOT'
}

Para usar snapshots noturnos, certifique-se que você adicionou repositório Sonatype instantâneo .

Esta AAR inclui binários para todas as ABIs Android . Você pode reduzir o tamanho do binário do seu aplicativo, incluindo apenas os ABIs que você precisa oferecer suporte.

Recomendamos a maioria dos desenvolvedores omitir o x86 , x86_64 , e arm32 ABIs. Isto pode ser conseguido com a seguinte configuração Gradle, que inclui especificamente apenas armeabi-v7a e arm64-v8a , que deverá cobrir a maioria dos dispositivos Android modernos.

android {
    defaultConfig {
        ndk {
            abiFilters 'armeabi-v7a', 'arm64-v8a'
        }
    }
}

Para saber mais sobre abiFilters , consulte NdkOptions na documentação Gradle Android.

Crie um aplicativo Android usando C ++

Existem duas maneiras de usar TFLite por meio de C ++ se você criar seu aplicativo com o NDK:

Use TFLite C API

Esta é a abordagem recomendada. Baixe o TensorFlow Lite AAR hospedado no MavenCentral , renomeá-lo para tensorflow-lite-*.zip , E descompactá-lo. Você deve incluir os quatro arquivos de cabeçalho em headers/tensorflow/lite/ e headers/tensorflow/lite/c/ pasta eo relevante libtensorflowlite_jni.so biblioteca dinâmica em jni/ pasta em seu projeto NDK.

O c_api.h arquivo de cabeçalho contém documentação básica sobre o uso da API TFLite C.

Use a API TFLite C ++

Se você deseja usar o TFLite por meio da API C ++, pode criar as bibliotecas compartilhadas C ++:

32 bits armeabi-v7a:

bazel build -c opt --config=android_arm //tensorflow/lite:libtensorflowlite.so

64 bits arm64-v8a:

bazel build -c opt --config=android_arm64 //tensorflow/lite:libtensorflowlite.so

Atualmente, não há nenhuma maneira simples de extrair todos os arquivos de cabeçalho necessários, então você deve incluir todos os arquivos de cabeçalho em tensorflow/lite/ a partir do repositório TensorFlow. Além disso, você terá arquivos de cabeçalho de FlatBuffers e Abseil .

Versão mínima do SDK do TFLite

Biblioteca minSdkVersion Requisitos do dispositivo
tensorflow-lite 19 O uso de NNAPI requer API 27+
tensorflow-lite-gpu 19 GLES 3.1 ou OpenCL (normalmente disponível apenas na API 21+
tensorflow-lite-hexagon 19 -
tensorflow-lite-support 19 -
tensorflow-lite-task-vision 21 android.graphics.Color related API requer API 26+
tensorflow-lite-task-text 21 -
tensorflow-lite-task-audio 23 -
tensorflow-lite-metadata 19 -