ヨロビジョン深圳
深セン
今すぐ参加

TensorRT統合によるUltralytics YOLOモデルの最適化

Abirami Vina

5分で読めます

2025年5月20日

リアルタイムアプリケーション向けに、NVIDIA GPU上でより高速で効率的なAIパフォーマンスを実現するために、TensorRT統合を使用してUltralytics YOLOモデルをエクスポートする方法を学びます。

歩行者が縁石から降りるのを検知するのにわずか数ミリ秒しかない、交通量の多い通りを走行する自動運転車を考えてみましょう。同時に、木に部分的に隠された一時停止標識を認識したり、車線に割り込んでくる近くの車両に迅速に対応したりする必要があるかもしれません。このような状況では、速度とリアルタイムな応答が非常に重要になります。

ここで、人工知能(AI)、特にコンピュータビジョン(マシンが視覚データを解釈するのを支援するAIの分野)が重要な役割を果たします。コンピュータビジョンソリューションが現実世界の環境で確実に機能するためには、多くの場合、情報を迅速に処理し、複数のタスクを同時に処理し、メモリを効率的に使用する必要があります。

これを実現する方法の1つは、グラフィックスプロセッシングユニット(GPU)のような特殊なデバイスを使用してモデルをより高速に実行する、ハードウェアアクセラレーションを使用することです。NVIDIA GPUは、低レイテンシと高スループットを実現できるため、このようなタスクで特に有名です。

ただし、モデルをGPU上でそのまま実行しても、必ずしも最適なパフォーマンスが保証されるわけではありません。Vision AIモデルは通常、ハードウェアデバイスの機能を最大限に活用するために最適化が必要です。特定のハードウェアで最高のパフォーマンスを実現するには、ハードウェア固有の命令セットを使用するようにモデルをコンパイルする必要があります。

例えば、TensorRTはNVIDIAが開発したエクスポート形式および最適化ライブラリであり、ハイエンドマシンでのパフォーマンスを向上させます。高度な技術を使用し、精度を維持しながら推論時間を大幅に短縮します。

図1. NVIDIA TensorRTにより、モデルはさまざまなNVIDIAデバイス上で最適に実行できます。

この記事では、UltralyticsがサポートするTensorRT統合について解説し、YOLO11モデルをエクスポートして、NVIDIAハードウェア上でより高速かつ効率的にデプロイする方法を順を追って説明します。それでは始めましょう。

TensorRTの概要

TensorRTは、NVIDIA GPU上でAIモデルをより高速かつ効率的に実行できるように、NVIDIAが開発したツールキットです。自動運転車や、製造業や製薬業における品質管理など、速度とパフォーマンスが非常に重要な現実世界のアプリケーション向けに設計されています。 

TensorRTには、コンパイラやモデルオプティマイザなどのツールが含まれており、これらはバックグラウンドで動作して、モデルが低遅延で実行され、より高いスループットを処理できるようにします。

UltralyticsがサポートするTensorRT統合は、精度を落とすなどの手法を用いて、GPU上でYOLOモデルがより効率的に実行されるように最適化することで機能します。これは、モデルデータを表現するために、16ビット浮動小数点(FP16)や8ビット整数(INT8)などの低ビット形式を使用することを指し、メモリ使用量を削減し、精度への影響を最小限に抑えながら計算を高速化します。 

また、互換性のあるニューラルネットワークレイヤーは、最適化されたTensorRTモデルで融合され、メモリ使用量を削減し、より高速かつ効率的な推論を実現します。

図2. TensorRTのレイヤー融合技術。

TensorRTエクスポート形式の主な機能

TensorRT統合を使用してYOLO11をエクスポートする方法を説明する前に、TensorRTモデル形式の主な機能を見てみましょう。

  • 簡単なフレームワーク統合: TensorRTは、PyTorch、Hugging Face、ONNXなどの一般的なAIフレームワークとの直接統合をサポートし、最大6倍の高速なパフォーマンスを提供します。また、MATLABもサポートしており、Jetson、NVIDIA DRIVE、データセンターなどのプラットフォーム上で高速AIエンジンを開発できます。
  • Tritonによるスケーラブルなデプロイ: TensorRT形式で最適化されたモデルは、NVIDIA Triton Inference Serverを使用して大規模にデプロイでき、入力バッチ処理、同時モデル実行、モデルアンサンブルサポート、リアルタイムオーディオ/ビデオストリーミングなどの機能を通じて効率を向上させます。
  • デバイス間の柔軟性: 小さなエッジデバイスから強力なサーバーまで、TensorRTはNVIDIAエコシステム全体で動作し、ビデオ用のDeepStream、音声AI用のRiva、およびサイバーセキュリティ、レコメンデーションなどのためのツールをサポートします。

