コンテンツへスキップ

YOLOv8 からNCNN にエクスポートしてスムーズに展開する方法

コンピュータビジョンモデルを、モバイルや組み込みシステムのような計算能力の限られたデバイスに展開するのは、厄介なことです。最適なパフォーマンスが得られるように最適化されたフォーマットを使用する必要があります。これにより、処理能力が限られたデバイスでも、高度なコンピュータビジョンタスクを十分に処理できるようになります。

NCNN フォーマットへのエクスポート機能により、モデルを最適化できます。 Ultralytics YOLOv8モデルを最適化することができます。このガイドでは、モデルをNCNN フォーマットに変換する方法を説明します。これにより、さまざまなモバイルデバイスや組み込みデバイスで、モデルがより簡単に優れたパフォーマンスを発揮できるようになります。

なぜNCNN 。

NCNN 概要

テンセントが開発した NCNNNCNN は、Linux、Android 、iOS 、macOS を含む幅広いプラットフォームと互換性があります。

NCNN は、モバイルCPU上での高速処理で知られ、ディープラーニングモデルのモバイルプラットフォームへの迅速な展開を可能にします。これにより、スマートアプリの構築が容易になり、AIのパワーを指先ひとつで利用できるようになる。

NCNN モデルの主な特徴

NCNN モデルは、開発者がモバイル、組み込み、およびエッジデバイス上でモデルを実行できるようにすることで、オンデバイス機械学習を可能にする広範な主要機能を提供する:

  • 効率的かつ高性能:NCNN モデルは効率的かつ軽量に作られており、Raspberry Pi のようなリソースの限られたモバイル機器や組み込み機器で動作するように最適化されています。また、様々なコンピュータビジョンベースのタスクにおいて、高い精度で高いパフォーマンスを達成することができます。

  • 量子化:NCNN モデルは、モデルの重みと活性化の精度を下げる技術である量子化をサポートしていることが多い。これにより、パフォーマンスがさらに向上し、メモリフットプリントが削減されます。

  • 互換性:NCNN モデルは、以下のような一般的なディープラーニングフレームワークと互換性があります。 TensorFlowやCaffeONNX.この互換性により、開発者は既存のモデルやワークフローを簡単に使用することができます。

  • 使いやすさ:NCNN モデルは、一般的なディープラーニングフレームワークとの互換性により、さまざまなアプリケーションに簡単に統合できるように設計されています。さらに、NCNN は、異なるフォーマット間でモデルを変換するためのユーザーフレンドリーなツールを提供し、開発環境全体でスムーズな相互運用性を保証します。

配備オプションNCNN

エクスポートのコードを見る前に YOLOv8 models を NCNN フォーマット、方法を理解しましょう NCNN 通常、モデルが使用されます。

NCNN 効率とパフォーマンスを重視して設計されたモデルは、さまざまな配備プラットフォームに対応している:

  • モバイル展開:特にAndroid とiOS 向けに最適化されているため、モバイルアプリケーションにシームレスに統合でき、デバイス上での効率的な推論が可能。

  • 組み込みシステムとIoTデバイス:Ultralytics Guideを使ってRaspberry Pi上で推論を実行しても十分な速度が得られない場合、NCNN エクスポートされたモデルに切り替えることで高速化できる可能性があります。NCNN は、Raspberry PiやNVIDIA Jetsonのようなデバイス、特にデバイス上で迅速な処理が必要な場合に最適です。

  • デスクトップとサーバーへの展開:Linux、Windows、macOSのデスクトップおよびサーバー環境に展開でき、より高い計算能力で開発、トレーニング、評価をサポートします。

NCNN へのエクスポート :YOLOv8 モデルの変換

YOLOv8 モデルをNCNN フォーマットに変換することで、モデルの互換性と配備の柔軟性を拡大できます。

インストール

必要なパッケージをインストールするには

インストール

# Install the required package for YOLOv8
pip install ultralytics

