TensorRTインテグレーションによるUltralytics YOLOモデルの最適化
TensorRTインテグレーションを使用してUltralytics YOLOモデルをエクスポートし、NVIDIA GPUでのリアルタイムアプリケーションのAIパフォーマンスを高速化・効率化する方法をご紹介します。
Abirami Vina9 分で読めます
混雑した道路を走る自動運転車を想像してみてください。歩行者が縁石から踏み出すのを検知するまで、わずか数ミリ秒しかありません。同時に、木に一部が隠れた一時停止標識を認識したり、近くの車両が車線に割り込んできたときに素早く対応したりする必要があるかもしれません。こうした状況では、速度とリアルタイムの応答が極めて重要です。
ここで重要な役割を果たすのが人工知能(AI)、特にコンピュータービジョンです。コンピュータービジョンは、機械が視覚データを解釈するのを支援するAIの一分野です。コンピュータービジョンソリューションを実環境で安定して動作させるには、多くの場合、情報を素早く処理し、複数のタスクを同時に処理して、メモリを効率的に使う必要があります。
その実現方法の一つがハードウェアアクセラレーションです。グラフィックスプロセッシングユニット(GPUs)などの専用デバイスを使って、モデルをより高速に実行します。NVIDIA GPUsは低レイテンシーと高スループットを実現できるため、特に広く知られています。
ただし、モデルをGPUでそのまま実行しても、必ずしも最適な性能が得られるとは限りません。ビジョンAIモデルの性能をハードウェアデバイスで最大限に引き出すには、通常、最適化が必要です。特定のハードウェアで最高の性能を得るには、そのハードウェア専用の命令セットを使うようモデルをコンパイルする必要があります。
たとえば、TensorRTはNVIDIAが開発したエクスポート形式兼最適化ライブラリで、NVIDIA GPU上のパフォーマンスを向上させます。高度な手法を使って精度を維持しながら推論時間を大幅に短縮します。

図1. NVIDIA TensorRTにより、さまざまなNVIDIAデバイス上でモデルを最適に実行できます。
この記事では、UltralyticsがサポートするTensorRT統合について解説し、YOLO11モデルをエクスポートして、NVIDIAハードウェア上でより高速かつ効率的にデプロイする方法を紹介します。それでは始めましょう。
TensorRTの概要#
TensorRTは、NVIDIA GPUs上でAIモデルをより高速かつ効率的に実行できるよう、NVIDIAが開発したツールキットです。自動運転車や製造業・製薬業界の品質管理など、速度と性能が特に重要な実環境でのアプリケーション向けに設計されています。
TensorRTにはコンパイラーやモデルオプティマイザーなどのツールが含まれており、バックグラウンドで動作して、モデルの低レイテンシーと高スループットを実現します。
UltralyticsがサポートするTensorRT統合では、精度を下げるなどの手法を使ってYOLOモデルを最適化し、GPU上でより効率的に実行します。これは、モデルデータの表現に16ビット浮動小数点(FP16)や8ビット整数(INT8)などの低ビット形式を使うことを指します。精度への影響を最小限に抑えながら、メモリ使用量を削減し、計算を高速化できます。
さらに、TensorRTで最適化されたモデルでは、互換性のあるニューラルネットワーク層が融合されます。これにより、メモリ使用量が減り、推論がより高速かつ効率的になります。

