YOLO11 からNCNN にエクスポートしてスムーズに展開する方法
コンピュータビジョンモデルを、モバイルや組み込みシステムのような計算能力の限られたデバイスに展開するのは、厄介なことです。最適なパフォーマンスが得られるように最適化されたフォーマットを使用する必要があります。これにより、処理能力が限られたデバイスでも、高度なコンピュータビジョンタスクを十分に処理できるようになります。
NCNN フォーマットへのエクスポート機能により、モデルを最適化できます。 Ultralytics YOLO11モデルを最適化することができます。このガイドでは、モデルをNCNN フォーマットに変換する方法を説明します。これにより、様々なモバイルデバイスや組み込みデバイスで、モデルがより簡単に動作するようになります。
なぜNCNN 。
テンセントが開発した NCNNNCNN は、Linux、Android 、iOS 、macOS を含む幅広いプラットフォームと互換性がある。
NCNN は、モバイルCPU上での高速処理で知られ、ディープラーニングモデルのモバイルプラットフォームへの迅速な展開を可能にします。これにより、スマートアプリの構築が容易になり、AIのパワーを指先一つで利用できるようになる。
NCNN モデルの主な特徴
NCNN モデルは、開発者がモバイル、組み込み、およびエッジデバイス上でモデルを実行できるようにすることで、オンデバイス機械学習を可能にする広範な主要機能を提供する:
-
効率的かつ高性能:NCNN モデルは効率的かつ軽量に作られており、Raspberry Pi のようなリソースの限られたモバイル機器や組み込み機器で動作するように最適化されています。また、様々なコンピュータビジョンベースのタスクにおいて、高い精度で高いパフォーマンスを達成することができます。
-
量子化:NCNN モデルは、モデルの重みと活性化の精度を下げる技術である量子化をサポートしていることが多い。これにより、パフォーマンスがさらに向上し、メモリフットプリントが削減されます。
-
互換性:NCNN モデルは、以下のような一般的なディープラーニングフレームワークと互換性があります。 TensorFlowやCaffeONNX.この互換性により、開発者は既存のモデルやワークフローを簡単に使用することができます。
-
使いやすさ:NCNN モデルは、一般的なディープラーニングフレームワークとの互換性により、さまざまなアプリケーションに簡単に統合できるように設計されています。さらに、NCNN は、異なるフォーマット間でモデルを変換するためのユーザーフレンドリーなツールを提供し、開発環境全体でスムーズな相互運用性を保証します。
配備オプションNCNN
YOLO11 モデルをNCNN フォーマットにエクスポートするコードを見る前に、NCNN モデルが通常どのように使われるのかを理解しよう。
NCNN 効率とパフォーマンスを重視して設計されたモデルは、さまざまな配備プラットフォームに対応している:
-
モバイル展開:特にAndroid とiOS 向けに最適化されているため、モバイルアプリケーションにシームレスに統合でき、デバイス上での効率的な推論が可能。
-
組み込みシステムとIoTデバイス:Ultralytics Guideを使ってRaspberry Pi上で推論を実行しても十分な速度が得られない場合、NCNN エクスポートされたモデルに切り替えることで高速化できる可能性があります。NCNN は、Raspberry PiやNVIDIA Jetsonのようなデバイス、特にデバイス上で迅速な処理が必要な場合に最適です。
-
デスクトップとサーバーへの展開:Linux、Windows、macOSのデスクトップおよびサーバー環境に展開でき、より高い計算能力で開発、トレーニング、評価をサポートします。
NCNN へのエクスポート :YOLO11 モデルの変換
YOLO11 モデルをNCNN フォーマットに変換することで、モデルの互換性と配備の柔軟性を拡大できます。
インストール
必要なパッケージをインストールするには
インストールプロセスに関する詳細な説明とベストプラクティスについては、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")
エクスポートの引数
議論 | タイプ | デフォルト | 説明 |
---|---|---|---|
format |
str |
'ncnn' |
エクスポートされたモデルのターゲットフォーマットで、さまざまな展開環境との互換性を定義します。 |
imgsz |
int または tuple |
640 |
モデル入力に必要な画像サイズ。正方形画像の場合は整数,正方形画像の場合はタプルになります. (height, width) 具体的な寸法については |
half |
bool |
False |
FP16(半精度)量子化を有効にし、モデルサイズを縮小し、サポートされているハードウェアでの推論を高速化する可能性があります。 |
batch |
int |
1 |
エクスポートモデルのバッチ推論サイズ、またはエクスポートされたモデルが同時に処理する画像の最大数を指定します。 predict モードだ。 |
エクスポートプロセスの詳細については、Ultralytics ドキュメントのエクスポートに関するページをご覧ください。
エクスポートされたYOLO11 NCNN モデルの展開
Ultralytics YOLO11 モデルのNCNN 形式へのエクスポートに成功したら、それらをデプロイすることができます。NCNN モデルを実行するための最初のステップとして推奨されるのは、YOLO("yolo11n_ncnn_model/") メソッドを利用することです。しかし、他の様々な設定でNCNN モデルをデプロイする詳細な手順については、以下のリソースをご覧ください:
-
Android:このブログでは、Android アプリケーションを通して物体検出のようなタスクを実行するためにNCNN モデルを使用する方法について説明します。
-
マックオス:macOSでタスクを実行するためのNCNN モデルの使い方を理解する。
-
リナックス:このページでは、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 。 -
CLI:を使用する。
yolo
コマンドをexport
という議論になる。
詳細なエクスポートオプションについては、ドキュメントのエクスポートページをご覧ください。
YOLO11 モデルをNCNN に輸出する利点は何ですか?
Ultralytics YOLO11 のモデルをNCNN にエクスポートすると、いくつかの利点があります:
- 効率性:NCNN モデルはモバイルおよび組み込みデバイス用に最適化されており、限られた計算リソースでも高いパフォーマンスを発揮します。
- 量子化:NCNN は、モデルの速度を向上させ、メモリ使用量を削減する量子化のようなテクニックをサポートしています。
- 幅広い互換性:Android 、iOS 、Linux、macOSなど、複数のプラットフォームでNCNN モデルを展開できます。
詳細は、マニュアルの「 NCNN へのエクスポート」セクションを参照してください。
モバイルAIアプリケーションにNCNN 。
NCNNTencentによって開発され、特にモバイルプラットフォーム用に最適化されています。NCNN :
- 高性能:モバイルCPUでの効率的で高速な処理のために設計されています。
- クロスプラットフォーム:や のような一般的なフレームワークと互換性があり、異なるプラットフォーム間でのモデルの変換やデプロイが容易になります。 TensorFlowやONNX などの一般的なフレームワークと互換性があるため、異なるプラットフォーム間でのモデルの変換やデプロイが簡単になります。
- コミュニティ・サポート:コミュニティの活発なサポートにより、継続的な改善とアップデートが保証されます。
詳しくは、ドキュメントのNCNN 概要をご覧ください。
NCNN モデルの展開でサポートされているプラットフォームは?
NCNN は汎用性が高く、さまざまなプラットフォームに対応している:
- モバイル:Android iOS.
- 組み込みシステムとIoTデバイス:Raspberry PiやNVIDIA Jetsonなどのデバイス。
- デスクトップとサーバー:Linux、Windows、macOS。
Raspberry Pi上でモデルを実行するのが十分速くない場合は、Raspberry Piガイドで詳しく説明しているように、NCNN フォーマットに変換することでスピードアップできる。
Ultralytics YOLO11 NCNN モデルをAndroid に配置するにはどうすればよいですか?
Android にYOLO11 のモデルを配置する:
- Android 用にビルドする:NCNN Build forAndroidガイドに従ってください。
- アプリケーションとの統合:NCNN Android SDK を使用して、エクスポートされたモデルをアプリケーションに統合し、効率的なオンデバイス推論を実現します。
ステップバイステップの手順については、 YOLO11 NCNN モデルの展開に関するガイドを参照してください。
より高度なガイドや使用例については、Ultralytics ドキュメントページをご覧ください。