项目简介
本项目基于DeepStream SDK和C++语言开发,在deepstream - test1示例基础上拓展。展示了在管道中使用"nvmsgconv"和"nvmsgbroker"插件的方法,可创建NVDS_EVENT_MSG_META类型的元数据并附加到缓冲区,实现对车辆、人员等不同类型对象的消息处理,还支持将处理后的消息发送到Azure IoT Hub、Kafka、AMQP(RabbitMQ)和Redis等多种后端服务器。
项目的主要特性和功能
- 消息处理插件使用:借助"nvmsgconv"和"nvmsgbroker"插件,从缓冲区提取元数据,生成Json格式的"DeepStream Schema"有效负载并发送到后端服务器。
- 多类型对象支持:创建NVDS_EVENT_MSG_META类型元数据,处理车辆、人员等不同类型对象。
- 多后端消息传输:支持将消息发送到Azure IoT Hub、Kafka、AMQP(RabbitMQ)和Redis等多种后端服务器。
- 自定义元数据生成:用户可创建自定义对象,作为NVDS_EVENT_MSG_META元数据附加到缓冲区。
- 灵活的配置选项:可通过命令行参数或YAML文件,灵活配置管道属性、消息协议库、连接字符串、消息主题和消息模式等。
安装使用步骤
1. 环境准备
- 按apps/sample_apps/deepstream - app/README说明安装DeepStream SDK及其先决条件。
- 安装必要开发包:
bash sudo apt-get install libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev \ libgstrtspserver-1.0-dev libx11-dev
- 若用nvinferserver进行推理,需在DeepStream - Triton Docker容器中运行示例,参考samples/configs/deepstream - app - triton/README下载容器镜像并设置模型仓库。
2. 编译项目
- 根据平台在MakeFile中设置CUDA_VER:
- Jetson平台:
CUDA_VER = 11.4
- x86平台:
CUDA_VER = 11.8
- Jetson平台:
- 执行编译命令:
bash sudo make
(在Docker容器中运行时,不需要sudo)
3. 运行项目
方式一:使用命令行参数
bash
./deepstream - test4 - app - i <H264 filename> - p <Proto adaptor library> --conn - str=<Connection string> --topic=<topicname> - s <0/1>
方式二:使用YAML文件
bash
./deepstream - test4 - app <yml file>
例如:
bash
./deepstream - test4 - app dstest4_config.yml
注意:运行应用程序前,需在dstest4_config.yml中相应更新msgbroker属性、"proto - lib"、"conn - str"和"topic"。
4. Azure Iotedge运行时集成(可选)
-
参考DS_PACKAGE_DIR/sources/libs/azure_protocol_adaptor/module_client/README进行以下操作:
- 创建Azure IoT Hub
- 从Azure门户注册新的Azure IoT Edge设备
- 在机器上设置和安装Azure IoT Edge
- 安装依赖项
- 指定连接字符串
- 使用配置文件(可选)
- 安装并设置nvidia - docker
- 部署IoT Edge模块
- 启动Edge运行时
-
启动Edge运行时并验证模块是否运行:
bash sudo systemctl restart iotedge systemctl status iotedge sudo iotedge list sudo iotedge logs ds
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】