- 博客(774)
- 资源 (34)
- 收藏
- 关注
原创 gstBuffer的 data 和 meta
GstMetatypedef struct _GstMeta GstMeta;struct _GstMeta { GstMetaFlags flags; const GstMetaInfo *info;};typedef struct _GstMetaItem GstMetaItem;struct _GstMetaItem { GstMetaItem *next; guint64 seq_num; GstMeta meta;};可以看到GstMe...
2022-04-15 23:16:26
4557
原创 NVIDIA Isaac GR00T:从视觉与语言到机器人动作
模型周围,平台还提供数据、仿真、训练、运行时和部署组件,帮助从研究checkpoint走向可工作的机器人。- [NVIDIA GR00T开发工作流](https://developer.nvidia.com/blog/develop-humanoid-robot-policies-end-to-end-with-nvidia-isaac-gr00t/)难的工程在于让这个闭环可靠:采集正确的示教、把模型适配到本体、在仿真和现实中验证、集成确定性控制,并落实安全。合理的第一个项目不是不受约束的人形机器人部署。
2026-08-30 23:17:14
391
原创 在NVIDIA Jetson上从`NvBufSurface`获取CUDA访问
当`NvBufSurface`来自`GstBuffer`时,在CUDA使用该surface期间,应保持`GstBuffer`处于已映射和被引用状态。在Jetson上,`NVBUF_MEM_DEFAULT`通常解析为`NVBUF_MEM_SURFACE_ARRAY`,但应根据分配器返回的实际`surface->memType`进行分派,而不是假定“默认”意味着什么。两个平面的行都可能包含填充,因此`pitch[p]`不一定等于`width[p] * bytesPerPix[p]`。这是CUDA设备内存分配。
2026-08-28 15:27:24
272
原创 使用 TensorRT-Edge-LLM 0.9.0 在端侧测试 Qwen3-Omni
本文介绍了如何使用NVIDIA TensorRT-Edge-LLM v0.9.0在嵌入式设备上部署Qwen3-Omni-30B-A3B-Instruct多模态大模型。主要内容包括:1) TensorRT-Edge-LLM的特点,作为面向Jetson等嵌入式平台的C++高性能推理运行时;2) Qwen3-Omni模型的部署流程,从HuggingFace权重到ONNX再到TensorRT引擎的转换,包括量化(NVFP4)和引擎构建;3) 通过C++ API实现多模态推理,同时处理视频帧序列和音频PCM输入,并输
2026-08-09 23:20:30
418
原创 Deepstream 使用 REST API 动态管理视频流
DeepStream的deepstream-server-app示例展示了如何构建支持动态视频流管理的服务化应用。该示例核心组件是nvmultiurisrcbin,它集成了视频源处理、多路流合并和REST API服务功能,支持通过HTTP请求实时添加/删除视频流(支持本地文件、RTSP等协议)。默认pipeline包含预处理、推理、分析、显示等标准处理环节,同时提供丰富的运行时控制能力,包括参数调整、ROI更新、状态查询等。示例支持两种REST服务模式:内置于nvmultiurisrcbin或由应用独立管理
2026-05-28 23:04:46
256
原创 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
506
原创 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
460
原创 DeepStream9.0 inference_builder
很多模型需要特殊的输入处理或输出解析。Inference Builder 支持通过自定义 Python 类实现 processor。类变量name初始化方法调用方法返回 tuple,和配置里的output对应配置文件里只需要引用 processor 的名字、输入、输出和配置。生成器会扫描自定义模块,把符合规范的类注册到生成应用中。这使得通用框架和业务模型逻辑可以保持清晰边界。
2026-05-21 22:52:24
448
原创 DeepStream9.0 Smart Recording
NVIDIA DeepStream的SmartRecording技术解决了传统视频录制方式的高存储成本和关键事件遗漏问题。该技术通过持续缓存编码后的音视频流,仅在事件触发时保存事件前后指定时长的片段(如事件前5秒和后10秒),而非全天候录制。其核心在于利用GStreamer框架实现滑动时间窗口缓存,等待关键帧后开始写入文件,支持MP4/MKV格式。该技术适用于安防、交通等场景,既能降低存储压力,又能确保事件前后关键画面的完整性。使用需注意缓存时长、关键帧间隔等配置参数,并避免重叠录制。
2026-05-21 22:40:31
386
原创 DeepStream9.0 service-maker
摘要:NVIDIA DeepStream ServiceMaker是构建在DeepStream SDK上的高层抽象工具,旨在降低多媒体处理和AI推理应用的开发复杂度。它提供三种API:C++ API封装GStreamer为对象化操作;Python Pipeline API保留精细控制;Python Flow API采用声明式写法简化任务链构建。此外,ServiceMaker支持Runtime Module机制,可将自定义功能模块化复用。该工具显著缩短开发时间,同时保留DeepStream的性能优势,适用于视
2026-05-21 22:24:46
447
原创 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
741
2
原创 DeepStream9.0 masktracker
摘要:MaskTracker是DeepStream 9.0中优化的多目标跟踪方案,结合目标检测与分割功能。它通过SAM2视觉基础模型,在传统bbox跟踪基础上增加高质量mask输出,实现更精确的目标轮廓表示。该方案适用于复杂遮挡场景、多类别目标跟踪等需要精细分割的应用,但计算开销较高。配置时需配合检测器(如PeopleNet)使用,输出包含跟踪ID、bbox和segmentation mask的可视化结果及元数据。MaskTracker在工业监控、零售分析等场景中展现出优势,为视频分析提供更鲁棒的目标级理解
2026-05-20 22:29:13
439
原创 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
373
原创 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
471
原创 DeepStream9.0 Coding Agent
DeepStream 9.0引入AI编程代理支持,提供两种开发路径:InferenceBuilder/MCP路径让代理调用实际工具完成模型准备、容器构建等任务;Skills路径则通过领域知识库指导代理生成更准确的代码。新版本通过结构化工具和专业知识,有效解决了传统DeepStream开发中配置复杂、容易出错的问题,使开发者能快速构建包含完整工程文件的应用,显著提升开发效率。
2026-05-19 23:09:45
409
原创 LLM的相关概念
MCP旨在解决AI工具开发中的适配层重复问题。当开发者创建基础功能(如查询模型信息)时,需要为不同Agent框架(LangChain、Semantic Kernel等)编写特定的包装代码,导致开发效率低下。MCP提出统一协议方案,使工具只需一次开发就能被多种Agent客户端调用,消除为每个平台单独开发适配层的需求,从而提升工具复用性和开发效率。
2026-05-17 22:00:08
237
原创 GstAggregator的aggregate
GstAggregator的同步机制分析:当处理三个输入时,aggregate函数会严格同步执行。关键机制在于: gst_aggregator_check_pads_ready会检查所有非EOS的sink pad是否都有buffer,任一pad无数据即返回FALSE gst_aggregator_wait_and_check在pad未就绪时会阻塞(SRC_WAIT),直到收到SRC_BROADCAST信号 主循环gst_aggregator_loop必须等待所有pad数据就绪才会调用aggregate()
2026-03-29 17:02:06
381
原创 batch-size对推理的影响
摘要:测试了DeepStream中不同batch-size配置对推理性能的影响。使用batch-size=1的模型时帧率约为1143fps,而改用batch-size=16的模型后帧率降至864fps左右。结果表明,模型engine的batch-size需要与输入源的个数保持一致才能获得最佳性能。测试通过修改配置文件和GStreamer管道命令完成,验证了batch-size匹配的重要性。
2026-03-26 15:30:57
267
原创 Issac sim 做测试视频
如果不修改参数,就直接点Set Up Events, 再点播放,就可以看到模型视频,如果需要修改参数,切到Event Scene Tagger页,选中目标,点UntagLooseItems,就是取消,再选中目标,点NavMesh,就是确定。点Stage,输入camera,点回车,选中要操作的摄像头,下面编辑框的Translate就是x,y,z的位置。切到Actor SDG 点播放,点 Start Data Generation,就生成PNG文件,在Replicator下可以修改路径。
2025-12-18 23:08:20
919
原创 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
725
原创 pipeline状态的变化
这个函数会调用element的gst_element_set_state_func函数,set_state会保存element的当前,下一个,最终状态。set_state会调gst_element_change_state函数去改状态。从备注上看,gst_bin_iterate_sorted 函数返回一个从后往前的迭代, 然后依次设置子插件的状态。在插件创建,链接之后会调用该函数。
2025-03-02 23:31:40
533
原创 DeepStream--图像的等比例填充缩放
利用Gstreamer的videoconvertscale插件。缺点:装的gstreamer可能没有这个插件,也搞不清videoconvertscale,videoscale,videoconvert有什么区别.利用nvstreammux的等比例填充缩放功能,参数是enable-padding。利用nvvideoconvert的dest-crop功能,缺点是需要计算。图像的尺寸是640x420,怎么等比例填充缩放成320x480。先等比率缩放,再用videobox填黑边。
2025-02-25 13:55:13
454
原创 tee发送query
如果有个如上的pipeline,element是个自定义的插件,如果element在响应query时,执行“return 1”, 而没有执行“return gst_pad_query_default (pad, parent, query);”, query就不会往下传,tee src0就收到1,按gst_pad_forward的逻辑,while (!done) 就会提前结束,query消息就不会往src1发送。
2025-01-22 15:16:32
214
原创 Issac ROS navigation测试
下载Omniverse Launcher, 然后执行./omniverse-launcher-linux.AppImage,从EXCHANGE里依次安装Isaac Sim Compatibility Checker,Omniverse Nucleus Navigator,Omniverse Cache, Isaac Sim. 有安装问题,参考。要注意的是“sudo apt upgrade” 这一步可能会升级Nvidia 驱动,所有没有继续执行,改为1.2的docker启动。遇到的问题,等以后再分析下。
2024-12-24 16:37:15
911
原创 拷贝NvBufSurface到新的buffer
以下代码是,在Jetson,先将buffer映射到cpu,再用cudaMemcpy2DAsync拷贝到新的buffer. 在dgpu,不用映射,直接拷贝到buffer。NvBufSurface是一个batch数据,以n12为例,怎么batch的nv12数据拷贝的新的buffer.在Jetson上,为了提高效率,可以不做内存映射,直接进行gpu拷贝。
2024-10-31 17:02:29
662
原创 归一化的数据转RGB
有时需要检查归一化后的数据是否正确,那就要把数据在转回rgb格式,这里以系数为1为例。如下代码把rrr.....ggg......bbb......转回rgbrgbrgb......。
2024-10-28 14:13:15
351
原创 DGPU共享内存的问题
上说“If the memory handle has already been opened by the current context, the reference count on the handle is incremented by 1 and the existing device pointer is returned.”, 那就是在同一个进程,如果已经打开过一次,就会将引用加1,208可能是打开的时候有冲突。208怎么能快速重现?那既然同时调用有冲突,那可以加个锁,如上注释部分。
2024-07-19 17:49:06
971
原创 DGPU上用共享内存
进程间,有时候想共用硬件内存。如下代码,服务端分配了硬件内存,客户端共享逻辑内存得到一些信息,再读取硬件内存。sharedMemoryCreate是对shm_open的封装。
2024-05-24 17:53:09
450
原创 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
1080
2
原创 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
1029
原创 DeepStream--调试Gstreamer
从结果中可以看到,rtpjitterbuffer插件的源码是gst-plugins-good,版本是1.16,在/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstrtpmanager.so中.1. 将GST_ERROR_OBJECT (jitterbuffer, "in gst_rtp_jitter_buffer_chain");加到gst_rtp_jitter_buffer_chain函数里,再执行。如下步骤是搭环境,下代码,编译。如下步骤是加日志,编译。
2023-12-12 16:04:49
744
原创 DeepStream--测试PCB-Defect-Detection
这里的步骤,将pt文件直接转成onnx模型。最终转的命令是:python3 export_yoloV5.py -w best.pt。但是这个代码有个问题,工程缺少custom_yolov5s.yaml 文件,这一步将失败,生成不了wts和cfg文件。从结果来看,能识别部分点,但是有些分类是错误,都标成了"missing_hole"。我参考了了这个代码,作者基于YoloV5,训练一个电路板检测的模型,训练数据集来自。Spurious copper 杂铜。Open circuit 开路。
2023-12-01 18:06:05
560
原创 DeepStream--保存NvBufSurface图片
NvBufSurface的memorytype有很多种,今天主要说的是DGPU上的NVBUF_MEM_CUDA_DEVICE类型,因为类型不一样,获取的方式也不一样。流程主要是用cudaMemcpy将Device内存拷贝到CPU内存,再根据颜色格式,保存为nv12/rgba/rgb。保存的数据是原始数据,可以用ffplay进行预览。
2023-11-24 15:20:23
2114
12
原创 DeepStream--测试lpdnet车牌检测模型
模型格式已经从加密的etlt格式变为onnx格式。这个模型用于从汽车图片上检测出车牌位置,模型有两个,一个用于美国车,一个用于中国车。
2023-11-21 17:23:42
494
原创 DeepStream--测试TrafficCamNet检测模型
测试图片:/opt/nvidia/deepstream/deepstream/samples/streams/sample_720p.jpg。目前模型是nvidia的加密格式etlt。nvinfer的配置。
2023-11-21 17:10:57
498
原创 DeepStream--测试resnet50分类模型
在/opt/nvidia/deepstream/deepstream/sources/libs/nvdsinfer/nvdsinfer_context_impl_output_parsing.cpp加点打印之后,发现的到的分类是对的,索引462在label文件里就是broom,只是没有取到分类的标签字符串。nvinfer的label解析函数InferPostprocessor::parseLabelsFile,要求文件是以分号相隔的,而这个label不是的。执行命令后,发现生成的图片也没有分类的字符串。
2023-11-19 21:51:31
1054
15
原创 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
270
CVS使用方法
2011-12-31
windows下用mingw编译ffmpeg
2014-02-20
IPCCapture
2014-03-12
VC2008工程下的解析TS出ES的例子
2014-02-10
tigervnc-1.3.1.rar
2014-10-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