Ultralytics YOLO27: ウェイティングリストに登録してください。

YOLOモデルをLiteRTにエクスポートしてエッジやWebにデプロイ#

LiteRT edge deployment framework

LiteRT(軽量ランタイムの略)は、Googleが提供する高性能なオンデバイスAIランタイムです。これはTensorFlow Lite(TFLite)の次世代版であり、新しい名称です。また、同じ.tfliteモデル形式を使用します。LiteRTを使えば、エクスポートした1つのUltralytics YOLOモデルを、モバイル、組み込み、エッジ、ブラウザーにデプロイできます。従来は別々に対応していたtfliteとtfjsのエクスポート形式を、1つの形式に統合します。



視聴: Ultralytics YOLO26をGoogle LiteRTにエクスポートする方法 | AndroidとiOSでビジョンAIをデプロイ | モバイルAI 📱🚀

LiteRTのエクスポート形式は、物体検出、セグメンテーション、姿勢推定、分類などのタスクに合わせてモデルを最適化し、幅広いデバイスで高速かつオフラインで実行できるようにします。

公式Flutterプラグインを使って、今すぐLiteRTでAndroid上のYOLOを実行しましょう

公式のUltralytics YOLO Flutterプラグインは、LiteRTの.tfliteエクスポートをそのままAndroidで実行できます。リアルタイムのカメラ推論、単一画像の予測、GPUアクセラレーション、Depthを含むYOLO26の7つすべてのタスクに対応したモデルの自動ダウンロードが可能です。AppleデバイスではCoreMLエクスポートを、Qualcomm Snapdragon NPUではQualcomm QNN統合をご利用ください。

公式モバイル入力サイズ

分類モデルはimgsz=224でエクスポートします。detect、segment、semantic、depth、pose、OBBモデルは imgsz=640でエクスポートします。この224/640規格は、公式LiteRT、CoreML、QNNのモバイルアセットで共通です。

公式@ultralytics/yolo npmパッケージを使って、今すぐLiteRT.jsでWeb上のYOLOを実行しましょう

公式のUltralytics YOLO NPMパッケージは、LiteRT.jsを介してLiteRTの.tfliteエクスポートをブラウザーで直接実行します。サーバーもPythonも必要ありません。リアルタイムのWebカメラ推論、単一画像の予測、WebGPUアクセラレーション(CPU/WASMへの自動フォールバック)に対応し、YOLO26の6つのタスク(detect、segment、semantic、classify、pose、OBB)を実行できます。WebGPUでは、ONNX Runtime Webより約~2倍高速になることがよくあります。

npm i @ultralytics/yolo @litertjs/core

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

LiteRTは、オンデバイス推論、つまりエッジコンピューティング向けに設計されたオープンソースのフレームワークです。開発者はこのフレームワークを使って、トレーニング済みモデルをモバイル、組み込み、IoTデバイスや従来型のコンピューターで実行できます。また、LiteRT.jsを使えば、WebブラウザーやNode.jsでも直接実行できます。

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

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

LiteRTモデルの主な機能#

  • オンデバイス最適化: データをローカルで処理してレイテンシを低減し、個人データを送信しないことでプライバシーを強化し、モデルサイズを最小限に抑えてストレージを節約します。
  • 複数プラットフォームのサポート: 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に対応しています。

実測パフォーマンス#

ハードウェア: メモリ12 GB、Android 17 / API 37搭載の Xiaomi 17。3 nmプロセスの Snapdragon 8 Elite Gen 5(SM8850)は、8コアのQualcomm Oryon CPU(最大4.6 GHzのPrimeコア2基、最大3.62 GHzのPerformanceコア6基)、Adreno GPU、Hexagon NPUを備えています。

