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):
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.
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.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.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).