Android için geliştirme araçları

TensorFlow Lite, modelleri Android uygulamalarına entegre etmek için bir dizi araç sağlar. Bu sayfada Kotlin, Java ve C++ ile uygulama oluşturmada kullanılacak geliştirme araçlarının yanı sıra Android Studio'da TensorFlow Lite geliştirme desteği açıklanmaktadır.

Hızlı bir şekilde Android kodu yazmaya başlamak için Android için Hızlı Başlangıç ​​sayfasına bakın

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 Görev Kitaplığı

TensorFlow Lite Görev Kitaplığı, uygulama geliştiricilerinin TensorFlow Lite ile oluşturabileceği, göreve özel, güçlü ve kullanımı kolay bir dizi kitaplık içerir. Görüntü sınıflandırma, soru-cevap gibi popüler makine öğrenimi görevleri için optimize edilmiş kullanıma hazır model arayüzleri sağlar. Model arayüzleri, en iyi performansı ve kullanılabilirliği elde etmek amacıyla her görev için özel olarak tasarlanmıştır. Görev Kitaplığı platformlar arası çalışır ve Java ve C++'da desteklenir.

Görev Kitaplığını Android uygulamanızda kullanmak için sırasıyla Görev Görüşü kitaplığı , Görev Metni kitaplığı ve Görev Ses Kitaplığı için MavenCentral'daki AAR'yı kullanın.

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

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

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

Daha fazla ayrıntı için TensorFlow Lite Görev Kitaplığına genel bakıştaki girişe bakın.

TensorFlow Lite kitaplığı

MavenCentral'da barındırılan AAR'ı geliştirme projenize ekleyerek Android uygulamanızdaki 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 Sonatype anlık görüntü deposunu projenize eklediğinizden emin olun.

Bu AAR, tüm Android ABI'ler için ikili dosyalar içerir. Yalnızca desteklemeniz gereken ABI'leri dahil ederek uygulamanızın ikili dosyasının boyutunu azaltabilirsiniz.

Belirli bir donanımı hedeflemediğiniz sürece çoğu durumda x86 , x86_64 ve arm32 ABI'lerini atlamanız gerekir. Bunu aşağıdaki Gradle konfigürasyonuyla yapılandırabilirsiniz. Özellikle yalnızca armeabi-v7a ve arm64-v8a içerir ve çoğu modern Android cihazını kapsamalıdır.

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

abiFilters hakkında daha fazla bilgi edinmek için Android NDK belgelerindeki Android ABI'lerine bakın.

TensorFlow Lite Destek Kitaplığı

TensorFlow Lite Android Destek Kitaplığı, modelleri uygulamanıza entegre etmenizi kolaylaştırır. Ham giriş verilerinin modelin gerektirdiği biçime dönüştürülmesine ve modelin çıktısının yorumlanmasına yardımcı olan üst düzey API'ler sağlayarak gereken standart kod miktarını azaltır.

Görüntüler ve diziler de dahil olmak üzere giriş ve çıkışlar için ortak veri formatlarını destekler. Ayrıca görüntü yeniden boyutlandırma ve kırpma gibi görevleri gerçekleştiren ön ve son işleme birimleri de sağlar.

MavenCentral'da barındırılan TensorFlow Lite Destek Kitaplığı AAR'yı dahil ederek Android uygulamanızdaki 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 Sonatype anlık görüntü deposunu projenize eklediğinizden emin olun.

Nasıl başlayacağınıza ilişkin talimatlar için TensorFlow Lite Android Destek Kitaplığı'na bakın.

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

Kütüphane minSdkVersion Cihaz Gereksinimleri
tensorflow-lite 19 NNAPI kullanımı API 27+ gerektirir
tensorflow-lite-gpu 19 GLES 3.1 veya OpenCL (genellikle yalnızca API 21+ sürümlerinde mevcuttur)
tensorflow-lite-altıgen 19 -
tensorflow-lite-desteği 19 -
tensorflow-lite-görev-vizyonu 21 android.graphics.Renk ile ilgili API, API 26+ gerektirir
tensorflow-lite-görev metni 21 -
tensorflow-lite-görev-ses 23 -
tensorflow-lite-meta verileri 19 -

Android Studio'yu kullanma

Yukarıda açıklanan geliştirme kitaplıklarına ek olarak Android Studio, aşağıda açıklandığı gibi TensorFlow Lite modellerinin entegrasyonuna yönelik destek de sağlar.

Android Studio ML Model Bağlama

Android Studio 4.1 ve sonraki sürümlerin ML Model Binding ö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.

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

  1. TFLite modelini kullanmak istediğiniz modüle sağ tıklayın veya Dosya > Yeni > Diğer > TensorFlow Lite Modeli seçeneğine tıklayın.

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

  3. İçe aktarma işlemini başlatmak için Finish tıklayın. İçe aktarma tamamlandığında araç, giriş ve çıkış tensörleri de dahil olmak üzere 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 Örnek Kod bölümüne yapıştırın.

Android Studio'da ml dizini altındaki TensorFlow Lite modeline çift tıklayarak model bilgisi 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 ilişkin bir genel bakış için kod örneği talimatlarına bakın.

C ve C++ ile oluşturmaya yönelik araçlar

TensorFlow Lite için C ve C++ kitaplıkları, öncelikle uygulamalarını geliştirmek için Android Yerel Geliştirme Kiti'ni (NDK) kullanan geliştiricilere yöneliktir. Uygulamanızı NDK ile oluşturursanız TFLite'ı C++ aracılığıyla kullanmanın iki yolu vardır:

TFLite C API'si

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

c_api.h başlık dosyası, TFLite C API'sinin kullanımına ilişkin temel belgeleri içerir.

TFLite C++ API'si

TFLite'ı C++ API aracılığıyla kullanmak istiyorsanız C++ paylaşılan kitaplıklarını 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ı çıkarmanın doğrudan bir yolu yoktur, bu nedenle tüm başlık dosyalarını TensorFlow deposundan tensorflow/lite/ dosyasına eklemeniz gerekir. Ek olarak FlatBuffers ve Abseil'den başlık dosyalarına ihtiyacınız olacak.