モデルタスクサイズ
(ピクセル)
CPU
w8a32 LiteRT
(ms)
GPU
w8a32 LiteRT
(ms)
NPU
LiteRT FP32
(ミリ秒)
YOLO26nDetect64036.9
1.9 / 32.6 / 2.3
10.6
1.8 / 6.2 / 2.6
10.1
3.5 / 4.0 / 2.5
YOLO26n-segSegment64050.5
1.9 / 42.9 / 5.8
18.0
1.9 / 9.5 / 6.6
19.2
3.6 / 5.9 / 9.7
YOLO26n-semセマンティック64045.7
1.9 / 35.7 / 8.2
30.6
1.9 / 20.5 / 8.3
25.8
3.6 / 11.0 / 11.3
YOLO26n-depth深度64066.8
2.2 / 55.0 / 9.7
21.9
2.1 / 10.1 / 9.8
24.8
4.3 / 6.0 / 14.5
YOLO26n-cls分類2243.6
0.3 / 3.3 / 0.0
2.0
0.4 / 1.4 / 0.2
1.5
0.6 / 0.7 / 0.3
YOLO26n-pose姿勢推定64039.9
2.0 / 36.5 / 1.4
10.0
1.8 / 6.7 / 1.4
11.5
3.5 / 4.2 / 3.8
YOLO26n-obbOBB64036.3
2.0 / 33.2 / 1.2
10.1
2.6 / 5.9 / 1.6
8.2
3.5 / 3.7 / 0.9
  • 速度の値は単一画像のバーストレイテンシです。bus.jpg 上でウォームアップ3回の後に15回実行した平均値を、Ultralytics Flutterプラグイン 0.7.1 と公式の v0.7.0 アセット(Ultralytics 8.4.188でエクスポート)を使用して測定しました。1回の逐次スイープ内で、タスクごとにCPU/GPUの実行順を交互にしました。ネイティブログにより、CPUの各行でLiteRT CPU/XNNPACKが使用され、GPUの各行ではグラフ全体がLiteRT OpenCL(LITERT_CL)に委譲されたことを確認しました。
  • LiteRTエクスポートではPyTorchモデルを直接トレースし、浮動小数点入力のNCHW .tfliteを生成します。GPUデリゲートはグラフ全体をコンパイルし(ここでは7つすべてのタスクがAdreno GPU上で実行されます)、w8a32ではキャリブレーションデータは不要です。従来のonnx2tf NHWCレイアウトやIdentityの出力名を前提とせず、テンソル形状とシグネチャ名を確認してください。RGBデータは平面CHW形式で直接パックするか、推論前に転置してください。セマンティックエクスポートはNCHWロジットを返すため、ホスト側でクラスのargmax処理が必要です。公式Androidアセットはyolo-flutter-app v0.7.0リリースで提供されており、詳細なベンチマーク記録はFlutterパフォーマンスドキュメントにあります。
  • NPU列はLiteRT独自のNPUパスです。FP32エクスポート(yolo export format=litert、quantize なし)を、litert-npu-runtime-qualcomm と -mediatek の2.3.0ランタイムでデバイス上でコンパイルし、FlutterプラグインのNPUプロトタイプビルド(未リリース)を使用して測定しました。初回ロードにはコンパイル時間が含まれます(n では約0.3秒、x では最大6秒)。w8a32 アセットは、これらのNPUでは完全にはコンパイルできません。LiteRTはグラフをGPU上でサイレントに実行する場合でもNPUコンパイルを報告するため、NPUの各行をGPUの実行時間と照合しました。フォールバックした行は — で示しています。
  • 公式QNNアセットを使用したSnapdragon Hexagon NPUの対応する数値は、Qualcomm QNN統合に掲載されています。
  • Apple CPU/アクセラレーターの結果は、CoreML統合で比較できます。

以下のデバイス別スイープでは、同じ公式 v0.7.0 アセットを使用しています。

Google Pixel 10#

ハードウェア: メモリ12 GB、Android 17 / API 37搭載の Google Pixel 10。3 nmプロセスの Google Tensor G5 は、8コアCPU(最大3.78 GHzのPrimeコア1基、最大3.05 GHzのPerformanceコア5基、最大2.25 GHzのEfficiencyコア2基)、PowerVR D-Series GPU、Google TPUを備えています。Googleはリンク先の仕様でコアクロックとGPUドライバー名を公開していないため、ベンチマーク対象デバイスから読み取りました。

