一、前言
本文介绍基于DeepStream5.0和YoloV3目标检测模型来实现车辆和行人检测的部署过程。在第二部分介绍依赖的环境;第三、四部分介绍YoloV3的样例工程和编译运行过程;第五部分介绍如何实现多路拉流;第六部分介绍如何自定义YOLOV3模型;最后是小结和参考资料。
希望本文尽可能的详细和清晰,让大家在动手尝试过程中少走弯路,一步到位。
二、环境准备
- Cuda10.2
- Jetpack4.4
- Ubuntu18.04
- DeepStream SDK >= 5.0
- 硬件设备我这里使用的是NVIDIA Jetson AGX Xavier ,包括Nano、TX2、NX都是可以的。
三、YoloV3工程结构
DeepStream在安装完成后,默认会自动安装到以下目录内:/opt/nvidia/deepstream/deepstream-5.0。
sources目录各个文件夹功能介绍:(如下图所示)
- apps
- sample_apps:这里官方提供了可直接执行的应用。如deepstream-app, deepstream-test1, deepstream-test2, deepstream-test3, deepstream-test4, deepstream-mrnn-test等20个。
- gst-plugins: NVIDIA deepstream框架提供的gstreamer 插件
- includes: 头文件
- libs: 库文件
- objectDetector_FasterRCNN: 提供了一个FasterRCNN模型的工作示例
- objectDetector_SSD: 提供了一个 SSD模型的工作示例
- objectDetector_Yolo: 提供了一个 YOLO 模型的工作示例
- tools: 日志相关的功能
我们的目的是通过objectDetector_Yolo工程来编译生成动态链接库(一个so文件),并在DeepStream 应用程序中应用YOLOV3来实现目标检测。
在objectDetector_Yolo 目录内,包含三部分内容:
-
nvdsinfer_custom_impl_yolo文件夹: yolo实现代码
-
配置文件