Ferramentas de desenvolvimento para Android

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

Para começar a escrever código Android rapidamente, consulte o Quickstart para Android

Ferramentas para construir com Kotlin e Java

As seções a seguir descrevem as ferramentas de desenvolvimento do 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 avançadas e fáceis de usar para desenvolvedores de aplicativos criarem com o TensorFlow Lite. Ele fornece interfaces de modelo prontas e 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 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 nas dependências do build.gradle da seguinte maneira:

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

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 do TensorFlow Lite em seu aplicativo Android adicionando o AAR hospedado no MavenCentral ao seu projeto de desenvolvimento.

Você pode especificar isso nas dependências do build.gradle da seguinte maneira:

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

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 do seu aplicativo incluindo apenas as ABIs às quais você precisa dar suporte.

A menos que você esteja direcionando um 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 ABIs do Android na documentação do Android NDK.

Biblioteca de suporte do TensorFlow Lite

A Biblioteca de suporte do TensorFlow Lite Android 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 interpretar a saída do modelo, reduzindo a quantidade de código padrão 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 executam tarefas como redimensionamento e corte de imagens.

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

Você pode especificar isso nas dependências do build.gradle da seguinte maneira:

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

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 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 ao tensorflow-lite 19 -
tensorflow-lite-tarefa-visão 21 A API relacionada ao android.graphics.Color requer API 26+
tensorflow-lite-task-text 21 -
tensorflow-lite-task-audio 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 a integração de modelos do TensorFlow Lite, conforme descrito abaixo.

Vinculação do 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 de seu código a um modelo.

Para importar um modelo do TensorFlow Lite (TFLite):

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

  2. Selecione o local do arquivo do TensorFlow Lite. Observe que o conjunto de ferramentas configura a dependência do módulo com a vinculação do modelo de ML e adiciona 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. Quando a importação é finalizada, 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 da vinculação de modelo 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 de C++ se você criar seu aplicativo com o NDK:

API TFLite C

Usar essa API é a abordagem recomendada para desenvolvedores que usam o NDK. Baixe o AAR do TensorFlow Lite 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 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 o uso da API TFLite C.

API TFLite C++

Se você quiser usar o TFLite por meio da API C++, poderá 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 do TensorFlow. Além disso, você precisará de arquivos de cabeçalho de FlatBuffers e Abseil .