- 博客(756)
- 资源 (34)
- 收藏
- 关注

原创 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
2026
1

原创 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
4284
原创 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
450
原创 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
366
原创 DeepStream--图像的等比例填充缩放
利用Gstreamer的videoconvertscale插件。缺点:装的gstreamer可能没有这个插件,也搞不清videoconvertscale,videoscale,videoconvert有什么区别.利用nvstreammux的等比例填充缩放功能,参数是enable-padding。利用nvvideoconvert的dest-crop功能,缺点是需要计算。图像的尺寸是640x420,怎么等比例填充缩放成320x480。先等比率缩放,再用videobox填黑边。
2025-02-25 13:55:13
229
原创 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
130
原创 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
576
原创 拷贝NvBufSurface到新的buffer
以下代码是,在Jetson,先将buffer映射到cpu,再用cudaMemcpy2DAsync拷贝到新的buffer. 在dgpu,不用映射,直接拷贝到buffer。NvBufSurface是一个batch数据,以n12为例,怎么batch的nv12数据拷贝的新的buffer.在Jetson上,为了提高效率,可以不做内存映射,直接进行gpu拷贝。
2024-10-31 17:02:29
347
原创 归一化的数据转RGB
有时需要检查归一化后的数据是否正确,那就要把数据在转回rgb格式,这里以系数为1为例。如下代码把rrr.....ggg......bbb......转回rgbrgbrgb......。
2024-10-28 14:13:15
232
原创 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
504
原创 DGPU上用共享内存
进程间,有时候想共用硬件内存。如下代码,服务端分配了硬件内存,客户端共享逻辑内存得到一些信息,再读取硬件内存。sharedMemoryCreate是对shm_open的封装。
2024-05-24 17:53:09
328
原创 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
774
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
923
原创 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
324
原创 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
383
原创 DeepStream--保存NvBufSurface图片
NvBufSurface的memorytype有很多种,今天主要说的是DGPU上的NVBUF_MEM_CUDA_DEVICE类型,因为类型不一样,获取的方式也不一样。流程主要是用cudaMemcpy将Device内存拷贝到CPU内存,再根据颜色格式,保存为nv12/rgba/rgb。保存的数据是原始数据,可以用ffplay进行预览。
2023-11-24 15:20:23
1463
11
原创 DeepStream--测试lpdnet车牌检测模型
模型格式已经从加密的etlt格式变为onnx格式。这个模型用于从汽车图片上检测出车牌位置,模型有两个,一个用于美国车,一个用于中国车。
2023-11-21 17:23:42
293
原创 DeepStream--测试TrafficCamNet检测模型
测试图片:/opt/nvidia/deepstream/deepstream/samples/streams/sample_720p.jpg。目前模型是nvidia的加密格式etlt。nvinfer的配置。
2023-11-21 17:10:57
301
原创 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
729
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
145
原创 deepstream-测试发送AMQP
msgbroker.set_property('config', args.msgbroker_config_path) //默认的cfg_amqp.txt。未完待续......
2023-11-14 17:25:04
609
原创 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
408
原创 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
321
原创 triton客户端使用
perf_analyzer是个功能强大的测试工具,支持http, grpc, capi三种模式的测试。http, grpc方式需要启动tritonserver, 客户端发送命令包给服务端,服务端调triton的底层接口进行推理。capi方式不需要启动tritonserver,程序直接调接口进行推理。Primary_Detector下包含模型配置文件config.pbtxt和模型版本目录1,1下就是模型的engine文件。跑的时间会很长,因为在运行所有的配置。
2023-07-06 18:02:40
493
原创 gstreamer协商
实际的func是gst_base_transform_default_query->gst_base_transform_query_caps, 然后又调用gst_pad_peer_query(casfilter的src_pad),参考上面的分析,又调到gst_pad_peer_query(videobox的src_pad), 最终调用的是gst_base_sink_sink_query(fakesink的sink);以一个例子来看gstreamer的协商。做做笔记,仅供参考。
2023-05-28 14:42:55
323
原创 gstreamer插件例子
case: 输入图比模型尺寸小,但是不希望做拉伸,只希望做填充。用这个命令可以实现希望的效果:gst-launch-1.0 videotestsrc!效果图如下图,如果不用videobox,就没有黑框。该插件可以用来加边框,上下左右都可以加。
2023-05-26 16:26:28
278
1
原创 相机的gstreamer插件
deepstream SDK提供了一个写好的程序deepstream-app,用户只需修改配置,即可实现图像采集,图像前处理,模型推理,后处理,存文件或发broker。num-buffers: 取多少帧。sensor-id:编号。deepstream做开发。合并两个镜头到一个窗口。
2023-03-23 16:10:29
600
原创 deepstream-编解码
x264enc的基类是videoencoder, videoencoder是个壳子,它定义了chain函数gst_video_encoder_chain,这个函数包了一些虚函数,如klass->handle_frame,具体做什么需要子类去实现。gstreamer提供了软编码插件x264enc,x264enc是对软编码库x264的封装,如下图是插件的部分信息。软编插件x264enc。
2022-11-27 23:28:04
804
原创 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
605
2
原创 插件内存分析
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
506
2
原创 Triton测试
下载client sdk ,如: v2.25.0_ubuntu2004.clients.tar.gz,解压到本地,执行测试,到docs目录下,下载模型,启动tritonserver.这个以deepstream的triton为例。下载server的代码到本地,git clone。2.1 启动tritonserver。2.2 测试demo,从。1 启动docker。
2022-09-25 22:13:00
764
原创 deepstream-nvpreprocess
deepstream nvinfer会做前处理,但是preprecess的前处理功能更强大,他可以分组,使用不同的转换函数,而且支持ROI.
2022-09-10 23:21:35
985
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
2153
23
原创 gstreamer的消息传递机制
//创建bin的同时会创建一个bus,用于接收子插件的消息。 gst_bin_init (GstBin * bin){ bus = g_object_new (GST_TYPE_BUS, "enable-async", FALSE, NULL); bin->child_bus = bus; //childbus是用来接受子元素的消息。} //添加子元素,将child_bus设给子元素gst_bin_add--bclass->add_element-----g
2022-07-10 17:04:34
964
原创 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
633
tigervnc-1.3.1.rar
2014-10-16
IPCCapture
2014-03-12
windows下用mingw编译ffmpeg
2014-02-20
VC2008工程下的解析TS出ES的例子
2014-02-10
CVS使用方法
2011-12-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人