Meet YOLO26: next-gen vision AI.

Link to this sectionYOLOモデルをエッジおよびWeb展開用にLiteRTへエクスポートする#

LiteRT edge deployment framework

LiteRTLite Runtimeの略)は、オンデバイスAI向けのGoogle製高性能ランタイムです。これはTensorFlow Lite (TFLite) の次世代版であり、新しい名称です。同一の.tfliteモデルフォーマットを実行します。LiteRTを使用すれば、エクスポートされた1つのUltralytics YOLOモデルを、モバイル、組み込み、エッジ、ブラウザのすべてに展開可能です。これまではtflitetfjsという古いエクスポート形式で個別に扱っていたものが、今後は1つに統合されます。

LiteRTエクスポート形式は、物体検出セグメンテーション姿勢推定分類などのタスクに向けてモデルを最適化するため、幅広いデバイス上で高速かつオフラインでの実行が可能になります。

Link to this sectionなぜLiteRTにエクスポートすべきなのか?#

LiteRTは、エッジコンピューティングとしても知られるオンデバイス推論のために設計されたオープンソースフレームワークです。開発者はこれを使用することで、学習済みモデルをモバイル、組み込みデバイス、IoTデバイス、従来のコンピュータで実行できるほか、LiteRT.jsを通じてWebブラウザやNode.js上で直接実行することも可能です。

1つのモデル形式で、あらゆるターゲットに対応:

  • モバイルおよび組み込み:Android、iOS、組み込みLinux、およびマイクロコントローラ(MCU)。
  • エッジアクセラレータCoral Edge TPUと互換性があり、さらなる高速化が可能です。
  • ブラウザおよびNode.jsLiteRT.jsにより、WebGPU/WASMアクセラレーションを使用してWeb上で同一の.tfliteモデルを実行可能です。これにより、個別のTensorFlow.jsエクスポートが不要になります。

Link to this sectionLiteRTモデルの主な特徴#

  • オンデバイス最適化:データをローカルで処理することでレイテンシを削減し、個人データを送信しないことでプライバシーを強化します。また、モデルサイズを最小化して容量を節約します。
  • マルチプラットフォームサポート:Android、iOS、組み込みLinux、マイクロコントローラ、および最新のWebブラウザで動作します。
  • ハードウェアアクセラレーション:CPU上でXNNPACKを利用し、OpenCL、Metal、WebGPU経由でGPUアクセラレーションを活用します。GPUデリゲートは、さらなる高速化のためにデフォルトでFP16で実行されます。
  • 量子化:FP32、静的INT8(quantize=8、int8ウェイト+int8活性化関数)、静的INT16活性化(quantize="w8a16"、int8ウェイト+int16活性化関数により高精度)、動的INT8(quantize="w8a32"、int8ウェイト+FP32活性化関数、キャリブレーションデータ不要)をサポートしており、精度を最小限の低下に抑えつつモデルを圧縮し、推論を高速化します。
  • 多様な言語サポート:Java/Kotlin、Swift、Objective-C、C++、Python、およびJavaScriptと互換性があります。

Link to this sectionLiteRTへのエクスポート:YOLOモデルの変換#

モデルをLiteRT形式に変換することで、オンデバイスでの実行効率を向上させ、展開先の選択肢を広げることができます。

Link to this sectionインストール#

必要なパッケージをインストールするには、以下を実行してください:

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

詳細な手順やベストプラクティスについては、Ultralyticsインストールガイドをご確認ください。問題が発生した場合は、一般的な問題ガイドを参照してください。

プラットフォームサポート

LiteRTのエクスポートは現在、Linux x86_64およびmacOSでサポートされています。エクスポートされた.tfliteモデル自体は、LiteRTがサポートするすべてのプラットフォーム(モバイル、組み込み、エッジ、ブラウザ)で動作します。

Link to this section使用方法#

すべてのUltralytics YOLOモデルは、標準でエクスポートをサポートしています。LiteRT形式はエクスポート推論、および検証モードをサポートしているため、モデルをエクスポートした後にロードして、ローカルで推論を実行したり精度を検証したりすることが可能です。

