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、動画パイプライン用の即時実行可能なデモを提供。
一般的なワークフロー
- 変換 – 付属の
trtyolo-exportツールでONNXエクスポートされたYOLOモデルをTensorRT‑YOLOエンジン形式に変換。 - ビルド – CMakeでライブラリをビルド(Python APIが必要な場合は
BUILD_PYTHON=ONを有効化)。 - エンジンの読み込み:
またはC++で:from trtyolo import TRTYOLO model = TRTYOLO('yolo11n-with-plugin.engine', task='detect', profile=True, swap_rb=True) result = model.predict(cv2.imread('img.jpg'))auto det = std::make_unique<trtyolo::DetectModel>("yolo11n-with-plugin.engine", option); auto out = det->predict(image); - オプション –
model.clone()(またはdet->clone())を呼び出して、マルチスレッドサーバー用のスレッドセーフなコピーを取得。 - プロファイリング –
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スクリプトを実行するか、上記のように独自のコードを書くことができます。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト