Ta strona została przetłumaczona przez Cloud Translation API.
Switch to English

Krótkie wprowadzenie do Androida

Aby rozpocząć korzystanie z TensorFlow Lite w systemie Android, zalecamy zapoznanie się z następującym przykładem.

Przykład klasyfikacji obrazów Androida

Przeczytaj klasyfikację obrazu TensorFlow Lite dla systemu Android, aby uzyskać wyjaśnienie kodu źródłowego.

Ta przykładowa aplikacja wykorzystuje klasyfikację obrazu, aby w sposób ciągły klasyfikować wszystko, co widzi z tylnego aparatu urządzenia. Aplikacja może działać na urządzeniu lub w emulatorze.

Wnioskowanie jest wykonywane przy użyciu interfejsu API języka Java TensorFlow Lite i biblioteki obsługi systemu Android TensorFlow Lite . Aplikacja demo klasyfikuje ramki w czasie rzeczywistym, wyświetlając najbardziej prawdopodobne klasyfikacje. Pozwala użytkownikowi wybrać model zmiennoprzecinkowy lub kwantowany , wybrać liczbę wątków i zdecydować, czy ma działać na CPU, GPU, czy przez NNAPI .

Zbuduj w Android Studio

Aby zbudować przykład w Android Studio, postępuj zgodnie z instrukcjami w pliku README.md .

Stwórz własną aplikację na Androida

Aby szybko rozpocząć pisanie własnego kodu systemu Android, zalecamy skorzystanie z naszego przykładu klasyfikacji obrazów systemu Android jako punktu wyjścia.

Poniższe sekcje zawierają przydatne informacje dotyczące pracy z TensorFlow Lite w systemie Android.

Użyj biblioteki zadań TensorFlow Lite

Biblioteka zadań TensorFlow Lite zawiera zestaw wydajnych i łatwych w użyciu bibliotek specyficznych dla zadań dla programistów aplikacji do tworzenia doświadczeń ML w TFLite. Zapewnia zoptymalizowane interfejsy modelu gotowego do użycia dla popularnych zadań uczenia maszynowego, takich jak klasyfikacja obrazów, pytania i odpowiedzi itp. Interfejsy modelu są specjalnie zaprojektowane dla każdego zadania, aby osiągnąć najlepszą wydajność i użyteczność. Biblioteka zadań działa na wielu platformach i jest obsługiwana w językach Java, C ++ i Swift (wkrótce).

Aby korzystać z biblioteki pomocy technicznej w aplikacji na Androida, zalecamy użycie odpowiednio biblioteki AAR hostowanej w JCenter for Task Vision i biblioteki Task Text .

Możesz to określić w zależnościach build.gradle w następujący sposób:

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

Zobacz wprowadzenie w omówieniu biblioteki zadań TensorFlow Lite, aby uzyskać więcej informacji.

Skorzystaj z biblioteki obsługi systemu Android TensorFlow Lite

Biblioteka obsługi TensorFlow Lite dla systemu Android ułatwia integrację modeli z aplikacją. Udostępnia interfejsy API wysokiego poziomu, które pomagają przekształcić surowe dane wejściowe do postaci wymaganej przez model i interpretować dane wyjściowe modelu, zmniejszając ilość wymaganego kodu standardowego.

Obsługuje typowe formaty danych dla wejść i wyjść, w tym obrazy i tablice. Zapewnia również jednostki przetwarzania wstępnego i końcowego, które wykonują zadania, takie jak zmiana rozmiaru obrazu i kadrowanie.

Aby korzystać z biblioteki pomocy technicznej w aplikacji na Androida, zalecamy korzystanie z biblioteki pomocy technicznej TensorFlow Lite AAR hostowanej w JCenter .

Możesz to określić w zależnościach build.gradle w następujący sposób:

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

Aby rozpocząć, postępuj zgodnie z instrukcjami w bibliotece pomocy technicznej TensorFlow Lite dla systemu Android .

Użyj TensorFlow Lite AAR firmy JCenter

Aby korzystać z TensorFlow Lite w aplikacji na Androida, zalecamy korzystanie z TensorFlow Lite AAR hostowanego w JCenter .

Możesz to określić w zależnościach build.gradle w następujący sposób:

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

Ten raport AAR zawiera pliki binarne dla wszystkich interfejsów ABI systemu Android . Możesz zmniejszyć rozmiar pliku binarnego aplikacji, uwzględniając tylko te ABI, które chcesz obsługiwać.

Zalecamy większości programistów pominięcie arm32 ABI x86 , x86_64 i arm32 . Można to osiągnąć za pomocą następującej konfiguracji Gradle, która w szczególności obejmuje tylko armeabi-v7a i arm64-v8a , które powinny obejmować większość nowoczesnych urządzeń z Androidem.

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

Aby dowiedzieć się więcej o abiFilters , zobacz NdkOptions w dokumentacji Androida Gradle.

Zbuduj aplikację na Androida w C ++

Istnieją dwa sposoby używania TFLite przez C ++, jeśli tworzysz swoją aplikację za pomocą NDK:

Użyj interfejsu API TFLite C.

To jest zalecane podejście. Pobierz TensorFlow Lite AAR hostowany w JCenter , zmień jego nazwę na tensorflow-lite-*.zip i rozpakuj. Musisz podać cztery pliki nagłówka w headers/tensorflow/lite/ a headers/tensorflow/lite/c/ folderu i odpowiedni libtensorflowlite_jni.so biblioteka dynamiczna w jni/ folderu w projekcie NDK.

c_api.h nagłówkowy c_api.h zawiera podstawową dokumentację dotyczącą korzystania z interfejsu API TFLite C.

Użyj interfejsu API TFLite C ++

Jeśli chcesz używać TFLite przez C ++ API, możesz zbudować współdzielone biblioteki C ++:

32-bitowy armeabi-v7a:

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

64-bitowe arm64-v8a:

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

Obecnie nie ma prostego sposobu na wyodrębnienie wszystkich potrzebnych plików nagłówkowych, dlatego należy dołączyć wszystkie pliki nagłówkowe do tensorflow/lite/ z repozytorium TensorFlow. Dodatkowo będziesz potrzebować plików nagłówkowych z FlatBuffers i Abseil .