YOLO26モデルをTFLiteへエクスポートしデプロイするためのガイド

TensorFlow Lite edge deployment framework

エッジデバイスや組み込みデバイスでコンピュータビジョンモデルをデプロイするには、シームレスなパフォーマンスを確保できるフォーマットが必要です。

TensorFlow Lite(TFLite)エクスポートフォーマットを使用すると、Ultralytics YOLO26モデルを、エッジデバイスベースのアプリケーションにおける物体検出画像分類といったタスク向けに最適化できます。本ガイドでは、モデルをTFLiteフォーマットに変換する手順を解説し、様々なエッジデバイス上でモデルが効率的に動作するようにします。

なぜTFLiteへエクスポートするのか?

2017年5月にGoogleのTensorFlowフレームワークの一部として導入されたTensorFlow Lite(略称:TFLite)は、デバイス上での推論(エッジコンピューティングとも呼ばれます)向けに設計されたオープンソースのディープラーニングフレームワークです。これを利用することで、開発者はモバイル、組み込み、IoTデバイス、あるいは従来のコンピュータ上で学習済みモデルを実行するために必要なツールを手にできます。

TensorFlow Liteは、組み込みLinux、Android、iOS、マイクロコントローラ(MCU)など、幅広いプラットフォームと互換性があります。モデルをTFLiteにエクスポートすることで、アプリケーションを高速化・高信頼化し、オフラインでの実行も可能になります。

TFLiteモデルの主な特徴

TFLiteモデルは、開発者がモバイル、組み込み、エッジデバイス上でモデルを実行できるよう支援し、デバイス上での機械学習を実現する幅広い主要機能を提供します。

  • デバイス上の最適化: TFLiteはデバイス上のMLに最適化されており、データをローカルで処理してレイテンシを削減し、個人データを送信しないことでプライバシーを強化し、さらにモデルサイズを最小化してストレージを節約します。

  • マルチプラットフォームサポート: TFLiteは広範なプラットフォーム互換性を提供し、Android、iOS、組み込みLinux、マイクロコントローラをサポートしています。

  • 多様な言語サポート: TFLiteは、Java、Swift、Objective-C、C++、Pythonを含む様々なプログラミング言語と互換性があります。

  • 高性能: ハードウェアアクセラレーションとモデル最適化を通じて優れたパフォーマンスを実現します。

TFLiteでのデプロイオプション

YOLO26モデルをTFLiteフォーマットにエクスポートするコードを見る前に、TFLiteモデルが通常どのように使用されているかを理解しましょう。

TFLiteは、機械学習モデルのデバイス上デプロイに向けた様々なオプションを提供しています。その例は以下の通りです。

  • AndroidおよびiOSでのデプロイ: TFLiteを使用するAndroidおよびiOSアプリケーションは、エッジベースのカメラ映像やセンサーを分析して物体を検出・識別できます。TFLiteは、SwiftおよびObjective-Cで記述されたiOS向けネイティブライブラリも提供しています。以下のアーキテクチャ図は、TensorFlow Liteを使用してAndroidおよびiOSプラットフォームに学習済みモデルをデプロイするプロセスを示しています。

TensorFlow Lite deployment architecture for mobile

  • Implementing with Embedded Linux: If running inferences on a Raspberry Pi using the Ultralytics Guide does not meet the speed requirements for your use case, you can use an exported TFLite model to accelerate inference times. Additionally, it's possible to further improve performance by utilizing a Coral Edge TPU device.

  • マイクロコントローラでのデプロイ: TFLiteモデルは、わずか数キロバイトのメモリしか搭載していないマイクロコントローラやその他のデバイスにもデプロイ可能です。コアランタイムはArm Cortex M3上でわずか16 KBのメモリに収まり、基本的なモデルの多くを実行できます。オペレーティングシステムのサポート、標準のCまたはC++ライブラリ、あるいは動的メモリ割り当てを必要としません。

TFLiteへのエクスポート:YOLO26モデルの変換

モデルをTFLiteフォーマットに変換することで、デバイス上のモデル実行効率を向上させ、パフォーマンスを最適化できます。

