コンテンツへスキップ

Neural Magic 「DeepSparseエンジン」によるYOLO11推論の最適化

Ultralytics YOLO11のような物体検出モデルを様々なハードウェアに展開する場合、最適化など特有の問題にぶつかることがある。そこで、YOLO11とNeural Magic のDeepSparse Engineとの統合が必要となる。これは、YOLO11モデルの実行方法を変換し、CPU上で直接GPU レベルのパフォーマンスを可能にします。

このガイドでは、Neural Magic のDeepSparseを使用してYOLO11をデプロイする方法、推論を実行する方法、およびパフォーマンスが最適化されていることを確認するためのベンチマーク方法について説明します。

Neural MagicのDeepSparse

Neural MagicDeepSparseの概要

Neural MagicDeepSparseは、CPU上でのニューラルネットワークの実行を最適化するために設計された推論ランタイムである。スパース、プルーニング、量子化などの高度なテクニックを適用し、精度を維持しながら計算量を劇的に削減します。DeepSparseは、さまざまなデバイスで効率的かつスケーラブルにニューラルネットワークを実行するための俊敏なソリューションを提供します。

Neural Magic の DeepSparse と YOLO11 を統合する利点

DeepSparseを使用したYOLOV8 の展開方法について説明する前に、DeepSparseを使用するメリットを理解しましょう。主な利点は以下のとおりです:

  • 推論速度の向上:最大525 FPS(YOLO11nの場合)を達成し、従来の手法に比べてYOLO11の推論能力を大幅に高速化。

推論スピードの向上

  • 最適化されたモデル効率:プルーニングと量子化によりYOLO11の効率を高め、精度を維持しながらモデルサイズと計算量を削減。

最適化されたモデル効率

  • 標準的なCPUで高いパフォーマンスを発揮:GPU のようなパフォーマンスをCPU上で実現し、さまざまなアプリケーションに、よりアクセスしやすくコスト効率の高いオプションを提供します。

  • 合理化された統合と展開:画像やビデオのアノテーション機能など、YOLO11をアプリケーションに簡単に統合できるユーザーフレンドリーなツールを提供します。

  • 様々なモデルタイプをサポート:YOLO11の標準モデルとスパース性に最適化されたモデルの両方に対応し、配備の柔軟性を高めます。

  • コスト効率と拡張性に優れたソリューション:運用コストを削減し、高度な物体検出モデルをスケーラブルに展開。

Neural Magic 「DeepSparse」テクノロジーの仕組みとは?

Neural Magicのディープ・スパース・テクノロジーは、ニューラルネットワーク計算における人間の脳の効率性にインスパイアされている。脳から以下の2つの重要な原則を採用している:

  • スパース化:スパース化のプロセスでは、ディープラーニングネットワークから冗長な情報を刈り込み、精度を損なうことなく、より小さく高速なモデルを実現する。この手法により、ネットワークのサイズと計算量が大幅に削減される。

  • 参照の局所性:DeepSparseは、ネットワークをTensor 「列」に分割するというユニークな実行方法を採用している。これらのカラムは深さ方向に実行され、CPU のキャッシュ内に完全に収まる。このアプローチは脳の効率性を模倣し、データの移動を最小化し、CPU'のキャッシュ使用を最大化する。

Neural Magic 「DeepSparse」テクノロジーの仕組み

Neural Magic 「DeepSparse」テクノロジーの仕組みの詳細については、彼らのブログ記事をご覧ください。

カスタム・データセットで学習したYOLO11のスパース・バージョンの作成

SparseZooは、Neural Magic によるオープンソースのモデルリポジトリで、あらかじめスパース化されたYOLO11モデルのチェックポイントのコレクションを提供しています。Ultralytics とシームレスに統合されたSparseMLを使えば、ユーザは簡単なコマンドラインインターフェイスを使って、特定のデータセット上でこれらのスパースチェックポイントを簡単に微調整することができます。

詳しくはNeural Magic の SparseML YOLO11 ドキュメントを参照してください。

使用方法DeepSparse を使用したYOLOV8 の展開

YOLO11 をNeural Magic の DeepSparse とともに導入するには、いくつかの簡単な手順が必要です。使い方の説明に入る前に、 Ultralytics が提供するさまざまなYOLO11 モデルを確認してください。これは、プロジェクトの要件に最も適したモデルを選択するのに役立ちます。以下は、その開始方法です。

ステップ1:インストール

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

インストール

# Install the required packages
pip install deepsparse[yolov8]

ステップ2:YOLO11をONNX 形式にエクスポートする

DeepSparse Engineは、ONNX 形式のYOLO11モデルを必要とします。モデルをこの形式にエクスポートすることは、DeepSparseとの互換性のために不可欠です。YOLO11モデルをエクスポートするには、以下のコマンドを使用します:

モデル輸出

# Export YOLO11 model to ONNX format
yolo task=detect mode=export model=yolo11n.pt format=onnx opset=13

このコマンドは yolo11n.onnx モデルをディスクに保存する。

ステップ3:推論の展開と実行

YOLO11 モデルをONNX フォーマットで作成すると、DeepSparse を使用して推論を展開および実行できます。これは、直感的なPython API で簡単に実行できます:

推論の展開と実行

from deepsparse import Pipeline

# Specify the path to your YOLO11 ONNX model
model_path = "path/to/yolo11n.onnx"

# Set up the DeepSparse Pipeline
yolo_pipeline = Pipeline.create(task="yolov8", model_path=model_path)

# Run the model on your images
images = ["path/to/image.jpg"]
pipeline_outputs = yolo_pipeline(images=images)

