Bu sayfa, Cloud Translation API ile çevrilmiştir.
Switch to English

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

Kaynak kodunun açıklaması için TensorFlow Lite Android görüntü sınıflandırmasını okuyun.

Bu örnek uygulama, cihazın arka kamerasından gördüklerini sürekli olarak sınıflandırmak için görüntü sınıflandırmasını kullanır. Uygulama aygıtta veya taklitçide çalışabilir.

Çıkarım, TensorFlow Lite Java API ve TensorFlow Lite Android Destek Kütüphanesi kullanılarak gerçekleştirilir . Demo uygulaması kareleri gerçek zamanlı olarak sınıflandırır ve en olası sınıflamaları gösterir. 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 derleyin

Android Studio'da örnek oluşturmak için README.md'deki talimatları izleyin.

Kendi Android uygulamanızı oluşturun

Kendi Android kodunuzu hızlı bir şekilde yazmaya başlamak için Android görüntü sınıflandırma örneğimizi başlangıç ​​noktası olarak kullanmanızı öneririz.

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

TensorFlow Lite Android Destek Kitaplığını Kullanma

TensorFlow Lite Android Destek Kütüphanesi modelleri uygulamanıza entegre etmeyi kolaylaştırır. Ham girdi verilerini modelin gerektirdiği forma dönüştürmeye yardımcı olan ve modelin çıktısını yorumlayan ve gereken ısıtıcı plakası miktarını azaltan yüksek seviyeli API'ler sağlar.

Görüntüler ve diziler dahil olmak üzere girişler 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 işlem öncesi ve sonrası birimleri de sağlar.

Başlamak için TensorFlow Lite Android Destek Kitaplığı README.md'deki talimatları izleyin.

JCenter'den TensorFlow Lite AAR kullanın

Android uygulamanızda TensorFlow Lite'ı kullanmak için JCenter'da barındırılan TensorFlow Lite AAR'ı kullanmanızı öneririz .

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

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

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

Çoğu geliştiricinin x86 , x86_64 ve arm32 . Bu, özellikle sadece modern Android cihazlarını kapsaması gereken armeabi-v7a ve arm64-v8a içeren aşağıdaki Gradle yapılandırmasıyla gerçekleştirilebilir.

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

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

TensorFlow Lite'ı yerel olarak oluşturun

Bazı durumlarda, yerel bir TensorFlow Lite derlemesi kullanmak isteyebilirsiniz. Örneğin, TensorFlow'dan seçilen işlemleri içeren özel bir ikili dosya inşa ediyor olabilirsiniz veya TensorFlow Lite'ta yerel değişiklikler yapmak isteyebilirsiniz.

Docker kullanarak oluşturma ortamını ayarlama

  • Docker dosyasını indirin. Docker dosyasını indirerek, aşağıdaki hizmet şartlarının kullanımınızı yönettiğini kabul etmiş olursunuz:

Kabul etmek için tıklayarak, Android Studio ve Android Yerel Geliştirme Kiti'nin tüm kullanımının https://developer.android.com/studio/terms adresinde bulunan Android Yazılım Geliştirme Kiti Lisans Sözleşmesi'ne tabi olacağını kabul edersiniz (bu URL, zaman zaman Google tarafından güncellenebilir veya değiştirilebilir).

Dosyayı indirmek için hizmet şartlarını kabul etmelisiniz. Onaylama

  • İsteğe bağlı olarak Android SDK veya NDK sürümünü değiştirebilirsiniz. İndirilen Docker dosyasını boş bir klasöre koyun ve docker görüntünüzü çalıştırarak oluşturun:
 docker build . -t tflite-builder -f tflite-android.Dockerfile
 
  • Mevcut klasörünüzü kap içindeki / tmp'ye bağlayarak docker kapsayıcısını etkileşimli olarak başlatın (/ tensorflow_src'nin kap içindeki TensorFlow deposu olduğuna dikkat edin):
 docker run -it -v $PWD:/tmp tflite-builder bash
 

Windows'ta PowerShell kullanıyorsanız, "$ PWD" yerine "pwd" yazın.

Ana bilgisayarda bir TensorFlow deposu kullanmak istiyorsanız, bunun yerine o ana bilgisayar dizinini bağlayın (-v hostDir: / tmp).

  • Kapsayıcıya girdikten sonra, ek Android araçları ve kitaplıkları indirmek için aşağıdakileri çalıştırabilirsiniz (lisansı kabul etmeniz gerekebileceğini unutmayın):
 android update sdk --no-ui -a --filter tools,platform-tools,android-${ANDROID_API_LEVEL},build-tools-${ANDROID_BUILD_TOOLS_VERSION}
 

Şimdi "Oluştur ve Yükle" bölümüne geçebilirsiniz. Kitaplıkları oluşturmayı bitirdikten sonra, ana bilgisayardan erişebilmeniz için bunları kabın içindeki / tmp dosyasına kopyalayabilirsiniz.

Docker olmadan oluşturma ortamını ayarlama

Bazel ve Android Önkoşullarını Yükleme

