Ultralytics YOLO27:

YOLO26からTF GraphDefにエクスポートしてデプロイする方法#

YOLO26のような最先端のコンピュータービジョンモデルをさまざまな環境にデプロイする際、互換性の問題に直面することがあります。GoogleのTensorFlow GraphDef(TF GraphDef)は、モデルをシリアライズされたプラットフォーム非依存の形式で表現することで、その解決策を提供します。TF GraphDefモデル形式を使用すると、モバイルデバイスや専用ハードウェアなど、TensorFlowエコシステム全体を利用できない環境にもYOLO26モデルをデプロイできます。

このガイドでは、Ultralytics YOLO26モデルをTF GraphDefモデル形式にエクスポートする方法を、順を追って説明します。モデルを変換することで、デプロイを効率化し、より幅広いアプリケーションやプラットフォームでYOLO26のコンピュータービジョン機能を利用できます。

TensorFlow GraphDef model serialization format

TF GraphDefにエクスポートする理由#

TF GraphDefは、Googleが開発したTensorFlowエコシステムの強力なコンポーネントです。YOLO26のようなモデルの最適化とデプロイに使用できます。TF GraphDefにエクスポートすると、モデルを研究段階から実際のアプリケーションへ移行できます。TensorFlowフレームワーク全体がない環境でもモデルを実行できます。

GraphDef形式では、モデルをシリアライズされた計算グラフとして表現します。これにより、定数畳み込み、量子化、グラフ変換など、さまざまな最適化手法を利用できます。これらの最適化により、効率的な実行、メモリ使用量の削減、推論速度の向上を実現できます。

GraphDefモデルは、GPU、TPU、AIチップなどのハードウェアアクセラレーターを利用でき、YOLO26の推論パイプラインのパフォーマンスを大幅に向上できます。TF GraphDef形式では、モデルと依存関係を含む自己完結型パッケージが作成されるため、多様なシステムへのデプロイと統合が簡単になります。

TF GraphDefモデルの主な機能#

TF GraphDefには、モデルデプロイと最適化を効率化するための独自の機能があります。

主な特長を以下に示します。

  • モデルのシリアライズ: TF GraphDefは、TensorFlowモデルをプラットフォーム非依存の形式でシリアライズして保存する方法を提供します。このシリアライズ表現を使用すると、元のPythonコードベースがなくてもモデルを読み込んで実行できるため、デプロイが容易になります。

  • グラフの最適化: TF GraphDefでは、計算グラフを最適化できます。実行フローの効率化、冗長性の削減、特定のハードウェアに合わせた演算の調整により、パフォーマンスを向上できます。

  • 柔軟なデプロイ: GraphDef形式にエクスポートしたモデルは、リソースが限られたデバイス、Webブラウザー、専用ハードウェアを搭載したシステムなど、さまざまな環境で使用できます。これにより、TensorFlowモデルをより広範囲にデプロイできるようになります。

  • 本番環境を重視した設計: GraphDefは、本番環境へのデプロイを想定して設計されています。効率的な実行、シリアライズ機能、実際のユースケースに適した最適化をサポートします。

TF GraphDefを使用したデプロイ方法#

YOLO26モデルをTF GraphDefにエクスポートする手順に入る前に、この形式が使用される一般的なデプロイ環境を確認しましょう。

さまざまなプラットフォームでTF GraphDefを効率的に使用してデプロイする方法を紹介します。

  • TensorFlow Serving: このフレームワークは、本番環境でTensorFlowモデルをデプロイするために設計されています。TensorFlow Servingは、モデル管理、バージョン管理、大規模なモデルサービングを効率化するインフラストラクチャを提供します。GraphDefベースのモデルを本番環境のWebサービスやAPIにシームレスに統合できます。

  • モバイルデバイスと組み込みデバイス: LiteRTなどのツールを使用して、TF GraphDefモデルをスマートフォン、タブレット、さまざまな組み込みデバイス向けに最適化された形式に変換できます。変換したモデルをデバイス上の推論に使用すると、ローカルで実行できるため、多くの場合、パフォーマンス向上とオフライン機能を実現できます。

  • Webブラウザー: TensorFlow.jsを使用すると、TF GraphDefモデルをWebブラウザー内に直接デプロイできます。JavaScriptでYOLO26の機能を利用し、クライアント側で動作するリアルタイム物体検出アプリケーションを実現できます。

  • 専用ハードウェア: TF GraphDefはプラットフォームに依存しないため、アクセラレーターやTPU(Tensor Processing Unit)などのカスタムハードウェアを対象にできます。これらのデバイスは、計算負荷の高いモデルのパフォーマンスを向上できます。

