Ferramentas de desenvolvimento para Android

O TensorFlow Lite oferece várias ferramentas para integrar modelos em apps Android. Esta página descreve as ferramentas de desenvolvimento para a criação de apps com Kotlin, Java e C++, além do suporte ao desenvolvimento do TensorFlow Lite no Android Studio.

Ferramentas para criar com Kotlin e Java

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

Biblioteca do TensorFlow Lite

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

É possível especificar isso nas dependências de build.gradle da seguinte maneira:

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

Se você usar snapshots noturnos, adicione o repositório de snapshots Sonatype ao projeto.

Esse AAR inclui binários para todas as ABIs do Android. É possível reduzir o tamanho do binário do aplicativo incluindo apenas as ABIs com suporte.

A menos que você esteja segmentando um hardware específico, omita as ABIs x86, x86_64 e arm32 na maioria dos casos. Você pode definir isso com a configuração do Gradle a seguir. Ela inclui especificamente apenas armeabi-v7a e arm64-v8a e abrange 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 Android no TensorFlow Lite facilita a integração de modelos ao seu aplicativo. Ela fornece APIs de alto nível que ajudam a transformar dados de entrada brutos no formato exigido pelo modelo e interpretar a saída do modelo, reduzindo a quantidade de código boilerplate 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 no seu app Android incluindo o AAR da Biblioteca de Suporte do TensorFlow Lite hospedado no MavenCentral.

É possível especificar isso nas dependências de build.gradle da seguinte maneira:

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

Se você usar snapshots noturnos, adicione o repositório de snapshots Sonatype ao projeto.

Para instruções sobre como começar, consulte a Biblioteca de Suporte do Android no TensorFlow Lite.

Versões mínimas do SDK do Android para bibliotecas

Biblioteca minSdkVersion Requisitos do dispositivo
tensorflow-lite 21 -
tensorflow-lite-gpu 21 GLES 3.1 ou OpenCL (normalmente disponível apenas na API 21+)
tensorflow-lite-support 21 -
tensorflow-lite-metadata 21 -

Como usar o Android Studio

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

Vinculação de modelos de ML no Android Studio

O recurso ML Model Binding do Android Studio 4.1 e versões mais recentes permite importar arquivos de modelo .tflite para o app Android existente e gerar classes de interface para facilitar a integração do 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 em que você quer usar o modelo TFLite ou clique em File > New > Other > TensorFlow Lite Model.

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

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

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

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

Ferramentas para criar com C e C++

As bibliotecas C e C++ do TensorFlow Lite são destinadas principalmente a desenvolvedores que usam o Android Native Development Kit (NDK) para criar apps. Há duas maneiras de usar o TFLite com C++ se você criar o app com o NDK:

API TFLite C

O uso dessa API é a abordagem recomendada para desenvolvedores que usam o NDK. Faça o download do arquivo AAR do TensorFlow Lite hospedado no MavenCentral, renomeie como tensorflow-lite-*.zip e descompacte-o. É necessário incluir os quatro arquivos principais nas pastas headers/tensorflow/lite/ e headers/tensorflow/lite/c/ e a biblioteca dinâmica libtensorflowlite_jni.so relevante na pasta jni/ do projeto do NDK.

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

API TFLite C++

Se você quiser usar o TFLite com a API C++, crie as bibliotecas compartilhadas do 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 principais necessários. Por isso, é preciso incluir todos os arquivos principais em tensorflow/lite/ do repositório do TensorFlow. Além disso, você vai precisar de arquivos principais do FlatBuffers e do Abseil (links em inglês).