배포를 위해 TFLite로 모델 내보내기( YOLO11 )에 대한 가이드
엣지 디바이스나 임베디드 디바이스에 컴퓨터 비전 모델을 배포하려면 원활한 성능을 보장할 수 있는 형식이 필요합니다.
TensorFlow Lite 또는 TFLite 내보내기 형식을 사용하면 모델을 최적화할 수 있습니다. Ultralytics YOLO11 모델을 엣지 디바이스 기반 애플리케이션에서 물체 감지 및 이미지 분류와 같은 작업에 최적화할 수 있습니다. 이 가이드에서는 다양한 에지 디바이스에서 모델이 더 쉽게 작동할 수 있도록 모델을 TFLite 형식으로 변환하는 단계를 안내합니다.
TFLite로 내보내야 하는 이유는 무엇인가요?
2017년 5월 Google TensorFlow 프레임워크의 일부로 도입한 TensorFlow Lite(줄여서 TFLite)는 엣지 컴퓨팅이라고도 하는 온디바이스 추론을 위해 설계된 오픈 소스 딥 러닝 프레임워크입니다. 개발자가 기존 컴퓨터뿐만 아니라 모바일, 임베디드 및 IoT 디바이스에서 학습된 모델을 실행하는 데 필요한 도구를 제공합니다.
TensorFlow Lite는 임베디드 Linux, Android, iOS, MCU 등 다양한 플랫폼과 호환됩니다. 모델을 TFLite로 내보내면 애플리케이션을 더 빠르고 안정적으로 오프라인에서 실행할 수 있습니다.
TFLite 모델의 주요 기능
TFLite 모델은 개발자가 모바일, 임베디드 및 에지 디바이스에서 모델을 실행할 수 있도록 지원하여 온디바이스 머신 러닝을 가능하게 하는 다양한 주요 기능을 제공합니다:
-
온디바이스 최적화: TFLite는 온디바이스 ML에 최적화되어 데이터를 로컬에서 처리하여 대기 시간을 줄이고, 개인 데이터를 전송하지 않음으로써 개인 정보를 보호하며, 모델 크기를 최소화하여 공간을 절약합니다.
-
다양한 플랫폼 지원: TFLite는 광범위한 플랫폼 호환성을 제공하여 Android, iOS, 임베디드 Linux 및 마이크로 컨트롤러를 지원합니다.
-
다양한 언어 지원: TFLite는 Java, Swift, Objective-C, C++ 및 Python 를 포함한 다양한 프로그래밍 언어와 호환됩니다.
-
고성능: 하드웨어 가속 및 모델 최적화를 통해 뛰어난 성능을 달성합니다.
TFLite의 배포 옵션
YOLO11 모델을 TFLite 형식으로 내보내는 코드를 살펴보기 전에 TFLite 모델이 일반적으로 어떻게 사용되는지 이해해 보겠습니다.
TFLite는 다음과 같은 머신 러닝 모델을 위한 다양한 온디바이스 배포 옵션을 제공합니다:
- Android 및 iOS 으로 배포: TFLite를 사용하는 Android 및 iOS 애플리케이션은 모두 에지 기반 카메라 피드와 센서를 분석하여 물체를 감지하고 식별할 수 있습니다. TFLite는 Swift 및 Objective-C로 작성된 기본 iOS 라이브러리도 제공합니다. 아래 아키텍처 다이어그램은 Android 및 iOS 플랫폼에 TensorFlow Lite를 사용하여 학습된 모델을 배포하는 프로세스를 보여줍니다.
-
임베디드 Linux로 구현하기: Ultralytics 가이드에 따라 라즈베리 파이에서 추론을 실행해도 사용 사례의 속도 요구 사항을 충족하지 못하는 경우, 내보낸 TFLite 모델을 사용하여 추론 시간을 가속화할 수 있습니다. 또한 Coral Edge TPU 장치를 활용하여 성능을 더욱 향상시킬 수 있습니다.
-
마이크로컨트롤러와 함께 배포: TFLite 모델은 메모리가 몇 킬로바이트에 불과한 마이크로컨트롤러 및 기타 디바이스에도 배포할 수 있습니다. 코어 런타임은 Arm Cortex M3에서 16KB에 불과하며 많은 기본 모델을 실행할 수 있습니다. 운영 체제 지원, 표준 C 또는 C++ 라이브러리, 동적 메모리 할당이 필요하지 않습니다.
TFLite로 내보내기: YOLO11 모델 변환하기
모델을 TFLite 형식으로 변환하여 디바이스 내 모델 실행 효율을 개선하고 성능을 최적화할 수 있습니다.
설치
필요한 패키지를 설치하려면 실행합니다:
설치 과정과 관련된 자세한 지침과 모범 사례는 Ultralytics 설치 가이드를 참조하세요. YOLO11 에 필요한 패키지를 설치하는 동안 문제가 발생하면 일반적인 문제 가이드를 참조하여 해결 방법과 팁을 확인하세요.
사용법
사용 지침을 살펴보기 전에 모든 Ultralytics YOLO11 모델에서 내보내기를 사용할 수 있지만, 선택한 모델이 내보내기 기능을 지원하는지 여기에서 확인할 수 있다는 점에 유의하세요.
사용법
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to TFLite format
model.export(format="tflite") # creates 'yolo11n_float32.tflite'
# Load the exported TFLite model
tflite_model = YOLO("yolo11n_float32.tflite")
# Run inference
results = tflite_model("https://ultralytics.com/images/bus.jpg")
내보내기 인수
인수 | 유형 | 기본값 | 설명 |
---|---|---|---|
format |
str |
'tflite' |
내보낸 모델의 대상 형식으로, 다양한 배포 환경과의 호환성을 정의합니다. |
imgsz |
int 또는 tuple |
640 |
모델 입력에 사용할 원하는 이미지 크기입니다. 정사각형 이미지의 경우 정수 또는 튜플일 수 있습니다. (height, width) 를 입력합니다. |
half |
bool |
False |
FP16(반정밀) 양자화를 활성화하여 모델 크기를 줄이고 지원되는 하드웨어에서 추론 속도를 높일 수 있습니다. |
int8 |
bool |
False |
INT8 양자화를 활성화하여 모델을 더욱 압축하고 주로 에지 디바이스의 경우 정확도 손실을 최소화하면서 추론 속도를 높입니다. |
nms |
bool |
False |
정확하고 효율적인 검출 후처리에 필수적인 비최대 억제(NMS)를 추가합니다. |
batch |
int |
1 |
내보내기 모델 일괄 추론 크기 또는 내보낸 모델이 동시에 처리할 최대 이미지 수를 지정합니다. predict 모드로 전환합니다. |
data |
str |
'coco8.yaml' |
경로 데이터 세트 구성 파일(기본값: coco8.yaml ), 정량화에 필수적인 요소입니다. |
내보내기 프로세스에 대한 자세한 내용은 내보내기 관련 문서 페이지(Ultralytics )를 참조하세요.
내보낸 YOLO11 TFLite 모델 배포하기
Ultralytics YOLO11 모델을 TFLite 형식으로 성공적으로 내보낸 후에는 이제 배포할 수 있습니다. TFLite 모델을 실행하기 위한 기본적이고 권장되는 첫 번째 단계는 다음을 활용하는 것입니다. YOLO("model.tflite")
메서드를 사용해야 합니다(이전 사용 코드 스니펫에 설명된 대로). 그러나 다양한 다른 설정에서 TFLite 모델을 배포하는 방법에 대한 자세한 지침은 다음 리소스를 참조하세요:
-
Android: 통합을 위한 빠른 시작 가이드 TensorFlow Lite를 Android 애플리케이션에 통합하여 머신 러닝 모델을 설정하고 실행하는 데 필요한 단계를 쉽게 따라할 수 있도록 안내합니다.
-
iOS: iOS 애플리케이션에서 TensorFlow 라이트 모델을 통합하고 배포하는 방법에 대한 개발자용 상세 가이드를 확인하여 단계별 지침과 리소스를 확인하세요.
-
엔드투엔드 예시: 이 페이지에서는 개발자가 모바일 및 엣지 디바이스에서 머신 러닝 프로젝트에 TensorFlow Lite를 구현하는 데 도움이 되도록 설계된 실용적인 애플리케이션과 튜토리얼을 보여주는 다양한 TensorFlow Lite 예제에 대한 개요를 제공합니다.
요약
이 가이드에서는 TFLite 형식으로 내보내는 방법에 중점을 두었습니다. Ultralytics YOLO11 모델을 TFLite 모델 형식으로 변환하면 YOLO11 모델의 효율성과 속도를 개선하여 보다 효과적이고 엣지 컴퓨팅 환경에 적합하게 만들 수 있습니다.
사용법에 대한 자세한 내용은 TFLite 공식 문서를 참조하세요.
또한 다른 Ultralytics YOLO11 연동 기능에 대해 궁금한 점이 있다면 연동 가이드 페이지를 확인해 보세요. 유용한 정보와 인사이트가 가득합니다.
자주 묻는 질문
YOLO11 모델을 TFLite 형식으로 내보내려면 어떻게 하나요?
YOLO11 모델을 TFLite 형식으로 내보내려면 Ultralytics 라이브러리를 사용할 수 있습니다. 먼저 다음을 사용하여 필요한 패키지를 설치합니다:
그런 다음 다음 코드 스니펫을 사용하여 모델을 내보냅니다:
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to TFLite format
model.export(format="tflite") # creates 'yolo11n_float32.tflite'
CLI 사용자의 경우 다음을 사용하여 이 작업을 수행할 수 있습니다:
자세한 내용은 내보내기 가이드(Ultralytics )를 참조하세요.
YOLO11 모델 배포에 TensorFlow Lite를 사용하면 어떤 이점이 있나요?
TensorFlow 라이트(TFLite)는 온디바이스 추론을 위해 설계된 오픈 소스 딥 러닝 프레임워크로, 모바일, 임베디드 및 IoT 디바이스에 YOLO11 모델을 배포하는 데 이상적입니다. 주요 이점은 다음과 같습니다:
- 온디바이스 최적화: 데이터를 로컬에서 처리하여 지연 시간을 최소화하고 개인 정보 보호를 강화합니다.
- 플랫폼 호환성: Android , iOS, 임베디드 Linux 및 MCU를 지원합니다.
- 성능: 하드웨어 가속을 활용하여 모델 속도와 효율성을 최적화합니다.
자세한 내용은 TFLite 가이드에서 확인하세요.
라즈베리파이에서 YOLO11 TFLite 모델을 실행할 수 있나요?
예, 라즈베리 파이에서 YOLO11 TFLite 모델을 실행하여 추론 속도를 향상시킬 수 있습니다. 먼저, 위에서 설명한 대로 모델을 TFLite 형식으로 내보냅니다. 그런 다음 TensorFlow Lite 인터프리터와 같은 도구를 사용해 Raspberry Pi에서 모델을 실행합니다.
추가 최적화를 위해 Coral Edge TPU 사용을 고려할 수 있습니다. 자세한 단계는 라즈베리파이 배포 가이드와 Edge TPU 통합 가이드를 참조하세요.
YOLO11 예측에 마이크로 컨트롤러에서 TFLite 모델을 사용할 수 있나요?
예, TFLite는 리소스가 제한된 마이크로컨트롤러에 배포할 수 있도록 지원합니다. TFLite의 코어 런타임은 Arm Cortex M3에서 16KB의 메모리만 필요하며 기본 YOLO11 모델을 실행할 수 있습니다. 따라서 최소한의 연산 능력과 메모리를 갖춘 디바이스에 배포하기에 적합합니다.
시작하려면 마이크로컨트롤러용 TFLite 마이크로 가이드를 참조하세요.
내보낸 TFLite YOLO11 모델과 호환되는 플랫폼은 무엇인가요?
TensorFlow 라이트는 광범위한 플랫폼 호환성을 제공하므로 다음을 포함한 다양한 디바이스에 YOLO11 모델을 배포할 수 있습니다:
- Android 및 iOS: TFLite Android 및 iOS 라이브러리를 통한 네이티브 지원.
- 임베디드 Linux: 라즈베리 파이와 같은 단일 보드 컴퓨터에 이상적입니다.
- 마이크로컨트롤러: 리소스가 제한된 MCU에 적합합니다.
배포 옵션에 대한 자세한 내용은 자세한 배포 가이드를 참조하세요.
YOLO11 모델을 TFLite로 내보내는 동안 발생하는 일반적인 문제를 해결하려면 어떻게 해야 하나요?
YOLO11 모델을 TFLite로 내보내는 동안 오류가 발생하는 경우 일반적인 해결 방법은 다음과 같습니다:
- 패키지 호환성을 확인하세요: 호환되는 버전의 Ultralytics 및 TensorFlow 을 사용하고 있는지 확인하세요. 설치 가이드를 참조하세요.
- 모델 지원: 여기를 확인하여 특정 YOLO11 모델이 TFLite 내보내기를 지원하는지 확인합니다.
- 정량화 문제: INT8 양자화를 사용하는 경우 데이터 세트 경로가 올바르게 지정되었는지 확인하십시오.
data
매개변수입니다.
추가적인 문제 해결 팁은 일반적인 문제 가이드를 참조하세요.