YOLO11 + TensorRT: Optimasi Model YOLO11 dengan TensorRT pada Perangkat NVIDIA GPU
Penggunaan TensorRT untuk melakukan inferensi model YOLO bertujuan untuk mengoptimalkan proses menjalankan model tersebut. Dengan TensorRT, proses inferensi dapat berjalan lebih cepat dan efisien. TensorRT sendiri merupakan framework yang dirancang khusus oleh NVIDIA untuk mengakselerasi kinerja model deep learning pada perangkat dengan GPU NVIDIA.
📌 Untuk proses training custom model YOLO11, Anda dapat merujuk ke dokumentasi berikut: 👉 YOLO Custom Model.
📌 Untuk proses inferensi model YOLO11 menggunakan TensorRT dengan bahasa pemrograman Python, silakan merujuk ke dokumentasi resmi dari Ultralytics yang informatif dan mudah diikuti: 👉 Ultralytics - TensorRT Integration.
🛠️ Build Repository TensorRT-YOLO
untuk Inferensi YOLO11 Menggunakan C++
Dalam dokumentasi ini, implementasi inferensi model YOLO11 + TensorRT dilakukan menggunakan bahasa pemrograman C++. Anda dapat menggunakan repository berikut sebagai referensi utama:
👉 https://github.com/laugh12321/TensorRT-YOLO.git.
Namun, sebelum melakukan build, Anda perlu terlebih dahulu menginstal TensorRT. Berikut langkah-langkah instalasinya:
✅ Langkah Instalasi TensorRT
1. Unduh TensorRT dari situs resmi NVIDIA
👉 https://developer.nvidia.com/tensorrt/download
Disarankan untuk mengunduh file berformat .tar
agar proses instalasi lebih sederhana.
2. Ekstrak File TensorRT
Setelah selesai mengunduh, ekstrak file .tar
TensorRT tersebut. Untuk kemudahan, disarankan mengganti nama folder hasil ekstraksi menjadi lebih sederhana, misalnya tensorrt
.
Selanjutnya, pindahkan folder tersebut ke direktori /usr/local
dengan perintah berikut:
3. Menyalin File trtexec
ke /usr/bin
Di dalam folder tensorrt/bin
, terdapat file bernama trtexec
. File ini sangat penting karena digunakan untuk mengonversi model ke format TensorRT. Agar dapat diakses secara global melalui terminal, Anda disarankan untuk menyalin file ini ke direktori /usr/bin
:
4. Menambahkan Path Library TensorRT
Tambahkan path library TensorRT ke dalam file ~/.bashrc
agar dikenali oleh sistem:
Setelah itu, jalankan:
Dengan ini, proses instalasi TensorRT telah selesai.
✅ Langkah Build Repository TensorRT-YOLO
Sebelum melakukan proses build repository, terdapat beberapa penyesuaian yang perlu dilakukan. Berikut langkah-langkah lengkapnya:
1. Penyesuaian File CMakeLists.txt
Buka file CMakeLists.txt
yang terdapat di root direktori repository, Pastikan Anda menyesuaikan path TensorRT sesuai dengan lokasi instalasi di sistem Anda.
Contoh visualisasi bagian yang perlu disesuaikan:
2. Menambahkan Path CUDA ke Environment
Sebelum build, tambahkan environment CUDA agar dikenali oleh sistem anda dapat menambahkannya pada file ~/.bashrc
. Sesuaikan path-nya dengan versi CUDA yang terinstal di perangkat Anda:
export PATH=/usr/local/cuda-12.6/bin:$PATH
export CUDACXX=/usr/local/cuda-12.6/bin/nvcc
export LD_LIBRARY_PATH=/usr/local/cuda-12.6/lib64:$LD_LIBRARY_PATH
🔍 Catatan: Versi CUDA (cuda-12.6) dapat berbeda tergantung sistem Anda. Pastikan versi tersebut sesuai dengan yang telah Anda instal.
3. Build Repository
Setelah konfigurasi dilakukan, Anda dapat membangun proyek dengan langkah berikut:
4. Folder lib
Setelah proses build selesai, akan terbentuk folder lib/
yang berisi beberapa file penting untuk proses inferensi:
-
libdeploy.so
adalah library utama yang digunakan untuk melakukan inferensi model YOLO dengan TensorRT.-
libcustom_plugins.so
dibutuhkan untuk menconvert model dengan fitur tambahan seperti OBB (Oriented Bounding Box), Pose Estimation, dan Instance Segmentation.
Dengan ini, proses build repository TensorRT-YOLO telah selesai dan siap digunakan.
🛠️ Build Examples pada Repository TensorRT-YOLO
Repository TensorRT-YOLO menyediakan berbagai contoh penggunaan (examples) untuk setiap jenis model yang didukung, seperti:
-
Object Detection
-
Oriented Bounding Box (OBB)
-
Pose Estimation
-
Instance Segmentation
Contoh-contoh ini sangat berguna sebagai referensi untuk membangun sistem computer vision sesuai kebutuhan Anda.
pada dokumentasi ini saya akan memberikan contoh membuild example untuk object detection
🎯 Build Example: Object Detection
Pada bagian ini, akan dijelaskan langkah-langkah membangun example untuk Object Detection.
1. Masuk ke Direktori detect
Pada repository TensorRT-YOLO
, di dalam folder examples/
terdapat beberapa sub-direktori untuk masing-masing tipe model. Berikut struktur direktori secara umum:
examples/
├── classify/
├── detect/
├── mutli_thread/
├── obb/
├── pose/
├── segment/
└── Videopipe/
Untuk mulai membangun contoh Object Detection, masuk ke direktori detect
dengan perintah:
2. Sesuaikan File CMakeLists.txt
Di dalam direktori detect terdapat file CMakeLists.txt
yang perlu disesuaikan. Pastikan path ke TensorRT dan deploy library telah sesuai dengan lokasi instalasi di sistem Anda.
Contoh bagian yang perlu disesuaikan ditunjukkan pada ilustrasi berikut:
3. Build Detect Example
Setelah penyesuain dilakukan, Anda dapat membangun proyek dengan langkah berikut:
Hasil build berupa executable bernamadetect
akan disimpan di direktori bin/
.
4. Konversi Model ke Format TensorRT
Sebelum menjalankan inferensi menggunakan executable detect
, Anda memerlukan model dalam format .engine
yang digunakan oleh TensorRT.
Biasanya, model YOLO tersedia dalam format .pt
(PyTorch). Oleh karena itu, Anda perlu melakukan konversi secara bertahap:
Anda dapat mengonversi model .pt
menggunakan pacckage Ultralytics
dengan mengikuti dokumentasi yang tersedia di sini 👉 YOLO Custom Model, atau menggunakan paket tensorrt_yolo. Namun, pastikan Anda menginstalnya terlebih dahulu dengan perintah berikut:
Kemudian jalankan perintah berikut untuk konversi:
🔍 Keterangan:
-w
: path ke file model.pt
-v
: versi model YOLO yang digunakan (misalnya:yolo11
)
-o
: direktori output untuk menyimpan file.onnx
-s
: menyimpan model.onnx
setelah proses konversi
Jika Anda sudah memiliki model dalam format .onnx
, konversi ke .engine
dapat dilakukan dengan:
⚠️ Proses konversi ini bisa memakan waktu cukup lama, tergantung spesifikasi perangkat Anda. Harap tunggu hingga proses selesai.
5. Menjalankan Executable
Setelah file detect
dan file .engine
berhasil dibuat, masuk ke direktori bin/
lalu jalankan perintah berikut:
Keterangan parameter:
-e
: Path ke file.engine
-i
: Path ke gambar input
-o
: Direktori output hasil inferensi
-l
: File label kelas
Berikut adalah hasil dari inferensi pada gambar input:
Tambahan
Untuk examples model OBB, Pose Estimation, dan Instance Segmentation, langkah-langkah build hampir sama. Namun, konversi file ke format TensorRT .engine
membutuhkan tambahan command seperti berikut: