Android için geliştirme araçları

TensorFlow Lite, modelleri Android uygulamalarına entegre etmek için çeşitli araçlar sunar. Bu sayfada Kotlin, Java ve C++ ile uygulama oluştururken kullanılacak geliştirme araçları ve Android Studio'da TensorFlow Lite geliştirme desteği açıklanmaktadır.

Kotlin ve Java ile derleme araçları

Aşağıdaki bölümlerde TensorFlow Lite için Kotlin ve Java dillerini kullanan geliştirme araçları açıklanmaktadır.

TensorFlow Lite kitaplığı

MavenCentral'da barındırılan AAR'yi geliştirme projenize ekleyerek Android uygulamanızda TensorFlow Lite kitaplığını kullanın.

Bunu build.gradle bağımlılıklarınızda aşağıdaki gibi belirtebilirsiniz:

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

Gecelik anlık görüntüler kullanıyorsanız projenize Sonatype anlık görüntü deposunu eklediğinizden emin olun.

Bu AAR, tüm Android ABI'leri için ikili programlar içerir. Yalnızca desteklemeniz gereken ABI'leri ekleyerek uygulamanızın ikili programının boyutunu azaltabilirsiniz.

Belirli bir donanımı hedeflemiyorsanız çoğu durumda x86, x86_64 ve arm32 ABI'lerini atlamalısınız. Bunu aşağıdaki Gradle yapılandırmasıyla yapılandırabilirsiniz. Özellikle yalnızca armeabi-v7a ve arm64-v8a içerir ve modern Android cihazların çoğunu kapsar.

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

abiFilters hakkında daha fazla bilgi edinmek için Android NDK belgelerindeki Android ABI'leri bölümüne bakın.

TensorFlow Lite Destek Kitaplığı

TensorFlow Lite Android Destek Kitaplığı, modelleri uygulamanıza entegre etmenizi kolaylaştırır. Ham giriş verilerini modelin gerektirdiği biçime dönüştürmeye ve model çıktısını yorumlamaya yardımcı olarak gereken ortak kod miktarını azaltmaya yardımcı olan üst düzey API'ler sağlar.

Resimler ve diziler dahil olmak üzere giriş ve çıkışlar için yaygın veri biçimlerini destekler. Ayrıca, resim yeniden boyutlandırma ve kırpma gibi görevleri gerçekleştiren işlem öncesi ve sonrası işlem birimleri sağlar.

TensorFlow Lite MavenCentral'da barındırılan Destek Kitaplığı AAR'sini ekleyerek Android uygulamanızda Destek Kitaplığı'nı kullanın.

Bunu build.gradle bağımlılıklarınızda aşağıdaki gibi belirtebilirsiniz:

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

Gecelik anlık görüntüler kullanıyorsanız projenize Sonatype anlık görüntü deposunu eklediğinizden emin olun.

Kullanmaya başlama talimatları için TensorFlow Lite Android Destek Kitaplığı'na bakın.

Kitaplıklar için minimum Android SDK sürümü

Kitaplık minSdkVersion Cihaz Gereksinimleri
tensorflow-lite 21 -
tensorflow-lite-gpu 21 GLES 3.1 veya OpenCL (genellikle API 21 ve sonraki sürümlerde kullanılabilir)
tensorflow-lite-support 21 -
tensorflow-lite-metadata 21 -

Android Studio'yu kullanma

Android Studio, yukarıda açıklanan geliştirme kitaplıklarının yanı sıra aşağıda açıklandığı gibi TensorFlow Lite modellerini entegre etme desteği de sağlar.

Android Studio ML Modeli Bağlama

Android Studio 4.1 ve sonraki sürümlerin ML Model Bağlama özelliği .tflite model dosyalarını mevcut Android uygulamanıza aktarmanıza ve kodunuzu bir modelle entegre etmeyi kolaylaştırmak için arayüz sınıfları oluşturmanıza olanak tanır.

TensorFlow Lite (TFLite) modelini içe aktarmak için:

  1. TFLite modelini kullanmak istediğiniz modülü sağ tıklayın veya Dosya > Yeni > Diğer > TensorFlow Lite Modeli'ni tıklayın.

  2. TensorFlow Lite dosyanızın konumunu seçin. Aracın, modülün bağımlılığını ML Modeli bağlaması ile yapılandırdığını ve gerekli tüm bağımlılıkları Android modülünüzün build.gradle dosyasına otomatik olarak eklediğini unutmayın.

  3. İçe aktarma işlemini başlatmak için Finish (Tamam) seçeneğini tıklayın. İçe aktarma işlemi tamamlandığında araç, giriş ve çıkış tensörleriyle birlikte modeli açıklayan bir ekran görüntüler.

  4. Modeli kullanmaya başlamak için Kotlin veya Java'yı seçin, kodu kopyalayıp Sample Code (Örnek Kod) bölümüne yapıştırın.

Android Studio'da ml dizini altındaki TensorFlow Lite modelini çift tıklayarak model bilgileri ekranına dönebilirsiniz. Android Studio'nun Modle Binding özelliğini kullanma hakkında daha fazla bilgi için Android Studio sürüm notlarına bakın. Android Studio'da model bağlamayı kullanmaya genel bakış için kod örneği instructions bakın.

C ve C++ ile derleme araçları

TensorFlow Lite için C ve C++ kitaplıkları, temel olarak uygulamalarını oluşturmak için Android Yerel Geliştirme Kiti'ni (NDK) kullanan geliştiricilere yöneliktir. Uygulamanızı NDK ile derliyorsanız TFLite'ı C++ ile kullanmanın iki yolu vardır:

TFLite C API'sı

NDK kullanan geliştiriciler için bu API'nin kullanılması önerilen yaklaşımdır. MavenCentral'da barındırılan TensorFlow Lite AAR dosyasını indirin, tensorflow-lite-*.zip olarak yeniden adlandırın ve dosyanın sıkıştırmasını açın. Dört başlık dosyasını headers/tensorflow/lite/ ve headers/tensorflow/lite/c/ klasörlerine, ilgili libtensorflowlite_jni.so dinamik kitaplığı ise NDK projenizdeki jni/ klasörüne eklemeniz gerekir.

c_api.h başlık dosyası, TFLite C API'nin kullanımıyla ilgili temel belgeleri içerir.

TFLite C++ API'si

TFLite'ı C++ API üzerinden kullanmak istiyorsanız C++ paylaşılan kitaplıkları oluşturabilirsiniz:

32bit armeabi-v7a:

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

64bit arm64-v8a:

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

Şu anda, gerekli tüm başlık dosyalarını ayıklamanın doğrudan bir yolu yoktur. Bu nedenle, TensorFlow deposundan tensorflow/lite/ içindeki tüm başlık dosyalarını dahil etmeniz gerekir. Ayrıca, FlatBuffers ve Abseil'den başlık dosyalarına da ihtiyacınız olacaktır.