YOLO26에서 배포용 TF GraphDef로 내보내는 방법#
YOLO26과 같은 최첨단 컴퓨터 비전 모델을 다양한 환경에 배포할 때 호환성 문제가 발생할 수 있습니다. Google의 TensorFlow GraphDef, 즉 TF GraphDef는 모델의 직렬화된 플랫폼 독립적 표현을 제공하여 이러한 문제를 해결합니다. TF GraphDef 모델 형식을 사용하면 모바일 장치나 특수 하드웨어처럼 완전한 TensorFlow 에코시스템을 사용할 수 없는 환경에도 YOLO26 모델을 배포할 수 있습니다.
이 가이드에서는 Ultralytics YOLO26 모델을 TF GraphDef 모델 형식으로 내보내는 방법을 단계별로 안내합니다. 모델을 변환하면 배포를 간소화하고 더 다양한 애플리케이션과 플랫폼에서 YOLO26의 컴퓨터 비전 기능을 활용할 수 있습니다.
TF GraphDef로 내보내야 하는 이유#
TF GraphDef는 Google이 개발한 TensorFlow 에코시스템의 강력한 구성 요소입니다. YOLO26과 같은 모델을 최적화하고 배포하는 데 사용할 수 있습니다. TF GraphDef로 내보내면 모델을 연구 단계에서 실제 애플리케이션으로 옮길 수 있습니다. 전체 TensorFlow 프레임워크가 없는 환경에서도 모델을 실행할 수 있습니다.
GraphDef 형식은 모델을 직렬화된 연산 그래프로 나타냅니다. 이를 통해 상수 접기, 양자화, 그래프 변환과 같은 다양한 최적화 기법을 적용할 수 있습니다. 이러한 최적화는 효율적인 실행, 메모리 사용량 감소, 추론 속도 향상을 보장합니다.
GraphDef 모델은 GPU, TPU, AI 칩과 같은 하드웨어 가속기를 활용하여 YOLO26 추론 파이프라인의 성능을 크게 높일 수 있습니다. TF GraphDef 형식은 모델과 종속성을 자체적으로 포함하는 패키지를 생성하므로 다양한 시스템에 배포하고 통합하기가 간편합니다.
TF GraphDef 모델의 주요 기능#
TF GraphDef는 모델 배포와 최적화를 간소화하는 다양한 기능을 제공합니다.
주요 특징은 다음과 같습니다.
-
모델 직렬화: TF GraphDef는 TensorFlow 모델을 플랫폼 독립적인 형식으로 직렬화하고 저장하는 방법을 제공합니다. 이 직렬화된 표현을 사용하면 원본 Python 코드베이스 없이도 모델을 로드하고 실행할 수 있어 배포가 간편해집니다.
-
그래프 최적화: TF GraphDef를 사용하면 연산 그래프를 최적화할 수 있습니다. 실행 흐름을 간소화하고, 중복을 줄이며, 특정 하드웨어에 맞게 연산을 조정하는 이러한 최적화는 성능을 높여 줍니다.
-
유연한 배포: GraphDef 형식으로 내보낸 모델은 리소스가 제한된 장치, 웹 브라우저, 특수 하드웨어를 탑재한 시스템 등 다양한 환경에서 사용할 수 있습니다. 이를 통해 TensorFlow 모델을 더 폭넓게 배포할 수 있습니다.
-
프로덕션 중심 설계: GraphDef는 프로덕션 배포를 위해 설계되었습니다. 효율적인 실행, 직렬화 기능, 실제 사용 사례에 적합한 최적화를 지원합니다.
TF GraphDef를 사용한 배포 옵션#
YOLO26 모델을 TF GraphDef로 내보내는 과정을 살펴보기 전에, 이 형식을 사용하는 일반적인 배포 상황을 알아보겠습니다.
다양한 플랫폼에서 TF GraphDef를 효율적으로 배포하는 방법은 다음과 같습니다.
-
TensorFlow Serving: 이 프레임워크는 프로덕션 환경에 TensorFlow 모델을 배포하도록 설계되었습니다. TensorFlow Serving은 모델 관리, 버전 관리, 대규모 모델 서빙을 위한 인프라를 제공합니다. GraphDef 기반 모델을 프로덕션 웹 서비스나 API에 원활하게 통합할 수 있습니다.
-
모바일 및 임베디드 장치: LiteRT와 같은 도구를 사용하면 TF GraphDef 모델을 스마트폰, 태블릿, 다양한 임베디드 장치에 최적화된 형식으로 변환할 수 있습니다. 이렇게 변환된 모델은 장치에서 로컬로 실행되는 온디바이스 추론에 사용할 수 있으며, 성능 향상과 오프라인 기능을 제공하는 경우가 많습니다.
-
웹 브라우저: TensorFlow.js를 사용하면 웹 브라우저 내에서 TF GraphDef 모델을 직접 배포할 수 있습니다. 이를 통해 JavaScript에서 YOLO26의 기능을 활용하는 클라이언트 측 실시간 객체 탐지 애플리케이션을 구현할 수 있습니다.
-
특수 하드웨어: TF GraphDef는 플랫폼에 종속되지 않으므로 가속기와 TPU(Tensor Processing Units) 같은 맞춤형 하드웨어를 대상으로 사용할 수 있습니다. 이러한 장치는 연산량이 많은 모델의 성능을 높일 수 있습니다.
지원 작업#
TF GraphDef 내보내기는 Ultralytics의 7개 작업 중 6개를 지원합니다. 시맨틱 세그멘테이션과 깊이 추정은 해당 헤드를 탑재한 유일한 제품군인 YOLO26에서만 사용할 수 있습니다. 포즈 모델은 내보낼 수 있지만, 현재 Ultralytics GraphDef 추론은 지원되지 않습니다.
YOLO26 모델을 TF GraphDef로 내보내기#
YOLO26 모델을 다양한 시스템과 호환되는 TF GraphDef 형식으로 변환하면 여러 플랫폼에서 성능을 개선할 수 있습니다.
설치#
필수 패키지를 설치하려면 다음을 실행하세요:
# Install the required package for YOLO26
pip install ultralytics설치 절차에 대한 자세한 지침과 모범 사례는 Ultralytics 설치 가이드를 참조하세요. YOLO26에 필요한 패키지를 설치하는 중 문제가 발생하면 해결 방법과 팁을 확인할 수 있는 일반적인 문제 가이드를 참조하세요.
사용법#
모든 Ultralytics YOLO26 모델은 별도의 설정 없이 내보내기를 지원하도록 설계되어 있어 원하는 배포 워크플로에 쉽게 통합할 수 있습니다. 애플리케이션에 가장 적합한 설정을 선택하려면 지원되는 내보내기 형식 및 구성 옵션 전체 목록을 확인하세요.
TF GraphDef 형식은 포즈 모델의 경우 현재 내보내기만 지원하는 것을 제외하면 내보내기, 예측, 검증 모드를 지원합니다. 모델을 내보낸 다음 내보낸 모델을 로드하여 추론을 실행하거나 정확도를 검증하세요.
from ultralytics import YOLO
# YOLO26 모델 로드
model = YOLO("yolo26n.pt")
# 모델을 TF GraphDef 형식으로 내보내기
model.export(format="pb") # 'yolo26n.pb' 생성from ultralytics import YOLO
# 내보낸 TF GraphDef 모델 로드
model = YOLO("yolo26n.pb")
# 추론 실행
results = model("https://ultralytics.com/images/bus.jpg")from ultralytics import YOLO
# 내보낸 TF GraphDef 모델 로드
model = YOLO("yolo26n.pb")
# COCO8 데이터셋에서 정확도 검증
metrics = model.val(data="coco8.yaml")내보내기 인수#
| 인수 | 유형 | 기본값 | 설명 |
|---|---|---|---|
format | str | 'pb' | 내보낸 모델의 대상 형식으로, 다양한 배포 환경과의 호환성을 정의합니다. |
imgsz | int 또는 tuple | 640 | 모델 입력에 사용할 이미지 크기입니다. 정사각형 이미지에는 정수를 사용하고, 특정 크기에는 튜플 (height, width)을 사용할 수 있습니다. |
quantize | int 또는 str | None | FP32로 고정 내보내기입니다. GraphDef는 내보내기 시 FP16, INT8, W8A16 정밀도 변환을 지원하지 않습니다. |
opset | int | None | 중간 ONNX 그래프의 ONNX opset 버전을 지정합니다. 설정하지 않으면 지원되는 최신 버전을 사용합니다. |
batch | int | 1 | 내보내기 모델의 배치 추론 크기 또는 predict 모드에서 내보낸 모델이 동시에 처리할 최대 이미지 수를 지정합니다. |
device | str | None | 내보내기에 사용할 디바이스를 지정합니다. CPU는 device=cpu, Apple 실리콘용 MPS는 device=mps입니다. |
내보내기 프로세스에 관한 자세한 내용은 내보내기에 관한 Ultralytics 문서 페이지를 참조하세요.
내보낸 YOLO26 TF GraphDef 모델 배포#
YOLO26 모델을 TF GraphDef 형식으로 내보낸 다음에는 모델을 배포해야 합니다. 앞서 사용 예제 코드에서 보여 준 것처럼 TF GraphDef 모델을 실행하는 가장 기본적이고 권장되는 첫 단계는 YOLO("model.pb") 메서드를 사용하는 것입니다.
TF GraphDef 모델 배포에 관한 자세한 내용은 다음 자료를 참고하세요.
-
TensorFlow Serving: 프로덕션 환경에서 머신러닝 모델을 효율적으로 배포하고 서빙하는 방법을 안내하는 TensorFlow Serving 가이드입니다.
-
TensorFlow Lite: 이 페이지에서는 온디바이스 추론에 최적화된 형식으로 머신러닝 모델을 변환하는 방법을 설명합니다.
-
TensorFlow.js: 웹 애플리케이션에서 사용할 수 있도록 TensorFlow 또는 Keras 모델을 TensorFlow.js 형식으로 변환하는 방법을 안내하는 모델 변환 가이드입니다.
요약#
이 가이드에서는 Ultralytics YOLO26 모델을 TF GraphDef 형식으로 내보내는 방법을 살펴보았습니다. 이 작업을 통해 최적화된 YOLO26 모델을 다양한 환경에 유연하게 배포할 수 있습니다.
사용법에 관한 자세한 내용은 TF GraphDef 공식 문서를 참고하세요.
Ultralytics YOLO26을 다른 플랫폼 및 프레임워크와 통합하는 방법은 통합 가이드 페이지를 참고하세요.
자주 묻는 질문#
Ultralytics YOLO26 모델은 TensorFlow GraphDef(TF GraphDef) 형식으로 원활하게 내보낼 수 있습니다. 이 형식은 모델을 직렬화된 플랫폼 독립적 표현으로 제공하므로 모바일과 웹을 비롯한 다양한 환경에 배포하기에 적합합니다. YOLO26 모델을 TF GraphDef로 내보내려면 다음 단계를 따르세요.
사용법from ultralytics import YOLO # YOLO26 모델 로드 model = YOLO("yolo26n.pt") # 모델을 TF GraphDef 형식으로 내보내기 model.export(format="pb") # 'yolo26n.pb' 생성 # 내보낸 TF GraphDef 모델 로드 tf_graphdef_model = YOLO("yolo26n.pb") # 추론 실행 results = tf_graphdef_model("https://ultralytics.com/images/bus.jpg")다양한 내보내기 옵션에 관한 자세한 내용은 모델 내보내기에 관한 Ultralytics 문서를 참고하세요.
YOLO26 모델을 TF GraphDef 형식으로 내보내면 다음과 같은 여러 이점이 있습니다.
- 플랫폼 독립성: TF GraphDef는 플랫폼 독립적인 형식을 제공하므로 모바일과 웹 브라우저를 비롯한 다양한 환경에 모델을 배포할 수 있습니다.
- 최적화: 이 형식을 사용하면 상수 접기, 양자화, 그래프 변환과 같은 여러 최적화를 적용할 수 있어 실행 효율이 높아지고 메모리 사용량이 줄어듭니다.
- 하드웨어 가속: TF GraphDef 형식의 모델은 GPU, TPU, AI 칩과 같은 하드웨어 가속기를 활용하여 성능을 높일 수 있습니다.
자세한 이점은 문서의 TF GraphDef 섹션에서 확인하세요.
Ultralytics YOLO26은 YOLOv5 및 YOLOv7과 같은 다른 모델에 비해 다양한 이점을 제공합니다. 주요 이점은 다음과 같습니다.
- 최첨단 성능: YOLO26은 실시간 객체 탐지, 인스턴스 세그멘테이션, 시맨틱 세그멘테이션, 분류에서 탁월한 속도와 정확도를 제공합니다.
- 간편한 사용: 모델 학습, 검증, 예측, 내보내기를 위한 사용자 친화적인 API를 제공하므로 초보자와 전문가 모두 쉽게 사용할 수 있습니다.
- 폭넓은 호환성: 다양한 배포 옵션을 위해 ONNX, TensorRT, CoreML, TensorFlow 등 여러 내보내기 형식을 지원합니다.
자세한 내용은 YOLO26 소개에서 확인하세요.
YOLO26 모델을 TF GraphDef 형식으로 내보내면 다양한 특수 하드웨어 플랫폼에 배포할 수 있습니다. 일반적인 배포 시나리오는 다음과 같습니다.
- TensorFlow Serving: TensorFlow Serving을 사용하여 프로덕션 환경에 모델을 확장성 있게 배포하세요. TensorFlow Serving은 모델 관리와 효율적인 서빙을 지원합니다.
- 모바일 장치: TF GraphDef 모델을 모바일 및 임베디드 장치에 최적화된 TensorFlow Lite로 변환하여 온디바이스 추론을 구현하세요.
- 웹 브라우저: TensorFlow.js를 사용하여 웹 애플리케이션에서 클라이언트 측 추론을 수행하도록 모델을 배포하세요.
- AI 가속기: TPU와 맞춤형 AI 칩을 활용하여 추론을 가속하세요.
자세한 내용은 배포 옵션 섹션을 확인하세요.
Ultralytics는 YOLO26 모델 내보내기와 관련된 일반적인 문제를 해결할 수 있도록 포괄적인 가이드와 자료를 제공합니다. 설치 또는 모델 내보내기 중 문제가 발생하면 다음 자료를 참고하세요.
- 일반적인 문제 가이드: 자주 발생하는 문제에 대한 해결 방법을 제공합니다.
- 설치 가이드: 필요한 패키지를 설정하는 방법을 단계별로 안내합니다.
이 자료를 통해 YOLO26 모델 내보내기 및 배포와 관련된 대부분의 문제를 해결할 수 있습니다.