TensorRT統合はどのように機能するか?

Ultralytics YOLO11などのUltralytics YOLOモデルをTensorRTモデル形式にエクスポートするのは簡単です。関連する手順を順を追って説明します。

まず、‘pip’などのパッケージマネージャーを使用して、Ultralytics Pythonパッケージをインストールできます。これは、コマンドプロンプトまたはターミナルでコマンド“pip install ultralytics”を実行することで実行できます。

Ultralytics Pythonパッケージのインストールが成功したら、オブジェクト検出、分類、インスタンスセグメンテーションなど、さまざまなコンピュータビジョンタスクのモデルをトレーニング、テスト、微調整、エクスポート、およびデプロイできます。パッケージのインストール中に問題が発生した場合は、一般的な問題ガイドを参照して、解決策とヒントを確認してください。

次のステップでは、NVIDIAデバイスが必要です。以下のコードスニペットを使用して、YOLOv11をロードし、TensorRTモデル形式にエクスポートします。これは、YOLO11モデルの事前トレーニング済みのnanoバリアント(yolo11n.pt)をロードし、TensorRTエンジンファイル(yolo11n.engine)としてエクスポートして、NVIDIAデバイス全体へのデプロイの準備を整えます。

from ultralytics import YOLO

model = YOLO("yolo11n.pt")

model.export(format="engine") 

モデルをTensorRT形式に変換した後、さまざまなアプリケーションにデプロイできます。 

以下の例は、エクスポートされたYOLO11モデル(yolo11n.engine)をロードし、それを使用して推論を実行する方法を示しています。推論とは、トレーニング済みのモデルを使用して新しいデータに対する予測を行うことです。この場合、モデルをテストするために犬の入力画像を使用します。 

tensorrt_model = YOLO("yolo11n.engine")

results = tensorrt_model("https://images.pexels.com/photos/1254140/pexels-photo-1254140.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2.jpg", save=True)

このコードを実行すると、次の出力画像がruns/detect/predictフォルダーに保存されます。

図3. TensorRT形式でエクスポートされたYOLO11モデルを使用して推論を実行した結果。

TensorRT統合を活用するタイミング

Ultralytics Pythonパッケージは、YOLOモデルをTorchScript、CoreML、ONNX、TensorRTなどのさまざまな形式にエクスポートできるさまざまな統合をサポートしています。では、いつTensorRT統合を使用することを選択すべきでしょうか?

TensorRTモデル形式が他のエクスポート統合オプションと異なる点は、主に以下の点です。

  • モデルサイズの縮小: YOLOモデルをINT8精度でTensorRT形式にエクスポートすると、モデルサイズを大幅に縮小できます。FP32からINT8への量子化により、モデルサイズを1/4に削減でき、ダウンロード時間の短縮、ストレージ要件の軽減、デプロイメント時のメモリフットプリントの削減につながります。
  • 低消費電力: INT8量子化はモデルサイズを縮小するだけでなく、消費電力も削減します。INT8でエクスポートされたYOLOモデルの低精度演算は、FP32モデルと比較して消費電力を抑えることができ、ドローン、スマートフォン、エッジデバイスなどのバッテリー駆動デバイスに特に有効です。
  • パフォーマンスの向上: YOLOの効率的なアーキテクチャとTensorRTのINT8最適化を組み合わせることで、推論速度を向上させることができます。

YOLO11とTensorRTモデル形式の応用

TensorRT形式にエクスポートされたUltralytics YOLOモデルは、幅広い現実世界のシナリオにデプロイできます。これらの最適化されたモデルは、高速かつ効率的なAIパフォーマンスが重要な場合に特に役立ちます。それらがどのように使用できるかの興味深い例をいくつか見てみましょう。

