Alat pengembangan untuk Android

TensorFlow Lite menyediakan sejumlah alat untuk mengintegrasikan model ke dalam aplikasi Android. Halaman ini menjelaskan alat pengembangan untuk digunakan dalam mem-build aplikasi dengan Kotlin, Java, dan C++, serta dukungan untuk pengembangan TensorFlow Lite di Android Studio.

Untuk mulai menulis kode Android dengan cepat, lihat Mulai Cepat untuk Android

Alat untuk membangun dengan Kotlin dan Java

Bagian berikut menjelaskan alat pengembangan untuk TensorFlow Lite yang menggunakan bahasa Kotlin dan Java.

Pustaka Tugas TensorFlow Lite

Pustaka Tugas TensorFlow Lite berisi serangkaian pustaka khusus tugas yang canggih dan mudah digunakan untuk dibuat oleh pengembang aplikasi dengan TensorFlow Lite. Ini menyediakan antarmuka model siap pakai yang dioptimalkan untuk tugas pembelajaran mesin populer, seperti klasifikasi gambar, tanya jawab, dll. Antarmuka model dirancang khusus untuk setiap tugas guna mencapai kinerja dan kegunaan terbaik. Perpustakaan Tugas berfungsi lintas platform dan didukung di Java dan C++.

Untuk menggunakan Task Library di aplikasi Android Anda, gunakan AAR dari MavenCentral untuk Task Vision Library , Task Text Library , dan Task Audio Library .

Anda dapat menentukan ini dalam dependensi build.gradle Anda sebagai berikut:

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

Jika Anda menggunakan snapshot malam, pastikan Anda menambahkan repositori snapshot Sonatype ke proyek Anda.

Lihat pendahuluan di ringkasan TensorFlow Lite Task Library untuk mengetahui detail selengkapnya.

Pustaka TensorFlow Lite

Gunakan pustaka TensorFlow Lite di aplikasi Android Anda dengan menambahkan AAR yang dihosting di MavenCentral ke proyek pengembangan Anda.

Anda dapat menentukan ini dalam dependensi build.gradle Anda sebagai berikut:

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

Jika Anda menggunakan snapshot malam, pastikan Anda menambahkan repositori snapshot Sonatype ke proyek Anda.

AAR ini mencakup biner untuk semua ABI Android . Anda dapat mengurangi ukuran biner aplikasi Anda hanya dengan menyertakan ABI yang perlu Anda dukung.

Kecuali Anda menargetkan perangkat keras tertentu, Anda harus menghilangkan ABI x86 , x86_64 , dan arm32 dalam banyak kasus. Anda dapat mengonfigurasinya dengan konfigurasi Gradle berikut. Ini secara khusus hanya mencakup armeabi-v7a dan arm64-v8a , dan harus mencakup sebagian besar perangkat Android modern.

android {
    defaultConfig {
        ndk {
            abiFilters 'armeabi-v7a', 'arm64-v8a'
        }
    }
}

Untuk mempelajari lebih lanjut tentang abiFilters , lihat ABI Android dalam dokumentasi Android NDK.

Pustaka Dukungan TensorFlow Lite

Pustaka Dukungan Android TensorFlow Lite mempermudah integrasi model ke dalam aplikasi Anda. Ini menyediakan API tingkat tinggi yang membantu mengubah data masukan mentah ke dalam bentuk yang diperlukan oleh model, dan menafsirkan keluaran model, sehingga mengurangi jumlah kode boilerplate yang diperlukan.

Ini mendukung format data umum untuk input dan output, termasuk gambar dan array. Ini juga menyediakan unit sebelum dan sesudah pemrosesan yang melakukan tugas seperti mengubah ukuran dan memotong gambar.

Gunakan Pustaka Dukungan di aplikasi Android Anda dengan menyertakan AAR Pustaka Dukungan TensorFlow Lite yang dihosting di MavenCentral .

Anda dapat menentukan ini dalam dependensi build.gradle Anda sebagai berikut:

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

Jika Anda menggunakan snapshot malam, pastikan Anda menambahkan repositori snapshot Sonatype ke proyek Anda.

