Android용 개발 도구

LiteRT는 Android에 모델을 통합할 수 있는 다양한 도구를 제공합니다. 있습니다. 이 페이지에서는 다음을 사용하여 앱을 빌드하는 데 사용할 수 있는 개발 도구를 설명합니다. Kotlin, Java, C++뿐만 아니라 Android 스튜디오입니다.

Kotlin 및 Java로 빌드하기 위한 도구

다음 섹션에서는 사용하는 LiteRT용 개발 도구를 설명합니다. 살펴봤습니다

LiteRT 라이브러리

Android 앱에서 LiteRT 라이브러리를 사용하려면 MavenCentral 추가해야 합니다

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

dependencies {
    ...
    implementation 'com.google.ai.edge.litert:+'
}

repositories {
    ...
    google()
}

야간 스냅샷을 사용하는 경우 Sonatype 스냅샷을 추가해야 합니다. 저장소를 프로젝트에 추가합니다.

이 AAR에는 모든 Android용 바이너리가 포함되어 있습니다. ABI에 관해 알아봅니다. 포드의 크기를 줄여서 지원해야 하는 ABI만 포함하여 애플리케이션의 바이너리를 바꾸게 됩니다.

특정 하드웨어를 타겟팅하지 않는 한 x86, x86_64, 대부분의 경우 arm32 ABI를 사용합니다. 다음 Gradle로 이를 구성할 수 있습니다. 구성할 수 있습니다 구체적으로 armeabi-v7aarm64-v8a만 포함됩니다. 은 대부분의 최신 Android 기기를 포괄합니다.

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

abiFilters에 대해 자세히 알아보려면 Android를 참조하세요. Android NDK의 ABI 문서를 참조하세요.

LiteRT 지원 라이브러리

LiteRT Android 지원 라이브러리를 사용하면 모델을 더 쉽게 통합할 수 있습니다. 삽입해야 합니다 원시 입력을 변환하는 데 도움이 되는 상위 수준 API를 제공합니다. 모델을 필요한 형식으로 변환하고 모델의 출력을 해석합니다. 필요한 상용구 코드의 양을 줄입니다.

입력 및 출력에 대한 일반적인 데이터 형식(이미지 및 배열입니다. 또한 사전 및 사후 처리 장치를 제공하여 이미지 크기 조절 및 자르기와 같은 기능을 사용할 수 있습니다.

LiteRT를 포함하여 Android 앱에서 지원 라이브러리 사용 지원 라이브러리 AAR 호스팅: MavenCentral.

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

dependencies {
    implementation 'com.google.ai.edge.litert:litert-support:+'
}

야간 스냅샷을 사용하는 경우 Sonatype 스냅샷을 추가해야 합니다. 저장소를 프로젝트에 추가합니다.

시작 방법에 대한 안내는 LiteRT Android 지원 Library로 구성됩니다.

Android Studio 사용

위에서 설명한 개발 라이브러리 외에도 Android Studio는 아래에 설명된 대로 LiteRT 모델 통합을 지원합니다.

Android 스튜디오 ML 모델 바인딩

Android 스튜디오 4.1 이상의 ML 모델 바인딩 기능을 사용하면 다음을 수행할 수 있습니다. .tflite 모델 파일을 기존 Android 앱으로 가져오고 인터페이스 클래스를 사용하여 코드를 모델과 더 쉽게 통합할 수 있습니다.

LiteRT 모델을 가져오려면 다음 안내를 따르세요.

  1. LiteRT 모델을 사용할 모듈을 마우스 오른쪽 버튼으로 클릭하거나 파일 > 신규 > 기타 > LiteRT 모델을 사용합니다.

  2. LiteRT 파일의 위치를 선택합니다. 이 도구는 ML 모델 결합을 통해 모듈의 종속 항목을 구성하고 자동으로 Android 모듈의 build.gradle 파일에 필요한 모든 종속 항목을 추가합니다.

  3. Finish를 클릭하여 가져오기 프로세스를 시작합니다. 가져오기가 완료되면 입력 및 출력을 포함하여 모델을 설명하는 화면이 표시됩니다. 텐서 등이 포함됩니다

  4. 모델을 사용하려면 Kotlin 또는 Java를 선택하고 코드를 복사하여 샘플 코드 섹션을 참조하세요.

TensorFlow를 더블클릭하여 모델 정보 화면으로 돌아갈 수 있습니다. Android 스튜디오의 ml 디렉터리에 있는 라이트 모델 자세한 내용은 Android 스튜디오의 Modle Binding 기능을 사용하는 방법에 대해서는 Android 스튜디오를 참조하세요. 릴리스 참고: Android 스튜디오에서 모델 결합을 사용하는 방법에 관한 개요는 코드 예를 참고하세요. 안내를 따르세요.

C 및 C++로 빌드하기 위한 도구

LiteRT용 C 및 C++ 라이브러리는 주로 Android 네이티브 개발 키트 (NDK)를 사용하여 앱을 빌드하는 개발자 NDK로 앱을 빌드하는 경우 C++를 통해 LiteRT를 사용하는 방법에는 두 가지가 있습니다.

LiteRT C API

이 API를 사용하는 것은 NDK를 사용하는 개발자에게 권장되는 접근 방식입니다. 다음 링크에서 호스팅되는 LiteRT AAR을 다운로드하십시오. MavenCentral 파일 이름을 tensorflow-lite-*.zip로 변경하고 압축을 풉니다. 다음 네 가지 headers/tensorflow/lite/headers/tensorflow/lite/c/의 헤더 파일 폴더 및 관련 libtensorflowlite_jni.so 동적 라이브러리를 jni/ 폴더를 만듭니다.

c_api.h 헤더 파일에는 LiteRT C 사용에 관한 기본 문서가 포함되어 있습니다. API에 액세스할 수 있습니다.

LiteRT C++ API

C++ API를 통해 LiteRT를 사용하려면 C++ 공유 API를 빌드하거나 라이브러리:

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.