スムーズなデプロイのためにYOLO11からNCNNにエクスポートする方法
モバイルや組み込みシステムなど、計算能力が限られているデバイスにコンピュータビジョンモデルをデプロイするのは難しい場合があります。最適なパフォーマンスのために最適化された形式を使用する必要があります。これにより、処理能力が限られているデバイスでも、高度なコンピュータビジョンタスクを適切に処理できるようになります。
NCNN形式へのエクスポート機能を使用すると、軽量デバイスベースのアプリケーション向けにUltralytics YOLO11モデルを最適化できます。このガイドでは、モデルを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モデルは、TensorFlow、Caffe、ONNXなどの一般的な深層学習フレームワークと互換性があります。この互換性により、開発者は既存のモデルとワークフローを簡単に利用できます。
-
使いやすさ: NCNN モデルは、一般的な深層学習フレームワークとの互換性により、さまざまなアプリケーションに簡単に統合できるように設計されています。さらに、NCNN はさまざまな形式間でモデルを変換するためのユーザーフレンドリーなツールを提供し、開発環境全体でスムーズな相互運用性を保証します。
NCNNでのデプロイメントオプション
YOLO11モデルをNCNN形式にエクスポートするコードを見る前に、NCNNモデルが通常どのように使用されるかを理解しましょう。
効率とパフォーマンスを考慮して設計されたNCNNモデルは、さまざまな展開プラットフォームと互換性があります。
-
モバイル展開:AndroidおよびiOS向けに特別に最適化されており、効率的なオンデバイス推論のためにモバイルアプリケーションへのシームレスな統合が可能です。
-
組み込みシステムと IoT デバイス:Ultralyticsガイドを使用して Raspberry Pi で推論を実行する速度が十分でない場合は、NCNN でエクスポートされたモデルに切り替えることで高速化できる可能性があります。NCNN は、Raspberry Pi や 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 モードを参照してください。 |
device |
str |
None |
エクスポート先のデバイス(GPU(device=0 )、CPU (device=cpu )、Apple シリコン用 MPS (device=mps )。 |
エクスポートプロセスの詳細については、エクスポートに関するUltralyticsドキュメントページをご覧ください。
エクスポートされたYOLO11 NCNNモデルのデプロイ
Ultralytics YOLO11モデルをNCNN形式に正常にエクスポートした後、それらをデプロイできます。NCNNモデルを実行するための主要かつ推奨される最初のステップは、前の使用コードスニペットで概説されているように、YOLO("yolo11n_ncnn_model/")メソッドを利用することです。ただし、他のさまざまな設定でNCNNモデルをデプロイする方法の詳細については、次のリソースをご覧ください。
-
Android: このブログでは、NCNNモデルを使用して、Androidアプリケーションを介してオブジェクト検出などのタスクを実行する方法について説明します。
-
macOS: macOSを介してタスクを実行するためにNCNNモデルを使用する方法を理解してください。
-
Linux: Raspberry Piなどのリソースが限られたデバイスに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'
詳細なエクスポートオプションについては、ドキュメントのExportページをご確認ください。
YOLO11モデルをNCNNにエクスポートする利点は何ですか?
Ultralytics YOLO11モデルをNCNNにエクスポートすると、いくつかの利点があります。
- 効率: NCNN モデルは、モバイルおよび組み込みデバイス向けに最適化されており、限られた計算リソースでも高いパフォーマンスを保証します。
- 量子化: NCNNは、モデルの速度を向上させ、メモリ使用量を削減する量子化などの手法をサポートしています。
- 広範な互換性: NCNNモデルは、Android、iOS、Linux、macOSを含む複数のプラットフォームにデプロイできます。
詳細については、ドキュメントの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形式に変換すると速度が向上する可能性があります。
AndroidにUltralytics YOLO11 NCNNモデルをデプロイするにはどうすればよいですか?
YOLO11モデルをAndroidにデプロイするには:
- Android向けビルド: Android向けNCNNビルドガイドに従ってください。
- アプリとの統合: NCNN Android SDKを使用して、エクスポートされたモデルをアプリケーションに統合し、効率的なオンデバイス推論を実現します。
ステップごとの手順については、YOLO11 NCNNモデルのデプロイに関するガイドを参照してください。
より高度なガイドやユースケースについては、Ultralyticsドキュメントページをご覧ください。