DeepStream 7.0 update
This commit is contained in:
176
README.md
176
README.md
@@ -1,7 +1,9 @@
|
||||
# DeepStream-Yolo
|
||||
|
||||
NVIDIA DeepStream SDK 6.3 / 6.2 / 6.1.1 / 6.1 / 6.0.1 / 6.0 / 5.1 configuration for YOLO models
|
||||
NVIDIA DeepStream SDK 7.0 / 6.4 / 6.3 / 6.2 / 6.1.1 / 6.1 / 6.0.1 / 6.0 / 5.1 configuration for YOLO models
|
||||
|
||||
--------------------------------------------------------------------------------------------------
|
||||
For now, I am limited for some updates. Thank you for understanding.
|
||||
--------------------------------------------------------------------------------------------------
|
||||
### YOLO-Pose: https://github.com/marcoslucianops/DeepStream-Yolo-Pose
|
||||
### YOLO-Seg: https://github.com/marcoslucianops/DeepStream-Yolo-Seg
|
||||
@@ -23,15 +25,10 @@ NVIDIA DeepStream SDK 6.3 / 6.2 / 6.1.1 / 6.1 / 6.0.1 / 6.0 / 5.1 configuration
|
||||
* Models benchmarks
|
||||
* Support for Darknet models (YOLOv4, etc) using cfg and weights conversion with GPU post-processing
|
||||
* Support for RT-DETR, YOLO-NAS, PPYOLOE+, PPYOLOE, DAMO-YOLO, YOLOX, YOLOR, YOLOv8, YOLOv7, YOLOv6 and YOLOv5 using ONNX conversion with GPU post-processing
|
||||
* GPU bbox parser (it is slightly slower than CPU bbox parser on V100 GPU tests)
|
||||
* Support for DeepStream 5.1
|
||||
* Custom ONNX model parser (`NvDsInferYoloCudaEngineGet`)
|
||||
* Dynamic batch-size for Darknet and ONNX exported models
|
||||
* GPU bbox parser
|
||||
* Custom ONNX model parser
|
||||
* Dynamic batch-size
|
||||
* INT8 calibration (PTQ) for Darknet and ONNX exported models
|
||||
* New output structure (fix wrong output on DeepStream < 6.2) - it need to export the ONNX model with the new export file, generate the TensorRT engine again with the updated files, and use the new config_infer_primary file according to your model
|
||||
* **RT-DETR PyTorch (https://github.com/lyuwenyu/RT-DETR/tree/main/rtdetr_pytorch)**
|
||||
* **RT-DETR Paddle (https://github.com/lyuwenyu/RT-DETR/tree/main/rtdetr_paddle)**
|
||||
* **RT-DETR Ultralytics (https://docs.ultralytics.com/models/rtdetr)**
|
||||
|
||||
##
|
||||
|
||||
@@ -44,6 +41,7 @@ NVIDIA DeepStream SDK 6.3 / 6.2 / 6.1.1 / 6.1 / 6.0.1 / 6.0 / 5.1 configuration
|
||||
* [Basic usage](#basic-usage)
|
||||
* [Docker usage](#docker-usage)
|
||||
* [NMS configuration](#nms-configuration)
|
||||
* [Notes](#notes)
|
||||
* [INT8 calibration](docs/INT8Calibration.md)
|
||||
* [YOLOv5 usage](docs/YOLOv5.md)
|
||||
* [YOLOv6 usage](docs/YOLOv6.md)
|
||||
@@ -64,13 +62,33 @@ NVIDIA DeepStream SDK 6.3 / 6.2 / 6.1.1 / 6.1 / 6.0.1 / 6.0 / 5.1 configuration
|
||||
|
||||
### Requirements
|
||||
|
||||
#### DeepStream 7.0 on x86 platform
|
||||
|
||||
* [Ubuntu 22.04](https://releases.ubuntu.com/22.04/)
|
||||
* [CUDA 12.2 Update 2](https://developer.nvidia.com/cuda-12-2-2-download-archive?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=22.04&target_type=runfile_local)
|
||||
* [TensorRT 8.6 GA (8.6.1.6)](https://developer.nvidia.com/nvidia-tensorrt-8x-download)
|
||||
* [NVIDIA Driver 535 (>= 535.161.08)](https://www.nvidia.com/Download/index.aspx)
|
||||
* [NVIDIA DeepStream SDK 7.0](https://catalog.ngc.nvidia.com/orgs/nvidia/resources/deepstream/files?version=7.0)
|
||||
* [GStreamer 1.20.3](https://gstreamer.freedesktop.org/)
|
||||
* [DeepStream-Yolo](https://github.com/marcoslucianops/DeepStream-Yolo)
|
||||
|
||||
#### DeepStream 6.4 on x86 platform
|
||||
|
||||
* [Ubuntu 22.04](https://releases.ubuntu.com/22.04/)
|
||||
* [CUDA 12.2 Update 2](https://developer.nvidia.com/cuda-12-2-2-download-archive?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=22.04&target_type=runfile_local)
|
||||
* [TensorRT 8.6 GA (8.6.1.6)](https://developer.nvidia.com/nvidia-tensorrt-8x-download)
|
||||
* [NVIDIA Driver 535 (>= 535.104.12)](https://www.nvidia.com/Download/index.aspx)
|
||||
* [NVIDIA DeepStream SDK 6.4](https://catalog.ngc.nvidia.com/orgs/nvidia/resources/deepstream/files?version=6.4)
|
||||
* [GStreamer 1.20.3](https://gstreamer.freedesktop.org/)
|
||||
* [DeepStream-Yolo](https://github.com/marcoslucianops/DeepStream-Yolo)
|
||||
|
||||
#### DeepStream 6.3 on x86 platform
|
||||
|
||||
* [Ubuntu 20.04](https://releases.ubuntu.com/20.04/)
|
||||
* [CUDA 12.1 Update 1](https://developer.nvidia.com/cuda-12-1-1-download-archive?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=20.04&target_type=runfile_local)
|
||||
* [TensorRT 8.5 GA Update 2 (8.5.3.1)](https://developer.nvidia.com/nvidia-tensorrt-8x-download)
|
||||
* [NVIDIA Driver 525.125.06 (Data center / Tesla series) / 530.41.03 (TITAN, GeForce RTX / GTX series and RTX / Quadro series)](https://www.nvidia.com.br/Download/index.aspx)
|
||||
* [NVIDIA DeepStream SDK 6.3](https://developer.nvidia.com/deepstream-getting-started)
|
||||
* [NVIDIA Driver 525 (>= 525.125.06)](https://www.nvidia.com/Download/index.aspx)
|
||||
* [NVIDIA DeepStream SDK 6.3](https://catalog.ngc.nvidia.com/orgs/nvidia/resources/deepstream/files?version=6.3)
|
||||
* [GStreamer 1.16.3](https://gstreamer.freedesktop.org/)
|
||||
* [DeepStream-Yolo](https://github.com/marcoslucianops/DeepStream-Yolo)
|
||||
|
||||
@@ -79,7 +97,7 @@ NVIDIA DeepStream SDK 6.3 / 6.2 / 6.1.1 / 6.1 / 6.0.1 / 6.0 / 5.1 configuration
|
||||
* [Ubuntu 20.04](https://releases.ubuntu.com/20.04/)
|
||||
* [CUDA 11.8](https://developer.nvidia.com/cuda-11-8-0-download-archive?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=20.04&target_type=runfile_local)
|
||||
* [TensorRT 8.5 GA Update 1 (8.5.2.2)](https://developer.nvidia.com/nvidia-tensorrt-8x-download)
|
||||
* [NVIDIA Driver 525.85.12 (Data center / Tesla series) / 525.105.17 (TITAN, GeForce RTX / GTX series and RTX / Quadro series)](https://www.nvidia.com.br/Download/index.aspx)
|
||||
* [NVIDIA Driver 525 (>= 525.85.12)](https://www.nvidia.com/Download/index.aspx)
|
||||
* [NVIDIA DeepStream SDK 6.2](https://developer.nvidia.com/deepstream-sdk-download-tesla-archived)
|
||||
* [GStreamer 1.16.3](https://gstreamer.freedesktop.org/)
|
||||
* [DeepStream-Yolo](https://github.com/marcoslucianops/DeepStream-Yolo)
|
||||
@@ -89,7 +107,7 @@ NVIDIA DeepStream SDK 6.3 / 6.2 / 6.1.1 / 6.1 / 6.0.1 / 6.0 / 5.1 configuration
|
||||
* [Ubuntu 20.04](https://releases.ubuntu.com/20.04/)
|
||||
* [CUDA 11.7 Update 1](https://developer.nvidia.com/cuda-11-7-1-download-archive?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=20.04&target_type=runfile_local)
|
||||
* [TensorRT 8.4 GA (8.4.1.5)](https://developer.nvidia.com/nvidia-tensorrt-8x-download)
|
||||
* [NVIDIA Driver 515.65.01](https://www.nvidia.com.br/Download/index.aspx)
|
||||
* [NVIDIA Driver 515.65.01](https://www.nvidia.com/Download/index.aspx)
|
||||
* [NVIDIA DeepStream SDK 6.1.1](https://developer.nvidia.com/deepstream-sdk-download-tesla-archived)
|
||||
* [GStreamer 1.16.2](https://gstreamer.freedesktop.org/)
|
||||
* [DeepStream-Yolo](https://github.com/marcoslucianops/DeepStream-Yolo)
|
||||
@@ -99,7 +117,7 @@ NVIDIA DeepStream SDK 6.3 / 6.2 / 6.1.1 / 6.1 / 6.0.1 / 6.0 / 5.1 configuration
|
||||
* [Ubuntu 20.04](https://releases.ubuntu.com/20.04/)
|
||||
* [CUDA 11.6 Update 1](https://developer.nvidia.com/cuda-11-6-1-download-archive?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=20.04&target_type=runfile_local)
|
||||
* [TensorRT 8.2 GA Update 4 (8.2.5.1)](https://developer.nvidia.com/nvidia-tensorrt-8x-download)
|
||||
* [NVIDIA Driver 510.47.03](https://www.nvidia.com.br/Download/index.aspx)
|
||||
* [NVIDIA Driver 510.47.03](https://www.nvidia.com/Download/index.aspx)
|
||||
* [NVIDIA DeepStream SDK 6.1](https://developer.nvidia.com/deepstream-sdk-download-tesla-archived)
|
||||
* [GStreamer 1.16.2](https://gstreamer.freedesktop.org/)
|
||||
* [DeepStream-Yolo](https://github.com/marcoslucianops/DeepStream-Yolo)
|
||||
@@ -109,7 +127,7 @@ NVIDIA DeepStream SDK 6.3 / 6.2 / 6.1.1 / 6.1 / 6.0.1 / 6.0 / 5.1 configuration
|
||||
* [Ubuntu 18.04](https://releases.ubuntu.com/18.04.6/)
|
||||
* [CUDA 11.4 Update 1](https://developer.nvidia.com/cuda-11-4-1-download-archive?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=18.04&target_type=runfile_local)
|
||||
* [TensorRT 8.0 GA (8.0.1)](https://developer.nvidia.com/nvidia-tensorrt-8x-download)
|
||||
* [NVIDIA Driver 470.63.01](https://www.nvidia.com.br/Download/index.aspx)
|
||||
* [NVIDIA Driver 470.63.01](https://www.nvidia.com/Download/index.aspx)
|
||||
* [NVIDIA DeepStream SDK 6.0.1 / 6.0](https://developer.nvidia.com/deepstream-sdk-download-tesla-archived)
|
||||
* [GStreamer 1.14.5](https://gstreamer.freedesktop.org/)
|
||||
* [DeepStream-Yolo](https://github.com/marcoslucianops/DeepStream-Yolo)
|
||||
@@ -119,20 +137,32 @@ NVIDIA DeepStream SDK 6.3 / 6.2 / 6.1.1 / 6.1 / 6.0.1 / 6.0 / 5.1 configuration
|
||||
* [Ubuntu 18.04](https://releases.ubuntu.com/18.04.6/)
|
||||
* [CUDA 11.1](https://developer.nvidia.com/cuda-11.1.0-download-archive?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1804&target_type=runfilelocal)
|
||||
* [TensorRT 7.2.2](https://developer.nvidia.com/nvidia-tensorrt-7x-download)
|
||||
* [NVIDIA Driver 460.32.03](https://www.nvidia.com.br/Download/index.aspx)
|
||||
* [NVIDIA Driver 460.32.03](https://www.nvidia.com/Download/index.aspx)
|
||||
* [NVIDIA DeepStream SDK 5.1](https://developer.nvidia.com/deepstream-sdk-download-tesla-archived)
|
||||
* [GStreamer 1.14.5](https://gstreamer.freedesktop.org/)
|
||||
* [DeepStream-Yolo](https://github.com/marcoslucianops/DeepStream-Yolo)
|
||||
|
||||
#### DeepStream 7.0 on Jetson platform
|
||||
|
||||
* [JetPack 6.0](https://developer.nvidia.com/embedded/jetpack-sdk-60)
|
||||
* [NVIDIA DeepStream SDK 7.0](https://catalog.ngc.nvidia.com/orgs/nvidia/resources/deepstream/files?version=7.0)
|
||||
* [DeepStream-Yolo](https://github.com/marcoslucianops/DeepStream-Yolo)
|
||||
|
||||
#### DeepStream 6.4 on Jetson platform
|
||||
|
||||
* [JetPack 6.0 DP](https://developer.nvidia.com/embedded/jetpack-sdk-60dp)
|
||||
* [NVIDIA DeepStream SDK 6.4](https://catalog.ngc.nvidia.com/orgs/nvidia/resources/deepstream/files?version=6.4)
|
||||
* [DeepStream-Yolo](https://github.com/marcoslucianops/DeepStream-Yolo)
|
||||
|
||||
#### DeepStream 6.3 on Jetson platform
|
||||
|
||||
* [JetPack 5.1.2](https://developer.nvidia.com/embedded/jetpack)
|
||||
* [NVIDIA DeepStream SDK 6.3](https://developer.nvidia.com/deepstream-sdk)
|
||||
* JetPack [5.1.3](https://developer.nvidia.com/embedded/jetpack-sdk-513) / [5.1.2](https://developer.nvidia.com/embedded/jetpack-sdk-512)
|
||||
* [NVIDIA DeepStream SDK 6.3](https://catalog.ngc.nvidia.com/orgs/nvidia/resources/deepstream/files?version=6.3)
|
||||
* [DeepStream-Yolo](https://github.com/marcoslucianops/DeepStream-Yolo)
|
||||
|
||||
#### DeepStream 6.2 on Jetson platform
|
||||
|
||||
* JetPack [5.1.2](https://developer.nvidia.com/embedded/jetpack) / [5.1.1](https://developer.nvidia.com/embedded/jetpack-sdk-511) / [5.1](https://developer.nvidia.com/embedded/jetpack-sdk-51)
|
||||
* JetPack [5.1.3](https://developer.nvidia.com/embedded/jetpack-sdk-513) / [5.1.2](https://developer.nvidia.com/embedded/jetpack-sdk-512) / [5.1.1](https://developer.nvidia.com/embedded/jetpack-sdk-511) / [5.1](https://developer.nvidia.com/embedded/jetpack-sdk-51)
|
||||
* [NVIDIA DeepStream SDK 6.2](https://developer.nvidia.com/embedded/deepstream-on-jetson-downloads-archived)
|
||||
* [DeepStream-Yolo](https://github.com/marcoslucianops/DeepStream-Yolo)
|
||||
|
||||
@@ -192,53 +222,37 @@ cd DeepStream-Yolo
|
||||
|
||||
#### 3. Compile the lib
|
||||
|
||||
* DeepStream 6.3 on x86 platform
|
||||
3.1. Set the `CUDA_VER` according to your DeepStream version
|
||||
|
||||
```
|
||||
export CUDA_VER=XY.Z
|
||||
```
|
||||
|
||||
* x86 platform
|
||||
|
||||
```
|
||||
CUDA_VER=12.1 make -C nvdsinfer_custom_impl_Yolo
|
||||
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
|
||||
```
|
||||
|
||||
* DeepStream 6.2 on x86 platform
|
||||
* Jetson platform
|
||||
|
||||
```
|
||||
CUDA_VER=11.8 make -C nvdsinfer_custom_impl_Yolo
|
||||
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
|
||||
```
|
||||
|
||||
* DeepStream 6.1.1 on x86 platform
|
||||
3.2. Make the lib
|
||||
|
||||
```
|
||||
CUDA_VER=11.7 make -C nvdsinfer_custom_impl_Yolo
|
||||
```
|
||||
|
||||
* DeepStream 6.1 on x86 platform
|
||||
|
||||
```
|
||||
CUDA_VER=11.6 make -C nvdsinfer_custom_impl_Yolo
|
||||
```
|
||||
|
||||
* DeepStream 6.0.1 / 6.0 on x86 platform
|
||||
|
||||
```
|
||||
CUDA_VER=11.4 make -C nvdsinfer_custom_impl_Yolo
|
||||
```
|
||||
|
||||
* DeepStream 5.1 on x86 platform
|
||||
|
||||
```
|
||||
CUDA_VER=11.1 make -C nvdsinfer_custom_impl_Yolo
|
||||
```
|
||||
|
||||
* DeepStream 6.3 / 6.2 / 6.1.1 / 6.1 on Jetson platform
|
||||
|
||||
```
|
||||
CUDA_VER=11.4 make -C nvdsinfer_custom_impl_Yolo
|
||||
```
|
||||
|
||||
* DeepStream 6.0.1 / 6.0 / 5.1 on Jetson platform
|
||||
|
||||
```
|
||||
CUDA_VER=10.2 make -C nvdsinfer_custom_impl_Yolo
|
||||
```
|
||||
```
|
||||
make -C nvdsinfer_custom_impl_Yolo clean && make -C nvdsinfer_custom_impl_Yolo
|
||||
```
|
||||
|
||||
#### 4. Edit the `config_infer_primary.txt` file according to your model (example for YOLOv4)
|
||||
|
||||
@@ -283,15 +297,14 @@ config-file=config_infer_primary_yoloV2.txt
|
||||
* x86 platform
|
||||
|
||||
```
|
||||
nvcr.io/nvidia/deepstream:6.3-gc-triton-devel
|
||||
nvcr.io/nvidia/deepstream:6.3-triton-multiarch
|
||||
nvcr.io/nvidia/deepstream:7.0-gc-triton-devel
|
||||
nvcr.io/nvidia/deepstream:7.0-triton-multiarch
|
||||
```
|
||||
|
||||
* Jetson platform
|
||||
|
||||
```
|
||||
nvcr.io/nvidia/deepstream-l4t:6.3-samples
|
||||
nvcr.io/nvidia/deepstream:6.3-triton-multiarch
|
||||
nvcr.io/nvidia/deepstream:7.0-triton-multiarch
|
||||
```
|
||||
|
||||
**NOTE**: To compile the `nvdsinfer_custom_impl_Yolo`, you need to install the g++ inside the container
|
||||
@@ -300,7 +313,7 @@ config-file=config_infer_primary_yoloV2.txt
|
||||
apt-get install build-essential
|
||||
```
|
||||
|
||||
**NOTE**: With DeepStream 6.3, the docker containers do not package libraries necessary for certain multimedia operations like audio data parsing, CPU decode, and CPU encode. This change could affect processing certain video streams/files like mp4 that include audio track. Please run the below script inside the docker images to install additional packages that might be necessary to use all of the DeepStreamSDK features:
|
||||
**NOTE**: With DeepStream 7.0, the docker containers do not package libraries necessary for certain multimedia operations like audio data parsing, CPU decode, and CPU encode. This change could affect processing certain video streams/files like mp4 that include audio track. Please run the below script inside the docker images to install additional packages that might be necessary to use all of the DeepStreamSDK features:
|
||||
|
||||
```
|
||||
/opt/nvidia/deepstream/deepstream/user_additional_install.sh
|
||||
@@ -323,11 +336,48 @@ topk=300
|
||||
|
||||
##
|
||||
|
||||
### Notes
|
||||
|
||||
1. Sometimes while running gstreamer pipeline or sample apps, user can encounter error: `GLib (gthread-posix.c): Unexpected error from C library during 'pthread_setspecific': Invalid argument. Aborting.`. The issue is caused because of a bug in `glib 2.0-2.72` version which comes with Ubuntu 22.04 by default. The issue is addressed in `glib 2.76` and its installation is required to fix the issue (https://github.com/GNOME/glib/tree/2.76.6).
|
||||
|
||||
- Migrate `glib` to newer version
|
||||
|
||||
```
|
||||
pip3 install meson
|
||||
pip3 install ninja
|
||||
```
|
||||
|
||||
**NOTE**: It is recommended to use 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
|
||||
```
|
||||
|
||||
- Check and confirm the newly installed glib version:
|
||||
|
||||
```
|
||||
pkg-config --modversion glib-2.0
|
||||
```
|
||||
|
||||
2. Sometimes with RTSP streams the application gets stuck on reaching EOS. This is because of an issue in rtpjitterbuffer component. To fix this issue, a script has been provided with required details to update gstrtpmanager library.
|
||||
|
||||
```
|
||||
/opt/nvidia/deepstream/deepstream/update_rtpmanager.sh
|
||||
```
|
||||
|
||||
##
|
||||
|
||||
### Extract metadata
|
||||
|
||||
You can get metadata from DeepStream using Python and C/C++. For C/C++, you can edit the `deepstream-app` or `deepstream-test` codes. For Python, your can install and edit [deepstream_python_apps](https://github.com/NVIDIA-AI-IOT/deepstream_python_apps).
|
||||
|
||||
Basically, you need manipulate the `NvDsObjectMeta` ([Python](https://docs.nvidia.com/metropolis/deepstream/python-api/PYTHON_API/NvDsMeta/NvDsObjectMeta.html) / [C/C++](https://docs.nvidia.com/metropolis/deepstream/sdk-api/struct__NvDsObjectMeta.html)) `and NvDsFrameMeta` ([Python](https://docs.nvidia.com/metropolis/deepstream/python-api/PYTHON_API/NvDsMeta/NvDsFrameMeta.html) / [C/C++](https://docs.nvidia.com/metropolis/deepstream/sdk-api/struct__NvDsFrameMeta.html)) to get the label, position, etc. of bboxes.
|
||||
Basically, you need manipulate the `NvDsObjectMeta` ([Python](https://docs.nvidia.com/metropolis/deepstream/dev-guide/python-api/PYTHON_API/NvDsMeta/NvDsObjectMeta.html) / [C/C++](https://docs.nvidia.com/metropolis/deepstream/dev-guide/sdk-api/struct__NvDsObjectMeta.html)) `and NvDsFrameMeta` ([Python](https://docs.nvidia.com/metropolis/deepstream/dev-guide/python-api/PYTHON_API/NvDsMeta/NvDsFrameMeta.html) / [C/C++](https://docs.nvidia.com/metropolis/deepstream/dev-guide/sdk-api/struct__NvDsFrameMeta.html)) to get the label, position, etc. of bboxes.
|
||||
|
||||
##
|
||||
|
||||
|
||||
Reference in New Issue
Block a user