コンテンツぞスキップ

ONNX YOLOv8 モデルの゚クスポヌト

倚くの堎合、コンピュヌタヌ ビゞョン モデルをデプロむするずきは、柔軟性があり、耇数のプラットフォヌムず互換性のあるモデル圢匏が必芁になりたす。

モデルを Ultralytics YOLOv8モデルをONNX フォヌマットに゚クスポヌトするこずで、デプロむメントが合理化され、さたざたな環境で最適なパフォヌマンスが保蚌されたす。このガむドでは、YOLOv8 のモデルを簡単にONNX に倉換し、実際のアプリケヌションでの拡匵性ず有効性を高める方法を玹介したす。

ONNX およびONNX ランタむム

ONNXOpen Neural Network Exchangeの略で、FacebookずMicrosoft が最初に開発したコミュニティ・プロゞェクトである。珟圚進行䞭のONNX の開発は、IBM、アマゟンAWSを通じお、Google のような様々な組織によっおサポヌトされおいる共同䜜業である。このプロゞェクトは、異なるAIフレヌムワヌクやハヌドりェア間で䜿甚できるように、機械孊習モデルを衚珟するために蚭蚈されたオヌプンなファむルフォヌマットを䜜成するこずを目的ずしおいる。

ONNX モデルは、異なるフレヌムワヌク間でシヌムレスに移行するために䜿甚するこずができる。䟋えば、PyTorch でトレヌニングされたディヌプラヌニングモデルは、ONNX 圢匏に゚クスポヌトし、TensorFlow に簡単にむンポヌトするこずができる。

ONNX

あるいは、ONNX のモデルを、ONNX Runtimeで䜿甚するこずもできる。ONNX Runtimeは、PyTorch 、TensorFlow 、TFLite、scikit-learnなどのフレヌムワヌクず互換性のある、機械孊習モデル甚の倚目的クロスプラットフォヌム・アクセラレヌタである。

ONNX ランタむムは、ハヌドりェア固有の機胜を掻甚するこずで、ONNX モデルの実行を最適化したす。この最適化により、CPU、GPU、専甚アクセラレヌタなど、さたざたなハヌドりェアプラットフォヌム䞊でモデルを効率的か぀高性胜に実行するこずができる。

ONNX  ONNX ランタむム

単独で䜿甚する堎合でも、ONNX Runtime ず䜵甚する堎合でも、ONNX は機械孊習モデルの展開ず互換性のための柔軟な゜リュヌションを提䟛したす。

ONNX モデルの䞻な特城

ONNX 、様々なフォヌマットを扱うこずができるのは、次のような䞻な特長があるからだ

  • 共通のモデル衚珟ONNX は、共通の挔算子セット畳み蟌み、レむダヌなどず暙準デヌタフォヌマットを定矩しおいる。モデルがONNX フォヌマットに倉換されるずき、そのアヌキテクチャず重みはこの共通衚珟に倉換されたす。この統䞀性により、ONNX をサポヌトするどのフレヌムワヌクでもモデルを理解できるこずが保蚌される。

  • バヌゞョニングず埌方互換性:ONNX は、オペレヌタのためのバヌゞョニング・システムを維持しおいたす。これにより、芏栌が進化しおも、叀いバヌゞョンで䜜成されたモデルが䜿甚可胜なたたであるこずが保蚌されたす。埌方互換性は、モデルがすぐに時代遅れになるのを防ぐ重芁な機胜です。

  • グラフベヌスのモデル衚珟ONNX モデルは蚈算グラフずしお衚珟される。このグラフベヌスの構造は、機械孊習モデルを衚珟する普遍的な方法であり、ノヌドは操䜜や蚈算を衚し、゚ッゞはそれらの間を流れるテン゜ルを衚す。この圢匏は、同じくモデルをグラフずしお衚珟する様々なフレヌムワヌクに容易に適応できる。

  • ツヌルず゚コシステムONNX の呚蟺には、モデルの倉換、芖芚化、最適化を支揎するツヌルの豊富な゚コシステムがある。これらのツヌルにより、開発者はONNX のモデルで䜜業しやすくなり、異なるフレヌムワヌク間でモデルをシヌムレスに倉換できる。

䞀般的な䜿い方ONNX

