DeepStream
文章平均质量分 74
NVIDIA® DeepStream 软件开发工具包 (SDK) 是一个加速 AI 框架,用于构建智能视频分析 (IVA) 管道。
大迫杰真帅
一名老码农,研究生毕业于华东师范大学软件工程专业。写写多媒体,AI方面的文章。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Deepstream 使用 REST API 动态管理视频流
DeepStream的deepstream-server-app示例展示了如何构建支持动态视频流管理的服务化应用。该示例核心组件是nvmultiurisrcbin,它集成了视频源处理、多路流合并和REST API服务功能,支持通过HTTP请求实时添加/删除视频流(支持本地文件、RTSP等协议)。默认pipeline包含预处理、推理、分析、显示等标准处理环节,同时提供丰富的运行时控制能力,包括参数调整、ROI更新、状态查询等。示例支持两种REST服务模式:内置于nvmultiurisrcbin或由应用独立管理原创 2026-05-28 23:04:46 · 222 阅读 · 0 评论 -
DeepStream9.0 在 Windows 上使用
本文介绍了在Windows系统上通过WSL2和Docker运行DeepStream的方法。主要内容包括:1)推荐使用WSL2+Docker方式而非原生Windows安装;2)详细的环境配置步骤,包括安装Ubuntu 24.04 WSL、Docker Engine和NVIDIA Container Toolkit;3)DeepStream 9.0镜像的拉取和容器运行方法;4)解码/编码测试和deepstream-app验证;5)常见问题解决方案。该方法适用于Windows用户进行视频分析、AI推理等开发测试,原创 2026-05-26 11:20:53 · 438 阅读 · 0 评论 -
DeepStream Single-View 3D Tracking
DeepStream的Single-View 3D Tracking(SV3DT)通过将目标跟踪从2D图像平面扩展到3D物理世界,有效解决了传统多目标跟踪在遮挡、部分可见等情况下的ID切换问题。该系统利用静态摄像头的投影矩阵和3D目标模型,结合PeopleNet检测器和NvDCF跟踪算法,实现了更稳定的目标跟踪。关键配置包括3D状态估计器、目标模型投影和姿态估计器,输出包含3D边界框、脚部位置等元数据。该技术特别适用于零售、仓库等固定摄像头场景,通过相机几何感知显著提升了跟踪的连续性和准确性。原创 2026-05-24 09:35:57 · 425 阅读 · 0 评论 -
DeepStream9.0 inference_builder
很多模型需要特殊的输入处理或输出解析。Inference Builder 支持通过自定义 Python 类实现 processor。类变量name初始化方法调用方法返回 tuple,和配置里的output对应配置文件里只需要引用 processor 的名字、输入、输出和配置。生成器会扫描自定义模块,把符合规范的类注册到生成应用中。这使得通用框架和业务模型逻辑可以保持清晰边界。原创 2026-05-21 22:52:24 · 410 阅读 · 0 评论 -
DeepStream9.0 Smart Recording
NVIDIA DeepStream的SmartRecording技术解决了传统视频录制方式的高存储成本和关键事件遗漏问题。该技术通过持续缓存编码后的音视频流,仅在事件触发时保存事件前后指定时长的片段(如事件前5秒和后10秒),而非全天候录制。其核心在于利用GStreamer框架实现滑动时间窗口缓存,等待关键帧后开始写入文件,支持MP4/MKV格式。该技术适用于安防、交通等场景,既能降低存储压力,又能确保事件前后关键画面的完整性。使用需注意缓存时长、关键帧间隔等配置参数,并避免重叠录制。原创 2026-05-21 22:40:31 · 353 阅读 · 0 评论 -
DeepStream9.0 Multi-View 3D Tracking
多路视频需要同步所有视频最好有相同分辨率每个相机需要 calibration file可选:用于 BEV 的地图map.png可选:world coordinate 到 BEV image coordinate 的示例提供自动生成配置。扫描videos/和camInfo/生成 DeepStream pipeline config生成 tracker config生成 Kafka/message config生成 camera pub/sub 通信配置。原创 2026-05-20 22:39:31 · 637 阅读 · 1 评论 -
DeepStream9.0 masktracker
摘要:MaskTracker是DeepStream 9.0中优化的多目标跟踪方案,结合目标检测与分割功能。它通过SAM2视觉基础模型,在传统bbox跟踪基础上增加高质量mask输出,实现更精确的目标轮廓表示。该方案适用于复杂遮挡场景、多类别目标跟踪等需要精细分割的应用,但计算开销较高。配置时需配合检测器(如PeopleNet)使用,输出包含跟踪ID、bbox和segmentation mask的可视化结果及元数据。MaskTracker在工业监控、零售分析等场景中展现出优势,为视频分析提供更鲁棒的目标级理解原创 2026-05-20 22:29:13 · 387 阅读 · 0 评论 -
DeepStream9.0 nvdsosd 新特性:Mask Blur 与 OBB 旋转框绘制
DeepStream 9.0的nvdsosd新增两项实用功能:1) 基于mask的局部模糊功能,支持精确模糊目标实例区域而非整个bbox,提升隐私保护效果;2) OBB旋转框绘制能力,可准确显示带角度的检测结果。前者通过blur-bbox=2参数实现mask区域模糊,后者通过rotation_angle参数绘制旋转矩形。两项功能均需GPU模式(process-mode=1)支持,适用于实例分割和旋转目标检测等场景,使OSD显示更贴合现代视觉AI模型的复杂输出需求。原创 2026-05-20 22:04:45 · 329 阅读 · 0 评论 -
DeepStream9.0 在DeepStream中使用VLM
DeepStream与vLLM结合实现视频语义理解 摘要:NVIDIA推出的deepstream-vllm-plugin示例展示了如何将DeepStream视频处理框架与vLLM大语言模型相结合。该方案通过nvvllmvlm插件将视频帧送入视觉语言模型(VLM),使系统能够输出自然语言描述。DeepStream负责视频解码和预处理,vLLM负责模型推理,支持多路视频共享单个模型实例。系统采用分段处理策略,每5秒采样关键帧进行推理,平衡性能与语义理解。配置支持多种输入格式(PyTorch/PIL/NumPy)原创 2026-05-20 21:18:58 · 415 阅读 · 0 评论 -
DeepStream9.0 Coding Agent
DeepStream 9.0引入AI编程代理支持,提供两种开发路径:InferenceBuilder/MCP路径让代理调用实际工具完成模型准备、容器构建等任务;Skills路径则通过领域知识库指导代理生成更准确的代码。新版本通过结构化工具和专业知识,有效解决了传统DeepStream开发中配置复杂、容易出错的问题,使开发者能快速构建包含完整工程文件的应用,显著提升开发效率。原创 2026-05-19 23:09:45 · 381 阅读 · 0 评论 -
DeepStream推理dewarped所有surfaces
opt\nvidia\deepstream\deepstream-7.1\sources\apps\sample_apps\deepstream-dewarper-test例子只是将nvdewarper拆分的视频进行显示,并没有做推理,pipeline是source->dewarper->nvstreammux->tiler->sink.命令如下:deepsteram-app -c source2_dewarper_test.yml。原创 2025-03-08 19:36:58 · 697 阅读 · 0 评论 -
DeepStream--图像的等比例填充缩放
利用Gstreamer的videoconvertscale插件。缺点:装的gstreamer可能没有这个插件,也搞不清videoconvertscale,videoscale,videoconvert有什么区别.利用nvstreammux的等比例填充缩放功能,参数是enable-padding。利用nvvideoconvert的dest-crop功能,缺点是需要计算。图像的尺寸是640x420,怎么等比例填充缩放成320x480。先等比率缩放,再用videobox填黑边。原创 2025-02-25 13:55:13 · 440 阅读 · 0 评论 -
拷贝NvBufSurface到新的buffer
以下代码是,在Jetson,先将buffer映射到cpu,再用cudaMemcpy2DAsync拷贝到新的buffer. 在dgpu,不用映射,直接拷贝到buffer。NvBufSurface是一个batch数据,以n12为例,怎么batch的nv12数据拷贝的新的buffer.在Jetson上,为了提高效率,可以不做内存映射,直接进行gpu拷贝。原创 2024-10-31 17:02:29 · 628 阅读 · 0 评论 -
串联两个检测模型
比如第一个模型检测汽车,第二个模型检测车牌,如果将两个模型串联起来。原创 2024-10-29 16:19:41 · 438 阅读 · 1 评论 -
归一化的数据转RGB
有时需要检查归一化后的数据是否正确,那就要把数据在转回rgb格式,这里以系数为1为例。如下代码把rrr.....ggg......bbb......转回rgbrgbrgb......。原创 2024-10-28 14:13:15 · 344 阅读 · 0 评论 -
DeepStream-测试发送MQTT
到/opt/nvidia/deepstream/deepstream/sources/libs/mqtt_protocol_adaptor目录下,执行make -f Makefile.test进行编译,执行./test_mqtt_proto_async进行测试。到/opt/nvidia/deepstream/deepstream/sources/apps/sample_apps/deepstream-test5/configs下,设置完后,到上一层目录,执行。原创 2024-04-29 23:15:42 · 1002 阅读 · 0 评论 -
DeepStream-gst-dsexample
这是个例子函数,你可以用自己的算法对cvmat进行分析,可以得到一些新的objects或者旧objects的新分类,结果存到返回值DsExampleOutput,最后在attach_metadata_full_frame中,将。是根据用户设置的宽高processing_width/processing_height,创建的hostcuda内存,需要主要的是,它的格式RGB。DsExampleOutput的值通过nvds_add_obj_meta_to_frame转为新的meta.原创 2023-09-07 10:34:29 · 593 阅读 · 0 评论 -
DeepStream做对象模糊的几种方法
deepstream-test1是DeepStream最简单的一个例子,这个例子跑了一个对象检测模型,完整的管道是“file-source -> h264-parser -> nvh264-decoder -> pgie -> nvvidconv -> nvosd -> video-renderer”。源代码用的是opencv的高斯模糊, 当然也可以改成填充,导出sgie的输入tensor,发现也被填充了,所以这里的填充是对frame的buffer做in-place的更改。下面介绍几种模糊的办法。原创 2024-04-09 14:37:51 · 1023 阅读 · 0 评论 -
DeepStream--调试代码
【代码】DeepStream--调试代码。原创 2024-01-09 10:44:14 · 556 阅读 · 0 评论 -
DeepStream--保存NvBufSurface图片
NvBufSurface的memorytype有很多种,今天主要说的是DGPU上的NVBUF_MEM_CUDA_DEVICE类型,因为类型不一样,获取的方式也不一样。流程主要是用cudaMemcpy将Device内存拷贝到CPU内存,再根据颜色格式,保存为nv12/rgba/rgb。保存的数据是原始数据,可以用ffplay进行预览。原创 2023-11-24 15:20:23 · 2069 阅读 · 12 评论 -
DeepStream--测试代码
编译:gcc -o 1 1.cpp -I/usr/local/cuda-12.2/include -I/opt/nvidia/deepstream/deepstream/sources/includes -lcudart -lnvbufsurface -lnvbufsurftransform -L/usr/local/cuda-12.2/lib64 -L/opt/nvidia/deepstream/deepstream/lib。原创 2023-11-16 15:47:51 · 261 阅读 · 0 评论 -
deepstream-测试发送AMQP
msgbroker.set_property('config', args.msgbroker_config_path) //默认的cfg_amqp.txt。未完待续......原创 2023-11-14 17:25:04 · 792 阅读 · 0 评论 -
deepstream-nvinferserver
以为nvinferserver的CAPI为例,nvinferserver在做推理的时候,需要指定输出的回调函数,也就是TrtISBackend::allocateResponseBuf,在nvdsinferserver_common.proto中,可以找到输出buffer的支持的类型, triton默认输出gpubuffer类型。问题1, out_buf_ptrs_host和out_buf_ptrs_dev在nvinfer和nvinferserver中有什么区别呢?原创 2023-08-31 15:40:09 · 439 阅读 · 0 评论 -
相机的gstreamer插件
deepstream SDK提供了一个写好的程序deepstream-app,用户只需修改配置,即可实现图像采集,图像前处理,模型推理,后处理,存文件或发broker。num-buffers: 取多少帧。sensor-id:编号。deepstream做开发。合并两个镜头到一个窗口。原创 2023-03-23 16:10:29 · 1010 阅读 · 1 评论 -
DeepStream6.2发布(2/6/2023)
DeepsStream6.2发布了,上个版本是6.1.1。转载 2023-02-07 09:59:59 · 541 阅读 · 0 评论 -
deestream-测雷达RGBD数据
deepstream-3d-depth-camera可以用来测RGBD数据,这个例子的详细说明可以参考readme,主要用来从Intel realsense camera(DS435)读取RGBD数据,然后做处理, pipeline有两种,一种是source+render, 一种是source+points/color转point-cloud+render.,比如stairs-D435.bag,用sdk的realsense-viewer.exe打开如下,上面彩色的是深度图,下面是颜色图。原创 2022-11-21 23:22:18 · 732 阅读 · 2 评论 -
deepstream-测试发送kafka
到/opt/nvidia/deepstream/deepstream/sources/libs/kafka_protocol_adaptor下,修改test_kafka_proto_sync.cpp, 将下面两处标红的地方,改成第一步创建的topic名称deepstream。然后执行编译,make -f Makefile.test, 然后执行./test_kafka_proto_sync, 发现开启消费者的窗口能收到数据。如果有什么deepstream问题,可以发到deepstream论坛,有专人回复。原创 2022-11-11 17:15:56 · 2210 阅读 · 0 评论 -
插件内存分析
1. 当pipleline为rtspsrc加其他插件时,如果让其他插件卡主会发生什么事情呢?以rtspsrc+fakesink为例(gst-launch-1.0.exe rtspsrc location=rtsp://xxx!可以看到,过了十几秒后,计数没有变的很大,又成0了,说明卡主fakesink会影响udpsrc的buffer释放,相关的堆栈如下,标注的那行就是fakesink,最上面的那行是bufferpool的释放函数。原创 2022-10-22 22:49:48 · 603 阅读 · 1 评论 -
deepstream-nvpreprocess
deepstream nvinfer会做前处理,但是preprecess的前处理功能更强大,他可以分组,使用不同的转换函数,而且支持ROI.原创 2022-09-10 23:21:35 · 1188 阅读 · 14 评论 -
deepstream--nvinfer
nvinfer地址:https://docs.nvidia.com/metropolis/deepstream/dev-guide/text/DS_plugin_gst-nvinfer.htmlnvinfer插件使用来做推理的插件,输入,输出可以看nvinfer的插件介绍。这个插件是代码开源的,现在分析下源代码。原创 2022-09-03 15:14:53 · 2441 阅读 · 22 评论 -
deepstream 问题
docker里执行gst-inpect-1.0 nvinfer# No EGL Displaynvbufsurftransform: Could not get EGL display connectionMoTTY X11 proxy: Unsupported authorisation protocolNo EGL Displaynvbufsurftransform: Could not get EGL display connectionNo such element or plugi.原创 2022-05-12 09:50:17 · 806 阅读 · 0 评论 -
deepstream运行TAO模型
nvidia TAO有很多预训练模型,如:##### Detection Network- Faster-RCNN / YoloV3 / SSD / DSSD / RetinaNet / YoloV4 (https://ngc.nvidia.com/catalog/models/nvidia:tao:Faster-RCNN)- DetectNet_v2 (https://catalog.ngc.nvidia.com/orgs/nvidia/teams/tao/models/pretrained_d.原创 2022-05-11 20:06:08 · 1328 阅读 · 0 评论 -
deepstream python
git地址:deepstream_python_apps/apps/runtime_source_add_delete at master · NVIDIA-AI-IOT/deepstream_python_apps · GitHubhttps://github.com/NVIDIA-AI-IOT/deepstream_python_appsdeepstream_python_apps/apps/runtime_source_add_delete at master · NVIDIA-AI-IOT/deep原创 2022-05-10 16:54:41 · 844 阅读 · 0 评论 -
deepstream meta应用
deepstream-test1对osd的sink加了一个probe函数osd_sink_pad_buffer_probe,如下代码, NvDsFrameMeta下有NvDsFrameMetaList,NvDsFrameMeta下有NvDsObjectMetaList,统计NvDsFrameMeta下人和车的个数,并创建NvDsDisplayMeta,将文本信息挂在NvDsDisplayMeta的NvOSD_TextParams,再将NvDsDisplayMeta挂到NvDsFrameMeta。for原创 2022-05-06 09:51:56 · 1943 阅读 · 0 评论 -
deepstream插件
output metahttps://docs.nvidia.com/metropolis/deepstream/dev-guide/text/DS_plugin_metadata.html?highlight=tracker_confidence#new-metadata-fields deepsort githubhttps://github.com/nwojke/deep_sort reid networkhttps://docs.nvidia.com/metropoli...原创 2022-05-01 17:10:42 · 499 阅读 · 0 评论 -
NvBufSurface
NvBufSurface/*** Holds information about a single buffer in a batch. batch的之一。*/typedef struct NvBufSurfaceParams { /** Holds the width of the buffer. */ uint32_t width; /** Holds the height of the buffer. */ uint32_t height; /** Holds...原创 2022-04-19 11:31:43 · 2211 阅读 · 0 评论 -
GstBufferPool与nvpreprocess
GstBufferPool 是个buffer池,默认函数定义参见gst_buffer_pool_class_init 。gst_buffer_pool_class_init (GstBufferPoolClass * klass) {GObjectClass *gobject_class = (GObjectClass *) klass;gobject_class->dispose = gst_buffer_pool_dispose;gobject_class->finalize原创 2022-04-18 21:29:22 · 876 阅读 · 0 评论 -
deepstream例子的pipeline
deepstream-apppipeline原创 2022-04-02 14:21:29 · 3024 阅读 · 0 评论
分享