エクスポート
from ultralytics import YOLO

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

# Export the model to LiteRT format
model.export(format="litert")  # creates 'yolo26n.tflite'
量子化エクスポート
from ultralytics import YOLO

model = YOLO("yolo26n.pt")

# Dynamic INT8: int8 weights, FP32 activations - no calibration data needed
model.export(format="litert", quantize="w8a32")  # creates 'yolo26n_w8a32.tflite'

# Static INT8: int8 weights + int8 activations - needs calibration data
model.export(format="litert", quantize=8, data="coco8.yaml")  # creates 'yolo26n_int8.tflite'

# Static w8a16: int8 weights + int16 activations (higher accuracy) - needs calibration data
model.export(format="litert", quantize="w8a16", data="coco8.yaml")  # creates 'yolo26n_w8a16.tflite'
予測
from ultralytics import YOLO

# Load the exported LiteRT model
model = YOLO("yolo26n.tflite")

# Run inference
results = model("https://ultralytics.com/images/bus.jpg")
検証
from ultralytics import YOLO

# Load the exported LiteRT model
model = YOLO("yolo26n.tflite")

# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")

Link to this sectionエクスポートの引数#

引数タイプデフォルト説明
formatstr'litert'エクスポートするモデルのターゲット形式。さまざまなデプロイ環境との互換性を定義します。
imgszintまたはtuple640モデル入力用の希望する画像サイズ。正方形画像の場合は整数、特定の寸法の場合はタプル(height, width)を指定できます。
quantizeint または strNone量子化精度:8(静的INT8、int8ウェイト+int8活性化関数。キャリブレーション用data/fractionが必要)、'w8a16'(静的、int8ウェイト+int16活性化関数。キャリブレーション用data/fractionが必要)、'w8a32'(動的INT8、int8ウェイト+FP32活性化関数。キャリブレーション不要)、または32/未設定(FP32)。FP16は個別にエクスポートされません(後述の注記を参照)。非推奨のhalf/int8フラグに代わるものです。
batchint1エクスポートされたモデルのバッチ推論サイズ、あるいはpredictモードで同時に処理する画像の最大数を指定します。
datastr'coco8.yaml'INT8キャリブレーションに使用するデータセットのYAML。quantize=8で省略された場合、Ultralyticsはモデルタスクのデフォルトのキャリブレーションデータセットを選択します。
devicestrNoneエクスポート先のデバイスを指定します。LiteRTエクスポートはCPU(device=cpu)上で実行されます。
FP16精度

従来のtfliteエクスポートとは異なり、LiteRTでは個別のFP16エクスポートは不要です。FP32の.tfliteモデルは、GPUデリゲート(WebGPU、OpenCL、Metal)を使用する場合、実行時に半精度で動作します。これがFP16推論に対する正式なLiteRTのアプローチです。

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

Link to this sectionエクスポートしたYOLO LiteRTモデルの展開#

Ultralytics YOLOモデルをLiteRTにエクスポートした後、さまざまなプラットフォームに展開できます。ローカルで検証する最も迅速な方法は、前述のYOLO("yolo26n.tflite")メソッドです。他の環境への展開については、以下のリソースを参照してください:

Link to this sectionモバイルおよび組み込み#

  • Android:AndroidアプリケーションにLiteRTを統合するためのクイックスタートガイドです。
  • iOS:iOSアプリケーションにLiteRTモデルを統合・展開するためのガイドです。
  • 組み込みLinuxおよびRaspberry Pi:シングルボードコンピュータでLiteRTモデルを実行します。Coral Edge TPUを使用して高速化することも可能です。
  • マイクロコントローラ:わずか数キロバイトのメモリしかないMCUに展開可能です。コアランタイムはArm Cortex-M3で約16 KBに収まります。