モデルタスクサイズ
(ピクセル)
CPU
w8a32 LiteRT
(ms)
GPU
w8a32 LiteRT
(ms)
YOLO26nDetect64036.6
1.5 / 33.5 / 1.6
36.5
3.5 / 28.4 / 4.6
YOLO26n-segSegment64053.1
1.5 / 45.8 / 5.7
51.5
1.6 / 40.1 / 9.9
YOLO26n-semセマンティック64057.2
1.5 / 47.7 / 8.0
75.9
1.8 / 63.4 / 10.8
YOLO26n-depth深度64075.0
1.6 / 65.1 / 8.3
50.1
1.7 / 33.5 / 14.9
YOLO26n-cls分類2246.1
0.3 / 5.5 / 0.3
12.1
0.9 / 11.0 / 0.1
YOLO26n-pose姿勢推定64035.2
1.5 / 31.9 / 1.8
38.2
3.5 / 29.3 / 5.4
YOLO26n-obbOBB64032.7
1.5 / 29.3 / 1.9
38.8
3.8 / 29.6 / 5.4

ベンチマーク: bus.jpg 上で predict() をウォームアップ3回の後に15回実行した平均値です。ultralytics_yolo 0.7.1 と公式の v0.7.0 アセットを使用しました。1回の逐次スイープ内で、タスクごとにCPU/GPUの実行順を交互にしました。ネイティブログにより、CPUの各行でLiteRT CPU/XNNPACKが使用され、GPUの各行ではグラフ全体がLiteRT OpenCL(LITERT_CL)に委譲されたことを確認しました。Tensor NPUにはLiteRTの行がありません。GoogleのEdgeTPUサービスは許可リストにないアプリを拒否し、その場合LiteRTはモデルをGPU上で実行します。

Samsung Galaxy S26#

ハードウェア: メモリ12 GB、Android 17 / API 37搭載の Samsung Galaxy S26(SM-S942B)。2 nmプロセスの Exynos 2600 は、10コアのArmv9.3 CPU(最大3.8 GHzのC1-Ultraコア1基、最大3.26 GHzのPerformance C1-Proコア3基、最大2.76 GHzのEfficiency C1-Proコア6基)、Xclipse 960 GPU、Samsung NPUを備えています。

モデルタスクサイズ
(ピクセル)
CPU
w8a32 LiteRT
(ms)
GPU
w8a32 LiteRT
(ms)
NPU
LiteRT w8a32 AOT
(ミリ秒)
YOLO26nDetect64030.2
1.3 / 27.3 / 1.6
15.9
1.4 / 11.5 / 2.9
12.2
1.3 / 8.6 / 2.2
YOLO26n-segSegment64045.6
1.3 / 39.1 / 5.2
30.5
1.3 / 23.6 / 5.6
17.0
1.4 / 9.7 / 5.8
YOLO26n-semセマンティック64038.1
1.3 / 28.6 / 8.2
26.1
1.3 / 16.8 / 7.9
28.3
1.7 / 15.1 / 11.5
YOLO26n-depth深度64063.5
1.4 / 53.6 / 8.4
37.3
1.4 / 24.6 / 11.3
28.4
2.1 / 12.9 / 13.4
YOLO26n-cls分類2243.8
0.2 / 3.4 / 0.2
2.8
0.2 / 2.6 / 0.0
6.1
0.5 / 5.2 / 0.4
YOLO26n-pose姿勢推定64031.1
1.3 / 28.4 / 1.4
18.4
1.6 / 13.0 / 3.8
13.5
1.8 / 9.5 / 2.2
YOLO26n-obbOBB64027.9
1.3 / 25.7 / 0.9
15.3
1.9 / 11.4 / 2.1
11.4
1.7 / 8.3 / 1.4