対応タスク#

TF GraphDefへのエクスポートは、7つあるUltralyticsのタスクのうち6つをサポートします。セマンティックセグメンテーションと深度推定を利用できるのは、これらのヘッドを備えた唯一のファミリーであるYOLO26のみです。姿勢推定モデルはエクスポートできますが、UltralyticsのGraphDef推論は現在サポートされていません。

タスクYOLOv8YOLO11YOLO26
検出✅✅✅
セグメンテーション✅✅✅
セマンティック❌❌✅
深度❌❌✅
分類✅✅✅
姿勢推定✅✅✅
OBB❌❌❌

YOLO26モデルをTF GraphDefにエクスポートする#

YOLO26モデルをさまざまなシステムと互換性のあるTF GraphDef形式に変換すると、複数のプラットフォームでパフォーマンスを向上できます。

インストール#

必要なパッケージをインストールするには、次を実行します。

インストール
# Install the required package for YOLO26
pip install ultralytics

インストール手順の詳細とベストプラクティスについては、Ultralyticsのインストールガイドをご覧ください。YOLO26に必要なパッケージのインストールで問題が発生した場合は、解決策とヒントが記載されたよくある問題のガイドをご確認ください。

使用方法#

すべてのUltralytics YOLO26モデルは、追加設定なしでエクスポートできるように設計されているため、希望するデプロイワークフローに簡単に統合できます。アプリケーションに最適な設定を選ぶには、対応するエクスポート形式と設定オプションの一覧をご覧ください。

TF GraphDef形式は、姿勢推定モデルでは現在エクスポートのみをサポートしますが、エクスポート、予測、検証モードに対応しています。モデルをエクスポートしてから、エクスポートしたモデルを読み込み、推論を実行するか精度を検証してください。

エクスポート
from ultralytics import YOLO

# YOLO26モデルを読み込みます
model = YOLO("yolo26n.pt")

# モデルをTF GraphDef形式にエクスポート
model.export(format="pb")  # 「yolo26n.pb」を作成
推論
from ultralytics import YOLO

# エクスポートしたTF GraphDefモデルを読み込む
model = YOLO("yolo26n.pb")

# 推論を実行
results = model("https://ultralytics.com/images/bus.jpg")
検証
from ultralytics import YOLO

# エクスポートしたTF GraphDefモデルを読み込む
model = YOLO("yolo26n.pb")

# COCO8データセットで精度を検証します
metrics = model.val(data="coco8.yaml")

エクスポート引数#

引数種類デフォルト説明
formatstr'pb'エクスポートしたモデルのターゲットフォーマットです。さまざまなデプロイ環境との互換性を定義します。
imgszintまたはtuple640モデル入力の画像サイズです。正方形画像の場合は整数、特定のサイズの場合はタプル(height, width)を指定できます。
quantizeintまたはstrNoneFP32で固定してエクスポートします。GraphDefは、エクスポート時のFP16、INT8、W8A16への精度変換をサポートしていません。
opsetintNone中間ONNXグラフのONNX opsetバージョンを指定します。設定しない場合は、サポートされている最新バージョンが使用されます。
batchint1エクスポートモデルのバッチ推論サイズ、またはpredictモードでエクスポートモデルが同時に処理する画像の最大数を指定します。
devicestrNoneエクスポートに使用するデバイスを指定します。CPU (device=cpu)、Appleシリコン向けMPS (device=mps)です。

エクスポートプロセスの詳細については、Ultralyticsのエクスポートに関するドキュメントページをご覧ください。

エクスポートしたYOLO26 TF GraphDefモデルのデプロイ#

YOLO26モデルをTF GraphDef形式にエクスポートしたら、次はデプロイです。TF GraphDefモデルを実行する最初の手順として推奨されるのは、前述の使用例コードスニペットで示したYOLO("model.pb")メソッドを使用することです。

TF GraphDefモデルのデプロイについて詳しくは、以下のリソースをご覧ください。

  • TensorFlow Serving: 本番環境で機械学習モデルを効率的にデプロイしてサービングする方法を説明する、TensorFlow Servingのガイドです。

  • TensorFlow Lite: TensorFlow Liteを使用したデバイス上の推論向けに、機械学習モデルを最適化された形式へ変換する方法を説明します。

  • TensorFlow.js: TensorFlowまたはKerasのモデルをWebアプリケーション向けのTensorFlow.js形式に変換する方法を説明する、モデル変換のガイドです。