小売店におけるスマートチェックアウトカウンター

小売店では、バーコードのスキャン、製品の計量、商品の梱包など、幅広いタスクが依然として従業員によって手作業で処理されています。しかし、従業員だけに頼ると、業務が遅くなり、特にレジで顧客の不満につながる可能性があります。長い行列は、買い物客と店主の両方にとって不便です。スマートセルフレジカウンターは、この問題に対する優れたソリューションです。

これらのカウンターは、コンピュータビジョンとGPUを使用してプロセスを高速化し、待ち時間を短縮します。コンピュータビジョンにより、これらのシステムは、物体検出などのタスクを通じて、環境を認識し理解することができます。YOLO11のような高度なモデルは、TensorRTのようなツールで最適化すると、GPUデバイス上でより高速に実行できます。

これらのエクスポートされたモデルは、エッジAIアプリケーション向けに特別に設計されたNVIDIA Jetson Nanoのような、コンパクトでありながら強力なハードウェアデバイスを使用したスマートリテールセットアップに最適です。

図4。スマートチェックアウトカウンターの例。

製造業における自動欠陥検出

YOLOv11のようなコンピュータビジョンモデルは、製造業における不良品を検出するためにカスタムトレーニングできます。トレーニング後、モデルは高性能AIシステムを備えた施設に展開するために、TensorRT形式でエクスポートできます。 

製品がコンベヤーベルト上を移動するにつれて、カメラが画像をキャプチャし、TensorRT形式で実行されているYOLOv11モデルがリアルタイムで画像を分析して欠陥を特定します。この設定により、企業は問題を迅速かつ正確に把握し、エラーを減らし、効率を向上させることができます。

同様に、製薬などの業界では、これらのタイプのシステムを使用して、医療用パッケージの欠陥を特定しています。実際、スマート欠陥検出システムの世界市場は、2026年までに50億ドルに成長すると予測されています。

図5. YOLOを使用して製薬業界の欠陥を検出。

TensorRTの使用中に留意すべき考慮事項

TensorRTの統合は、推論速度の向上やレイテンシの削減など、多くの利点をもたらしますが、留意すべきいくつかの制限事項があります。

  • わずかな精度の低下: TensorRT形式でモデルをエクスポートすると、エクスポートされたモデルの精度が元のモデルほど高くない場合があります。精度、再現率、モデルがオブジェクトを検出する能力(mAPスコア)などのパフォーマンス指標がわずかに低下する可能性があります。これは、量子化中に代表的なデータセットを使用することで軽減できます。 
  • デバッグの複雑さの増加: TensorRTによって行われる最適化により、特に元のモデルとの結果を比較する場合、エラーの追跡や予期しない動作の理解が難しくなる可能性があります。
  • バッチサイズの感度:TensorRTのパフォーマンス向上は、バッチサイズが大きいほど顕著になります。単一の画像または小規模なバッチを処理するアプリケーションの場合、パフォーマンスの改善はそれほど大きくない可能性があります。

主なポイント

Ultralytics YOLOモデルをTensorRT形式でエクスポートすると、実行速度と効率が大幅に向上し、工場での欠陥検出、スマートチェックアウトシステムの強化、または混雑した都市部の監視などのリアルタイムタスクに最適です。 

この最適化により、予測が高速化され、メモリと電力の使用量が削減されるため、NVIDIA GPU 上でのモデルのパフォーマンスが向上します。いくつかの制限はありますが、パフォーマンスの向上により、TensorRT の統合は、NVIDIA ハードウェア上で高速コンピュータビジョンシステムを構築するすべての人にとって最適な選択肢となります。

AI についてもっと知りたいですか?GitHub リポジトリを探索し、コミュニティとつながり、ライセンスオプションをチェックして、コンピュータビジョンプロジェクトをすぐに始めましょう。当社のソリューションページで、製造業における AI物流業界におけるコンピュータビジョンなどのイノベーションについて詳しくご覧ください。

AIの未来を
共に築きましょう!

未来の機械学習で、新たな一歩を踏み出しましょう。

無料ではじめる
クリップボードにコピーしました