ベンチマーク: bus.jpg 上で predict() をウォームアップ3回の後に15回実行した平均値です。ultralytics_yolo 0.7.1 と公式の v0.7.0 アセットを使用しました。1回の逐次スイープ内で、タスクごとにCPU/GPUの実行順を交互にしました。ネイティブログにより、CPUの各行でLiteRT CPU/XNNPACKが使用され、GPUの各行ではグラフ全体がLiteRT OpenCL(LITERT_CL)に委譲されたことを確認しました。NPU列では、LiteRTのSamsungコンパイラープラグインを使用してExynos 2600(E9965)向けに事前コンパイルされた w8a32 アセットを使用しています。SamsungはLiteRT 2.3にオンデバイスコンパイラーを提供しておらず、GoogleもSamsung NPUランタイムをまだ公開していないため、これらの行ではLiteRT 2.3のソースから構築したディスパッチライブラリを使用しました。

Xiaomi 17T Pro#

ハードウェア: 12 GBのLPDDR5XメモリとAndroid 16 / API 36を搭載したXiaomi 17T Pro(2602EPTC0G)。3 nmのMediaTek Dimensity 9500(MT6993)は、8コアのArmv9.3 CPU(最大4.21 GHzのC1-Ultraコア1基、最大3.5 GHzのC1-Premiumコア3基、最大2.7 GHzのC1-Proコア4基)、Mali-G1 Ultra MC12 GPU、MediaTek NPU 990を搭載しています。

モデルタスクサイズ
(ピクセル)
CPU
w8a32 LiteRT
(ms)
GPU
w8a32 LiteRT
(ms)
NPU
LiteRT FP32
(ミリ秒)
YOLO26nDetect64031.4
1.5 / 28.0 / 1.9
25.6
1.4 / 22.2 / 2.0
11.0
1.3 / 7.8 / 1.8
YOLO26n-segSegment64077.8
2.6 / 65.3 / 9.9
47.4
2.6 / 33.6 / 11.3
36.5
2.6 / 23.4 / 10.4
YOLO26n-semセマンティック64081.3
2.6 / 62.2 / 16.5
79.3
2.6 / 59.5 / 17.1
87.6
2.6 / 68.3 / 16.7
YOLO26n-depth深度640111.3
3.4 / 91.1 / 16.8
55.3
2.8 / 36.3 / 16.1
—
YOLO26n-cls分類2246.3
0.5 / 5.4 / 0.4
8.1
0.5 / 7.5 / 0.1
3.2
0.5 / 2.2 / 0.5
YOLO26n-pose姿勢推定64053.9
2.6 / 49.5 / 1.8
32.8
2.7 / 26.7 / 3.4
16.2
2.9 / 11.1 / 2.3
YOLO26n-obbOBB64049.5
2.7 / 44.4 / 2.4
29.4
2.8 / 22.7 / 3.9
—

ベンチマーク: bus.jpg 上で、3回のウォームアップ後に predict() を15回実行した平均値です。ultralytics_yolo 0.7.1 と公式の v0.7.0 アセットを使用しています。CPU/GPUの順序は、1回の連続した測定内でタスクごとに交互に切り替えています。ネイティブログにより、すべてのCPU行がLiteRT CPU/XNNPACKを使用し、すべてのGPU行がグラフ全体をLiteRT OpenCL(LITERT_CL)に委譲したことを確認しました。 DepthとOBBにはNPUの結果がありません。MediaTek NPUコンパイラーが指数関数演算と三角関数演算を拒否し、LiteRTはこれらのグラフをGPUで実行するためです。

対応タスク#

LiteRTエクスポートはUltralyticsの7つすべてのタスクをサポートします。セマンティックセグメンテーションと深度推定はYOLO26でのみ利用できます。これらのヘッドを提供するファミリーはYOLO26だけです。

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

LiteRTへのエクスポート: YOLOモデルの変換#

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

インストール#

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

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

詳しい手順とベストプラクティスについては、Ultralyticsインストールガイドをご覧ください。問題が発生した場合は、よくある問題のガイドを参照してください。

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

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

使用方法#

すべてのUltralytics YOLOモデルは、そのままエクスポートをサポートしています。LiteRT形式はエクスポート、予測、検証モードをサポートしているため、モデルをエクスポートした後に読み込んで、推論を実行したり、ローカルで精度を検証したりできます。

