DeepStream-Yolo 项目介绍
DeepStream-Yolo 是一个基于NVIDIA DeepStream SDK的项目,旨在为各种YOLO(You Only Look Once)模型提供配置支持,通过良好的兼容性和高效的计算性能,帮助开发者在人脸识别、物体检测和图像的实时处理上实现优越的性能。
项目的主要改进
DeepStream-Yolo 项目在多个方面进行了改进,以提升在不同设备和平台上的YOLO模型执行性能。主要优点和功能包括:
- 支持 INT8 校准,优化计算精度与效率。
- 支持非正方形模型的处理,增加了处理的灵活性。
- 提供模型基准测试,帮助开发者更好地评估模型性能。
- 支持通过DeepStream平台上的GPU完成Darknet模型(如YOLOv4等)转换与后期处理。
- 支持多种最新的模型,如RT-DETR、YOLO-NAS、PPYOLOE+等等,并通过ONNX进行转换和GPU处理。
- 增强的GPU边界框解析器和自定义ONNX模型解析器。
- 动态批处理大小支持,适应不同数据量的需求。
开始使用
要开始使用DeepStream-Yolo,需满足以下条件:
需求
平台方面,支持DeepStream从版本5.1到7.1,兼容多个Ubuntu版本和CUDA、TensorRT组合,不同版本的DeepStream对Linux、CUDA、TensorRT和驱动版本有所不同的需求。
使用步骤
-
下载代码库:从GitHub克隆DeepStream-Yolo代码库。
git clone https://github.com/marcoslucianops/DeepStream-Yolo.git
-
准备配置文件:从Darknet仓库下载相应模型的配置文件和权重文件。
-
编译库文件:根据所使用的DeepStream版本设置CUDA版本,编译用于YOLO的自定义实现库。
make -C nvdsinfer_custom_impl_Yolo clean && make -C nvdsinfer_custom_impl_Yolo
-
配置推理文件:编辑
config_infer_primary.txt
文件,输入您使用的模型配置和权重文件,例如YOLOv4。 -
运行应用:使用deepstream-app运行配置好的应用。
deepstream-app -c deepstream_app_config.txt
注意:初始化并生成TensorRT引擎文件可能耗时较长,具体取决于模型的复杂程度。
Docker 使用
在x86平台和Jetson平台都提供了基于Docker的使用方法,这简化了环境配置和依赖管理。在使用前,需要在Docker容器中安装必要的开发工具。
NMS(非极大值抑制)配置
在配置推理文件中,可以通过修改nms-iou-threshold
等参数来调整NMS设置,以优化模型输出的精确度。
其他重要备注
- DeepStream-Yolo 通过Python和C/C++接口获取元数据,这允许开发者在DeepStream应用中获取检测结果及其相关信息。
- DeepStream-Yolo 项目在容错性、性能优化等方面提供了大量更新,使其能够在复杂的实时流媒体处理中发挥更大作用。
DeepStream-Yolo 是一个强大的工具,适合对实时图像处理和深度学习有需求的开发者和公司。其丰富的功能和对各种最新模型的支持,使其成为大规模图像和视频处理项目中的理想选择。