laugh12321/TensorRT-YOLO

🚀 Easier & Faster YOLO Deployment Toolkit for NVIDIA 🛠️

TensorRT‑YOLO – NVIDIAハードウェア上の高速YOLO推論

何であるか – C++/Pythonライブラリで、TensorRTをラップしてYOLOシリーズ(v3–v26、YOLO‑World、YOLO‑E、YOLO‑Masterなど)をNVIDIA GPUおよびJetsonデバイス上で実行します。カスタムTensorRTプラグイン、CUDAカーネル、CUDA‑Graphサポートを内蔵しており、前処理 → 推論 → 後処理のエンドツーエンドパイプラインを可能な限り高速化しながら、APIはシンプルなままに保っています。

主な機能

  • 広範なモデルカバレッジ – 複数のYOLOバリアントから、検出、セグメンテーション、分類、ポーズ推定、方向付きバウンディングボックス(OBB)モデルをサポート。
  • パフォーマンス最適化 – CUDA加速前処理、後処理用TensorRTプラグイン、マルチコンテキスト並列推論、JetsonでのZero‑Copy、オプションのCUDA‑Graph実行。
  • 簡単な統合 – シングルヘッダーC++インターフェース(trtyolo.hpp)とPythonバインディング(trtyolo)を提供。追加のサードパーティライブラリは不要。
  • クロスプラットフォーム – Linux(x86_64 & ARM)およびWindowsで動作。ワンクリックセットアップ用のDockerイメージも提供。
  • 依存関係ゼロのビルド – C++ライブラリはヘッダーのみモジュールとしてコンパイル可能。Pythonのwheelはバインディングをバンドルしており、CUDA/TensorRTを手動でリンクする必要がない。
  • CLIとサンプル – 検出、セグメンテーション、分類、ポーズ、OBB、動画パイプライン用の即時実行可能なデモを提供。

一般的なワークフロー

  1. 変換 – 付属のtrtyolo-exportツールでONNXエクスポートされたYOLOモデルをTensorRT‑YOLOエンジン形式に変換。
  2. ビルド – CMakeでライブラリをビルド(Python APIが必要な場合はBUILD_PYTHON=ONを有効化)。
  3. エンジンの読み込み
    from trtyolo import TRTYOLO
    model = TRTYOLO('yolo11n-with-plugin.engine', task='detect', profile=True, swap_rb=True)
    result = model.predict(cv2.imread('img.jpg'))
    
    またはC++で:
    auto det = std::make_unique<trtyolo::DetectModel>("yolo11n-with-plugin.engine", option);
    auto out = det->predict(image);
    
  4. オプションmodel.clone()(またはdet->clone())を呼び出して、マルチスレッドサーバー用のスレッドセーフなコピーを取得。
  5. プロファイリングmodel.profile()はスループットとレイテンシメトリクスを返す。

なぜ重要か – YOLOモデルはリアルタイムビジョン用途で人気がありますが、NVIDIAハードウェア上で最適な速度を得るには、手作業でカスタムTensorRTプラグインを作成し、CUDAを細かくチューニングする必要があります。TensorRT‑YOLOはこれらの最適化をバンドルし、クリーンなAPIを提供することで、開発者が低レベルのエンジンの構成に時間を割かずにアプリケーションロジックに集中できるようにします。

ライセンスとコミュニティ – GPL‑3.0。アクティブなイシュー管理、Bilibiliチュートリアルシリーズ、寄付用のスポンサーページあり。


クイックスタート(Linux)

git clone https://github.com/laugh12321/TensorRT-YOLO && cd TensorRT-YOLO
pip install "pybind11[global]"
cmake -S . -B build -DTRT_PATH=/path/to/TensorRT -DBUILD_PYTHON=ON -DCMAKE_INSTALL_PREFIX=$HOME/trtyolo
cmake --build build -j$(nproc) --target install
# Python wheelのビルド
pip install --upgrade build
python -m build --wheel && pip install dist/trtyolo-*.whl

これで、提供されているexamples/detectスクリプトを実行するか、上記のように独自のコードを書くことができます。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト