Ferramentas de desenvolvimento para Android

A LiteRT oferece várias ferramentas para integrar modelos ao Android apps. Esta página descreve ferramentas de desenvolvimento para uso na criação de aplicativos com Kotlin, Java e C++, além do suporte ao desenvolvimento LiteRT em Android Studio

Ferramentas para criar com Kotlin e Java

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

Biblioteca LiteRT

Use a biblioteca LiteRT no seu app Android adicionando as AARs hospedadas em MavenCentral ao seu projeto de desenvolvimento.

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

dependencies {
    ...
    implementation 'com.google.ai.edge.litert:+'
}

repositories {
    ...
    google()
}

Se você usar snapshots noturnos, adicione o snapshot do Sonatype repositório de código aberto ao seu projeto.

Este AAR inclui binários para todos os recursos do Android ABIs É possível reduzir o tamanho o binário do seu aplicativo incluindo apenas as ABIs que você precisa oferecer suporte.

A menos que você esteja segmentando um hardware específico, omita x86, x86_64, e nas ABIs arm32 na maioria dos casos. Você pode configurar isso com o comando do Gradle configuração do Terraform. Isso 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 o abiFilters, consulte Android ABIs no Android NDK na documentação do Google Cloud.

Biblioteca de Suporte do LiteRT

A Biblioteca de Suporte LiteRT Android facilita a integração de modelos ao seu aplicativo. Ele fornece APIs de alto nível que ajudam a transformar entradas brutas os dados para a forma exigida pelo modelo e interpretar a saída do modelo, reduzindo a quantidade necessária de código boilerplate.

Ele suporta formatos de dados comuns para entradas e saídas, incluindo imagens e matrizes de dados. Ele também fornece unidades de pré e pós-processamento que executam tarefas como como redimensionamento e corte de imagens.

Use a Biblioteca de Suporte no seu app Android incluindo a biblioteca LiteRT A AAR da Biblioteca de Suporte hospedada em MavenCentral.

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

dependencies {
    implementation 'com.google.ai.edge.litert:litert-support:+'
}

Se você usar snapshots noturnos, adicione o snapshot do Sonatype repositório de código aberto ao seu projeto.

Para instruções sobre como começar, consulte o Suporte da LiteRT para Android Biblioteca.

Usar o Android Studio

Além das bibliotecas de desenvolvimento descritas acima, o Android Studio também fornece suporte para a integração de modelos LiteRT, conforme descrito abaixo.

Vinculação de modelos de ML do Android Studio

O recurso ML Model Binding do Android Studio 4.1 e versões mais recentes permite que você: importar arquivos de modelo .tflite para seu app Android atual e gerar classes de interface para facilitar a integração do seu código com um modelo.

Para importar um modelo LiteRT:

  1. Clique com o botão direito do mouse no módulo em que você quer usar o modelo LiteRT ou clique Arquivo > Novo > Outro > Modelo LiteRT.

  2. Selecione o local do seu arquivo LiteRT. Observe que o conjunto de ferramentas configura a dependência do módulo com vinculação de modelos de ML e automaticamente adiciona 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 for concluída, o exibe uma tela que descreve o modelo, incluindo sua entrada e saída de carga.

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

Para retornar à tela de informações do modelo, clique duas vezes no botão do Modelo Lite no diretório ml no Android Studio. Para mais informações sobre usando o recurso Modle Binding do Android Studio, consulte a documentação do lançar . Para ter uma visão geral do uso da vinculação de modelos no Android Studio, consulte o exemplo de código. instruções.

Ferramentas para criar com C e C++

As bibliotecas C e C++ para LiteRT são destinadas principalmente a desenvolvedores que usam o Kit de desenvolvimento nativo do Android (NDK, na sigla em inglês) para criar apps. Há duas maneiras de usar o LiteRT com o C++ se você cria seu app com o NDK:

API LiteRT C

O uso dessa API é a abordagem recomendada para desenvolvedores que usam o NDK. Faça o download do AAR da LiteRT hospedado em MavenCentral arquivo, renomeie como tensorflow-lite-*.zip e descompacte-o. Você deve incluir os quatro arquivos principais nos arquivos headers/tensorflow/lite/ e headers/tensorflow/lite/c/ pastas e a biblioteca dinâmica libtensorflowlite_jni.so relevante na jni/ no seu projeto do NDK.

O arquivo principal c_api.h contém a documentação básica sobre como usar o LiteRT C API.

API LiteRT C++

Se quiser usar o LiteRT com a API C++, você pode criar o arquivo compartilhado bibliotecas:

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, é necessário incluir todos os arquivos principais em tensorflow/lite/ do código repositório de dados. Além disso, você precisará de arquivos de cabeçalho de FlatBuffers e Abseil (link em inglês).