YOLOv8 からTF GraphDef にエクスポートして配備する方法
YOLOv8 のような最先端のコンピュータ・ビジョン・モデルをさまざまな環境で展開する場合、互換性の問題にぶつかることがあります。GoogleのTensorFlow GraphDef やTF GraphDef は、シリアライズされた、プラットフォームに依存しないモデルの表現を提供することで、解決策を提供します。TF GraphDef モデル形式を使用すると、モバイル機器や特殊なハードウェアなど、完全なTensorFlow エコシステムが利用できない環境でも、YOLOv8 モデルを展開することができます。
このガイドでは、モデルを モデルフォーマットにエクスポートする方法を順を追って説明します。 Ultralytics YOLOv8このガイドでは、TF GraphDef モデル・フォーマットにモデルをエクスポートする方法を順を追って説明します。モデルを変換することで、デプロイを効率化し、YOLOv8 のコンピュータビジョン機能をより幅広いアプリケーションやプラットフォームで使用することができます。
なぜTF GraphDef にエクスポートする必要があるのですか?
TF GraphDef は、グーグルによって開発されたTensorFlow エコシステムの強力なコンポーネントである。YOLOv8 のようなモデルの最適化とデプロイに使用できる。TF GraphDef にエクスポートすることで、モデルを研究から実世界のアプリケーションに移行させることができる。TensorFlow にエクスポートすることで、モデルを研究から実世界のアプリケーションに移行させることができます。 フレームワークがない環境でもモデルを実行することができます。
GraphDef 形式は、モデルを直列化された計算グラフとして表現する。これにより、定数の折りたたみ、量子化、グラフ変換など、さまざまな最適化技術が可能になる。これらの最適化により、効率的な実行、メモリ使用量の削減、推論速度の高速化が保証される。
GraphDef モデルは、GPU、TPU、AIチップなどのハードウェアアクセラレータを使用することができ、YOLOv8 推論パイプラインの大幅な性能向上を実現する。TF GraphDef フォーマットは、モデルとその依存関係を含む自己完結型のパッケージを作成し、多様なシステムへの展開と統合を簡素化します。
TF GraphDef モデルの主な特徴
TF GraphDef は、モデルの展開と最適化を合理化するための明確な機能を提供します。
その主な特徴を紹介しよう:
-
モデルのシリアライズ:TF GraphDef TensorFlow モデルをシリアライズし、プラットフォームに依存しない形式で保存する方法を提供します。このシリアライズされた表現によって、オリジナルのPython コードベースなしでモデルをロードして実行できるようになり、デプロイが簡単になります。
-
グラフの最適化:TF GraphDef は、計算グラフの最適化を可能にする。これらの最適化により、実行フローを合理化し、冗長性を削減し、特定のハードウェアに合わせて操作を調整することで、パフォーマンスを向上させることができます。
-
展開の柔軟性:GraphDef フォーマットにエクスポートされたモデルは、リソースに制約のあるデバイス、ウェブブラウザ、特殊なハードウェアを備えたシステムなど、さまざまな環境で使用することができます。これにより、TensorFlow モデルの幅広い展開の可能性が広がります。
-
プロダクション・フォーカス:GraphDef は、プロダクション・デプロイメント向けに設計されています。効率的な実行、直列化機能、実際のユースケースに沿った最適化をサポートしています。
配備オプションTF GraphDef
TF GraphDef にYOLOv8 モデルをエクスポートするプロセスに入る前に、このフォーマッ トが使用される典型的な展開状況を見てみましょう。
ここでは、TF GraphDef 、さまざまなプラットフォームで効率的に展開する方法を紹介する。
-
TensorFlow サービング:このフレームワークは、本番環境でTensorFlow 。TensorFlow Servingは、モデル管理、バージョン管理、効率的なモデル提供のためのインフラストラクチャを提供します。GraphDef ベースのモデルを本番のウェブサービスやAPIに統合するシームレスな方法です。
-
モバイルおよび組み込みデバイス: TensorFlow Liteのようなツールを使えば、TF GraphDef のモデルを、スマートフォン、タブレット、さまざまな組み込みデバイス用に最適化された形式に変換することができる。モデルは、実行がローカルで行われるオンデバイス推論に使用することができ、多くの場合、パフォーマンス向上とオフライン機能を提供します。
-
ウェブブラウザ: TensorFlow.js は、TF GraphDef モデルのウェブブラウザ内での直接展開を可能にする。これは、JavaScriptを通じてYOLOv8 の機能を使用して、クライアント側で実行されるリアルタイムのオブジェクト検出アプリケーションへの道を開くものです。
-
特殊なハードウェア: TF GraphDef はプラットフォームにとらわれないため、アクセラレーターやTPU (Tensor Processing Units)などのカスタムハードウェアをターゲットにすることができる。これらのデバイスは、計算量の多いモデルに対して性能上の利点を提供することができる。
YOLOv8 モデルのエクスポートTF GraphDef
YOLOv8 オブジェクト検出モデルを、様々なシステムと互換性のあるTF GraphDef フォーマットに変換することで、プラットフォーム間でのパフォーマンスを向上させることができます。
インストール
必要なパッケージをインストールするには、以下を実行する:
インストールプロセスに関する詳細な説明とベストプラクティスについては、Ultralytics インストールガイドをご覧ください。YOLOv8 に必要なパッケージをインストールする際に、何らかの問題が発生した場合は、解決策やヒントについて、よくある問題ガイドを参照してください。
使用方法
使い方の説明に入る前に、Ultralytics YOLOv8 の全モデルでエクスポートが可能ですが、 ここで選択したモデルがエクスポート機能をサポートしているかどうかを確認することができます。
使用方法
from ultralytics import YOLO
# Load the YOLOv8 model
model = YOLO('yolov8n.pt')
# Export the model to TF GraphDef format
model.export(format='pb') # creates 'yolov8n.pb'
# Load the exported TF GraphDef model
tf_graphdef_model = YOLO('yolov8n.pb')
# Run inference
results = tf_graphdef_model('https://ultralytics.com/images/bus.jpg')
サポートされているエクスポートオプションの詳細については、Ultralytics 配置オプションのドキュメントページを参照してください。
エクスポートされたYOLOv8 TF GraphDef モデルの展開
YOLOv8 モデルをTF GraphDef フォーマットにエクスポートしたら、次のステップはデプロイです。TF GraphDef モデルを実行するための最初のステップとして推奨されるのは、YOLO("model.pb") メソッドを使用することです。
しかし、TF GraphDef モデルの展開に関する詳細は、以下のリソースをご覧ください:
-
TensorFlow サービス:TensorFlow Servingに関するガイドで、本番環境で機械学習モデルを効率的にデプロイして提供する方法を教えてくれる。
-
TensorFlow ライト:このページでは、TensorFlow Liteを使って機械学習モデルをデバイス上での推論に最適な形式に変換する方法について説明します。
-
TensorFlow.js:Webアプリケーションで使用するために、TensorFlow または Keras モデルをTensorFlow.js フォーマットに変換する方法を教えるモデル変換ガイド。
概要
このガイドでは、Ultralytics YOLOv8 モデルをTF GraphDef フォーマットにエクスポートする方法について説明しました。こうすることで、最適化されたYOLOv8 モデルをさまざまな環境に柔軟に展開することができます。
使い方の詳細については、TF GraphDef 公式ドキュメントをご覧ください。
Ultralytics YOLOv8 を他のプラットフォームやフレームワークと統合するための詳細情報については、統合ガイドのページを忘れずにチェックしてください。あなたのプロジェクトでYOLOv8 を最大限に活用するための素晴らしいリソースや洞察があります。