YOLO Vision 2026:

Ultralytics YOLO NCNN 내보내기#

모바일이나 임베디드 시스템과 같이 컴퓨팅 성능이 제한된 장치에 컴퓨터 비전 모델을 배포하려면 신중한 형식 선택이 필요합니다. 최적화된 형식을 사용하면 자원이 제한된 장치에서도 고급 컴퓨터 비전 작업을 효율적으로 처리할 수 있습니다.

NCNN 형식으로 내보내면 Ultralytics YOLO26 모델을 경량 장치 기반 애플리케이션에 맞게 최적화할 수 있습니다. 이 가이드에서는 모바일 및 임베디드 장치에서 성능을 향상시키기 위해 모델을 NCNN 형식으로 변환하는 방법을 다룹니다.

왜 NCNN으로 내보내야 하나요?#

NCNN high-performance neural network inference framework

Tencent에서 개발한 NCNN 프레임워크는 휴대폰, 임베디드 장치, IoT 장치를 포함한 모바일 플랫폼에 최적화된 고성능 신경망 추론 컴퓨팅 프레임워크입니다. NCNN은 Linux, Android, iOS 및 macOS를 포함한 광범위한 플랫폼과 호환됩니다.

NCNN은 모바일 CPU에서 빠른 처리 속도로 잘 알려져 있으며, 딥러닝 모델을 모바일 플랫폼에 빠르게 배포할 수 있게 하여 AI 기반 애플리케이션 구축에 탁월한 선택입니다.

NCNN 모델의 주요 특징#

NCNN 모델은 온디바이스 머신러닝을 가능하게 하는 몇 가지 주요 특징을 제공하며, 개발자가 모바일, 임베디드 및 엣지 장치에 모델을 배포하도록 돕습니다:

  • 효율성 및 고성능: NCNN 모델은 가볍고 Raspberry Pi와 같이 리소스가 제한된 모바일 및 임베디드 장치에 최적화되어 있으며, 컴퓨터 비전 작업에서 높은 정확도를 유지합니다.

  • 양자화: NCNN은 모델 가중치와 활성화 값의 정밀도를 낮추어 성능을 개선하고 메모리 사용량을 줄이는 기법인 양자화를 지원합니다.

  • 호환성: NCNN 모델은 TensorFlow, Caffe, ONNX를 포함한 인기 있는 딥러닝 프레임워크와 호환되어 개발자가 기존 모델과 워크플로우를 활용할 수 있습니다.

  • 사용 편의성: NCNN은 모델 간 형식 변환을 위한 사용자 친화적인 도구를 제공하여 서로 다른 개발 환경 간의 원활한 상호 운용성을 보장합니다.

  • Vulkan GPU 가속: NCNN은 AMD, Intel 및 기타 비-NVIDIA GPU를 포함한 여러 공급업체의 GPU 가속 추론을 위해 Vulkan을 지원하며, 더 넓은 범위의 하드웨어에서 고성능 배포를 가능하게 합니다.

NCNN을 이용한 배포 옵션#

NCNN 모델은 다양한 배포 플랫폼과 호환됩니다:

  • 모바일 배포: Android 및 iOS에 최적화되어 효율적인 온디바이스 추론을 위해 모바일 애플리케이션에 원활하게 통합할 수 있습니다.

  • 임베디드 시스템 및 IoT 장치: Raspberry Pi 및 NVIDIA Jetson과 같이 리소스가 제한된 장치에 이상적입니다. Ultralytics 가이드를 사용한 Raspberry Pi에서의 표준 추론이 충분하지 않은 경우, NCNN은 상당한 성능 향상을 제공할 수 있습니다.

  • 데스크톱 및 서버 배포: 개발, 학습 및 평가 워크플로우를 위해 Linux, Windows 및 macOS 전반의 배포를 지원합니다.

Vulkan GPU 가속#

NCNN은 Vulkan을 통해 GPU 가속을 지원하며, AMD, Intel 및 기타 비-NVIDIA 그래픽 카드를 포함한 광범위한 GPU에서 고성능 추론을 가능하게 합니다. 이는 특히 다음 상황에서 유용합니다:

  • 교차 공급업체 GPU 지원: NVIDIA GPU로 제한되는 CUDA와 달리, Vulkan은 여러 GPU 공급업체에 걸쳐 작동합니다.
  • 다중 GPU 시스템: device="vulkan:0", device="vulkan:1" 등을 사용하여 여러 GPU가 있는 시스템에서 특정 Vulkan 장치를 선택할 수 있습니다.
  • 엣지 및 데스크톱 배포: CUDA를 사용할 수 없는 장치에서 GPU 가속을 활용할 수 있습니다.

Vulkan 가속을 사용하려면 추론 실행 시 Vulkan 장치를 지정하십시오:

Vulkan 추론
from ultralytics import YOLO

# Load the exported NCNN model
ncnn_model = YOLO("./yolo26n_ncnn_model")

