YOLO26モデル形式からTF.jsモデル形式にエクスポート#
Ultralytics 8.4.83以降、tfjs(TensorFlow.js)のエクスポート形式は削除され、統合されたGoogle LiteRT形式に置き換えられました。LiteRTはLiteRT.js(WebGPUアクセラレーション対応)を介してブラウザーで動作し、TF.jsが担っていたブラウザー内およびNode.jsのユースケースに加え、モバイル、組み込み、エッジのユースケースにも、単一の.tfliteモデルで対応します。
format="tfjs"は引き続き動作しますが、非推奨の警告を出し、代わりにLiteRTモデルをエクスポートします。今後はformat="litert"を使用してください。最新のエクスポート手順とブラウザーデプロイ方法については、LiteRTエクスポートガイドをご覧ください。
機械学習モデルをブラウザーやNode.jsに直接デプロイするのは簡単ではありません。ユーザーのデバイス上でインタラクティブなアプリケーションをローカル実行できるように、モデル形式を最適化して高速化する必要があります。TensorFlow.js(TF.js)モデル形式は、消費電力を最小限に抑えながら高速な処理を実現するように設計されています。
「TF.jsモデル形式へのエクスポート」機能を使うと、Ultralytics YOLO26モデルを最適化し、高速かつローカルな物体検出推論を実現できます。このガイドでは、モデルをTF.js形式に変換する方法を説明し、さまざまなローカルブラウザーやNode.jsアプリケーションでモデルを簡単に実行できるようにします。
TF.jsにエクスポートする理由#
TensorFlowエコシステムの一部としてTensorFlowチームが開発したTensorFlow.jsに機械学習モデルをエクスポートすると、機械学習アプリケーションのデプロイに多くのメリットがあります。機密データをデバイス上に保持することで、ユーザーのプライバシーとセキュリティを強化できます。下図はTensorFlow.jsのアーキテクチャと、機械学習モデルをWebブラウザーおよびNode.js向けに変換、デプロイする方法を示しています。
モデルをローカルで実行するとレイテンシも低減し、応答性の高いユーザー体験を提供できます。TensorFlow.jsはオフライン機能にも対応しているため、インターネットに接続していない場合でもアプリケーションを利用できます。TF.jsはスケーラビリティを考慮して設計されており、GPUアクセラレーションにも対応しているため、リソースが限られたデバイス上でも複雑なモデルを効率的に実行できます。
TF.jsの主な機能#
TF.jsを開発者にとって強力なツールにしている主な機能は次のとおりです。
-
クロスプラットフォーム対応: TensorFlow.jsはブラウザーとNode.jsの両方の環境で使用できるため、さまざまなプラットフォームに柔軟にデプロイできます。開発者はアプリケーションをより簡単に構築、デプロイできます。
-
複数のバックエンドに対応: TensorFlow.jsは、CPU、GPUアクセラレーション用のWebGL、ネイティブに近い実行速度を実現するWebAssembly(WASM)、高度なブラウザーベースの機械学習機能を提供するWebGPUなど、さまざまな計算バックエンドに対応しています。
-
オフライン機能: TensorFlow.jsを使うと、インターネット接続がなくてもブラウザー上でモデルを実行できるため、オフラインでも機能するアプリケーションを開発できます。
TensorFlow.jsを使ったデプロイ方法#
YOLO26モデルをTF.js形式にエクスポートする手順に入る前に、この形式が使われる一般的なデプロイシナリオをいくつか見ていきましょう。
TF.jsでは、機械学習モデルをデプロイするためのさまざまな方法を利用できます。
-
ブラウザー内のMLアプリケーション: ブラウザー上で機械学習モデルを直接実行するWebアプリケーションを構築できます。サーバー側での計算が不要になり、サーバーの負荷も軽減されます。
-
Node.jsアプリケーション: TensorFlow.jsはNode.js環境へのデプロイにも対応しており、サーバー側の機械学習アプリケーションを開発できます。サーバーの処理能力やサーバー側のデータへのアクセスが必要なアプリケーションに特に有用です。
-
Chrome拡張機能: TensorFlow.jsを使ったChrome拡張機能の作成も興味深いデプロイシナリオの1つです。たとえば、Webページ上の画像を右クリックすると、事前学習済みMLモデルで分類する拡張機能を開発できます。TensorFlow.jsを日常のWebブラウジング体験に統合すれば、機械学習に基づく分析や機能強化をすぐに提供できます。
YOLO26モデルをTensorFlow.jsにエクスポート#
YOLO26モデルをTF.jsに変換すると、モデルの互換性とデプロイの柔軟性を高められます。
インストール#
必要なパッケージをインストールするには、次を実行します。
# Install the required package for YOLO26
pip install ultralyticsインストール手順の詳細とベストプラクティスについては、Ultralyticsのインストールガイドをご覧ください。YOLO26に必要なパッケージのインストールで問題が発生した場合は、解決策とヒントが記載されたよくある問題のガイドをご確認ください。
使用方法#
すべてのUltralytics YOLO26モデルは、追加設定なしでエクスポートできるように設計されているため、希望するデプロイワークフローに簡単に統合できます。アプリケーションに最適な設定を選ぶには、対応するエクスポート形式と設定オプションの一覧をご覧ください。
tfjs引数を使うと、LiteRTの.tfliteモデルがエクスポートされます。このモデルはローカルでエクスポート、予測、検証モードに対応し、LiteRT.jsを介してブラウザーで動作します。ブラウザーおよびデバイス上での最新のデプロイ方法については、LiteRTエクスポートガイドをご覧ください。
from ultralytics import YOLO
# YOLO26モデルを読み込みます
model = YOLO("yolo26n.pt")
# モデルをLiteRT形式にエクスポート(TF.jsの代替)
model.export(format="litert", imgsz=640) # 分類ではimgsz=224を使用しますエクスポートしたLiteRTの.tfliteモデルは、yolo predictおよびyolo valで直接読み込めます。また、LiteRT.jsを介してブラウザーで実行できます。LiteRTエクスポートガイドをご覧ください。
エクスポート引数#
| 引数 | 種類 | デフォルト | 説明 |
|---|---|---|---|
format | str | 'litert' | エクスポートするモデルのターゲット形式です。非推奨の'tfjs'値を指定するとLiteRTがエクスポートされます。 |
imgsz | intまたはtuple | 640 | モデル入力の画像サイズです。正方形画像の場合は整数、特定のサイズの場合はタプル(height, width)を指定できます。 |
quantize | intまたはstr | None | 量子化の精度: 8(静的INT8、int8の重みとint8のアクティベーション。キャリブレーション用のdata/fractionが必要)、'w8a16'(静的、int8の重みとint16のアクティベーション。キャリブレーション用のdata/fractionが必要)、'w8a32'(動的INT8、int8の重みとFP32のアクティベーション。キャリブレーション不要)、または32/未設定(FP32)を指定します。FP16は個別にエクスポートされません。FP32モデルはGPUデリゲート上で自動的にFP16で実行されます。非推奨のhalf/int8フラグに代わるものです。 |
batch | int | 1 | エクスポートモデルのバッチ推論サイズ、またはpredictモードでエクスポートモデルが同時に処理する画像の最大数を指定します。 |
data | str | None | 量子化に必要なデータセットのYAMLへのパスです。分類タスクの場合は、データセットディレクトリまたは組み込みのデータセット名を指定します。quantize=8または'w8a16'を指定してこの項目を省略すると、Ultralyticsがモデルタスクに応じたデフォルトのキャリブレーションデータセットを選択します。 |
fraction | float、int、またはlist | 1.0 | キャリブレーション用サブセットを、比率、画像数、または[train, val, test]の比率/件数として指定します。2項目のリストではtestがすべて含まれ、0では除外されます。 |
device | str | None | エクスポートに使用するデバイスを指定します。CPU (device=cpu)、Appleシリコン向けMPS (device=mps)です。 |
エクスポートプロセスの詳細については、Ultralyticsのエクスポートに関するドキュメントページをご覧ください。
エクスポートしたYOLO26 TensorFlow.jsモデルのデプロイ#
YOLO26モデルをエクスポートしたので、次はデプロイします。エクスポートによって、LiteRT .tfliteモデルが生成され、デバイス上およびLiteRT.jsを介してブラウザー上で動作します — 現在の手順については、LiteRTエクスポートガイドをご覧ください。
参考までに、従来のTensorFlow.jsランタイムのリソースを以下に示します。
-
Chrome拡張機能: TF.jsモデルをChrome拡張機能にデプロイする方法については、こちらの開発者向けドキュメントをご覧ください。
-
Node.jsでTensorFlow.jsを実行する: TensorFlow.jsをNode.jsで直接実行する方法を紹介するTensorFlowのブログ記事です。
-
TensorFlow.jsをクラウドプラットフォームにデプロイする - Nodeプロジェクト: TensorFlow.jsモデルをクラウドプラットフォームにデプロイする方法を紹介するTensorFlowのブログ記事です。
概要#
このガイドでは、Ultralytics YOLO26モデルをTensorFlow.js形式にエクスポートする方法を説明しました。TF.jsにエクスポートすると、幅広いプラットフォームでYOLO26モデルを柔軟に最適化、デプロイ、スケーリングできます。
使用方法の詳細については、TensorFlow.js公式ドキュメントをご覧ください。
Ultralytics YOLO26を他のプラットフォームやフレームワークと統合する方法については、統合ガイドページをご確認ください。YOLO26をプロジェクトで最大限に活用するための役立つリソースを多数掲載しています。
よくある質問#
Ultralytics YOLO26モデルのTensorFlow.js(TF.js)形式へのエクスポートは簡単です。次の手順に従ってください。
使用方法from ultralytics import YOLO # YOLO26モデルを読み込みます model = YOLO("yolo26n.pt") # モデルをLiteRT形式にエクスポート(TF.jsの代替) model.export(format="litert", imgsz=640) # 分類ではimgsz=224を使用します # エクスポートした'.tflite'モデルは、LiteRT.jsを介してブラウザーで実行するか、yolo predict/valでローカル実行できます。対応しているエクスポートオプションの詳細については、デプロイオプションに関するUltralyticsドキュメントページをご覧ください。
YOLO26モデルをTensorFlow.jsにエクスポートすると、次のようなメリットがあります。
- ローカル実行: モデルをブラウザーまたはNode.js上で直接実行できるため、レイテンシが低減し、ユーザー体験が向上します。
- クロスプラットフォーム対応: TF.jsは複数の環境に対応しており、デプロイの柔軟性を高めます。
- オフライン機能: インターネット接続がなくてもアプリケーションを動作させられるため、信頼性とプライバシーを確保できます。
- GPUアクセラレーション: WebGLを利用したGPUアクセラレーションにより、リソースが限られたデバイスでもパフォーマンスを最適化できます。
TensorFlow.jsは、ブラウザーやNode.js環境でMLモデルを効率的に実行できるように設計されています。ブラウザーベースのアプリケーションには、次のようなメリットがあります。
- レイテンシの低減: 機械学習モデルをローカルで実行するため、サーバー側の計算に依存せず、すぐに結果を得られます。
- プライバシーの向上: 機密データをユーザーのデバイス上に保持し、セキュリティリスクを最小限に抑えます。
- オフライン利用: インターネット接続がなくてもモデルを動作させられるため、安定した機能を提供できます。
- 複数のバックエンドに対応: CPU、WebGL、WebAssembly(WASM)、WebGPUなどのバックエンドに対応し、さまざまな計算要件に柔軟に対応できます。
TF.jsについて詳しく知りたい場合は、TensorFlow.js公式ガイドをご覧ください。
TensorFlow.jsの主な機能は次のとおりです。
- クロスプラットフォーム対応: TF.jsはWebブラウザーとNode.jsの両方で使用でき、幅広いデプロイ方法に対応します。
- 複数のバックエンド: CPU、GPUアクセラレーション用のWebGL、WebAssembly(WASM)、高度な処理向けのWebGPUに対応しています。
- オフライン機能: インターネット接続がなくてもブラウザー上でモデルを直接実行できるため、応答性の高いWebアプリケーションの開発に最適です。
デプロイシナリオや詳しい情報については、TensorFlow.jsを使ったデプロイ方法のセクションをご覧ください。
はい。TensorFlow.jsを使うと、YOLO26モデルをNode.js環境にデプロイできます。これにより、サーバーの処理能力やサーバー側のデータへのアクセスを活用した、サーバー側の機械学習アプリケーションを構築できます。一般的な用途には、リアルタイムのデータ処理やバックエンドサーバー上の機械学習パイプラインがあります。
Node.jsへのデプロイを始めるには、TensorFlowのガイドNode.jsでTensorFlow.jsを実行するをご覧ください。