インストール

必要なパッケージをインストールするには、以下のコマンドを実行します:

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

インストールプロセスに関する詳細な手順とベストプラクティスについては、Ultralyticsインストールガイドを確認してください。YOLO26に必要なパッケージをインストールする際に問題が発生した場合は、共通の問題ガイドで解決策とヒントを参照してください。

使用方法

すべてのUltralytics YOLO26モデルは、標準でエクスポートをサポートするように設計されており、好みのデプロイワークフローに簡単に統合できます。サポートされているエクスポート形式と構成オプションの全リストを確認して、アプリケーションに最適なセットアップを選択してください。

使用方法
  from ultralytics import YOLO

  # Load the YOLO26 model
  model = YOLO("yolo26n.pt")

  # Export the model to TFLite format
  model.export(format="tflite")  # creates 'yolo26n_float32.tflite'

  # Load the exported TFLite model
  tflite_model = YOLO("yolo26n_float32.tflite")

  # Run inference
  results = tflite_model("https://ultralytics.com/images/bus.jpg")

エクスポート引数

引数タイプデフォルト説明
formatstr'tflite'エクスポートされたモデルのターゲットフォーマット。さまざまなデプロイ環境との互換性を定義します。
imgszint または tuple640モデル入力に希望する画像サイズ。正方形の画像の場合は整数、特定の寸法のタプル (height, width) で指定できます。
halfboolFalseFP16(半精度)量子化を有効にし、モデルサイズを削減し、サポートされているハードウェア上での推論を高速化する可能性があります。
int8boolFalseINT8量子化をアクティブにし、主にエッジデバイス向けに、精度の損失を最小限に抑えながらモデルをさらに圧縮し、推論を高速化します。
nmsboolFalseNon-Maximum Suppression(NMS)を追加します。これは、正確で効率的な検出後処理に不可欠です。
batchint1エクスポートされたモデルのバッチ推論サイズ、または predict モードでモデルが同時に処理する画像の最大数を指定します。
datastr'coco8.yaml'データセット構成ファイルへのパス(デフォルト: coco8.yaml)。量子化に不可欠です。
fractionfloat1.0INT8 量子化キャリブレーションに使用するデータセットの割合を指定します。フルデータセットの一部を使用してキャリブレーションを行うことができ、実験時やリソースが限られている場合に便利です。INT8 を有効にして指定されていない場合は、フルデータセットが使用されます。
devicestrNoneエクスポート用のデバイスを指定します:CPU (device=cpu)、Appleシリコン用MPS (device=mps)。

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

エクスポートされたYOLO26 TFLiteモデルのデプロイ

Ultralytics YOLO26モデルをTFLiteフォーマットに正常にエクスポートしたら、次はデプロイです。TFLiteモデルを実行するための最初にして推奨されるステップは、前述の使用コード例で示したYOLO("model.tflite")メソッドを使用することです。ただし、他の様々な環境でTFLiteモデルをデプロイするための詳細な手順については、以下のリソースを確認してください。

  • Android: TensorFlow LiteをAndroidアプリケーションに統合するためのクイックスタートガイドであり、機械学習モデルのセットアップと実行に関する分かりやすい手順を提供します。

  • iOS: iOSアプリケーションでのTensorFlow Liteモデルの統合とデプロイに関する開発者向けの詳細ガイドです。ステップバイステップの手順とリソースが提供されています。

  • エンドツーエンドの例: このページでは、様々なTensorFlow Liteの例の概要を紹介しています。モバイルやエッジデバイス上の機械学習プロジェクトでTensorFlow Liteを実装したい開発者のために、実践的なアプリケーションやチュートリアルを展示しています。

まとめ

本ガイドでは、TFLiteフォーマットへのエクスポート方法に焦点を当てました。Ultralytics YOLO26モデルをTFLiteモデルフォーマットに変換することで、YOLO26モデルの効率と速度を向上させ、エッジコンピューティング環境に適したより効果的なものにできます。

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

また、他のUltralytics YOLO26統合に興味がある場合は、私たちの統合ガイドページをご覧ください。そこには有益な情報や洞察が多数掲載されています。