ステップ4:パフォーマンスのベンチマーク

YOLO11モデルがDeepSparse上で最適に動作していることを確認することが重要です。モデルのパフォーマンスをベンチマークして、スループットとレイテンシを分析できます:

ベンチマーキング

# Benchmark performance
deepsparse.benchmark model_path="path/to/yolo11n.onnx" --scenario=sync --input_shapes="[1,3,640,640]"

ステップ5:追加機能

DeepSparseは、画像アノテーションやデータセット評価などのアプリケーションにYOLO11を実用的に統合するための追加機能を提供する。

その他の特徴

# For image annotation
deepsparse.yolov8.annotate --source "path/to/image.jpg" --model_filepath "path/to/yolo11n.onnx"

# For evaluating model performance on a dataset
deepsparse.yolov8.eval --model_path "path/to/yolo11n.onnx"

annotateコマンドを実行すると、指定した画像が処理され、オブジェクトが検出され、バウンディングボックスと分類とともにアノテーションされた画像が保存されます。アノテーションされた画像は、annotation-resultsフォルダに保存されます。これは、モデルの検出能力を視覚的に表現するのに役立ちます。

画像アノテーション機能

evalコマンドを実行すると、precisionrecall、mAP(mean Average Precision)などの詳細な出力メトリクスが得られます。これにより、データセット上でのモデルのパフォーマンスを包括的に見ることができます。この機能は、YOLO11モデルを特定のユースケース向けに微調整・最適化し、高い精度と効率を確保するのに特に役立ちます。

概要

このガイドでは、Ultralytics' YOLO11 と、Neural Magic's DeepSparse Engine との統合について検討しました。この統合により、CPU プラットフォームにおける YOLO11 のパフォーマンスがどのように向上し、GPU レベル の効率性と高度なニューラル・ネットワーク・スパース技術が提供されるかが強調されています。

より詳細な情報と高度な使用方法については、Neural Magic'のDeepSparseドキュメントを参照してください。また、Neural Magic'のYOLO11との統合に関するドキュメントはこちらで、素晴らしいセッションはこちらでご覧ください。

さらに、YOLO11の様々な統合をより広く理解するために、Ultralytics 統合ガイドのページをご覧ください。そこでは、他のエキサイティングな統合の可能性を発見することができます。

よくあるご質問

Neural Magic 「DeepSparse Engine」とはどのようなもので、YOLO11のパフォーマンスをどのように最適化しているのか?

Neural MagicのDeepSparse Engineは、スパース、プルーニング、量子化などの高度な技術を通じて、CPU上でのニューラルネットワークの実行を最適化するように設計された推論ランタイムです。DeepSparseをYOLO11に統合することで、標準的なCPUでGPU 。精度を維持しながら、推論速度、モデル効率、全体的なパフォーマンスを大幅に向上させることができます。詳細については、Neural Magic 「DeepSparse」のセクションをご覧ください。

Neural Magic'sのDeepSparseを使用してYOLO11をデプロイするために必要なパッケージはどのようにインストールできますか?

YOLO11 をNeural Magic の DeepSparse でデプロイするために必要なパッケージのインストールは簡単です。CLI を使用して簡単にインストールできます。 実行するコマンドは以下のとおりです:

pip install deepsparse[yolov8]

インストールが完了したら、[インストール] セクションに記載されている手順に従って環境をセットアップし、YOLO11 で DeepSparse の使用を開始します。

DeepSparseで使用するために、YOLO11モデルをONNX 形式に変換する方法を教えてください。

YOLO11 モデルを、DeepSparse との互換性に必要なONNX 形式に変換するには、以下のCLI コマンドを使用します:

yolo task=detect mode=export model=yolo11n.pt format=onnx opset=13

このコマンドは、YOLO11モデル(yolo11n.pt) をフォーマット (yolo11n.onnx) で利用できます。モデルのエクスポートに関する詳細は モデル・エクスポートセクション.

DeepSparseエンジンでYOLO11のパフォーマンスをベンチマークする方法を教えてください。

DeepSparse上でYOLO11のパフォーマンスをベンチマークすることで、スループットとレイテンシを解析し、モデルが最適化されていることを確認できます。以下のCLI コマンドを使用してベンチマークを実行できます:

deepsparse.benchmark model_path="path/to/yolo11n.onnx" --scenario=sync --input_shapes="[1,3,640,640]"

このコマンドは、重要なパフォーマンス・メトリクスを提供します。詳細については、パフォーマンスのベンチマーク・セクションを参照してください。

物体検出タスクにYOLO11と一緒にNeural Magic'DeepSparseを使うべき理由は?

Neural Magic のDeepSparseとYOLO11を統合すると、いくつかの利点がある:

  • 推論スピードの向上:最大525 FPSを達成し、YOLO11の能力を大幅にスピードアップ。
  • 最適化されたモデル効率:スパース、プルーニング、量子化技術を使用し、精度を維持しながらモデルサイズと計算量を削減します。
  • 標準的なCPUで高いパフォーマンス:費用対効果の高いCPU ハードウェアでGPU のようなパフォーマンスを提供。
  • 合理化された統合:ユーザーフレンドリーなツールで、導入と統合が簡単。
  • 柔軟性:YOLO11の標準モデルとスパースティ最適化モデルの両方をサポート。
  • 費用対効果:リソースの効率的な活用により、運用コストを削減します。

これらの利点の詳細については、 Neural Magic 「DeepSparseとYOLO11を統合する利点」のセクションをご覧ください。

📅作成 10ヶ月前 ✏️更新しました 1ヶ月前

コメント