Android hızlı başlangıç

Android'de TensorFlow Lite'ı kullanmaya başlamak için aşağıdaki örneği incelemenizi öneririz.

Android görüntü sınıflandırma örneği

Oku TensorFlow Lite Android görüntü sınıflandırma kaynak kodunun bir açıklama için.

Bu örnek uygulama kullanır görüntü sınıflandırma o cihazın arka tarafa bakan kameradan gördüğü her neyse sürekli sınıflandırmak için. Uygulama, cihazda veya emülatörde çalışabilir.

Çıkarım TensorFlow Lite, Java API ve kullanılarak gerçekleştirilir TensorFlow Lite Android Destek Kütüphanesi . Demo uygulaması, çerçeveleri gerçek zamanlı olarak sınıflandırır ve en olası sınıflandırmaları görüntüler. Kullanıcının kayan nokta veya arasında seçim yapmanızı sağlar nicelenmiş , modelin iplik sayısı seçin ve CPU, GPU veya üzeri çalıştırmak için karar NNAPI .

Android Studio'da oluşturun

Android Studio örneğini oluşturmak için, yönergeleri izleyin README.md .

Kendi Android uygulamanızı oluşturun

Hızlı bir şekilde kendi Android kod yazmaya başlamak için, bizim kullanmanızı tavsiye Android görüntü sınıflandırma örneği bir başlangıç noktası olarak.

Aşağıdaki bölümler, Android'de TensorFlow Lite ile çalışmak için bazı yararlı bilgiler içerir.

Android Studio ML Model Binding'i kullanın

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

  1. Modülün sağ tıklayın Eğer TFLite modeli kullanmak veya tıklayın istiyoruz File , ardından New > Other > TensorFlow Lite Model TensorFlow Lite içe aktarma işlevine erişmek için menülere sağ tıklayın

  2. TFLite dosyanızın konumunu seçin. Takım ML Modeli bağlama ve tüm bağımlılıklarını otomatik olarak Android modülün içine yerleştirilir ile sizin adınıza modülün bağımlılığını yapılandırmak edeceği Not build.gradle dosyası.

    İsteğe bağlı: kullanmak istiyorsanız TensorFlow GPU ithalatı için ikinci onay kutusunu işaretleyin GPU hızlandırma . TFLite modeli için içe aktarma iletişim kutusu

  3. Click Finish .

  4. İçe aktarma başarılı olduktan sonra aşağıdaki ekran görünecektir. Modeli kullanmaya başlamak için, KOTLIN veya Java, kopya seçin ve altında yapıştırın Sample Code bölümünde. Sen çift tıklayarak bu ekrana altında TFLite modelini geri alabilirsiniz ml Android Studio dizine. Android Studio'da model ayrıntıları sayfası

TensorFlow Lite Görev Kitaplığını kullanın

TensorFlow Lite Görev Kitaplığı, uygulama geliştiricilerin TFLite ile ML deneyimleri oluşturması için bir dizi güçlü ve kullanımı kolay göreve özel kitaplık içerir. Görüntü sınıflandırma, soru-cevap vb. gibi popüler makine öğrenimi görevleri için optimize edilmiş hazır model arabirimleri sağlar. Model arabirimleri, en iyi performansı ve kullanılabilirliği elde etmek için her görev için özel olarak tasarlanmıştır. Görev Kitaplığı platformlar arası çalışır ve Java, C++ ve Swift'de desteklenir (yakında).

Android uygulamasında Destek Kitaplığı kullanmak için, biz MavenCentral barındırılan AAR kullanmanızı tavsiye Görev Vizyon kütüphanesinden ve Görev Metin kütüphanede sırasıyla.

Eğer bu belirtebilirsiniz build.gradle şöyle bağımlılıkları:

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

Gece anlık kullanmak için emin eklediğinizi yapmak Sonatype anlık depo .

Daki talimatlara bakın TensorFlow Lite Görev Kütüphane genel Daha fazla ayrıntı için.

TensorFlow Lite Android Destek Kitaplığını kullanın

TensorFlow Lite Android Destek Kitaplığı, modelleri uygulamanıza entegre etmeyi kolaylaştırır. Ham girdi verilerini modelin gerektirdiği forma dönüştürmeye ve modelin çıktısını yorumlamaya yardımcı olan üst düzey API'ler sağlar, böylece gereken ortak kod miktarını azaltır.

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

Android uygulamasında Destek Kitaplığı kullanmak için, biz kullanmanızı tavsiye TensorFlow Lite Destek Kitaplığı AAR MavenCentral barındırılan .

Eğer bu belirtebilirsiniz build.gradle şöyle bağımlılıkları:

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

Gece anlık kullanmak için emin eklediğinizi yapmak Sonatype anlık depo .

Başlamak için yönergeleri izleyin TensorFlow Lite Android Destek Kütüphanesi .

MavenCentral'dan TensorFlow Lite AAR'ı kullanın

Android uygulamasında TensorFlow Lite kullanmak için, biz kullanmanızı tavsiye TensorFlow Lite AAR MavenCentral barındırılan .

Eğer bu belirtebilirsiniz build.gradle şöyle bağımlılıkları:

dependencies {
    implementation 'org.tensorflow:tensorflow-lite:0.0.0-nightly-SNAPSHOT'
}

Gece anlık kullanmak için emin eklediğinizi yapmak Sonatype anlık depo .

Bu AAR tümü için ikili kodlar içermektedir Android Abis . Yalnızca desteklemeniz gereken ABI'leri dahil ederek uygulamanızın ikili dosyasının boyutunu azaltabilirsiniz.

Biz en geliştiriciler ihmal tavsiye x86 , x86_64 ve arm32 ABI. Bu özellikle yalnızca içermektedir aşağıdaki Gradle yapılandırma ile elde edilebilir armeabi-v7a ve arm64-v8a en modern Android cihazlar kapsamalıdır.

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

Hakkında daha fazla bilgi edinmek için abiFilters , bkz NdkOptions Android Gradle belgelerinde.

C++ kullanarak Android uygulaması oluşturun

Uygulamanızı NDK ile oluşturursanız, TFLite'ı C++ üzerinden kullanmanın iki yolu vardır:

TFLite C API'sini kullanın

Bu tavsiye edilen yaklaşımdır. İndir TensorFlow Lite AAR MavenCentral barındırılan için yeniden adlandırın, tensorflow-lite-*.zip ve bunun unzip. Sen dört başlık dosyaları içermelidir headers/tensorflow/lite/ ve headers/tensorflow/lite/c/ klasör ve ilgili libtensorflowlite_jni.so dinamik kütüphane jni/ senin NDK projesinde klasörü.

c_api.h başlık dosyası TFLite C API kullanarak ilgili temel belgeler içerir.

TFLite C++ API'sini kullanın

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

Eğer tüm başlık dosyaları içermelidir böylece Halen, gerekli tüm başlık dosyaları ayıklamak için doğrudan bir yol yoktur tensorflow/lite/ TensorFlow deposundan. Ayrıca, gelen başlık dosyalarını gerekecektir FlatBuffers ve Abseil .

TFLite'ın minimum SDK sürümü

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ümünde bulunur)
tensorflow-lite-altıgen 19 -
tensorflow-lite-destek 19 -
tensorflow-lite-görev-vizyon 21 android.graphics.Color ile ilgili API 26+ API gerektirir
tensorflow-lite-görev-metni 21 -
tensorflow-lite-görev-ses 23 -
tensorflow-lite-meta verisi 19 -