[Tensorlite] Android Tensorflow 추론 앱 개발 - 1. Android용 TensorFlow Lite
1. Tensorflow Lite
TensorFlow Lite는 더 작고 휴대 가능하며 효율적인 기계 학습 모델 형식으로 변환되는 TensorFlow 모델을 사용합니다. Android에서 TensorFlow Lite와 함께 사전 빌드된 모델을 사용하거나 고유한 TensorFlow 모델을 빌드하고 TensorFlow Lite 형식으로 변환할 수 있습니다.
단, TensorFlow Lite 모델과 TensorFlow 모델은 형식이 다르며 상호 교환할 수 없습니다. TensorFlow 모델은 TensorFlow Lite 모델로 변환할 수 있지만 해당 프로세스는 되돌릴 수 없습니다.
- 개발 워크플로
다음 가이드는 워크플로의 각 단계를 둘러보고 다음 안내에 관한 링크를 제공합니다.
- TensorFlow Lite 모델 생성
- 추론 실행
1. TensorFlow Lite 모델 생성
TensorFlow Lite 모델은 FlatBuffers(.tflite 파일 확장자로 식별됨)라는 효율적으로 이동 가능한 특수 형식으로 표현된다. TensorFlow Lite 모델은 선택적으로 메타데이터를 포함할 수 있으며 이 메타데이터에는 기기 추론 중에 파이프라인 전처리와 후처리의 자동 생성을 위해 사람이 읽을 수 있는 모델 설명과 머신이 읽을 수 있는 데이터가 포함됩니다. 자세한 내용은 메타데이터 추가 를 참고하세요.
다음 방법으로 TensorFlow Lite 모델을 생성할 수 있습니다.
기존 TensorFlow Lite 모델 사용: 기존 모델을 선택하려면 TensorFlow Lite 예를 참고하세요. 모델은 메타데이터를 포함할 수도 있고, 포함하지 않을 수도 있습니다.
TensorFlow Lite 모델 생성: TensorFlow Lite Model Maker를 사용하여 자체 맞춤 데이터 세트를 포함하는 모델을 만듭니다. 기본적으로 모든 모델은 메타데이터를 포함합니다.
TensorFlow 모델을 TensorFlow Lite 모델로 변환: TensorFlow Lite 변환기를 사용하여 TensorFlow 모델을 TensorFlow Lite 모델로 변환합니다. 변환 중에 최적화(예: 양자화)를 적용하여 정확성의 손실이 없거나 최소화된 상태로 모델 크기와 지연 시간을 줄일 수 있습니다. 기본적으로 모든 모델은 메타데이터를 포함하지 않습니다.
2. 추론 실행
메타데이터가 없는 모델: TensorFlow Lite Interpreter API를 사용합니다. 다양한 플랫폼과 언어(예: 자바, Swift, C++, Objective-C, Python)에서 지원됩니다.
메타데이터가 있는 모델: TensorFlow Lite 작업 라이브러리를 사용하는 즉시 사용 가능한 API를 활용하거나 TensorFlow Lite 지원 라이브러리를 사용하는 맞춤 추론 파이프라인을 빌드할 수 있습니다. Android 기기 사용자는 Android 스튜디오 ML 모델 결합 또는 TensorFlow Lite 코드 생성기를 사용하여 자동으로 코드 래퍼를 생성할 수 있습니다. Swift(iOS)와 C++는 작업 중이며 자바(Android)에서만 지원됩니다.
2. 기계햑습 모델과 Android
Tensorflow 모델에서 생상한 추론 엔진을 Android 앱에서 사용할 수 있도록 한다.
Android 에서 Tensorflow 모델 실행
Android 앱은 TensorFlow Lite 모델을 실행하기 위해 다음 요소가 필요합니다.
- Android App (Java, Kotlin)
- 모델 실행을 위한 TensorFlow Lite 런타임 환경
- 데이터를 텐서로 변환하는 모델 입력 핸들러
- 출력 결과 텐서를 수신하고 예측 결과로 해석하는 출력 핸들러를 모델링한다.
Tensorflow Lite Runtime 환경
Android 앱에서 모델을 실행하기 위해 런타임 환경을 활성화하는 방법에는 여러 가지가 있습니다. 다음은 기본 옵션입니다.
- Google Play 서비스 런타임 환경 의 TensorFlow Lite(권장)
- 독립형 TensorFlow Lite 런타임 환경
Tensorflow Lite 변환기
https://www.tensorflow.org/lite/convert?hl=ko
TensorFlow Lite 변환기는 TensorFlow 모델을 사용하고 TensorFlow Lite 모델(.tflite 파일 확장자로 식별되는 최적화된 FlatBuffer 형식)을 생성합니다. 변환기를 사용하는 옵션에는 다음 두 가지가 있습니다.
- Python API(권장): 모델 개발 파이프라인의 일부로 모델을 더 쉽게 변환하고 최적화를 적용하며 메타데이터를 추가하는 등 다양한 기능이 많습니다.
- 명령줄: 기본 모델 변환만 지원합니다.
Tensorflow Lite 변환기 계층
Object Detection 예제
https://www.tensorflow.org/lite/android/quickstart?hl=ko
참고
Tensorflow Lite 관련:
Android App 관련:
Recognize Flowers with TensorFlow Lite on Android
Android 에서 Tensorflow Lite 앱 이용 Codelab
모델 학습 관련:
[Tensorlite] Android Tensorflow 추론 앱 개발 - 1. Android용 TensorFlow Lite
https://thinkbee.github.io/android-tensorlite-tutorial1-0c194a9fdfae/