Ultralytics YOLO NCNN エクスポート

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

NCNN フォーマットにエクスポートすることで、Ultralytics YOLO26 モデルを軽量なデバイスベースのアプリケーション向けに最適化できます。本ガイドでは、モバイルや組み込みデバイスでのパフォーマンス向上のためにモデルを NCNN フォーマットに変換する方法を説明します。

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

NCNN high-performance neural network inference framework

Tencent が開発した NCNN フレームワークは、携帯電話、組み込みデバイス、IoT デバイスなどのモバイルプラットフォーム向けに特別に最適化された、高性能な neural network 推論コンピューティングフレームワークです。NCNN は Linux、Android、iOS、macOS を含む幅広いプラットフォームと互換性があります。

NCNN はモバイル CPU 上での高速な処理速度で知られており、deep learning モデルをモバイルプラットフォームへ迅速にデプロイできるため、AI を活用したアプリケーションを構築する際の優れた選択肢となります。

NCNN モデルの主な特徴

NCNN モデルには、オンデバイスでの machine learning を可能にするいくつかの主要な機能があり、開発者がモバイル、組み込み、およびエッジデバイスにモデルをデプロイするのを支援します。

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

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

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

  • 使いやすさ: NCNN はモデルをフォーマット間で変換するためのユーザーフレンドリーなツールを提供しており、異なる開発環境間でのスムーズな相互運用性を保証します。

  • Vulkan GPU アクセラレーション: NCNN は、AMD、Intel、その他の非 NVIDIA GPU を含む複数のベンダー全体で GPU 加速推論を実現する Vulkan をサポートしており、より幅広いハードウェア上での高性能なデプロイを可能にします。

NCNN でのデプロイオプション

NCNN モデルは、さまざまなデプロイプラットフォームと互換性があります。

  • モバイルデプロイ: Android および iOS 用に最適化されており、効率的なオンデバイス推論のためにモバイルアプリケーションへのシームレスな統合が可能です。

  • 組み込みシステムおよび IoT デバイス: Raspberry Pi や NVIDIA Jetson などのリソースに制約のあるデバイスに最適です。Ultralytics Guide を使用した Raspberry Pi 上での標準的な推論が不十分な場合、NCNN を使用することで大幅なパフォーマンス向上が見込めます。

  • デスクトップおよびサーバーデプロイ: 開発、トレーニング、評価ワークフローのために、Linux、Windows、macOS 上でのデプロイをサポートします。

Vulkan GPU アクセラレーション

NCNN は Vulkan を介した GPU アクセラレーションをサポートしており、AMD、Intel、その他の非 NVIDIA グラフィックスカードを含む幅広い GPU で高性能な推論が可能です。これは特に以下に役立ちます。

  • クロスベンダー GPU サポート: NVIDIA GPU に限定される CUDA とは異なり、Vulkan は複数の GPU ベンダー間で動作します。
  • マルチ GPU システム: 複数の GPU を搭載したシステムでは、device="vulkan:0"device="vulkan:1" などを使用して、特定の 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 へのエクスポート:YOLO26 モデルの変換

YOLO26 モデルを NCNN フォーマットに変換することで、モデルの互換性とデプロイの柔軟性を拡張できます。

インストール

必要なパッケージをインストールするには、以下のコマンドを実行します:

インストール
# Install the required package for YOLO26
pip install ultralytics

詳細な手順やベストプラクティスについては、Ultralytics Installation guide を参照してください。問題が発生した場合は、解決策について弊社の Common Issues guide を確認してください。

使用方法

すべての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")

エクスポート引数

引数タイプデフォルト説明
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 アプリケーションでの object detection 用に NCNN モデルをビルドおよび統合します。

  • macOS: macOS システム上に NCNN モデルをデプロイします。

  • Linux: Raspberry Pi などの組み込みシステムを含む Linux デバイス上に NCNN モデルをデプロイします。

  • Windows x64: Visual Studio を使用して Windows x64 上に NCNN モデルをデプロイします。

まとめ

本ガイドでは、リソースに制約のあるデバイスで効率性と速度を向上させるために、Ultralytics YOLO26 モデルを NCNN フォーマットにエクスポートする方法について説明しました。

詳細については、公式 NCNN ドキュメント を参照してください。その他のエクスポートオプションについては、当社の integration guide page をご覧ください。

FAQ

Ultralytics YOLO26 モデルを NCNN フォーマットにエクスポートするにはどうすればよいですか?

Ultralytics YOLO26 モデルを NCNN フォーマットにエクスポートするには:

  • Python: YOLO クラスの export メソッドを使用します。

    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'

詳細なエクスポートオプションについては、Export ドキュメントを参照してください。

YOLO26 モデルを NCNN にエクスポートする利点は何ですか?

Ultralytics YOLO26 モデルを NCNN にエクスポートすることには、いくつかの利点があります。

  • 効率性: NCNN モデルはモバイルおよび組み込みデバイス向けに最適化されており、限られた計算リソースでも高いパフォーマンスを確保します。
  • 量子化: NCNN は、モデルの速度を向上させ、メモリ使用量を削減する量子化などの手法をサポートしています。
  • 幅広い互換性: Android、iOS、Linux、macOS を含む複数のプラットフォームに NCNN モデルをデプロイできます。
  • Vulkan GPU アクセラレーション: Vulkan を介して AMD、Intel、その他の非 NVIDIA GPU で GPU アクセラレーションを活用し、より高速な推論を実現します。

詳細については、Why Export to NCNN? セクションを参照してください。

モバイル AI アプリケーションに NCNN を使用すべき理由は何ですか?

Tencent によって開発された NCNN は、特にモバイルプラットフォーム向けに最適化されています。NCNN を使用する主な理由は以下の通りです。

  • 高性能: モバイル CPU 上での効率的かつ高速な処理のために設計されています。
  • クロスプラットフォーム: TensorFlow や ONNX などの一般的なフレームワークと互換性があり、異なるプラットフォーム間でのモデルの変換やデプロイが容易です。
  • コミュニティサポート: 活発なコミュニティサポートにより、継続的な改善とアップデートが保証されています。

詳細については、Key Features of NCNN Models セクションを参照してください。

NCNN model deployment ではどのプラットフォームがサポートされていますか?

NCNN は汎用性が高く、さまざまなプラットフォームをサポートしています。

  • モバイル: Android、iOS。
  • 組み込みシステムおよび IoT デバイス: Raspberry Pi や NVIDIA Jetson などのデバイス。
  • デスクトップおよびサーバー: Linux、Windows、およびmacOS。

Raspberry Pi でのパフォーマンスを向上させるには、Raspberry Pi Guide で詳しく説明されているように NCNN フォーマットの使用を検討してください。

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

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

  1. Android 向けビルド: NCNN Build for Android ガイドに従ってください。
  2. アプリへの統合: NCNN Android SDK を使用して、エクスポートされたモデルをアプリケーションに統合し、効率的なオンデバイス推論を実現します。

詳細な手順については、Deploying Exported YOLO26 NCNN Models を参照してください。

より高度なガイドや使用事例については、Ultralytics deployment guide を参照してください。

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

コメント