グリーンチェック
クリップボードにコピーされたリンク

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

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

自動運転車が交通量の多い道路を移動する際、縁石から足を踏み外した歩行者を検知するのに数ミリ秒しかかからないことを考えてみよう。同時に、一時停止の標識の一部が木に隠れていることを認識したり、近くの車両が車線に割り込んできたことに素早く反応したりする必要があるかもしれない。このような状況では、スピードとリアルタイムの応答が重要になる。

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

これを実現する1つの方法は、ハードウェア・アクセラレーションで、グラフィック・プロセッシング・ユニット(GPU)のような専用デバイスを使ってモデルをより高速に実行することです。NVIDIA GPUは、低レイテンシと高スループットを実現する能力のおかげで、このようなタスクでは特によく知られています。

しかし、GPU 上でモデルをそのまま実行しても、必ずしも最適なパフォーマンスが保証されるとは限りません。ビジョンAIモデルは通常、ハードウェア・デバイスの能力を十分に活用するための最適化が必要です。特定のハードウェアで性能をフルに発揮させるためには、そのハードウェア専用の命令セットを使用するようにモデルをコンパイルする必要があります。

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

図 1. NVIDIA TensorRT 、様々なNVIDIA デバイス上でモデルを最適に実行することを可能にする。

この記事では、Ultralytics サポートするTensorRT 統合について説明し、NVIDIA ハードウェア上でより速く、より効率的に展開するためにYOLO11 モデルをエクスポートする方法を説明します。さっそく始めましょう!

TensorRT概要

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

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を使用してスケーラブルに展開することができます。NVIDIA Triton Inference Serverは、入力のバッチ処理、モデルの同時実行、モデルアンサンブルのサポート、リアルタイムのオーディオ/ビデオストリーミングなどの機能によって効率を高めます。
  • デバイスを超えた柔軟性: 小さなエッジデバイスから強力なサーバーまで、TensorRT NVIDIA エコシステム全体で動作し、ビデオ用のDeepStream、スピーチAI用のRiva、その他サイバーセキュリティ、レコメンデーションなどのツールをサポートします。

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

Ultralytics YOLO YOLO11 ようなUltralytics YOLO モデルを TensorRT モデル形式にエクスポートするのは簡単です。その手順を説明しよう。

Ultralytics Python パッケージをインストールするには、「pip」のようなパッケージマネージャを使用します。これは、コマンドプロンプトまたはターミナルで「pip installultralytics」コマンドを実行することで行うことができます。

Ultralytics Python Packageを正常にインストールすると、オブジェクト検出、分類、インスタンス分割など、さまざまなコンピュータビジョンタスクのモデルのトレーニング、テスト、微調整、エクスポート、およびデプロイができるようになります。パッケージのインストール中に何らかの問題が発生した場合は、「よくある問題」ガイドを参照して解決策やヒントを得ることができます。

次のステップでは、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に量子化することで、モデルサイズを4分の1にすることができ、ダウンロード時間の短縮、必要なストレージ容量の削減、デプロイ時のメモリフットプリントの削減が可能になります。
  • 消費電力の低減:INT8量子化は、モデルサイズを縮小するだけでなく、消費電力も削減します。INT8でエクスポートされたYOLO モデルの精度を下げた演算は、FP32モデルと比較して消費電力を削減できるため、ドローンやスマートフォン、エッジ・デバイスのようなバッテリー駆動のデバイスにとって特に有益です。
  • より高速なパフォーマンス: YOLO効率的なアーキテクチャとTensorRTINT8最適化を組み合わせることで、推論速度を向上させることができる。

YOLO11 TensorRT モデル形式のアプリケーション

TensorRT 形式にエクスポートされたUltralytics YOLO モデルは、実世界のさまざまなシナリオに展開できます。これらの最適化されたモデルは、高速で効率的なAIパフォーマンスが鍵となる場合に特に有用です。YOLOモデルの興味深い使用例をいくつか見てみましょう。

小売店のスマート・レジカウンター

小売店では、バーコードのスキャン、商品の計量、商品の梱包など、さまざまな作業がいまだに従業員によって手作業で行われている。しかし、従業員だけに頼っていると、業務が滞り、特にレジでは顧客の不満につながる可能性がある。長蛇の列は、買い物客にとっても店主にとっても不便だ。スマートなセルフレジは、この問題を解決する素晴らしいソリューションだ。

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

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

図4.スマート・レジカウンターの例。

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

YOLO11 ようなコンピュータビジョンモデルは、製造業で不良品を検出するためにカスタムトレーニングすることができる。一度訓練されたモデルは、高性能AIシステムを備えた施設に配備するために、TensorRT 形式にエクスポートすることができます。 

製品がベルトコンベア上を移動する際、カメラが画像をキャプチャし、TensorRT フォーマットで動作するYOLO11 モデルがリアルタイムで解析して欠陥を発見する。このセットアップにより、企業は問題を迅速かつ正確にキャッチし、ミスを減らして効率を向上させることができる。

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

図5.製薬業界における欠陥検出のためのYOLO 使用。

TensorRT使用する際の留意点

TensorRT 統合は、推論速度の高速化や待ち時間の短縮など、多くの利点をもたらすが、ここで留意すべきいくつかの制限がある:

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

要点

Ultralytics YOLO モデルをTensorRT フォーマットにエクスポートすることで、より高速かつ効率的に実行できるようになり、工場の欠陥検出、スマートチェックアウトシステム、混雑した都市部の監視などのリアルタイムタスクに最適です。 

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

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

リンクトインのロゴツイッターのロゴFacebookのロゴコピー・リンク・シンボル

このカテゴリの続きを読む

AIの未来
を一緒に作りましょう!

機械学習の未来への旅を始めよう