FAQ

YOLO26モデルをTFLiteフォーマットにエクスポートするにはどうすればよいですか?

YOLO26モデルをTFLiteフォーマットにエクスポートするには、Ultralyticsライブラリを使用します。まず、以下のコマンドで必要なパッケージをインストールしてください。

pip install ultralytics

次に、以下のコードスニペットを使用してモデルをエクスポートします。

from ultralytics import YOLO

# Load the YOLO26 model
model = YOLO("yolo26n.pt")

# Export the model to TFLite format
model.export(format="tflite")  # creates 'yolo26n_float32.tflite'

CLIユーザーの場合は、以下で実行可能です。

yolo export model=yolo26n.pt format=tflite # creates 'yolo26n_float32.tflite'

詳細については、Ultralyticsエクスポートガイドをご覧ください。

YOLO26モデルのデプロイにTensorFlow Liteを使用する利点は何ですか?

TensorFlow Lite(TFLite)は、デバイス上での推論向けに設計されたオープンソースのディープラーニングフレームワークであり、モバイル、組み込み、IoTデバイス上でYOLO26モデルをデプロイするのに理想的です。主な利点は以下の通りです。

  • デバイス上の最適化: データをローカルで処理することにより、レイテンシを最小化し、プライバシーを強化します。
  • プラットフォームの互換性: Android、iOS、組み込みLinux、MCUをサポートしています。
  • パフォーマンス: ハードウェアアクセラレーションを活用してモデルの速度と効率を最適化します。

詳細については、TFLiteガイドをご覧ください。

YOLO26 TFLiteモデルをRaspberry Piで実行することは可能ですか?

はい、YOLO26 TFLiteモデルをRaspberry Piで実行して推論速度を向上させることができます。まず、上述の通りにモデルをTFLiteフォーマットにエクスポートしてください。その後、TensorFlow Lite Interpreterなどのツールを使用して、Raspberry Pi上でモデルを実行します。

さらなる最適化のために、Coral Edge TPUの使用を検討してください。詳細な手順については、私たちのRaspberry PiデプロイガイドおよびEdge TPU統合ガイドを参照してください。

YOLO26の予測にマイクロコントローラ上のTFLiteモデルを使用できますか?

はい、TFLiteはリソースが限られたマイクロコントローラへのデプロイをサポートしています。TFLiteのコアランタイムはArm Cortex M3上でわずか16 KBのメモリを消費するだけで、基本的なYOLO26モデルを実行可能です。これにより、計算能力とメモリが最小限のデバイスへのデプロイに適しています。

開始するには、TFLite Micro for Microcontrollersガイドをご覧ください。

TFLiteでエクスポートされたYOLO26モデルと互換性のあるプラットフォームは何ですか?

TensorFlow Liteは広範なプラットフォーム互換性を提供しており、以下を含む幅広いデバイスでYOLO26モデルをデプロイできます。

  • AndroidおよびiOS: TFLite AndroidおよびiOSライブラリによるネイティブサポート。
  • 組み込みLinux: Raspberry Piなどのシングルボードコンピュータに最適。
  • マイクロコントローラ: リソースが制限されたMCUに適しています。

デプロイオプションの詳細については、詳細なデプロイガイドを参照してください。

YOLO26モデルからTFLiteへのエクスポート中に発生する一般的な問題をトラブルシューティングするにはどうすればよいですか?

YOLO26モデルをTFLiteへエクスポートする際にエラーが発生した場合、一般的な解決策は以下の通りです。

  • パッケージの互換性を確認: UltralyticsとTensorFlowの互換性のあるバージョンを使用していることを確認してください。私たちのインストールガイドを参照してください。
  • モデルのサポート: 特定のYOLO26モデルがTFLiteエクスポートをサポートしているか、Ultralyticsのエクスポートドキュメントページを確認してください。
  • 量子化の問題: INT8量子化を使用する場合、dataパラメータ内でデータセットパスが正しく指定されていることを確認してください。

トラブルシューティングのヒントについては、私たちの共通の問題ガイドをご覧ください。

コメント