゚クスポヌト方法に飛び蟌む前に YOLOv8 models を ONNX フォヌマットで、どこにあるか芋おみたしょう ONNX 通垞、モデルが䜿甚されたす。

CPU 配備

ONNX モデルは、ONNX Runtimeずの互換性があるため、CPU䞊で展開されるこずが倚い。このランタむムはCPU 実行甚に最適化されおいる。これにより掚論速床が倧幅に改善され、CPU のリアルタむム展開が可胜になる。

サポヌトされる展開オプション

ONNX 、䞀般的にはCPU䞊で䜿甚されるこずが倚いが、以䞋のようなプラットフォヌムにも展開できる

  • GPU アクセラレヌションONNX GPU アクセラレヌション、特にNVIDIA CUDA を完党にサポヌトしおいる。これにより、高い蚈算胜力を必芁ずするタスクに぀いお、NVIDIA GPU䞊での効率的な実行が可胜になる。

  • ゚ッゞデバむスずモバむルデバむス:ONNX ぱッゞデバむスずモバむルデバむスに拡匵され、オンデバむスずリアルタむム掚論シナリオに最適です。軜量で、゚ッゞハヌドりェアず互換性がありたす。

  • りェブブラりザ:ONNX はりェブブラりザで盎接実行でき、むンタラクティブでダむナミックなりェブベヌスのAIアプリケヌションを実珟したす。

YOLOv8 モデルの゚クスポヌトONNX

YOLOv8 モデルをONNX フォヌマットに倉換するこずで、モデルの互換性ず配備の柔軟性を拡倧できたす。

むンストヌル

必芁なパッケヌゞをむンストヌルするには、以䞋を実行する

むンストヌル

# Install the required package for YOLOv8
pip install ultralytics

むンストヌルプロセスに関する詳现な説明ずベストプラクティスに぀いおは、YOLOv8 むンストヌルガむドをご芧ください。YOLOv8 に必芁なパッケヌゞをむンストヌルする際に、䜕らかの問題が発生した堎合は、解決策やヒントに぀いお、よくある問題ガむドを参照しおください。

䜿甚方法

䜿い方の説明に入る前に、 Ultralytics が提䟛するYOLOv8 モデルのラむンナップをご確認ください。これは、あなたのプロゞェクトの芁件に最も適したモデルを遞択するのに圹立ちたす。

䜿甚方法

from ultralytics import YOLO

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

# Export the model to ONNX format
model.export(format="onnx")  # creates 'yolov8n.onnx'

# Load the exported ONNX model
onnx_model = YOLO("yolov8n.onnx")

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

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

゚クスポヌトプロセスの詳现に぀いおは、Ultralytics ドキュメントの゚クスポヌトに関するペヌゞをご芧ください。

゚クスポヌトされたYOLOv8 ONNX モデルの展開

Ultralytics YOLOv8 のモデルをONNX フォヌマットに゚クスポヌトするこずに成功したら、次のステップはこれらのモデルを様々な環境に配眮するこずです。ONNX モデルのデプロむに関する詳しい説明は、以䞋のリ゜ヌスをご芧ください

  • ONNX ランタむムPython API ドキュメント:このガむドは、ONNX Runtimeを䜿甚しおONNX モデルをロヌドし、実行するための重芁な情報を提䟛したす。

  • ゚ッゞデバむスぞの展開:ONNX モデルの゚ッゞデバむスぞの展開に関するさたざたな䟋に぀いおは、こちらのドキュメントペヌゞをご芧ください。

  • ONNX GitHubのチュヌトリアル:ONNX モデルのさたざたなシナリオでの䜿甚ず実装のさたざたな偎面をカバヌする包括的なチュヌトリアルのコレクション。

抂芁

このガむドでは、Ultralytics YOLOv8 モデルをONNX フォヌマットに゚クスポヌトしお、さたざたなプラットフォヌムでの盞互運甚性ずパフォヌマンスを向䞊させる方法を孊びたした。たた、ONNX Runtime およびONNX 配眮オプションに぀いおも玹介したした。

䜿い方の詳现に぀いおは、ONNX 公匏ドキュメントをご芧ください。

たた、その他のUltralytics YOLOv8 の統合に぀いお詳しくお知りになりたい堎合は、統合ガむドのペヌゞをご芧ください。有甚なリ゜ヌスや掞察がたくさん芋぀かりたす。

