Ferramentas de desenvolvimento para Android

O TensorFlow Lite oferece diversas ferramentas para integração de modelos em aplicativos Android. Esta página descreve ferramentas de desenvolvimento para uso na criação de aplicativos com Kotlin, Java e C++, bem como suporte para desenvolvimento do TensorFlow Lite no Android Studio.

Para começar a escrever código Android rapidamente, consulte o Guia de início rápido para Android

Ferramentas para construção com Kotlin e Java

As seções a seguir descrevem ferramentas de desenvolvimento para TensorFlow Lite que usam as linguagens Kotlin e Java.

Biblioteca de tarefas do 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 com o TensorFlow Lite. Ele fornece interfaces de modelo prontas para uso otimizadas para tarefas populares de aprendizado de máquina, como classificação de imagens, perguntas e respostas, 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 e C++.

Para usar a biblioteca de tarefas em seu aplicativo Android, use o AAR do MavenCentral para biblioteca Task Vision , biblioteca Task Text e Task Audio Library , respectivamente.

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

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

Se você usar snapshots noturnos, certifique-se de adicionar o repositório de snapshots Sonatype ao seu projeto.

Consulte a introdução na visão geral da biblioteca de tarefas do TensorFlow Lite para obter mais detalhes.

Biblioteca TensorFlow Lite

Use a biblioteca TensorFlow Lite no seu app Android adicionando o AAR hospedado no MavenCentral ao seu projeto de desenvolvimento.

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

dependencies {
    implementation 'org.tensorflow:tensorflow-lite:+'
}

Se você usar snapshots noturnos, certifique-se de adicionar o repositório de snapshots Sonatype ao seu projeto.

Este AAR inclui binários para todas as ABIs do Android . Você pode reduzir o tamanho do binário do seu aplicativo incluindo apenas as ABIs necessárias para suporte.

A menos que você esteja direcionando hardware específico, você deve omitir as ABIs x86 , x86_64 e arm32 na maioria dos casos. Você pode configurar isso com a seguinte configuração do Gradle. Inclui especificamente apenas armeabi-v7a e arm64-v8a e deve abranger a maioria dos dispositivos Android modernos.

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

Para saber mais sobre abiFilters , consulte Android ABIs na documentação do Android NDK.

Biblioteca de suporte do TensorFlow Lite

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

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 executam tarefas como redimensionamento e corte de imagens.

Use a Biblioteca de Suporte no seu aplicativo Android incluindo o AAR da Biblioteca de Suporte do TensorFlow Lite hospedado no MavenCentral .

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

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

Se você usar snapshots noturnos, certifique-se de adicionar o repositório de snapshots Sonatype ao seu projeto.

Para obter instruções sobre como começar, consulte a Biblioteca de suporte do TensorFlow Lite para Android .

Versões mínimas do Android SDK para bibliotecas

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-hexágono 19 -
suporte tensorflow-lite 19 -
tensorflow-lite-tarefa-visão 21 API relacionada a android.graphics.Color requer API 26+
tensorflow-lite-tarefa-texto 21 -
tensorflow-lite-tarefa-áudio 23 -
tensorflow-lite-metadados 19 -

Usando o Android Studio

Além das bibliotecas de desenvolvimento descritas acima, o Android Studio também oferece suporte para integração de modelos do TensorFlow Lite, conforme descrito abaixo.

Vinculação de modelo de ML do Android Studio

O recurso ML Model Binding do Android Studio 4.1 e posterior permite importar arquivos de modelo .tflite para seu aplicativo Android existente e gerar classes de interface para facilitar a integração do seu código a um modelo.

Para importar um modelo do TensorFlow Lite (TFLite):

  1. Clique com o botão direito no módulo cujo modelo TFLite deseja usar ou clique em Arquivo > Novo > Outro > Modelo TensorFlow Lite .

  2. Selecione o local do arquivo TensorFlow Lite. Observe que as ferramentas configuram a dependência do módulo com a vinculação do modelo de ML e adicionam automaticamente todas as dependências necessárias ao arquivo build.gradle do módulo Android.

  3. Clique em Finish para iniciar o processo de importação. Ao final da importação, a ferramenta exibe uma tela descrevendo o modelo, incluindo seus tensores de entrada e saída.

  4. Para começar a usar o modelo, selecione Kotlin ou Java, copie e cole o código na seção Código de exemplo .

Você pode retornar à tela de informações do modelo clicando duas vezes no modelo do TensorFlow Lite no diretório ml no Android Studio. Para obter mais informações sobre como usar o recurso Modle Binding do Android Studio, consulte as notas de versão do Android Studio. Para obter uma visão geral do uso da vinculação de modelo no Android Studio, consulte as instruções de exemplo de código.

Ferramentas para construção com C e C++

As bibliotecas C e C++ do TensorFlow Lite destinam-se principalmente a desenvolvedores que usam o Android Native Development Kit (NDK) para criar aplicativos. Há duas maneiras de usar o TFLite por meio de C++ se você criar seu aplicativo com o NDK:

API TFLite C

Usar esta API é a abordagem recomendada para desenvolvedores que usam o NDK. Baixe o TensorFlow Lite AAR hospedado no arquivo MavenCentral , renomeie para tensorflow-lite-*.zip e descompacte-o. Você deve incluir os quatro arquivos de cabeçalho nas pastas headers/tensorflow/lite/ e headers/tensorflow/lite/c/ e a biblioteca dinâmica relevante libtensorflowlite_jni.so na pasta jni/ em seu projeto NDK.

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

API TFLite C++

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

Armeabi-v7a de 32 bits:

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

Arm64-v8a de 64 bits:

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

Atualmente, não há uma maneira direta de extrair todos os arquivos de cabeçalho necessários, portanto, você deve incluir todos os arquivos de cabeçalho em tensorflow/lite/ do repositório TensorFlow. Além disso, você precisará de arquivos de cabeçalho de FlatBuffers e Abseil .