YOLOv8 モデル形式からTF.js モデル形式へのエクスポート
機械学習モデルをブラウザーやNode.jsに直接デプロイするのは厄介なことです。モデルをユーザーのデバイス上でインタラクティブなアプリケーションをローカルに実行するために使用できるように、モデルのフォーマットがより高速なパフォーマンスに最適化されていることを確認する必要があります。TensorFlow.js(またはTF.js)のモデルフォーマットは、高速なパフォーマンスを提供しながら、最小限の電力しか使わないように設計されています。
TF.js モデル形式へのエクスポート」機能により、モデルを最適化することができます。 Ultralytics YOLOv8モデルを最適化することができます。このガイドでは、モデルをTF.js形式に変換する手順を説明します。これにより、様々なローカルブラウザやNode.jsアプリケーション上でモデルがより簡単に動作するようになります。
なぜTF.jsにエクスポートする必要があるのか?
TensorFlow のエコシステムの一部としてTensorFlow チームによって開発されたTensorFlow.js に機械学習モデルをエクスポートすると、機械学習アプリケーションを展開する際に多くの利点があります。機密データをデバイス上に保持することで、ユーザーのプライバシーとセキュリティを強化することができます。下の画像は、TensorFlow.jsのアーキテクチャと、機械学習モデルがどのように変換され、ウェブブラウザと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 での展開オプション
YOLOv8 モデルをTF.js フォーマットにエクスポートするプロセスに入る前に、このフォーマットが使用される典型的なデプロイシナリオをいくつか探ってみましょう。
TF.jsには、機械学習モデルをデプロイするためのさまざまなオプションが用意されている:
-
ブラウザ内MLアプリケーション:機械学習モデルをブラウザ上で直接実行するウェブ・アプリケーションを構築できます。サーバーサイドの計算が不要になり、サーバーの負荷が軽減されます。
-
Node.jsアプリケーション:: TensorFlow.jsはNode.js環境へのデプロイもサポートしており、サーバーサイドの機械学習アプリケーションの開発が可能です。サーバーの処理能力やサーバーサイドのデータへのアクセスを必要とするアプリケーションに特に便利です。
-
Chrome拡張機能: TensorFlow.jsを使ったChrome拡張機能の作成は、興味深い展開シナリオだ。例えば、ユーザーがウェブページ内の画像を右クリックして、事前に訓練されたMLモデルを使って画像を分類できるような拡張機能を開発できる。TensorFlow.jsは、機械学習に基づく即時の洞察や補強を提供するために、日常のウェブ閲覧体験に統合することができます。
YOLOv8 モデルのTensorFlow.js へのエクスポート
YOLOv8 モデルをTF.js に変換することで、モデルの互換性とデプロイの柔軟性を拡張できます。
インストール
必要なパッケージをインストールするには、以下を実行する:
インストールプロセスに関する詳細な説明とベストプラクティスについては、Ultralytics インストールガイドをご覧ください。YOLOv8 に必要なパッケージをインストールする際に、何らかの問題が発生した場合は、解決策やヒントについて、よくある問題ガイドを参照してください。
使用方法
使い方の説明に入る前に、Ultralytics YOLOv8 の全モデルでエクスポートが可能ですが、 ここで選択したモデルがエクスポート機能をサポートしているかどうかを確認することができます。
使用方法
from ultralytics import YOLO
# Load the YOLOv8 model
model = YOLO('yolov8n.pt')
# Export the model to TF.js format
model.export(format='tfjs') # creates '/yolov8n_web_model'
# Load the exported TF.js model
tfjs_model = YOLO('./yolov8n_web_model')
# Run inference
results = tfjs_model('https://ultralytics.com/images/bus.jpg')
サポートされているエクスポートオプションの詳細については、Ultralytics 配置オプションのドキュメントページを参照してください。
エクスポートされたYOLOv8 TensorFlow .js モデルのデプロイ
YOLOv8 モデルをTF.js フォーマットにエクスポートしたので、次のステップはそれをデプロイすることです。YOLO("./yolov8n_web_model")メソッドを使用することが、TF.jsを実行するための最初のステップとして推奨されます。
しかし、TF.jsモデルのデプロイに関する詳しい説明は、以下のリソースをご覧ください:
-
クローム拡張機能:TF.js モデルを Chrome 拡張機能にデプロイする方法についての開発者向けドキュメントです。
-
TensorFlow.jsをNode.jsで実行する:TensorFlow.jsをNode.jsで直接実行するTensorFlow 。
-
TensorFlow.js のデプロイ - クラウドプラットフォーム上のNodeプロジェクト:TensorFlow.js モデルのクラウドプラットフォームへのデプロイに関するTensorFlow ブログ投稿。
概要
このガイドでは、Ultralytics YOLOv8 モデルをTensorFlow.js フォーマットにエクスポートする方法を学びました。TF.jsにエクスポートすることで、YOLOv8 モデルをさまざまなプラットフォームで最適化、デプロイ、スケールできる柔軟性が得られます。
使い方の詳細については、TensorFlow.js 公式ドキュメントをご覧ください。
Ultralytics YOLOv8 を他のプラットフォームやフレームワークと統合するための詳細については、統合ガイドのページをチェックすることをお忘れなく。あなたのプロジェクトでYOLOv8 を最大限に活用するための素晴らしいリソースが満載です。