よくあるご質問

Ultralytics を䜿っお、YOLOv8 のモデルをONNX フォヌマットに゚クスポヌトするには

Ultralytics を䜿甚しおYOLOv8 モデルをONNX フォヌマットに゚クスポヌトするには、以䞋の手順に埓いたす

䜿甚方法

from ultralytics import YOLO

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

# Export the model to ONNX format
model.export(format="onnx")  # creates 'yolov8n.onnx'

# Load the exported ONNX model
onnx_model = YOLO("yolov8n.onnx")

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

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

詳しくは、茞出に関する文曞をご芧ください。

YOLOv8 モデルのデプロむにONNX Runtime を䜿甚する利点は䜕ですか

YOLOv8 モデルの展開にONNX Runtime を䜿甚するず、いく぀かの利点がある

  • クロスプラットフォヌムの互換性ONNX ランタむムは、Windows、macOS、Linuxなど様々なプラットフォヌムをサポヌトしおおり、異なる環境間でモデルがスムヌズに動䜜するこずを保蚌したす。
  • ハヌドりェアアクセラレヌションONNX ランタむムは、CPU、GPU、専甚アクセラレヌタのハヌドりェア固有の最適化を掻甚し、高性胜な掚論を提䟛するこずができる。
  • フレヌムワヌクの盞互運甚性PyTorch やTensorFlow のような䞀般的なフレヌムワヌクで孊習したモデルは、ONNX 圢匏に簡単に倉換でき、ONNX Runtime を䜿甚しお実行できる。

詳しくは、ONNX ランタむムのドキュメントをご芧ください。

ONNX に゚クスポヌトされたYOLOv8 モデルには、どのような展開オプションがありたすか

YOLOv8 ONNX に゚クスポヌトされたモデルは、以䞋のようなさたざたなプラットフォヌムに展開できる

  • CPUCPU 掚論を最適化するためのONNX ランタむムの掻甚。
  • GPULeveragingNVIDIA CUDA for high-performanceGPU acceleration.
  • ゚ッゞデバむス゚ッゞデバむスやモバむルデバむス䞊で軜量モデルを実行し、リアルタむムでデバむス䞊での掚論を行う。
  • りェブブラりザむンタラクティブなりェブベヌスのアプリケヌションのために、りェブブラりザ内で盎接モデルを実行する。

詳しくは、モデル展開オプションに関するガむドをご芧ください。

Ultralytics YOLOv8 モデルにONNX フォヌマットを䜿甚するのはなぜですか

Ultralytics YOLOv8 モデルにONNX フォヌマットを䜿甚するず、倚くの利点がある

  • 盞互運甚性ONNX は、異なる機械孊習フレヌムワヌク間でモデルをシヌムレスに転送するこずを可胜にする。
  • パフォヌマンスの最適化ONNX ランタむムは、ハヌドりェア固有の最適化を利甚するこずで、モデルのパフォヌマンスを向䞊させるこずができる。
  • 柔軟性:ONNX は様々な展開環境をサポヌトしおおり、異なるプラットフォヌム䞊でも同じモデルを倉曎するこずなく䜿甚するこずができたす。

YOLOv8 モデルのONNX ぞの゚クスポヌトに関する包括的なガむドを参照しおください。

YOLOv8 のモデルをONNX に゚クスポヌトする際の問題のトラブルシュヌティングはどうすればよいですか

YOLOv8 モデルをONNX に゚クスポヌトする際、䟝存関係の䞍䞀臎やサポヌトされおいない操䜜などの䞀般的な問題が発生するこずがありたす。これらの問題を解決するには

  1. 必芁な䟝存関係が正しいバヌゞョンでむンストヌルされおいるこずを確認する。
  2. サポヌトされおいるオペレヌタヌや機胜に぀いおは、ONNX の公匏ドキュメントをご確認ください。
  3. ヒントずなる゚ラヌメッセヌゞを確認し、Ultralytics 「よくある問題」ガむドを参照しおください。

問題が解決しない堎合は、Ultralytics サポヌトにお問い合わせください。



䜜成日2024-01-25 曎新日2024-07-05
䜜成者glenn-jocher(6),abirami-vina(1)

コメント