Bazel, TensorFlow için birincil oluşturma sistemidir. Bununla birlikte oluşturmak için, sisteminizde Android NDK ve SDK yüklü olmalıdır.

  1. Bazel derleme sisteminin en son sürümünü yükleyin.
  2. Android NDK, yerel (C / C ++) TensorFlow Lite kodunu oluşturmak için gereklidir. Önerilen geçerli sürümü bulunabilir 17c vardır burada .
  3. Android SDK ve oluşturma araçları burada veya alternatif olarak Android Studio'nun bir parçası olarak edinilebilir. Derleme araçları API> = 23, TensorFlow Lite oluşturmak için önerilen sürümdür.
WORKSPACE ve .bazelrc'yi yapılandırma

Kök TensorFlow ödeme dizininde ./configure komut dosyasını çalıştırın ve komut dosyası Android için ./WORKSPACE etkileşimli olarak yapılandırmak istediğinde "Evet" yanıtını ./WORKSPACE . Komut dosyası, aşağıdaki ortam değişkenlerini kullanarak ayarları yapılandırmaya çalışır:

  • ANDROID_SDK_HOME
  • ANDROID_SDK_API_LEVEL
  • ANDROID_NDK_HOME
  • ANDROID_NDK_API_LEVEL

Bu değişkenler ayarlanmamışsa, komut dosyası isteminde etkileşimli olarak sağlanmaları gerekir. Başarılı yapılandırma kök klasöründeki .tf_configure.bazelrc dosyasında aşağıdakine benzer girişler vermelidir:

 build --action_env ANDROID_NDK_HOME="/usr/local/android/android-ndk-r17c"
build --action_env ANDROID_NDK_API_LEVEL="21"
build --action_env ANDROID_BUILD_TOOLS_VERSION="28.0.3"
build --action_env ANDROID_SDK_API_LEVEL="23"
build --action_env ANDROID_SDK_HOME="/usr/local/android/android-sdk-linux"
 

Oluşturun ve yükleyin

Bazel düzgün bir şekilde yapılandırıldıktan sonra, kök ödeme dizininden TensorFlow Lite AAR'ı aşağıdaki gibi oluşturabilirsiniz:

 bazel build -c opt --fat_apk_cpu=x86,x86_64,arm64-v8a,armeabi-v7a \
  --host_crosstool_top=@bazel_tools//tools/cpp:toolchain \
  //tensorflow/lite/java:tensorflow-lite
 

Bu, bazel-bin/tensorflow/lite/java/ bir AAR dosyası oluşturur. Bunun birkaç farklı mimariye sahip bir "şişman" AAR oluşturduğunu unutmayın; hepsine ihtiyacınız yoksa, dağıtım ortamınıza uygun altkümeyi kullanın. Oradan, Android Studio projenizde .aar kullanmak için kullanabileceğiniz birkaç yaklaşım vardır.

Doğrudan projeye AAR ekleyin

tensorflow-lite.aar dosyasını projenizdeki libs adlı bir dizine taşıyın. Uygulamanızın build.gradle dosyasını, yeni dizine başvuruda build.gradle şekilde değiştirin ve mevcut TensorFlow Lite bağımlılığını yeni yerel kitaplıkla değiştirin, örn:

 allprojects {
    repositories {
        jcenter()
        flatDir {
            dirs 'libs'
        }
    }
}

dependencies {
    compile(name:'tensorflow-lite', ext:'aar')
}
 
Yerel Maven deposuna AAR yükleme

Kök ödeme dizininizden aşağıdaki komutu yürütün:

 mvn install:install-file \
  -Dfile=bazel-bin/tensorflow/lite/java/tensorflow-lite.aar \
  -DgroupId=org.tensorflow \
  -DartifactId=tensorflow-lite -Dversion=0.1.100 -Dpackaging=aar
 

Uygulamanızın build.gradle mavenLocal() bağımlılığına sahip olduğunuzdan emin olun ve standart TensorFlow Lite bağımlılığını belirli TensorFlow ops desteğine sahip olanla değiştirin:

 allprojects {
    repositories {
        jcenter()
        mavenLocal()
    }
}

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

Buradaki 0.1.100 versiyonunun tamamen test / geliştirme amaçlı olduğunu unutmayın. Yerel AAR yüklüyken, uygulama kodunuzda standart TensorFlow Lite Java çıkarım API'lerini kullanabilirsiniz.

C ++ kullanarak Android uygulaması oluşturun

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

TFLite C API'sini kullan

Önerilen yaklaşım budur. JCenter'da barındırılan TensorFlow Lite AAR'ı indirin, tensorflow tensorflow-lite-*.zip yeniden adlandırın ve sıkıştırmasını açın. 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'sini kullanma hakkında temel belgeler içerir.

TFLite C ++ API'sini kullanma

TFLite'ı C ++ API ile kullanmak istiyorsanız, C ++ paylaşılan kütüphanelerini oluşturabilirsiniz:

32 bit armeabi-v7a:

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

64bit kol64-v8a:

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

Şu anda, gerekli tüm başlık dosyalarını çıkarmanın kolay bir yolu yoktur, bu nedenle tüm başlık dosyalarını TensorFlow deposundan tensorflow/lite/ eklemelisiniz. Ayrıca, gelen başlık dosyalarını gerekecektir FlatBuffers ve Abseil .