コンテンツにスキップ

Ultralytics YOLO NCNNエクスポート

モバイルや組み込みシステムなど、計算能力が限られたデバイスにコンピュータービジョンモデルをデプロイするには、慎重な形式選択が必要です。最適化された形式を使用することで、リソースが制約されたデバイスでも高度なコンピュータービジョンタスクを効率的に処理できます。

NCNN形式へのエクスポートにより、Ultralytics YOLO26モデルを軽量なデバイスベースのアプリケーション向けに最適化できます。このガイドでは、モバイルおよび組み込みデバイスでのパフォーマンスを向上させるために、モデルをNCNN形式に変換する方法について説明します。

なぜNCNNにエクスポートするのか?

NCNN ネットワーク推論フレームワーク

Tencentによって開発された<a href="https://github.com/Tencent/ncnn">NCNNフレームワークは、携帯電話、組み込みデバイス、IoTデバイスなどのモバイルプラットフォーム向けに特別に最適化された、高性能な<a href="https://www.ultralytics.com/glossary/neural-network-nn">ニューラルネットワーク推論コンピューティングフレームワークです。NCNNは、Linux、Android、iOS、macOSを含む幅広いプラットフォームと互換性があります。

NCNNはモバイルCPUでの高速処理速度で知られており、ディープラーニングモデルのモバイルプラットフォームへの迅速なデプロイを可能にするため、AI搭載アプリケーションの構築に優れた選択肢となります。

NCNNモデルの主な機能

NCNNモデルは、オンデバイス機械学習を可能にするいくつかの主要な機能を提供し、開発者がモバイル、組み込み、およびエッジデバイスにモデルをデプロイするのに役立ちます。

  • 効率的で高性能: NCNNモデルは軽量で、Raspberry Piのようなリソースが限られたモバイルおよび組み込みデバイス向けに最適化されており、コンピュータービジョンタスクにおいて高い精度を維持します。

  • 量子化: NCNNは量子化をサポートしています。これは、モデルの重みと活性化の精度を低下させることで、パフォーマンスを向上させ、メモリフットプリントを削減する手法です。

  • 互換性: NCNNモデルは、TensorFlowCaffeONNXなどの主要なディープラーニングフレームワークと互換性があり、開発者は既存のモデルとワークフローを活用できます。

  • 使いやすさ: 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システム: 複数の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 モードを参照してください。
devicestrNoneエクスポート先のデバイス(GPU(device=0)、CPU (device=cpu)、Apple シリコン用 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ドキュメントを参照してください。その他のエクスポートオプションについては、統合ガイドページをご覧ください。

よくある質問

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は、モデルの速度を向上させ、メモリ使用量を削減する量子化などの手法をサポートしています。
  • 広範な互換性: NCNNモデルは、Android、iOS、Linux、macOSを含む複数のプラットフォームにデプロイできます。
  • 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形式の使用を検討してください。

Ultralytics YOLO26 NCNNモデルをAndroidにデプロイするにはどうすればよいですか?

YOLO26モデルをAndroidにデプロイするには:

  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システムの場合、デバイスインデックスを指定します(例: vulkan:1 2番目のGPUの場合)。VulkanドライバーがGPUにインストールされていることを確認してください。以下を参照してください。 Vulkan GPUアクセラレーション セクションで詳細をご覧ください。



📅 1年前に作成 ✏️ 5日前に更新
glenn-jocherlakshanthadRizwanMunawarFaerbitpderrengerlakshanthadUltralyticsAssistantMatthewNoyceabirami-vina

コメント