콘텐츠로 건너뛰기

원활한 배포를 위해 YOLO11 에서 NCNN 로 내보내는 방법

모바일이나 임베디드 시스템과 같이 연산 능력이 제한된 디바이스에 컴퓨터 비전 모델을 배포하는 것은 까다로울 수 있습니다. 최적의 성능을 위해 최적화된 포맷을 사용해야 합니다. 이렇게 하면 처리 능력이 제한된 디바이스에서도 고급 컴퓨터 비전 작업을 원활하게 처리할 수 있습니다.

NCNN 형식으로 내보내기 기능을 사용하면 경량 디바이스 애플리케이션에 맞게 Ultralytics YOLO11 모델을 경량 디바이스 기반 애플리케이션에 최적화할 수 있습니다. 이 가이드에서는 모델을 NCNN 형식으로 변환하는 방법을 안내하여 다양한 모바일 및 임베디드 디바이스에서 모델이 더 쉽게 작동할 수 있도록 합니다.

NCNN 으로 내보내야 하는 이유는 무엇인가요?

NCNN 개요

텐센트에서 개발한 NCNN 프레임워크는 휴대폰, 임베디드 디바이스, IoT 디바이스 등 모바일 플랫폼에 특별히 최적화된 고성능 신경망 추론 컴퓨팅 프레임워크입니다. NCNN 는 Linux, Android, iOS, macOS 등 다양한 플랫폼과 호환됩니다.

NCNN 는 모바일 CPU의 빠른 처리 속도로 유명하며 딥 러닝 모델을 모바일 플랫폼에 빠르게 배포할 수 있습니다. 이를 통해 스마트 앱을 더 쉽게 구축할 수 있어 AI의 강력한 성능을 손끝에서 바로 활용할 수 있습니다.

NCNN 모델의 주요 기능

NCNN 모델은 개발자가 모바일, 임베디드 및 에지 디바이스에서 모델을 실행할 수 있도록 지원하여 온디바이스 머신 러닝을 가능하게 하는 다양한 주요 기능을 제공합니다:

  • 효율성과 고성능: NCNN 모델은 효율적이고 가벼워 리소스가 제한된 모바일 및 임베디드 장치(예: Raspberry Pi)에서 실행하는 데 최적화되어 있습니다. 또한 다양한 컴퓨터 비전 기반 작업에서 높은 정확도로 고성능을 달성할 수 있습니다.

  • 양자화: NCNN 모델은 종종 모델의 가중치 및 활성화의 정밀도를 낮추는 기술인 양자화를 지원합니다. 이를 통해 성능이 더욱 향상되고 메모리 사용량이 줄어듭니다.

  • 호환성: NCNN 모델은 다음과 같이 널리 사용되는 딥 러닝 프레임워크와 호환됩니다. TensorFlow, CaffeONNX. 이러한 호환성 덕분에 개발자는 기존 모델과 워크플로를 쉽게 사용할 수 있습니다.

  • 사용 편의성: NCNN 모델은 널리 사용되는 딥 러닝 프레임워크와의 호환성 덕분에 다양한 애플리케이션에 쉽게 통합할 수 있도록 설계되었습니다. 또한 NCNN 에서는 다양한 형식 간의 모델 변환을 위한 사용자 친화적인 도구를 제공하여 개발 환경 전반에서 원활한 상호 운용성을 보장합니다.

배포 옵션 NCNN

YOLO11 모델을 NCNN 형식으로 내보내는 코드를 살펴보기 전에 NCNN 모델이 일반적으로 어떻게 사용되는지 이해해 보겠습니다.

NCNN 효율성과 성능을 위해 설계된 모델은 다양한 배포 플랫폼과 호환됩니다:

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

  • 임베디드 시스템 및 IoT 디바이스: Ultralytics 가이드를 사용하여 라즈베리 파이에서 추론을 실행하는 것이 충분히 빠르지 않다면 NCNN 내보내기 모델로 전환하면 속도를 높일 수 있습니다. NCNN 는 특히 장치에서 바로 빠른 처리가 필요한 상황에서 라즈베리 파이 및 NVIDIA Jetson과 같은 장치에 유용합니다.

  • 데스크톱 및 서버 배포: Linux, Windows, macOS의 데스크톱 및 서버 환경에 배포할 수 있으며, 더 높은 연산 능력으로 개발, 교육 및 평가를 지원합니다.

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

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

설치

필요한 패키지를 설치하려면 실행합니다:

설치

# Install the required package for YOLO11
pip install ultralytics

설치 과정과 관련된 자세한 지침과 모범 사례는 Ultralytics 설치 가이드를 참조하세요. YOLO11 에 필요한 패키지를 설치하는 동안 문제가 발생하면 일반적인 문제 가이드를 참조하여 해결 방법과 팁을 확인하세요.

사용법

사용 지침을 살펴보기 전에 모든 Ultralytics YOLO11 모델에서 내보내기를 사용할 수 있지만, 선택한 모델이 내보내기 기능을 지원하는지 여기에서 확인할 수 있다는 점에 유의하세요.

사용법

from ultralytics import YOLO

# Load the YOLO11 model
model = YOLO("yolo11n.pt")

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

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

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

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

내보내기 인수

