Ferramentas de desenvolvimento para Android

O TensorFlow Lite fornece várias ferramentas para integrar modelos a 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 Quickstart para Android

Ferramentas para criar com Kotlin e Java

As seções a seguir descrevem as ferramentas de desenvolvimento para o 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 plataforma cruzada e é compatível com Java e C++.

Para usar a biblioteca de tarefas em seu aplicativo Android, use o AAR do MavenCentral para a biblioteca Task Vision , a biblioteca Task Text e a 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 instantâneos noturnos, certifique-se de adicionar o repositório de instantâneos 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 em seu aplicativo 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 instantâneos noturnos, certifique-se de adicionar o repositório de instantâneos Sonatype ao seu projeto.

Este AAR inclui binários para todas as ABIs do Android . Você pode reduzir o tamanho do binário de seu aplicativo incluindo apenas as ABIs às quais você precisa dar 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. Ele 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 Android do TensorFlow Lite facilita a integração de modelos em seu aplicativo. Ele fornece APIs de alto nível que ajudam a transformar dados brutos de entrada no formato exigido pelo modelo e interpretam a saída do modelo, reduzindo a quantidade de código clichê necessário.

Ele oferece suporte a 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 em seu aplicativo Android incluindo a Biblioteca de suporte do TensorFlow Lite AAR hospedada 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 instantâneos noturnos, certifique-se de adicionar o repositório de instantâneos Sonatype ao seu projeto.

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

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-hexagon 19 -
tensorflow-lite-support 19 -
tensorflow-lite-task-vision 21 A API relacionada a android.graphics.Color requer API 26+
tensorflow-lite-task-text 21 -
tensorflow-lite-task-audio 23 -
tensorflow-lite-metadata 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 que você importe arquivos de modelo .tflite para seu aplicativo Android existente e gere classes de interface para facilitar a integração de seu código com um modelo.

Para importar um modelo do TensorFlow Lite (TFLite):

  1. Clique com o botão direito do mouse no módulo que deseja usar no modelo TFLite ou clique em File > New > Other > TensorFlow Lite Model .

  2. Selecione o local do seu arquivo do 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 seu módulo Android.

  3. Clique em Finish para iniciar o processo de importação. Terminada a 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 Sample Code .

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 de model binding no Android Studio, consulte as instruções de exemplo de código.

Ferramentas para construir 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 seus aplicativos. Há duas maneiras de usar o TFLite por meio do C++ se você criar seu aplicativo com o NDK:

API TFLite C

O uso dessa API é a abordagem recomendada para desenvolvedores que usam o NDK. Baixe o arquivo AAR do TensorFlow Lite hospedado no MavenCentral , renomeie-o como 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 libtensorflowlite_jni.so relevante na pasta jni/ em seu projeto NDK.

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

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

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 .