Deepstream-yolo
NVIDIA DeepStream SDK 7.1 / 7.0 / 6.4 / 6.3 / 6.2 / 6.1.1 / 6.1 / 6.0.1 / 6.0 / 5.1 Konfigurasi untuk model YOLO
Untuk saat ini, saya terbatas untuk beberapa pembaruan. Terima kasih atas pengertiannya.
Yolo-pose: https://github.com/marcoslucianops/deepstream-yolo-pose
YOLO-SEG: https://github.com/marcoslucianops/deepstream-ygolo-seg
Yolo-face: https://github.com/marcoslucianops/deepstream-yolo-face
PENTING: Harap ekspor model ONNX dengan file ekspor baru, hasilkan mesin TensorRt lagi dengan file yang diperbarui, dan gunakan file config_infer_primary baru sesuai dengan model Anda
Perbaikan pada repositori ini
- Dukungan untuk kalibrasi int8
- Dukungan untuk model non -persegi
- Model tolok ukur
- Dukungan untuk model darknet (yolov4, dll) menggunakan konversi CFG dan bobot dengan GPU pasca pemrosesan
- Support for RT-DETR, CO-DETR (MMDetection), YOLO-NAS, PPYOLOE+, PPYOLOE, DAMO-YOLO, Gold-YOLO, RTMDet (MMYOLO), YOLOX, YOLOR, YOLOv9, YOLOv8, YOLOv7, YOLOv6 and YOLOv5 using ONNX conversion with GPU post-processing
- GPU Bbox Parser
- Parser model onnx khusus
- Ukuran batch dinamis
- Kalibrasi int8 (PTQ) untuk model DarkNet dan Onnx Exported
Memulai
- Persyaratan
- Model yang didukung
- Tolok ukur
- Instalasi DGPU
- Penggunaan dasar
- Penggunaan Docker
- Konfigurasi NMS
- Catatan
- Kalibrasi int8
- Penggunaan yolov5
- Penggunaan yolov6
- Penggunaan YOLOV7
- Penggunaan yolov8
- Penggunaan yolov9
- Penggunaan yolor
- Penggunaan yoloks
- Penggunaan RTMDET (MMYOLO)
- Penggunaan emas-yolo
- Penggunaan Damo-Yolo
- PPP-YOLOE / PP-YOLOE+ Penggunaan
- Penggunaan Yolo-nas
- Penggunaan Co-DET (MMDETEKSI)
- Penggunaan Pytorch RT-DETR
- Penggunaan dayung RT-DETR
- Penggunaan ultralitik RT-DETR
- Menggunakan Model Kustom Anda
- Ganda yolo gies
Persyaratan
Deepstream 7.1 pada platform x86
- Ubuntu 22.04
- CUDA 12.6 UPDATE 2
- Tensorrt 10.3 GA (10.3.0.26)
- Driver NVIDIA 535.183.06 (Data Center / Tesla Series) / 560.35.03 (Titan, Geforce RTX / GTX Series dan RTX / Quadro Series)
- Nvidia Deepstream SDK 7.1
- GStreamer 1.20.3
- Deepstream-yolo
Deepstream 7.0 pada platform x86
- Ubuntu 22.04
- CUDA 12.2 UPDATE 2
- Tensorrt 8.6 GA (8.6.1.6)
- Driver NVIDIA 535 (> = 535.161.08)
- Nvidia Deepstream SDK 7.0
- GStreamer 1.20.3
- Deepstream-yolo
Deepstream 6.4 pada platform x86
- Ubuntu 22.04
- CUDA 12.2 UPDATE 2
- Tensorrt 8.6 GA (8.6.1.6)
- Driver NVIDIA 535 (> = 535.104.12)
- Nvidia Deepstream SDK 6.4
- GStreamer 1.20.3
- Deepstream-yolo
Deepstream 6.3 pada platform x86
- Ubuntu 20.04
- CUDA 12.1 UPDATE 1
- Tensorrt 8.5 GA Pembaruan 2 (8.5.3.1)
- Driver NVIDIA 525 (> = 525.125.06)
- Nvidia Deepstream SDK 6.3
- GStreamer 1.16.3
- Deepstream-yolo
Deepstream 6.2 pada platform x86
- Ubuntu 20.04
- CUDA 11.8
- Tensorrt 8.5 GA Pembaruan 1 (8.5.2.2)
- Driver NVIDIA 525 (> = 525.85.12)
- Nvidia Deepstream SDK 6.2
- GStreamer 1.16.3
- Deepstream-yolo
Deepstream 6.1.1 di platform x86
- Ubuntu 20.04
- CUDA 11.7 UPDATE 1
- Tensorrt 8.4 GA (8.4.1.5)
- Driver NVIDIA 515.65.01
- Nvidia Deepstream SDK 6.1.1
- GStreamer 1.16.2
- Deepstream-yolo
Deepstream 6.1 pada platform x86
- Ubuntu 20.04
- CUDA 11.6 UPDATE 1
- TensorRT 8.2 GA UPDATE 4 (8.2.5.1)
- Driver NVIDIA 510.47.03
- Nvidia Deepstream SDK 6.1
- GStreamer 1.16.2
- Deepstream-yolo
Deepstream 6.0.1 / 6.0 pada platform x86
- Ubuntu 18.04
- CUDA 11.4 UPDATE 1
- Tensorrt 8.0 GA (8.0.1)
- NVIDIA Driver 470.63.01
- Nvidia Deepstream SDK 6.0.1 / 6.0
- GStreamer 1.14.5
- Deepstream-yolo
Deepstream 5.1 pada platform x86
- Ubuntu 18.04
- CUDA 11.1
- Tensorrt 7.2.2
- NVIDIA Driver 460.32.03
- Nvidia Deepstream SDK 5.1
- GStreamer 1.14.5
- Deepstream-yolo
Deepstream 7.1 di Platform Jetson
- Jetpack 6.1
- Nvidia Deepstream SDK 7.1
- Deepstream-yolo
Deepstream 7.0 di Platform Jetson
- Jetpack 6.0
- Nvidia Deepstream SDK 7.0
- Deepstream-yolo
Deepstream 6.4 di Platform Jetson
- Jetpack 6.0 dp
- Nvidia Deepstream SDK 6.4
- Deepstream-yolo
Deepstream 6.3 di Platform Jetson
- Jetpack 5.1.3 / 5.1.2
- Nvidia Deepstream SDK 6.3
- Deepstream-yolo
Deepstream 6.2 di Platform Jetson
- JetPack 5.1.3 / 5.1.2 / 5.1.1 / 5.1
- Nvidia Deepstream SDK 6.2
- Deepstream-yolo
Deepstream 6.1.1 di Platform Jetson
- Jetpack 5.0.2
- Nvidia Deepstream SDK 6.1.1
- Deepstream-yolo
Deepstream 6.1 di Platform Jetson
- Jetpack 5.0.1 dp
- Nvidia Deepstream SDK 6.1
- Deepstream-yolo
Deepstream 6.0.1 / 6.0 di Platform Jetson
- Jetpack 4.6.4
- Nvidia Deepstream SDK 6.0.1 / 6.0
- Deepstream-yolo
Deepstream 5.1 di Platform Jetson
- Jetpack 4.5.1
- Nvidia Deepstream SDK 5.1
- Deepstream-yolo
Model yang didukung
- Darknet
- Mobilenet-yolo
- Tercepat yolo
- Yolov5
- Yolov6
- Yolov7
- Yolov8
- Yolov9
- Yolor
- Yoloks
- Rtmdet (mmyolo)
- Yolo emas
- Damo-yolo
- PP-yoloe / pp-yoloe+
- Yolo-nas
- Co-det (mmdetection)
- RT-DETR
Penggunaan dasar
1. Unduh repo
git clone https://github.com/marcoslucianops/DeepStream-Yolo.git
cd DeepStream-Yolo
2. Unduh file cfg dan weights dari DarkNet Repo ke folder Deepstream-Yolo
3. Kompilasi lib
3.1. Atur CUDA_VER sesuai dengan versi Deepstream Anda
platform x86
DeepStream 7.1 = 12.6
DeepStream 7.0 / 6.4 = 12.2
DeepStream 6.3 = 12.1
DeepStream 6.2 = 11.8
DeepStream 6.1.1 = 11.7
DeepStream 6.1 = 11.6
DeepStream 6.0.1 / 6.0 = 11.4
DeepStream 5.1 = 11.1
Platform Jetson
DeepStream 7.1 = 12.6
DeepStream 7.0 / 6.4 = 12.2
DeepStream 6.3 / 6.2 / 6.1.1 / 6.1 = 11.4
DeepStream 6.0.1 / 6.0 / 5.1 = 10.2
3.2. Buat lib
make -C nvdsinfer_custom_impl_Yolo clean && make -C nvdsinfer_custom_impl_Yolo
4. Edit file config_infer_primary.txt sesuai dengan model Anda (contoh untuk yolov4)
[property]
...
custom-network-config=yolov4.cfg
model-file=yolov4.weights
...
Catatan : Untuk model DarkNet , secara default, ukuran batch dinamis diatur. Untuk menggunakan ukuran batch statis, uncomment line
...
force-implicit-batch-dim=1
...
5. Jalankan
deepstream-app -c deepstream_app_config.txt
Catatan : File mesin TensorRt mungkin membutuhkan waktu yang sangat lama untuk menghasilkan (kadang -kadang lebih dari 10 menit).
Catatan : Jika Anda ingin menggunakan model YOLOV2 atau YOLOV2-Tiny, ubah file deepstream_app_config.txt sebelum jalankannya
...
[primary-gie]
...
config-file=config_infer_primary_yoloV2.txt
...
Penggunaan Docker
platform x86
nvcr.io/nvidia/deepstream:7.1-gc-triton-devel
nvcr.io/nvidia/deepstream:7.1-triton-multiarch
Platform Jetson
nvcr.io/nvidia/deepstream:7.1-triton-multiarch
Catatan : Untuk mengkompilasi nvdsinfer_custom_impl_Yolo , Anda perlu menginstal G ++ di dalam wadah
apt-get install build-essential
Catatan : Dengan Deepstream 7.1, wadah Docker tidak mengemas pustaka yang diperlukan untuk operasi multimedia tertentu seperti penguraian data audio, decode CPU, dan cpu encode. Perubahan ini dapat memengaruhi pemrosesan aliran/file video tertentu seperti MP4 yang mencakup trek audio. Harap jalankan skrip di bawah ini di dalam gambar Docker untuk menginstal paket tambahan yang mungkin diperlukan untuk menggunakan semua fitur DeepstreamSDK:
/opt/nvidia/deepstream/deepstream/user_additional_install.sh
Konfigurasi NMS
Untuk mengubah nilai nms-iou-threshold , pre-cluster-threshold dan topk , ubah file config_infer
[class-attrs-all]
nms-iou-threshold=0.45
pre-cluster-threshold=0.25
topk=300
Catatan : Pastikan untuk mengatur cluster-mode=2 di file config_infer.
Catatan
Terkadang saat menjalankan pipa GStreamer atau aplikasi sampel, pengguna dapat menghadapi kesalahan: GLib (gthread-posix.c): Unexpected error from C library during 'pthread_setspecific': Invalid argument. Aborting. . Masalah ini disebabkan karena bug dalam versi glib 2.0-2.72 yang dilengkapi dengan Ubuntu 22.04 secara default. Masalah ini dibahas dalam glib 2.76 dan instalasinya diperlukan untuk memperbaiki masalah (https://github.com/gnome/glib/tree/2.76.6).
Migrasi glib ke versi yang lebih baru
pip3 install meson
pip3 install ninja
Catatan : Disarankan untuk menggunakan Python VirtualEnv.
git clone https://github.com/GNOME/glib.git
cd glib
git checkout 2.76.6
meson build --prefix=/usr
ninja -C build/
cd build/
ninja install
Periksa dan konfirmasi versi glib yang baru diinstal:
pkg-config --modversion glib-2.0
Terkadang dengan aliran RTSP, aplikasi macet mencapai EOS. Ini karena masalah dalam komponen RTPJitterBuffer. Untuk memperbaiki masalah ini, skrip telah diberikan rincian yang diperlukan untuk memperbarui perpustakaan GstrtPManager.
/opt/nvidia/deepstream/deepstream/update_rtpmanager.sh
Ekstrak metadata
Anda bisa mendapatkan metadata dari Deepstream menggunakan Python dan C/C ++. Untuk C/C ++, Anda dapat mengedit kode deepstream-app atau deepstream-test . Untuk Python, Anda dapat menginstal dan mengedit deepstream_python_apps.
Pada dasarnya, Anda perlu memanipulasi NvDsObjectMeta (Python / C / C ++) and NvDsFrameMeta (Python / C / C ++) untuk mendapatkan label, posisi, dll. Dari Bbox.
Proyek saya: https://www.youtube.com/marcoslucianotv