インストールプロセスに関する詳細な説明とベストプラクティスについては、Ultralytics インストールガイドをご覧ください。YOLOv8 に必要なパッケージをインストールする際に、何らかの問題が発生した場合は、解決策やヒントについて、よくある問題ガイドを参照してください。

使用方法

使い方の説明に入る前に、Ultralytics YOLOv8 の全モデルでエクスポートが可能ですが、 ここで選択したモデルがエクスポート機能をサポートしているかどうかを確認することができます。

使用方法

from ultralytics import YOLO

# Load the YOLOv8 model
model = YOLO("yolov8n.pt")

# Export the model to NCNN format
model.export(format="ncnn")  # creates '/yolov8n_ncnn_model'

# Load the exported NCNN model
ncnn_model = YOLO("./yolov8n_ncnn_model")

# Run inference
results = ncnn_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLOv8n PyTorch model to NCNN format
yolo export model=yolov8n.pt format=ncnn  # creates '/yolov8n_ncnn_model'

# Run inference with the exported model
yolo predict model='./yolov8n_ncnn_model' source='https://ultralytics.com/images/bus.jpg'

サポートされているエクスポートオプションの詳細については、Ultralytics 配置オプションのドキュメントページを参照してください。

エクスポートされたYOLOv8 NCNN モデルの展開

Ultralytics YOLOv8 モデルをNCNN フォーマットにエクスポートすることに成功したら、それらをデプロイすることができます。NCNN モデルを実行するための最初のステップとして推奨されるのは、YOLO("./model_ncnn_model") メソッドを使用することです。しかしながら、他の様々な設定におけるNCNN モデルのデプロイに関する詳細な説明については、以下のリソースをご覧ください:

  • Android:このブログでは、Android アプリケーションを通して物体検出のようなタスクを実行するためにNCNN モデルを使用する方法について説明します。

  • マックオス:macOSでタスクを実行するためのNCNN モデルの使い方を理解する。

  • リナックス:このページでは、Raspberry Piやその他の類似デバイスのような限られたリソースのデバイスにNCNN 。

  • VS2017を使用したWindows x64:このブログでは、Visual Studio Community 2017を使用してWindows x64でNCNN モデルをデプロイする方法について説明します。

概要

このガイドでは、Ultralytics YOLOv8 モデルをNCNN フォーマットにエクスポートすることについて説明しました。この変換ステップは、YOLOv8 モデルの効率とスピードを向上させ、より効果的で限られたリソースのコンピューティング環境に適したものにするために非常に重要です。

詳しい使用方法については、 NCNN の公式ドキュメントを参照してください。

また、Ultralytics YOLOv8 のその他の統合オプションにご興味がある場合は、統合ガイドページをご覧ください。

よくあるご質問

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

Ultralytics YOLOv8 モデルをNCNN フォーマットにエクスポートするには、以下の手順に従ってください:

  • Python:を使用する。 export 関数をYOLO 。

    from ultralytics import YOLO
    
    # Load the YOLOv8 model
    model = YOLO("yolov8n.pt")
    
    # Export to NCNN format
    model.export(format="ncnn")  # creates '/yolov8n_ncnn_model'
    
  • CLI:を使用する。 yolo コマンドを export という議論になる。

    yolo export model=yolov8n.pt format=ncnn  # creates '/yolov8n_ncnn_model'
    

詳細なエクスポートオプションについては、ドキュメントのエクスポートページをご覧ください。

YOLOv8 モデルをNCNN に輸出する利点は何ですか?

Ultralytics YOLOv8 のモデルを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 YOLOv8 NCNN モデルをAndroid に配置するにはどうすればよいですか?

Android にYOLOv8 のモデルを配置する:

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

ステップバイステップの手順については、 YOLOv8 NCNN モデルの展開に関するガイドを参照してください。

より高度なガイドや使用例については、Ultralytics ドキュメントページをご覧ください。



作成日:2024-03-01 更新日:2024-07-05
作成者:glenn-jocher(6),abirami-vina(1)

コメント