Link to this sectionUltralytics YOLO NCNN エクスポート#
コンピュータービジョンモデルをモバイルや組み込みシステムのような計算能力が限られたデバイスにデプロイするには、フォーマットの慎重な選択が求められます。最適化されたフォーマットを使用することで、リソースが制限されたデバイスでも、高度なコンピュータービジョンタスクを効率的に処理できます。
NCNNフォーマットにエクスポートすることで、Ultralytics YOLO26モデルを軽量なデバイスベースのアプリケーション向けに最適化できます。このガイドでは、モバイルや組み込みデバイスでパフォーマンスを向上させるために、モデルをNCNNフォーマットに変換する方法を説明します。
Link to this sectionなぜNCNNにエクスポートするのか?#
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システム: 複数のGPUを搭載したシステムでは、
device="vulkan:0"、device="vulkan:1"などを使用して特定の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 sectionFAQ#
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アクセラレーションセクションを参照してください。