Link to this sectionブラウザおよびNode.js (LiteRT.js)#

  • LiteRT.jsの概要:WebGPU/WASMアクセラレーションにより、ブラウザ上で直接同じ.tfliteモデルを実行し、サーバー側の計算を不要にしてデータをユーザーのデバイス内に保持します。
  • エンドツーエンドの例:モバイル、エッジ、Web全体でLiteRTを実装するための実践的な例とチュートリアルです。

Link to this section要約#

本ガイドでは、Ultralytics YOLOモデルをLiteRT形式にエクスポートする方法を解説しました。モバイル/エッジ(旧TFLite)とブラウザ(旧TF.js)の展開を単一の.tfliteモデルに統合することで、LiteRTはYOLOモデルをより高速かつ軽量にし、あらゆるオンデバイスターゲット間でポータブルにします。

詳細については、LiteRT公式ドキュメントをご覧ください。

また、他のUltralytics YOLO統合に興味がある場合は、統合ガイドページで役立つリソースを多数紹介していますので、ぜひご覧ください。

Link to this sectionよくある質問 (FAQ)#

Link to this sectionYOLOモデルをLiteRT形式にエクスポートするにはどうすればよいですか?#

Ultralyticsライブラリを使用して、YOLOモデルをLiteRT (.tflite) にエクスポートします。まず、パッケージをインストールしてください:

pip install ultralytics

次に、モデルをエクスポートします:

from ultralytics import YOLO

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

# Export the model to LiteRT format
model.export(format="litert")  # creates 'yolo26n.tflite'

CLIユーザーの場合:

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

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

Link to this sectionLiteRT、TFLite、TF.jsの違いは何ですか?#

LiteRTはTensorFlow Liteの新しい名称です。モデルフォーマット(.tflite)やランタイムの系譜は同じで、Googleによってブランド名が変更されました。Ultralyticsでは、これまで2つの別々のフォーマットを必要としていた両方のユースケースを、単一のlitertエクスポート形式でカバーできるようになりました:

  • 従来のtfliteフォーマット → モバイル、組み込み、およびエッジへの展開。
  • The old tfjs format → browser and Node.js deployment, now handled by LiteRT.js running the same .tflite file.

既存の.tfliteファイルがある場合、YOLO("model.tflite")で直接ロードでき、LiteRTバックエンドを通じて実行されます。

Link to this sectionYOLO LiteRTモデルをRaspberry Piで実行できますか?#

はい。モデルをLiteRT形式にエクスポートし、Raspberry Pi上で実行することで推論速度を向上させることができます。さらなる最適化にはCoral Edge TPUを検討してください。詳細な手順については、Raspberry Pi展開ガイドを参照してください。

Link to this sectionLiteRTを使ってブラウザでYOLOモデルを実行できますか?#

はい。LiteRT.jsを使用すると、WebGPU/WASMアクセラレーションにより、WebブラウザやNode.jsアプリケーション上でエクスポート済みの同じ.tfliteモデルを直接実行できます。これにより、以前のTensorFlow.jsワークフローが置き換わります。個別のブラウザ用エクスポートは不要で、LiteRTモデルをLiteRT.jsランタイムで展開するだけです。

Link to this sectionLiteRTはFP16(半精度)推論をサポートしていますか?#

はい、実行時にサポートされます。FP32のLiteRTモデルは、GPUデリゲート(WebGPU、OpenCL、またはMetal)で実行される際に自動的にFP16で動作します。これが正式なLiteRTのアプローチです。したがって、専用のFP16エクスポートは不要です。さらなる圧縮が必要な場合は、quantize=8を使用してINT8量子化を行ってください。

Link to this sectionLiteRTエクスポート中に発生する一般的な問題をトラブルシューティングするにはどうすればよいですか?#

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

  • プラットフォームの確認:LiteRTのエクスポートはLinux x86_64およびmacOSでサポートされています。環境が適合しているか確認してください。
  • パッケージ互換性の確認:互換性のあるバージョンのUltralyticsを使用していることを確認してください。インストールガイドを参照してください。
  • 量子化の問題: INT8量子化を使用する場合は、dataパラメータでデータセットのパスが正しく指定されていることを確認してください。

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

コントリビューター

コメント