Untuk petunjuk tentang cara memulai, lihat Pustaka Dukungan Android TensorFlow Lite .

Versi Android SDK minimum untuk perpustakaan

Perpustakaan minSdkVersion Persyaratan Perangkat
tensorflow-lite 19 Penggunaan NNAPI memerlukan API 27+
tensorflow-lite-gpu 19 GLES 3.1 atau OpenCL (biasanya hanya tersedia di API 21+
tensorflow-lite-segi enam 19 -
dukungan tensorflow-lite 19 -
tensorflow-lite-tugas-visi 21 API terkait android.graphics.Color memerlukan API 26+
tensorflow-lite-tugas-teks 21 -
tensorflow-lite-tugas-audio 23 -
tensorflow-lite-metadata 19 -

Menggunakan Android Studio

Selain pustaka pengembangan yang dijelaskan di atas, Android Studio juga menyediakan dukungan untuk mengintegrasikan model TensorFlow Lite, seperti yang dijelaskan di bawah.

Pengikatan Model Android Studio ML

Fitur ML Model Binding di Android Studio 4.1 dan yang lebih baru memungkinkan Anda mengimpor file model .tflite ke aplikasi Android yang sudah ada, dan membuat kelas antarmuka untuk mempermudah integrasi kode dengan model.

Untuk mengimpor model TensorFlow Lite (TFLite):

  1. Klik kanan pada modul yang ingin Anda gunakan model TFLitenya atau klik File > New > Other > TensorFlow Lite Model .

  2. Pilih lokasi file TensorFlow Lite Anda. Perhatikan bahwa alat ini mengonfigurasi dependensi modul dengan pengikatan Model ML dan secara otomatis menambahkan semua dependensi yang diperlukan ke file build.gradle modul Android Anda.

  3. Klik Finish untuk memulai proses impor. Ketika impor selesai, alat tersebut menampilkan layar yang menjelaskan model, termasuk tensor input dan outputnya.

  4. Untuk mulai menggunakan model, pilih Kotlin atau Java, salin dan tempel kode di bagian Kode Contoh .

Anda dapat kembali ke layar informasi model dengan mengklik dua kali model TensorFlow Lite di bawah direktori ml di Android Studio. Untuk informasi selengkapnya tentang penggunaan fitur Modle Binding di Android Studio, lihat catatan rilis Android Studio. Untuk ringkasan penggunaan pengikatan model di Android Studio, lihat petunjuk contoh kode.

Alat untuk membangun dengan C dan C++

Library C dan C++ untuk TensorFlow Lite terutama ditujukan bagi developer yang menggunakan Android Native Development Kit (NDK) untuk membangun aplikasi mereka. Ada dua cara menggunakan TFLite melalui C++ jika Anda membangun aplikasi dengan NDK:

API TFLite C

Penggunaan API ini adalah pendekatan yang disarankan bagi pengembang yang menggunakan NDK. Unduh file TensorFlow Lite AAR yang dihosting di MavenCentral , ganti namanya menjadi tensorflow-lite-*.zip , dan unzip. Anda harus menyertakan empat file header di folder headers/tensorflow/lite/ dan headers/tensorflow/lite/c/ serta pustaka dinamis libtensorflowlite_jni.so yang relevan di folder jni/ di proyek NDK Anda.

File header c_api.h berisi dokumentasi dasar tentang penggunaan TFLite C API.

API TFLite C++

Jika Anda ingin menggunakan TFLite melalui C++ API, Anda dapat membangun pustaka bersama C++:

armeabi-v7a 32bit:

bazel build -c opt --config=android_arm //tensorflow/lite:libtensorflowlite.so

lengan 64bit64-v8a:

bazel build -c opt --config=android_arm64 //tensorflow/lite:libtensorflowlite.so

Saat ini, tidak ada cara langsung untuk mengekstrak semua file header yang diperlukan, jadi Anda harus menyertakan semua file header di tensorflow/lite/ dari repositori TensorFlow. Selain itu, Anda memerlukan file header dari FlatBuffers dan Abseil .