概要#

このガイドでは、Ultralytics YOLO26モデルをTF GraphDef形式にエクスポートする方法を説明しました。これにより、最適化したYOLO26モデルをさまざまな環境に柔軟にデプロイできます。

使用方法の詳細については、TF GraphDef公式ドキュメントをご覧ください。

Ultralytics YOLO26を他のプラットフォームやフレームワークと統合する方法については、統合ガイドページをご覧ください。

よくある質問#

  • Ultralytics YOLO26モデルは、TensorFlow GraphDef(TF GraphDef)形式にシームレスにエクスポートできます。この形式はモデルをシリアライズされたプラットフォーム非依存の表現で提供し、モバイルやWebなど多様な環境へのデプロイに適しています。YOLO26モデルをTF GraphDefにエクスポートするには、次の手順に従ってください。

    使用方法
    from ultralytics import YOLO
    
    # YOLO26モデルを読み込みます
    model = YOLO("yolo26n.pt")
    
    # モデルをTF GraphDef形式にエクスポート
    model.export(format="pb")  # 「yolo26n.pb」を作成
    
    # エクスポートしたTF GraphDefモデルを読み込む
    tf_graphdef_model = YOLO("yolo26n.pb")
    
    # 推論を実行
    results = tf_graphdef_model("https://ultralytics.com/images/bus.jpg")

    エクスポートオプションの詳細については、モデルエクスポートに関するUltralyticsのドキュメントをご覧ください。

  • YOLO26モデルをTF GraphDef形式にエクスポートすると、次のような複数のメリットがあります。

    1. プラットフォーム非依存性: TF GraphDefはプラットフォームに依存しない形式を提供するため、モバイルやWebブラウザーなど、さまざまな環境にモデルをデプロイできます。
    2. 最適化: この形式では、定数畳み込み、量子化、グラフ変換などの複数の最適化が可能になり、実行効率の向上とメモリ使用量の削減を実現できます。
    3. ハードウェアアクセラレーション: TF GraphDef形式のモデルは、GPU、TPU、AIチップなどのハードウェアアクセラレーターを活用してパフォーマンスを向上できます。

    メリットの詳細については、ドキュメントのTF GraphDefのセクションをご覧ください。

  • Ultralytics YOLO26には、YOLOv5やYOLOv7などの他のモデルと比べて多くのメリットがあります。主なメリットは次のとおりです。

    1. 最先端のパフォーマンス: YOLO26は、リアルタイムの物体検出、インスタンスセグメンテーション、セマンティックセグメンテーション、分類において、優れた速度と精度を実現します。
    2. 使いやすさ: モデルのトレーニング、検証、予測、エクスポートに対応する使いやすいAPIを備えており、初心者から専門家まで利用できます。
    3. 幅広い互換性: ONNX、TensorRT、CoreML、TensorFlowなど、複数のエクスポート形式をサポートし、多様なデプロイ方法に対応します。

    詳細については、YOLO26の紹介をご覧ください。

  • YOLO26モデルをTF GraphDef形式にエクスポートすると、さまざまな専用ハードウェアプラットフォームにデプロイできます。一般的なデプロイ環境は次のとおりです。

    • TensorFlow Serving: TensorFlow Servingを使用すると、本番環境でモデルをスケーラブルにデプロイできます。モデル管理と効率的なサービングをサポートします。
    • モバイルデバイス: TF GraphDefモデルを、モバイルデバイスや組み込みデバイス向けに最適化されたTensorFlow Liteに変換すると、デバイス上で推論を実行できます。
    • Webブラウザー: TensorFlow.jsを使用してモデルをデプロイし、Webアプリケーションのクライアント側で推論を実行できます。
    • AIアクセラレーター: TPUやカスタムAIチップを活用して推論を高速化できます。

    詳しくは、デプロイ方法のセクションをご確認ください。

  • YOLO26モデルのエクスポートでよくある問題を解決するために、Ultralyticsは包括的なガイドとリソースを提供しています。インストール中やモデルのエクスポート中に問題が発生した場合は、次を参照してください。

    これらのリソースは、YOLO26モデルのエクスポートとデプロイに関するほとんどの問題の解決に役立ちます。

コメント