DeepStream-Yolo
DeepStream-Yolo is a project designed to leverage the power of NVIDIA's DeepStream SDK for deploying various YOLO (You Only Look Once) models on both x86 and Jetson platforms. This configuration supports a range of DeepStream SDK versions from 5.1 up to 7.0, making it versatile for developers aiming to implement deep learning models for real-time video analytics.
Overview of YOLO Models Integration
The project allows the integration of different YOLO model types including but not limited to YOLOv4, YOLOv5, YOLOv6, YOLOv7, YOLOv8, and YOLO-NAS among others. Each model type can be processed on GPUs using frameworks that convert models into a format suitable for real-time processing, such as TensorRT engines.
Key Improvements of the Repository
The repository includes several improvements like:
- Support for INT8 calibration which optimizes model inference speed and efficiency.
- Compatibility with non-square models and benchmarks for performance analysis.
- Conversion support for Darknet models using configuration files and weight conversions coupled with GPU post-processing.
- GPU-based bounding box (bbox) parsers and custom ONNX model parsers.
- Dynamic batch-size capabilities to enhance processing flexibility.
Getting Started
To get started with DeepStream-Yolo:
- Repository Cloning: The repository can be cloned from GitHub to begin integrating YOLO models.
- Model Configuration: Users need to download
cfg
andweights
files for chosen models and configure these in the provided configuration file (config_infer_primary.txt
). - Compilation: Compile the necessary libraries using directives aligned with the installed DeepStream versions and CUDA versions.
Supported YOLO Models
The project supports a wide range of YOLO models, including:
- Darknet series (YOLOv4)
- Advancements like YOLOv5, YOLOv6, YOLOv7, YOLOv8
- Lightweight models like YOLO-Fastest and MobileNet-YOLO
Installation and Configuration
Installation requirements are contingent on the user's chosen platform (x86 or Jetson) and the version of DeepStream SDK. Detailed instructions are provided for specific platform configurations including necessary drivers, TensorRT, CUDA versions, and specific setup instructions for both x86 and Jetson platforms.
Docker and Virtual Environment Usage
For ease of deployment, Docker images compatible with DeepStream version 7.0 are available for both x86 and Jetson platforms. This facilitates a streamlined environment setup, though additional packages might be required for full DeepStream SDK functionality.
NMS and Metadata Extraction
The project's configuration files also allow users to adjust non-maximum suppression (NMS) settings for object detection accuracy and performance. The extraction of metadata from video analytics conducted using these models can be done through Python or C/C++ interfaces, with sample codes available for customization.
Future Development and Updates
The DeepStream-Yolo project is set to include ongoing updates such as expanded tutorials and support for classification models. Development efforts will continue to enhance the versatility and efficiency of deploying YOLO models in commercial and research environments.
Overall, DeepStream-Yolo is a comprehensive initiative aimed at providing developers with the tools necessary to deploy efficient, high-speed YOLO models across different platforms using NVIDIA's DeepStream SDK.