エクスポート
from ultralytics import YOLO

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

# モデルをLiteRT形式にエクスポートします
model.export(format="litert", imgsz=640)  # 'yolo26n.tflite'を生成します。分類ではimgsz=224を使用します
量子化エクスポート
from ultralytics import YOLO

model = YOLO("yolo26n.pt")

# 動的INT8: int8ウェイト、FP32アクティベーション — キャリブレーションデータ不要
model.export(format="litert", quantize="w8a32", imgsz=640)  # 'yolo26n_w8a32.tflite'を生成します

# 静的INT8: int8ウェイト + int8アクティベーション — キャリブレーションデータが必要です
model.export(format="litert", quantize=8, data="coco8.yaml", imgsz=640)  # 'yolo26n_int8.tflite'を生成します

# 静的w8a16: int8ウェイト + int16アクティベーション(精度向上)— キャリブレーションデータが必要です
model.export(format="litert", quantize="w8a16", data="coco8.yaml", imgsz=640)  # 'yolo26n_w8a16.tflite'を生成します
推論
from ultralytics import YOLO

# エクスポートしたLiteRTモデルを読み込みます
model = YOLO("yolo26n.tflite")

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

# エクスポートしたLiteRTモデルを読み込みます
model = YOLO("yolo26n.tflite")

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

エクスポート引数#

引数種類デフォルト説明
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モードでエクスポートモデルが同時に処理する画像の最大数を指定します。
datastrNoneINT8キャリブレーションに使用するデータセットYAMLです。分類の場合は、代わりにデータセットディレクトリまたは組み込みデータセット名を指定します。quantize=8または'w8a16'を指定して省略した場合、Ultralyticsはモデルのタスクに応じたデフォルトのキャリブレーションデータセットを選択します。
fractionfloat、int、またはlist1.0キャリブレーション用サブセットを、比率、画像数、または[train, val, test]の比率/件数として指定します。2項目のリストではtestがすべて含まれ、0では除外されます。
devicestrNoneエクスポートに使用するデバイスを指定します。LiteRTエクスポートはCPU(device=cpu)で実行されます。
FP16精度

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

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

Intel CPUおよびNPUでの推論#

エクスポートした.tfliteモデルは、LiteRT Intel OpenVINOプラグインを通じてIntelハードウェア上で実行できます。device=intel:cpuまたはdevice=intel:npuを指定すると、初回使用時にUltralyticsがai-edge-litert>=2.3.0とai-edge-litert-sdk-intelをインストールします。NPUを使用するには、Intel NPUドライバーがインストールされたIntel Core Ultraプロセッサーが必要です。

推論
from ultralytics import YOLO

model = YOLO("yolo26n.tflite")
results = model("https://ultralytics.com/images/bus.jpg", device="intel:npu")  # または "intel:cpu"

ハードウェア: Intel Core Ultra X7 358H (Panther Lake)およびIntel AI Boost NPU 5010、Fedora Linux、NPUドライバー1.38.0、ai-edge-litert 2.3.0。

モデルタスクサイズ
(ピクセル)
CPU
w8a32 LiteRT
(ms)
CPU
w8a32 Intel
(ms)
NPU
w8a32 Intel
(ms)
YOLO26nDetect64017.5
0.8 / 16.1 / 0.6
22.6
1.2 / 20.6 / 0.8
4.8
1.0 / 3.3 / 0.4
YOLO26n-segSegment64024.2
0.9 / 22.1 / 1.3
32.6
1.0 / 30.1 / 1.5
6.2
0.8 / 4.2 / 1.2
YOLO26n-semセマンティック64025.2
1.0 / 14.2 / 10.0
33.1
1.1 / 21.9 / 10.2
16.5
1.0 / 5.5 / 10.0
YOLO26n-depth深度64031.7
0.9 / 30.2 / 0.5
76.6
0.9 / 75.2 / 0.5
9.1
1.0 / 7.5 / 0.5
YOLO26n-cls分類2244.6
2.8 / 1.7 / 0.0
7.3
3.3 / 3.9 / 0.0
4.1
3.2 / 0.9 / 0.0
YOLO26n-pose姿勢推定64020.3
0.8 / 19.0 / 0.5
28.6
1.1 / 26.8 / 0.8
6.3
0.8 / 4.9 / 0.5
YOLO26n-obbOBB64017.2
0.8 / 16.1 / 0.3
22.1
1.2 / 20.5 / 0.4
4.6
0.9 / 3.4 / 0.3

