이 페이지는 Cloud Translation API를 통해 번역되었습니다.
Switch to English

Android 빠른 시작

Android에서 TensorFlow Lite를 시작하려면 다음 예제를 살펴 보는 것이 좋습니다.

Android 이미지 분류 예

소스 코드에 대한 설명은 TensorFlow Lite Android 이미지 분류 를 참조하세요.

이 예제 앱은 이미지 분류 를 사용하여 기기의 후면 카메라에서 보는 모든 것을 지속적으로 분류합니다. 애플리케이션은 기기 또는 에뮬레이터에서 실행할 수 있습니다.

추론은 TensorFlow Lite Java API 및 TensorFlow Lite Android 지원 라이브러리를 사용하여 수행됩니다. 데모 앱은 프레임을 실시간으로 분류하여 가장 가능성이 높은 분류를 표시합니다. 이를 통해 사용자는 부동 소수점 또는 양자화 된 모델 중에서 선택하고 스레드 수를 선택하며 CPU, GPU 또는 NNAPI 를 통해 실행할지 결정할 수 있습니다.

Android Studio에서 빌드

Android 스튜디오에서 예제를 빌드하려면 README.md 의 안내를 따르세요.

나만의 Android 앱 만들기

자신의 Android 코드 작성을 빠르게 시작하려면 Android 이미지 분류 예제 를 시작점으로 사용하는 것이 좋습니다.

다음 섹션에는 Android에서 TensorFlow Lite를 사용하는 데 유용한 몇 가지 정보가 포함되어 있습니다.

Android Studio ML 모델 바인딩 사용

TensorFlow Lite (TFLite) 모델을 가져 오려면 :

  1. TFLite 모델을 사용하려는 모듈을 마우스 오른쪽 버튼으로 클릭하거나 File , New > Other > TensorFlow Lite Model TensorFlow Lite 가져 오기 기능에 액세스하려면 메뉴를 마우스 오른쪽 버튼으로 클릭합니다.

  2. TFLite 파일의 위치를 ​​선택하십시오. 도구는 ML 모델 바인딩 및 Android 모듈의 build.gradle 파일에 자동으로 삽입되는 모든 종속성을 사용하여 사용자 대신 모듈의 종속성을 구성합니다.

    선택 사항 : GPU 가속 을 사용하려는 경우 TensorFlow GPU를 가져 오기위한 두 번째 체크 박스를 선택합니다. TFLite 모델에 대한 가져 오기 대화 상자

  3. Finish 클릭 Finish .

  4. 가져 오기가 성공하면 다음 화면이 나타납니다. 모델 사용을 시작하려면 Kotlin 또는 Java를 선택하고 Sample Code 섹션 아래에 코드를 복사하여 붙여 넣습니다. Android Studio의 ml 디렉토리에서 TFLite 모델을 두 번 클릭하면이 화면으로 돌아갈 수 있습니다. Android 스튜디오의 모델 세부 정보 페이지

TensorFlow Lite 작업 라이브러리 사용

TensorFlow Lite 작업 라이브러리에는 앱 개발자가 TFLite로 ML 경험을 만들 수있는 강력하고 사용하기 쉬운 작업 별 라이브러리 세트가 포함되어 있습니다. 이미지 분류, 질문 및 답변 등과 같은 인기있는 기계 학습 작업을 위해 최적화 된 즉시 사용 가능한 모델 인터페이스를 제공합니다. 모델 인터페이스는 각 작업에 맞게 특별히 설계되어 최상의 성능과 유용성을 제공합니다. 태스크 라이브러리는 크로스 플랫폼으로 작동하며 Java, C ++ 및 Swift에서 지원됩니다 (곧 제공 예정).

Android 앱에서 지원 라이브러리를 사용하려면 각각 JCenter for Task Vision 라이브러리Task Text 라이브러리 에서 호스팅되는 AAR을 사용하는 것이 좋습니다.

다음과 같이 build.gradle 종속성에서이를 지정할 수 있습니다.

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

자세한 내용은 TensorFlow Lite 작업 라이브러리 개요 의 소개를 참조하세요.

TensorFlow Lite Android 지원 라이브러리 사용

TensorFlow Lite Android 지원 라이브러리를 사용하면 모델을 애플리케이션에 쉽게 통합 할 수 있습니다. 원시 입력 데이터를 모델에 필요한 형식으로 변환하고 모델의 출력을 해석하여 필요한 상용구 코드의 양을 줄이는 고급 API를 제공합니다.

이미지 및 배열을 포함하여 입력 및 출력에 대한 공통 데이터 형식을 지원합니다. 또한 이미지 크기 조정 및 자르기와 같은 작업을 수행하는 전처리 및 후 처리 장치를 제공합니다.

Android 앱에서 지원 라이브러리를 사용하려면 JCenter에서 호스팅되는 TensorFlow Lite 지원 라이브러리 AAR을 사용하는 것이 좋습니다.

다음과 같이 build.gradle 종속성에서이를 지정할 수 있습니다.

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

시작하려면 TensorFlow Lite Android 지원 라이브러리 의 안내를 따르세요.

JCenter에서 TensorFlow Lite AAR 사용

Android 앱에서 TensorFlow Lite를 사용하려면 JCenter에서 호스팅되는 TensorFlow Lite AAR을 사용하는 것이 좋습니다.

다음과 같이 build.gradle 종속성에서이를 지정할 수 있습니다.

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

이 AAR에는 모든 Android ABI 용 바이너리가 포함되어 있습니다. 지원해야하는 ABI 만 포함하여 애플리케이션의 바이너리 크기를 줄일 수 있습니다.

대부분의 개발자는 x86 , x86_64arm32 ABI를 생략하는 것이 좋습니다. 이는 대부분의 최신 Android 기기를 포함해야하는 armeabi-v7aarm64-v8a 만 포함하는 다음 Gradle 구성으로 달성 할 수 있습니다.

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

abiFilters 대해 자세히 알아 보려면 Android Gradle 문서의 abiFilters 를 참조 NdkOptions .

C ++를 사용하여 Android 앱 빌드

NDK로 앱을 빌드하는 경우 C ++를 통해 TFLite를 사용하는 두 가지 방법이 있습니다.

TFLite C API 사용

이것이 권장되는 접근 방식입니다. JCenter 에서 호스팅 되는 TensorFlow Lite AAR을 다운로드하고 이름을 tensorflow-lite-*.zip 변경 한 다음 압축을 풉니 다. headers/tensorflow/lite/headers/tensorflow/lite/c/ 폴더에 4 개의 헤더 파일을 포함하고 NDK 프로젝트의 jni/ 폴더에 관련 libtensorflowlite_jni.so 동적 라이브러리를 포함해야합니다.

c_api.h 헤더 파일에는 TFLite C API 사용에 대한 기본 문서가 포함되어 있습니다.

TFLite C ++ API 사용

C ++ API를 통해 TFLite를 사용하려는 경우 C ++ 공유 라이브러리를 빌드 할 수 있습니다.

32 비트 armeabi-v7a :

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

64 비트 arm64-v8a :

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

현재 필요한 모든 헤더 파일을 추출하는 간단한 방법은 없으므로 TensorFlow 저장소의 모든 헤더 파일을 tensorflow/lite/ 에 포함해야합니다. 또한 FlatBuffersAbseil의 헤더 파일이 필요합니다.