Link to this sectionUltralytics YOLO NCNN エクスポート#
モバイルや組み込みシステムのような計算能力が制限されたデバイスでコンピュータビジョンモデルを展開するには、慎重なフォーマット選択が必要です。最適化されたフォーマットを使用することで、リソースに制約のあるデバイスであっても、高度なコンピュータビジョンタスクを効率的に処理できます。
NCNNフォーマットにエクスポートすることで、Ultralytics YOLO26モデルを軽量なデバイスベースのアプリケーション向けに最適化できます。本ガイドでは、モバイルおよび組み込みデバイスでのパフォーマンスを向上させるために、モデルをNCNNフォーマットに変換する方法を解説します。
Link to this sectionNCNNへエクスポートする理由#
Tencentが開発したNCNNフレームワークは、モバイル電話、組み込みデバイス、IoTデバイスなどのモバイルプラットフォーム向けに最適化された、高性能なニューラルネットワーク推論コンピューティングフレームワークです。NCNNはLinux、Android、iOS、macOSなど、幅広いプラットフォームと互換性があります。
NCNNはモバイルCPUでの高速な処理速度で知られており、モバイルプラットフォームへのディープラーニングモデルの迅速な展開を可能にするため、AI搭載アプリケーションの構築において優れた選択肢となります。
Link to this sectionNCNNモデルの主な特徴#
NCNNモデルは、デバイス上で機械学習を実現し、開発者がモバイル、組み込み、およびエッジデバイスにモデルを展開するのに役立ついくつかの主要な機能を提供します。
-
効率的かつ高性能: NCNNモデルは軽量で、Raspberry Piのようなリソースが制限されたモバイルや組み込みデバイス向けに最適化されており、コンピュータビジョンのタスクにおいて高い精度を維持します。
-
量子化: NCNNは量子化をサポートしています。これは、モデルの重みとアクティベーションの精度を低減することで、パフォーマンスを向上させ、メモリフットプリントを削減する手法です。
-
互換性: NCNNモデルは、TensorFlow、Caffe、ONNXを含む一般的なディープラーニングフレームワークと互換性があり、既存のモデルやワークフローを活用できます。
-
使いやすさ: NCNNは、異なるフォーマット間でモデルを変換するためのユーザーフレンドリーなツールを提供しており、さまざまな開発環境間でのスムーズな相互運用性を保証します。
-
Vulkan GPUアクセラレーション: NCNNは、AMD、Intel、その他の非NVIDIA GPUを含む複数のベンダー間でのGPUアクセラレーション推論にVulkanをサポートしており、より幅広いハードウェア上での高性能な展開を可能にします。
Link to this sectionNCNNでの展開オプション#
NCNNモデルはさまざまな展開プラットフォームと互換性があります。
-
モバイル展開: AndroidおよびiOS向けに最適化されており、モバイルアプリケーションへのシームレスな統合を可能にし、効率的なデバイス上での推論を実現します。
-
組み込みシステムおよびIoTデバイス: Raspberry PiやNVIDIA Jetsonのようなリソース制約のあるデバイスに最適です。Ultralyticsガイドを用いたRaspberry Piでの標準的な推論が不十分な場合、NCNNを使用することで大幅なパフォーマンス向上を見込めます。
-
デスクトップおよびサーバー展開: 開発、トレーニング、評価ワークフローのために、Linux、Windows、macOS間での展開をサポートしています。
Link to this sectionVulkan 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デバイスを指定します。
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")GPU用のVulkanドライバーがインストールされていることを確認してください。最新のGPUドライバーのほとんどは、デフォルトでVulkanをサポートしています。Linuxではvulkaninfo、WindowsではVulkan SDKなどのツールを使用してVulkanが利用可能か確認できます。
Link to this sectionNCNNへのエクスポート:YOLO26モデルの変換#
YOLO26モデルをNCNNフォーマットに変換することで、モデルの互換性と展開の柔軟性を拡張できます。
Link to this sectionサポートされているタスク#
NCNNエクスポートは標準のUltralytics YOLO26タスクセットをサポートしています。
| タスク | サポート状況 |
|---|---|
| 物体検出 | ✅ |
| インスタンスセグメンテーション | ✅ |
| セマンティックセグメンテーション | ✅ |
| 姿勢推定 | ✅ |
| OBB検出 | ✅ |
| 分類 | ✅ |
Link to this sectionインストール#
必要なパッケージをインストールするには、以下を実行してください。
# Install the required package for YOLO26
pip install ultralytics詳細な手順やベストプラクティスについては、Ultralyticsインストールガイドを参照してください。問題が発生した場合は、解決策について共通の問題に関するガイドをご確認ください。
Link to this section使用方法#
すべてのUltralytics YOLO26モデルは、導入後すぐにエクスポートをサポートするように設計されており、好みの展開ワークフローに簡単に統合できます。サポートされているエクスポートフォーマットと設定オプションの全リストを表示して、アプリケーションに最適な構成を選択してください。
NCNNフォーマットはエクスポート、予測、および検証モードをサポートしています。モデルをエクスポートした後、エクスポートされたモデルをロードして推論を実行するか、その精度を検証してください。
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'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")Link to this sectionエクスポートの引数#
| 引数 | タイプ | デフォルト | 説明 |
|---|---|---|---|
format | str | 'ncnn' | エクスポートするモデルのターゲット形式。さまざまなデプロイ環境との互換性を定義します。 |
imgsz | intまたはtuple | 640 | モデル入力用の希望する画像サイズ。正方形画像の場合は整数、特定の寸法の場合はタプル(height, width)を指定できます。 |
half | bool | False | FP16(半精度)量子化を有効にし、モデルサイズを縮小して、サポートされているハードウェアでの推論を高速化する可能性があります。 |
batch | int | 1 | エクスポートされたモデルのバッチ推論サイズ、あるいはpredictモードで同時に処理する画像の最大数を指定します。 |
device | str | None | エクスポート用のデバイスを指定します。GPU (device=0)、CPU (device=cpu)、Appleシリコン用MPS (device=mps)など。 |
エクスポートプロセスの詳細については、Ultralyticsのエクスポートに関するドキュメントページを参照してください。
Link to this sectionエクスポートされたYOLO26 NCNNモデルの展開#
Ultralytics YOLO26モデルをNCNNフォーマットにエクスポートした後は、上記の例のようにYOLO("yolo26n_ncnn_model/")メソッドを使用して展開できます。プラットフォーム固有の展開手順については、以下のリソースを参照してください。
-
macOS: macOSシステム上でNCNNモデルを展開します。
-
Linux: Raspberry Piや類似の組み込みシステムを含むLinuxデバイス上でNCNNモデルを展開します。
-
Windows x64: Visual Studioを使用してWindows x64上でNCNNモデルを展開します。
Link to this section要約#
本ガイドでは、リソースに制約のあるデバイス上での効率と速度向上のため、Ultralytics YOLO26モデルをNCNNフォーマットへエクスポートする方法について解説しました。
詳細については、公式NCNNドキュメントを参照してください。その他のエクスポートオプションについては、弊社の統合ガイドページをご覧ください。
Link to this sectionよくある質問 (FAQ)#
Link to this sectionUltralytics 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'
詳細なエクスポートオプションについては、エクスポートドキュメントを参照してください。
Link to this sectionYOLO26モデルをNCNNにエクスポートする利点は何ですか?#
Ultralytics YOLO26モデルをNCNNにエクスポートすることで、いくつかの利点が得られます。
- 効率性: NCNNモデルはモバイルおよび組み込みデバイス向けに最適化されており、限られた計算リソースでも高いパフォーマンスを保証します。
- 量子化: NCNNは、モデルの速度を向上させ、メモリ使用量を削減する量子化のような手法をサポートしています。
- 幅広い互換性: Android、iOS、Linux、macOSを含む複数のプラットフォームでNCNNモデルを展開できます。
- Vulkan GPUアクセラレーション: Vulkanを介してAMD、Intel、その他の非NVIDIA GPUでのGPUアクセラレーションを活用し、より高速な推論を実現します。
詳細については、NCNNへエクスポートする理由セクションを参照してください。
Link to this sectionモバイルAIアプリケーションにNCNNを使用すべきなのはなぜですか?#
Tencentが開発したNCNNは、モバイルプラットフォーム向けに特別に最適化されています。NCNNを使用する主な理由は以下の通りです。
- 高性能: モバイルCPU上で効率的かつ高速に処理できるように設計されています。
- クロスプラットフォーム: TensorFlowやONNXなどの一般的なフレームワークと互換性があり、異なるプラットフォーム間でのモデル変換と展開が容易になります。
- コミュニティサポート: アクティブなコミュニティサポートにより、継続的な改善とアップデートが保証されています。
詳細については、NCNNモデルの主な特徴セクションを参照してください。
Link to this sectionNCNNモデル展開でサポートされているプラットフォームは何ですか?#
NCNNは多目的であり、さまざまなプラットフォームをサポートしています。
- モバイル: Android、iOS。
- 組み込みシステムおよびIoTデバイス: Raspberry PiやNVIDIA Jetsonなどのデバイス。
- デスクトップおよびサーバー: Linux、Windows、macOS。
Raspberry Piでのパフォーマンス向上のため、弊社Raspberry Piガイドで詳述されているNCNNフォーマットの使用を検討してください。
Link to this sectionAndroid上でUltralytics YOLO26 NCNNモデルを展開するにはどうすればよいですか?#
Android上でYOLO26モデルを展開するには:
- Android向けにビルド: NCNN Androidビルドガイドに従ってください。
- アプリへの統合: NCNN Android SDKを使用して、エクスポートされたモデルをアプリケーションに統合し、効率的なデバイス上での推論を実現します。
詳細な手順については、エクスポートされたYOLO26 NCNNモデルの展開を参照してください。
より高度なガイドやユースケースについては、Ultralytics展開ガイドをご覧ください。
Link to this sectionNCNNモデルで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アクセラレーションセクションを参照してください。