ベンチマーク: bus.jpg上で3回ウォームアップした後に実行した、predict()の呼び出し15回の平均値です。ultralytics 8.4.174およびai-edge-litert 2.3.0を使用し、w8a32でエクスポートしています。各セルには合計時間が表示され、その下に前処理/推論/後処理の内訳が示されます。

エクスポートしたYOLO LiteRTモデルのデプロイ#

Ultralytics YOLOモデルをLiteRTにエクスポートした後は、さまざまなプラットフォームにデプロイできます。ローカルで最も手早く動作を確認するには、上記のYOLO("yolo26n.tflite")メソッドを使用します。他の環境へのデプロイについては、以下のリソースをご覧ください。

モバイルおよび組み込み#

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

ブラウザーおよびNode.js(LiteRT.js)#

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

概要#

このガイドでは、Ultralytics YOLOモデルをLiteRT形式にエクスポートする方法を説明しました。モバイル/エッジ(旧TFLite)とブラウザー(旧TF.js)のデプロイを単一の.tfliteモデルに統合することで、LiteRTを使えばYOLOモデルを高速化、小型化でき、ほぼすべてのオンデバイス環境に移植できます。

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

また、ほかのUltralytics YOLO統合に関心がある場合は、役立つリソースを多数掲載した統合ガイドページをご覧ください。

よくある質問#

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

    pip install ultralytics

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

    from ultralytics import YOLO
    
    # YOLO26モデルを読み込みます
    model = YOLO("yolo26n.pt")
    
    # モデルをLiteRT形式にエクスポートします
    model.export(format="litert", imgsz=640)  # 分類ではimgsz=224を使用します

    CLIを使用する場合:

    yolo export model=yolo26n.pt format=litert imgsz=640 # use imgsz=224 for classification

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

  • LiteRTはTensorFlow Liteの新しい名称です。モデル形式は同じ.tfliteで、ランタイムの系譜も同じであり、Googleによるブランド変更です。Ultralyticsでは、以前は別々の2つの形式が必要だった次の両方の用途を、単一のlitertエクスポート形式で扱えるようになりました。

    • 従来のtflite形式 → モバイル、組み込み、エッジへのデプロイ。
    • 従来のtfjs形式 → ブラウザーおよびNode.jsへのデプロイ。現在は、同じ.tfliteファイルを実行するLiteRT.jsで処理されます。

    既存の.tfliteファイルがある場合は、そのファイルをYOLO("model.tflite")で直接読み込むと、LiteRTバックエンドを通じて実行できます。

  • はい。モデルをLiteRT形式にエクスポートし、Raspberry Piで実行すると推論速度を向上できます。さらに最適化するには、Coral Edge TPUの利用をご検討ください。詳しい手順については、Raspberry Piデプロイガイドをご覧ください。

  • はい。LiteRT.jsを使用すると、エクスポート済みの同じ.tfliteモデルを、WebGPU/WASMアクセラレーションを利用してウェブブラウザーまたはNode.jsアプリケーションで直接実行できます。これにより、従来のTensorFlow.jsワークフローが置き換えられます。ブラウザー向けに別途エクスポートする必要はなく、LiteRT.jsランタイムでLiteRTモデルをデプロイするだけです。

  • はい、ランタイムで対応しています。FP32 LiteRTモデルをGPUデリゲート(WebGPU、OpenCL、またはMetal)で実行すると、自動的にFP16で実行されます。これが公式のLiteRT方式です。そのため、専用のFP16エクスポートは必要ありません。さらに圧縮するには、quantize=8を使ってINT8量子化を行ってください。

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

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

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

コメント