図2. TensorRTのレイヤー融合技術。
TensorRTエクスポート形式の主な機能#
TensorRT統合を使ってUltralytics 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デバイスが必要です。以下のコードスニペットを使ってYOLO11を読み込み、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形式にエクスポートしたUltralytics YOLO11モデルで推論を実行した結果。
TensorRT統合を活用するタイミング#
Ultralytics Pythonパッケージでは、YOLOモデルをTorchScript、CoreML、ONNX、TensorRTなどのさまざまな形式にエクスポートできるよう、複数の統合をサポートしています。では、TensorRT統合を選ぶべきなのはどのような場合でしょうか。
TensorRTモデル形式が、ほかのエクスポート統合オプションと異なる点をいくつか紹介します。
- モデルサイズの縮小:INT8精度(
quantize=8)でYOLOモデルをTensorRT形式にエクスポートすると、モデルサイズを大幅に縮小できます。FP32からINT8への量子化によってモデルサイズを4分の1にできるため、ダウンロード時間とストレージ要件が減り、デプロイ時のメモリ使用量も削減されます。 - 消費電力の削減: INT8量子化は、モデルサイズだけでなく消費電力も削減します。INT8形式でエクスポートしたYOLOモデルでは、精度を下げた演算によりFP32モデルより消費電力を抑えられます。これは、ドローン、スマートフォン、エッジデバイスなどのバッテリー駆動デバイスで特に有効です。
- 処理性能の向上: YOLOの効率的なアーキテクチャとTensorRTのINT8最適化を組み合わせることで、推論速度を向上させられます。
Ultralytics YOLO11とTensorRTモデル形式の活用例#
TensorRT形式にエクスポートしたUltralytics YOLOモデルは、幅広い実環境のシナリオにデプロイできます。高速で効率的なAI性能が重要となる場面で、特に有用な最適化モデルです。どのような用途に活用できるか、興味深い例をいくつか見ていきましょう。
小売店舗のスマートレジ#
小売店舗では、バーコードのスキャン、商品の計量、商品の梱包など、幅広い作業が今もスタッフによって手作業で行われています。しかし、従業員だけに頼ると業務が滞り、特にレジで顧客の不満につながることがあります。長い列は、買い物客にも店舗オーナーにも不便です。スマートセルフレジは、この問題に対する優れた解決策です。
こうしたレジでは、コンピュータービジョンとGPUsを使って処理を高速化し、待ち時間の短縮を支援します。コンピュータービジョンにより、物体検出などのタスクを通じてシステムが周囲を認識し、理解できます。Ultralytics YOLO11のような高度なモデルをTensorRTなどのツールで最適化すると、GPUデバイス上で大幅に高速化できます。
これらのエクスポート済みモデルは、エッジAIアプリケーション専用に設計されたNVIDIA Jetson Nanoのような、小型ながら高性能なハードウェアデバイスを使用するスマート小売環境に適しています。

図4. スマートレジの例。
製造業における欠陥の自動検出#
Ultralytics YOLO11のようなコンピュータービジョンモデルは、製造業で不良品を検出するようカスタムトレーニングできます。トレーニング後、モデルをTensorRT形式にエクスポートし、高性能AIシステムを備えた施設にデプロイできます。
製品がコンベヤーベルトを流れる間にカメラが画像を撮影し、TensorRT形式で動作するUltralytics YOLO11モデルがリアルタイムで解析して欠陥を検出します。この構成により、企業は問題を迅速かつ正確に発見し、エラーを減らして効率を高められます。
同様に、製薬業界などでも、こうしたシステムを使って医薬品の包装における欠陥を検出しています。実際、スマート欠陥検出システムの世界市場は、2026年までに50億ドルに成長すると予測されています。

図5. YOLOを使った製薬業界の欠陥検出。
TensorRTを使用する際に考慮すべき点#
TensorRT統合には推論速度の向上やレイテンシの低減など多くの利点がありますが、留意すべき制限事項もいくつかあります。
- 精度のわずかな低下:モデルをTensorRT形式にエクスポートすると、エクスポート後のモデルの精度が元のモデルより低くなる場合があります。適合率、再現率、モデルの物体検出性能(mAPスコア)などのパフォーマンス指標がわずかに低下する可能性があります。INT8量子化時に代表的なキャリブレーションデータセット(
data引数)を使うことで、この問題を緩和できます。 - デバッグの複雑化: TensorRTによる最適化によって、エラーの追跡や予期しない動作の理解が難しくなる場合があります。特に、元のモデルとの結果の比較時に顕著です。
- バッチサイズへの依存: TensorRTの性能向上は、バッチサイズが大きいほど顕著になります。単一画像または小規模なバッチを処理するアプリケーションでは、性能改善の効果が小さい場合があります。
重要なポイント#
Ultralytics YOLOモデルをTensorRT形式にエクスポートすると、実行速度と効率が大幅に向上するため、工場での欠陥検出、スマートセルフレジシステムの稼働、混雑した都市部の監視など、リアルタイム処理が求められるタスクに最適です。
この最適化により、予測が高速化し、メモリと電力の使用量が削減されるため、NVIDIA GPU上でのモデルの性能が向上します。いくつかの制限事項はありますが、性能が大きく向上するため、NVIDIAハードウェア上で高速なコンピュータービジョンシステムを構築する場合に、TensorRTの統合は優れた選択肢です。
AIについてもっと知りたいですか?GitHubリポジトリを確認し、コミュニティに参加して、コンピュータービジョンプロジェクトを始めるためにライセンスオプションをご覧ください。ソリューションページで、製造業におけるAIや物流業界におけるコンピュータービジョンなどのイノベーションについてもご確認ください。
執筆者
コメント
質問したり、結果を共有したり、ほかの人をサポートしたりできます。










