안드로이드 빠른 시작

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

Android 이미지 분류 예

읽기 TensorFlow 라이트 안드로이드 이미지 분류를 소스 코드에 대한 설명.

이 예제 응용 프로그램은 사용 이미지 분류 는 장치의 후면에 직면 카메라에서 보는대로 지속적으로 분류. 애플리케이션은 기기 또는 에뮬레이터에서 실행할 수 있습니다.

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

Android Studio에서 빌드

안드로이드 스튜디오의 예를 작성하려면의 지침에 따라 README.md을 .

나만의 Android 앱 만들기

빠르게 자신의 안드로이드 코드를 작성하기 시작하려면, 우리는 우리의 사용을 권장 안드로이드 영상 분류 예제를 시작 지점으로.

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

Android Studio ML 모델 바인딩 사용

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

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

  2. TFLite 파일의 위치를 ​​선택하십시오. 툴링은 ML 모델 바인딩 및 모든 종속성이 자동으로 안드로이드 모듈의 삽입하여 대신 모듈의 의존성을 구성 할 것을 참고 build.gradle 파일.

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

  3. 클릭 Finish .

  4. 가져 오기가 성공하면 다음 화면이 나타납니다. 모델을 사용하려면, 코 틀린 또는 Java, 복사를 선택하고 아래의 코드를 붙여 Sample Code 섹션을 참조하십시오. 당신은 두 번 클릭하여이 화면에 아래의 TFLite 모델을 다시 얻을 수 ml 안드로이드 스튜디오에서 디렉토리를. Android 스튜디오의 모델 세부 정보 페이지

TensorFlow Lite 작업 라이브러리 사용

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

안드로이드 응용 프로그램의 지원 라이브러리를 사용하려면, 우리는 대한 MavenCentral에서 주최 AAR 사용하는 것이 좋습니다 작업 비전 라이브러리작업 텍스트 라이브러리 를 각각.

당신은 당신이 지정할 수 있습니다 build.gradle 다음과 같은 종속 관계 :

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

야간 스냅 샷을 사용하려면, 당신이 추가 한 것을 확인 Sonatype 스냅 샷 저장소를 .

의 소개를 참조하십시오 TensorFlow 라이트 태스크 라이브러리 개요 자세한 내용을.

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

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

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

안드로이드 응용 프로그램의 지원 라이브러리를 사용하려면, 우리는 사용하는 것이 좋습니다 TensorFlow 라이트 지원 라이브러리 AAR은 MavenCentral에서 호스팅 .

당신은 당신이 지정할 수 있습니다 build.gradle 다음과 같은 종속 관계 :

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

야간 스냅 샷을 사용하려면, 당신이 추가 한 것을 확인 Sonatype 스냅 샷 저장소를 .

시작하려면의 지침에 따라 TensorFlow 라이트 안드로이드 지원 라이브러리를 .

MavenCentral의 TensorFlow Lite AAR 사용

안드로이드 응용 프로그램에 TensorFlow 라이트를 사용하려면, 우리는 사용하는 것이 좋습니다 TensorFlow 라이트 AAR은 MavenCentral에서 호스팅 .

당신은 당신이 지정할 수 있습니다 build.gradle 다음과 같은 종속 관계 :

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

야간 스냅 샷을 사용하려면, 당신이 추가 한 것을 확인 Sonatype 스냅 샷 저장소를 .

이 AAR은 모든 바이너리가 포함 안드로이드 ABI를을 . 지원해야하는 ABI 만 포함하여 애플리케이션의 바이너리 크기를 줄일 수 있습니다.

우리는 대부분의 개발자가 생략 추천 x86 , x86_64 하고, arm32 ABI를. 이는 구체적으로 다음 만 포함 Gradle을 구성으로 달성 될 수 armeabi-v7aarm64-v8a 가장 현대 안드로이드 장치를 포함한다.

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

에 대한 자세한 내용은 abiFilters 참조 NdkOptions 안드로이드 Gradle을 설명서를.

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

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

TFLite C API 사용

이것은 권장되는 방법입니다. 다운로드 TensorFlow 라이트 AAR은 MavenCentral에서 호스트 로 이름을 변경 tensorflow-lite-*.zip , 그리고 압축을 풉니 다. 당신의 4 개 헤더 파일을 포함해야 headers/tensorflow/lite/headers/tensorflow/lite/c/ 폴더와 관련 libtensorflowlite_jni.so 동적 라이브러리 jni/ 당신의 NDK 프로젝트 폴더에 있습니다.

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/lite/ TensorFlow 저장소에서. 또한에서 헤더 파일이 필요합니다 FlatBuffers현수 하강을 .

최소 SDK 버전의 TFLite

도서관 minSdkVersion 장치 요구 사항
tensorflow-lite 19 NNAPI를 사용하려면 API 27 이상이 필요합니다.
tensorflow-lite-gpu 19 GLES 3.1 또는 OpenCL (일반적으로 API 21 이상에서만 사용 가능
tensorflow-lite-hexagon 19 -
tensorflow-lite-support 19 -
tensorflow-lite-task-vision 21 android.graphics.Color 관련 API에는 API 26 이상이 필요합니다.
tensorflow-lite-task-text 21 -
tensorflow-lite-task-audio 23 -
tensorflow-lite-metadata 19 -