# Run inference with Vulkan GPU acceleration (first Vulkan device)
results = ncnn_model("https://ultralytics.com/images/bus.jpg", device="vulkan:0")

# Use second Vulkan device in multi-GPU systems
results = ncnn_model("https://ultralytics.com/images/bus.jpg", device="vulkan:1")
Vulkan 요구 사항

GPU용 Vulkan 드라이버가 설치되어 있는지 확인하십시오. 대부분의 최신 GPU 드라이버에는 기본적으로 Vulkan 지원이 포함되어 있습니다. Linux의 vulkaninfo나 Windows의 Vulkan SDK와 같은 도구를 사용하여 Vulkan 가용성을 확인할 수 있습니다.

지원되는 작업#

NCNN 내보내기는 모든 7가지 Ultralytics 태스크를 지원합니다. 의미론적 분할(semantic segmentation) 및 깊이 추정(depth estimation)은 해당 헤드를 탑재한 유일한 패밀리인 YOLO26에서만 사용할 수 있습니다.

작업YOLOv8YOLO11YOLO26
Detect
Segment
Semantic
Depth
Classify
포즈(Pose)
OBB

NCNN으로 내보내기: YOLO26 모델 변환하기#

YOLO26 모델을 NCNN 형식으로 변환하여 모델 호환성과 배포 유연성을 확장할 수 있습니다.

설치#

필수 패키지를 설치하려면 다음을 실행하십시오:

설치
# Install the required package for YOLO26
pip install ultralytics

자세한 지침과 모범 사례는 Ultralytics 설치 가이드를 참조하십시오. 문제가 발생하면 일반적인 문제 가이드에서 해결 방법을 확인하십시오.

사용법#

모든 Ultralytics YOLO26 모델은 즉시 내보내기를 지원하도록 설계되어 있어 선호하는 배포 워크플로우에 쉽게 통합할 수 있습니다. 전체 지원 내보내기 형식 및 구성 옵션 목록을 보고 애플리케이션에 가장 적합한 설정을 선택할 수 있습니다.

NCNN 형식은 내보내기, 예측검증 모드를 지원합니다. 모델을 내보낸 다음, 내보낸 모델을 로드하여 추론을 실행하거나 정확도를 검증하십시오.

내보내기(Export)
from ultralytics import YOLO

# Load a YOLO26 model
model = YOLO("yolo26n.pt")

# Export the model to NCNN format
model.export(format="ncnn")  # creates '/yolo26n_ncnn_model'
추론(Predict)
from ultralytics import YOLO

# Load the exported NCNN model
model = YOLO("./yolo26n_ncnn_model")

# Run inference
results = model("https://ultralytics.com/images/bus.jpg")
검증
from ultralytics import YOLO

# Load the exported NCNN model
model = YOLO("./yolo26n_ncnn_model")

# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")

내보내기 인수#

인수유형기본값설명
formatstr'ncnn'내보낸 모델의 대상 형식이며, 다양한 배포 환경과의 호환성을 정의합니다.
imgszint 또는 tuple640모델 입력에 필요한 이미지 크기입니다. 정사각형 이미지의 경우 정수를 사용할 수 있으며, 특정 치수의 경우 (height, width) 튜플을 사용할 수 있습니다.
quantizeint 또는 strNone양자화 정밀도: 16(FP16)은 모델 크기를 줄이고 추론 속도를 높일 수 있으며, 32/미설정 시 FP32가 적용됩니다. 이는 더 이상 사용되지 않는 half 플래그를 대체합니다.
batchint1내보낸 모델의 배치 추론 크기 또는 내보낸 모델이 predict 모드에서 동시에 처리할 최대 이미지 수를 지정합니다.
devicestrNone내보내기를 위한 장치를 지정합니다: GPU(device=0), CPU(device=cpu), Apple silicon용 MPS(device=mps).

내보내기 프로세스에 대한 자세한 내용은 내보내기에 대한 Ultralytics 문서 페이지를 참조하십시오.

내보낸 YOLO26 NCNN 모델 배포하기#

Ultralytics YOLO26 모델을 NCNN 형식으로 내보낸 후, 위의 사용 예시와 같이 YOLO("yolo26n_ncnn_model/") 메서드를 사용하여 배포할 수 있습니다. 플랫폼별 배포 지침은 다음 리소스를 참조하십시오:

  • Android: Android 애플리케이션에서 객체 탐지를 위해 NCNN 모델을 빌드하고 통합하십시오.

  • macOS: macOS 시스템에 NCNN 모델을 배포하십시오.

  • Linux: Raspberry Pi 및 유사한 임베디드 시스템을 포함한 Linux 장치에 NCNN 모델을 배포하십시오.

  • Windows x64: Visual Studio를 사용하여 Windows x64에 NCNN 모델을 배포하십시오.

요약#