인수 유형 기본값 설명
format str 'ncnn' 내보낸 모델의 대상 형식으로, 다양한 배포 환경과의 호환성을 정의합니다.
imgsz int 또는 tuple 640 모델 입력에 사용할 원하는 이미지 크기입니다. 정사각형 이미지의 경우 정수 또는 튜플일 수 있습니다. (height, width) 를 입력합니다.
half bool False FP16(반정밀) 양자화를 활성화하여 모델 크기를 줄이고 지원되는 하드웨어에서 추론 속도를 높일 수 있습니다.
batch int 1 내보내기 모델 일괄 추론 크기 또는 내보낸 모델이 동시에 처리할 최대 이미지 수를 지정합니다. predict 모드로 전환합니다.

내보내기 프로세스에 대한 자세한 내용은 내보내기 관련 문서 페이지(Ultralytics )를 참조하세요.

내보낸 YOLO11 NCNN 모델 배포

Ultralytics YOLO11 모델을 NCNN 형식으로 성공적으로 내보낸 후에는 이제 배포할 수 있습니다. NCNN 모델을 실행하기 위한 기본적이고 권장되는 첫 번째 단계는 이전 사용 코드 스니펫에 설명된 대로 YOLO("yolo11n_ncnn_model/") 메서드를 활용하는 것입니다. 그러나 다양한 다른 설정에서 NCNN 모델을 배포하는 방법에 대한 자세한 지침은 다음 리소스를 참조하세요:

  • Android: 이 블로그에서는 Android 애플리케이션을 통해 객체 감지와 같은 작업을 수행하기 위해 NCNN 모델을 사용하는 방법을 설명합니다.

  • macOS: macOS를 통해 작업을 수행하기 위해 NCNN 모델을 사용하는 방법을 이해합니다.

  • Linux: 이 페이지를 살펴보고 라즈베리 파이 및 기타 유사한 장치와 같은 제한된 리소스 장치에 NCNN 모델을 배포하는 방법을 알아보세요.

  • VS2017을 사용하는 Windows x64: 이 블로그를 살펴보고 Visual Studio Community 2017을 사용하여 Windows x64에 NCNN 모델을 배포하는 방법을 알아보세요.

요약

이 가이드에서는 Ultralytics YOLO11 모델을 NCNN 형식으로 내보내는 방법에 대해 설명했습니다. 이 변환 단계는 YOLO11 모델의 효율성과 속도를 개선하여 리소스가 제한된 컴퓨팅 환경에 더 효과적이고 적합하게 만드는 데 매우 중요합니다.

사용법에 대한 자세한 지침은 공식 문서( NCNN )를 참조하세요.

또한 Ultralytics YOLO11 에 대한 다른 통합 옵션을 살펴보고 싶다면 통합 가이드 페이지를 방문하여 더 많은 인사이트와 정보를 확인하세요.

자주 묻는 질문

Ultralytics YOLO11 모델을 NCNN 형식으로 내보내려면 어떻게 하나요?

Ultralytics YOLO11 모델을 NCNN 형식으로 내보내려면 다음 단계를 따르세요:

  • Python: 사용 export 함수에서 YOLO 클래스의

    from ultralytics import YOLO
    
    # Load the YOLO11 model
    model = YOLO("yolo11n.pt")
    
    # Export to NCNN format
    model.export(format="ncnn")  # creates '/yolo11n_ncnn_model'
    
  • CLI: 사용 yolo 명령과 함께 export 인수입니다.

    yolo export model=yolo11n.pt format=ncnn # creates '/yolo11n_ncnn_model'
    

자세한 내보내기 옵션은 문서에서 내보내기 페이지를 확인하세요.

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

Ultralytics YOLO11 모델을 NCNN 로 내보내면 몇 가지 이점이 있습니다:

  • 효율성: NCNN 모델은 모바일 및 임베디드 디바이스에 최적화되어 있어 제한된 컴퓨팅 리소스로도 높은 성능을 보장합니다.
  • 양자화: NCNN 모델 속도를 개선하고 메모리 사용량을 줄이는 양자화와 같은 기술을 지원합니다.
  • 폭넓은 호환성: Android , iOS, Linux, macOS 등 여러 플랫폼에 NCNN 모델을 배포할 수 있습니다.

자세한 내용은 문서에서 NCNN 으로 내보내기 섹션을 참조하세요.

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

NCNN는 텐센트에서 개발한 앱으로 모바일 플랫폼에 최적화되어 있습니다. NCNN 을 사용해야 하는 주요 이유는 다음과 같습니다:

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

자세한 내용은 문서에서 NCNN 개요를 참조하세요.

NCNN 모델 배포에 지원되는 플랫폼은 무엇인가요?

NCNN 는 다목적이며 다양한 플랫폼을 지원합니다:

  • Mobile: Android, iOS.
  • 임베디드 시스템 및 IoT 장치: 라즈베리 파이 및 NVIDIA Jetson과 같은 장치.
  • 데스크톱 및 서버: Linux, Windows 및 macOS.

라즈베리 파이에서 모델을 실행하는 것이 충분히 빠르지 않은 경우, 라즈베리 파이 가이드에 자세히 설명된 대로 NCNN 형식으로 변환하면 속도를 높일 수 있습니다.

Android 에 Ultralytics YOLO11 NCNN 모델을 배포하려면 어떻게 해야 하나요?

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

  1. Android 용 빌드: NCNN Android 용 빌드 가이드를 따르세요.
  2. 앱과 통합하기: NCNN Android SDK를 사용하여 내보낸 모델을 애플리케이션에 통합하면 효율적인 온디바이스 추론이 가능합니다.

단계별 지침은 배포 가이드( YOLO11 NCNN 모델)를 참조하세요.

고급 가이드와 사용 사례는 Ultralytics 문서 페이지를 참조하세요.

📅1 년 전 생성됨 ✏️ 업데이트됨 3 일 전

댓글