Odpowiedz już dziś na lokalne wydarzenie TensorFlow Everywhere!
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 demonstracyjna klasyfikuje klatki 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 powiązania modelu Android Studio ML

Aby zaimportować model TensorFlow Lite (TFLite):

  1. Kliknij prawym przyciskiem myszy moduł, którego chcesz użyć modelu TFLite lub kliknij File , a następnie New > Other > TensorFlow Lite Model Kliknij menu prawym przyciskiem myszy, aby uzyskać dostęp do funkcji importu TensorFlow Lite

  2. Wybierz lokalizację swojego pliku TFLite. Należy zauważyć, że narzędzia skonfigurują zależność modułu w Twoim imieniu z powiązaniem modelu ML i wszystkimi zależnościami automatycznie wstawionymi do pliku build.gradle modułu systemu Android.

    Opcjonalnie: zaznacz drugie pole wyboru do importowania GPU TensorFlow, jeśli chcesz użyć akceleracji GPU . Okno dialogowe importu dla modelu TFLite

  3. Kliknij Finish .

  4. Po pomyślnym imporcie pojawi się następujący ekran. Aby rozpocząć korzystanie z modelu, wybierz Kotlin lub Java, skopiuj i wklej kod w sekcji Sample Code . Możesz wrócić do tego ekranu, klikając dwukrotnie model TFLite w katalogu ml w Android Studio. Strona szczegółów modelu w Android Studio

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 z TFLite. Zapewnia zoptymalizowane interfejsy modelu gotowe do użycia w popularnych zadaniach 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.1.0'
    implementation 'org.tensorflow:tensorflow-lite-task-text:0.1.0'
}

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

Skorzystaj z biblioteki obsługi systemu Android TensorFlow Lite

Biblioteka obsługi TensorFlow Lite dla systemu Android ułatwia integrację modeli z aplikacją. Zapewnia interfejsy API wysokiego poziomu, które pomagają przekształcić surowe dane wejściowe do postaci wymaganej przez model i interpretują 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.1.0'
}

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

Użyj TensorFlow Lite AAR od 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-SNAPSHOT'
}

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 korzystania z TFLite przez C ++, jeśli tworzysz 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 .