- 博客(748)
- 资源 (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 1857 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 4092
原创 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 273
原创 DGPU上用共享内存
进程间,有时候想共用硬件内存。如下代码,服务端分配了硬件内存,客户端共享逻辑内存得到一些信息,再读取硬件内存。sharedMemoryCreate是对shm_open的封装。
2024-05-24 17:53:09 259
原创 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 643 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 874
原创 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 265
原创 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 298
原创 DeepStream--保存NvBufSurface图片
NvBufSurface的memorytype有很多种,今天主要说的是DGPU上的NVBUF_MEM_CUDA_DEVICE类型,因为类型不一样,获取的方式也不一样。流程主要是用cudaMemcpy将Device内存拷贝到CPU内存,再根据颜色格式,保存为nv12/rgba/rgb。保存的数据是原始数据,可以用ffplay进行预览。
2023-11-24 15:20:23 1121 9
原创 DeepStream--测试lpdnet车牌检测模型
模型格式已经从加密的etlt格式变为onnx格式。这个模型用于从汽车图片上检测出车牌位置,模型有两个,一个用于美国车,一个用于中国车。
2023-11-21 17:23:42 209
原创 DeepStream--测试TrafficCamNet检测模型
测试图片:/opt/nvidia/deepstream/deepstream/samples/streams/sample_720p.jpg。目前模型是nvidia的加密格式etlt。nvinfer的配置。
2023-11-21 17:10:57 220
原创 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 451 3
原创 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 96
原创 deepstream-测试发送AMQP
msgbroker.set_property('config', args.msgbroker_config_path) //默认的cfg_amqp.txt。未完待续......
2023-11-14 17:25:04 563
原创 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 349
原创 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 219
原创 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 396
原创 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 249
原创 gstreamer插件例子
case: 输入图比模型尺寸小,但是不希望做拉伸,只希望做填充。用这个命令可以实现希望的效果:gst-launch-1.0 videotestsrc!效果图如下图,如果不用videobox,就没有黑框。该插件可以用来加边框,上下左右都可以加。
2023-05-26 16:26:28 195 1
原创 相机的gstreamer插件
deepstream SDK提供了一个写好的程序deepstream-app,用户只需修改配置,即可实现图像采集,图像前处理,模型推理,后处理,存文件或发broker。num-buffers: 取多少帧。sensor-id:编号。deepstream做开发。合并两个镜头到一个窗口。
2023-03-23 16:10:29 381 1
原创 deepstream-编解码
x264enc的基类是videoencoder, videoencoder是个壳子,它定义了chain函数gst_video_encoder_chain,这个函数包了一些虚函数,如klass->handle_frame,具体做什么需要子类去实现。gstreamer提供了软编码插件x264enc,x264enc是对软编码库x264的封装,如下图是插件的部分信息。软编插件x264enc。
2022-11-27 23:28:04 717
原创 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 552 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 471 1
原创 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 606
原创 deepstream-nvpreprocess
deepstream nvinfer会做前处理,但是preprecess的前处理功能更强大,他可以分组,使用不同的转换函数,而且支持ROI.
2022-09-10 23:21:35 806 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 1942 21
原创 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 896
原创 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 554
原创 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 1110
原创 GStreamer--GstAggregator插件
short_description:Base class for mixers and muxers, manages a set of input pads and aggregates their streams这个插件是混合类的基类,用于将多个流混合起来,GstVideoAggregator,flvmux,qtmux都是它的子类。流的接入与删除,都出进入request_new_pad和release_pad函数,如下是函数的定义。 gstelement_class->request_n.
2022-05-11 16:24:58 428
原创 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 746
原创 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 1614
原创 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 332
原创 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 1530
原创 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 650
原创 gstreamer工具
gst-launch测试模拟数据gst-launch-1.0 -v -m videotestsrc ! autovideosinktee图像一边播放,一边编码存储gst-launch-1.0 -e v4l2src ! video/x-raw,format=YUY2,width=640,height=480,framerate=30/1 ! tee name=srctee srctee. ! queue ! xvimagesink srctee. ! queue ! videoconver
2022-04-14 09:27:48 937
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关注的人