콘텐츠로 건너뛰기

Ultralytics YOLO NCNN 내보내기

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

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

NCNN으로 내보내는 이유?

NCNN 신경망 추론 프레임워크

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

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

NCNN 모델의 주요 기능

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

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

  • 양자화: NCNN은 모델 가중치 및 활성화의 정밀도를 줄여 성능을 향상시키고 메모리 사용량을 줄이는 기술인 양자화를 지원합니다.

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

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

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

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 시스템: 다중 GPU 시스템에서 특정 Vulkan 장치를 선택하려면 다음을 사용하십시오: device="vulkan:0", device="vulkan:1"등.
  • 엣지 및 데스크톱 배포: 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")
# Run inference with Vulkan GPU acceleration
yolo predict model='./yolo26n_ncnn_model' source='https://ultralytics.com/images/bus.jpg' device=vulkan:0

Vulkan 요구 사항

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

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

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

설치

필수 패키지를 설치하려면 다음을 실행합니다:

설치

# Install the required package for YOLO26
pip install ultralytics

자세한 지침 및 모범 사례는 Ultralytics 설치 가이드를 참조하십시오. 어려움이 발생하면 해결책을 위해 일반적인 문제 가이드를 참조하십시오.

사용법

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

사용법

from ultralytics import YOLO

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

# Export the model to NCNN format
model.export(format="ncnn")  # creates '/yolo26n_ncnn_model'

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

# Run inference
results = ncnn_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO26n PyTorch model to NCNN format
yolo export model=yolo26n.pt format=ncnn # creates '/yolo26n_ncnn_model'

# Run inference with the exported model
yolo predict model='./yolo26n_ncnn_model' source='https://ultralytics.com/images/bus.jpg'

인수 내보내기

인수유형기본값설명
formatstr'ncnn'다양한 배포 환경과의 호환성을 정의하는 내보낸 모델의 대상 형식입니다.
imgszint 또는 tuple640모델 입력에 대한 원하는 이미지 크기입니다. 정사각형 이미지의 경우 정수이거나 튜플일 수 있습니다. (height, width) 특정 크기의 경우.
halfboolFalseFP16(반정밀도) 양자화를 활성화하여 모델 크기를 줄이고 지원되는 하드웨어에서 추론 속도를 높일 수 있습니다.
batchint1내보내기 모델 배치 추론 크기 또는 내보내기 모델이 동시에 처리할 이미지의 최대 수를 지정합니다. predict mode.
devicestrNone내보내기할 장치를 지정합니다: GPU (device=0), CPU (device=cpu), Apple Silicon용 MPS (device=mps)입니다.

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

내보낸 YOLO26 NCNN 모델 배포

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

  • Android: Android 애플리케이션에서 객체 detect를 위한 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: 다음을 사용하십시오. export YOLO 클래스의 메서드를 사용하십시오.

    from ultralytics import YOLO
    
    # Load the 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용 빌드: NCNN Android용 빌드 가이드를 따르십시오.
  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 시스템의 경우 장치 인덱스를 지정하십시오 (예: vulkan:1 두 번째 GPU의 경우). GPU에 Vulkan 드라이버가 설치되어 있는지 확인하십시오. 참조하십시오. Vulkan GPU 가속 섹션에서 자세한 내용을 확인하십시오.



5; 1 년 전에 생성됨 ✏️ 5 전에 업데이트됨
glenn-jocherlakshanthadRizwanMunawarFaerbitpderrengerlakshanthadUltralyticsAssistantMatthewNoyceabirami-vina

댓글