이 가이드에서는 리소스가 제한된 장치에서 효율성과 속도를 높이기 위해 Ultralytics YOLO26 모델을 NCNN 형식으로 내보내는 방법을 다루었습니다.

추가 정보는 공식 NCNN 문서를 참조하십시오. 다른 내보내기 옵션은 통합 가이드 페이지를 방문하십시오.

FAQ#

Ultralytics YOLO26 모델을 NCNN 형식으로 어떻게 내보내나요?#

Ultralytics YOLO26 모델을 NCNN 형식으로 내보내려면:

  • Python: YOLO 클래스의 export 메서드를 사용하십시오.

    from ultralytics import YOLO
    
    # Load a YOLO26 model
    model = YOLO("yolo26n.pt")
    
    # Export to NCNN format
    model.export(format="ncnn")  # creates '/yolo26n_ncnn_model'
  • CLI: yolo export 명령어를 사용하십시오.

    yolo export model=yolo26n.pt format=ncnn # creates '/yolo26n_ncnn_model'

자세한 내보내기 옵션은 내보내기 문서를 참조하십시오.

YOLO26 모델을 NCNN으로 내보내면 어떤 장점이 있나요?#

Ultralytics YOLO26 모델을 NCNN으로 내보내면 다음과 같은 이점이 있습니다:

  • 효율성: NCNN 모델은 모바일 및 임베디드 장치에 최적화되어 제한된 컴퓨팅 자원으로도 높은 성능을 보장합니다.
  • 양자화: NCNN은 모델 속도를 향상시키고 메모리 사용량을 줄이는 양자화와 같은 기술을 지원합니다.
  • 폭넓은 호환성: Android, iOS, Linux 및 macOS를 포함한 여러 플랫폼에 NCNN 모델을 배포할 수 있습니다.
  • Vulkan GPU 가속: Vulkan을 통해 AMD, Intel 및 기타 비-NVIDIA GPU에서 GPU 가속을 활용하여 더 빠른 추론이 가능합니다.

자세한 내용은 왜 NCNN으로 내보내야 하나요? 섹션을 참조하십시오.

모바일 AI 애플리케이션에 NCNN을 사용해야 하는 이유는 무엇인가요?#

Tencent에서 개발한 NCNN은 모바일 플랫폼에 특별히 최적화되어 있습니다. NCNN을 사용해야 하는 주요 이유는 다음과 같습니다:

  • 고성능: 모바일 CPU에서 효율적이고 빠른 처리를 위해 설계되었습니다.
  • 교차 플랫폼: TensorFlow 및 ONNX와 같은 인기 프레임워크와 호환되어 다양한 플랫폼 간에 모델을 쉽게 변환하고 배포할 수 있습니다.
  • 커뮤니티 지원: 활발한 커뮤니티 지원으로 지속적인 개선과 업데이트가 이루어집니다.

자세한 정보는 NCNN 모델의 주요 특징 섹션을 참조하십시오.

NCNN 모델 배포는 어떤 플랫폼을 지원하나요?#

NCNN은 범용성이 뛰어나 다양한 플랫폼을 지원합니다:

  • 모바일: Android, iOS.
  • 임베디드 시스템 및 IoT 장치: Raspberry Pi 및 NVIDIA Jetson과 같은 장치.
  • 데스크톱 및 서버: Linux, Windows 및 macOS.

Raspberry Pi에서 성능을 향상시키려면 Raspberry Pi 가이드에 자세히 설명된 NCNN 형식을 사용하는 것을 고려하십시오.

Android에 Ultralytics YOLO26 NCNN 모델을 어떻게 배포할 수 있나요?#

Android에 YOLO26 모델을 배포하려면:

  1. Android용 빌드: Android용 NCNN 빌드 가이드를 따르십시오.
  2. 앱 통합: NCNN Android SDK를 사용하여 내보낸 모델을 애플리케이션에 통합하여 효율적인 온디바이스 추론을 구현하십시오.

자세한 지침은 내보낸 YOLO26 NCNN 모델 배포하기를 참조하십시오.

더 고급 가이드와 사용 사례는 Ultralytics 배포 가이드를 방문하십시오.

NCNN 모델에서 Vulkan GPU 가속은 어떻게 사용하나요?#

NCNN은 AMD, Intel 및 기타 비-NVIDIA GPU에서 GPU 가속을 위한 Vulkan을 지원합니다. Vulkan을 사용하려면:

from ultralytics import YOLO

# Load NCNN model and run with Vulkan GPU
model = YOLO("yolo26n_ncnn_model")
results = model("image.jpg", device="vulkan:0")  # Use first Vulkan device

다중 GPU 시스템의 경우 장치 인덱스를 지정하십시오(예: 두 번째 GPU의 경우 vulkan:1). GPU용 Vulkan 드라이버가 설치되어 있는지 확인하십시오. 자세한 내용은 Vulkan GPU 가속 섹션을 참조하십시오.

댓글