自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

evsqiezi

多媒体工程师,从事ffmpeg,gstreamer,h264开发,做做笔记。

  • 博客(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 1786 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 4042

原创 deepstream例子的pipeline

deepstream-apppipeline

2022-04-02 14:21:29 2389 11

原创 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 236

原创 DGPU上用共享内存

进程间,有时候想共用硬件内存。如下代码,服务端分配了硬件内存,客户端共享逻辑内存得到一些信息,再读取硬件内存。sharedMemoryCreate是对shm_open的封装。

2024-05-24 17:53:09 239

原创 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 605 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 855

原创 DeepStream--调试代码

【代码】DeepStream--调试代码。

2024-01-09 10:44:14 415

原创 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 240

原创 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 266

原创 DeepStream--保存NvBufSurface图片

NvBufSurface的memorytype有很多种,今天主要说的是DGPU上的NVBUF_MEM_CUDA_DEVICE类型,因为类型不一样,获取的方式也不一样。流程主要是用cudaMemcpy将Device内存拷贝到CPU内存,再根据颜色格式,保存为nv12/rgba/rgb。保存的数据是原始数据,可以用ffplay进行预览。

2023-11-24 15:20:23 952 9

原创 DeepStream--测试lpdnet车牌检测模型

模型格式已经从加密的etlt格式变为onnx格式。这个模型用于从汽车图片上检测出车牌位置,模型有两个,一个用于美国车,一个用于中国车。

2023-11-21 17:23:42 177

原创 DeepStream--测试TrafficCamNet检测模型

测试图片:/opt/nvidia/deepstream/deepstream/samples/streams/sample_720p.jpg。目前模型是nvidia的加密格式etlt。nvinfer的配置。

2023-11-21 17:10:57 191

原创 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 368 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 80

原创 deepstream-测试发送AMQP

msgbroker.set_property('config', args.msgbroker_config_path) //默认的cfg_amqp.txt。未完待续......

2023-11-14 17:25:04 539

原创 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 317

原创 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 202

原创 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 358

原创 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 230

原创 gstreamer插件例子

case: 输入图比模型尺寸小,但是不希望做拉伸,只希望做填充。用这个命令可以实现希望的效果:gst-launch-1.0 videotestsrc!效果图如下图,如果不用videobox,就没有黑框。该插件可以用来加边框,上下左右都可以加。

2023-05-26 16:26:28 176 1

原创 相机的gstreamer插件

deepstream SDK提供了一个写好的程序deepstream-app,用户只需修改配置,即可实现图像采集,图像前处理,模型推理,后处理,存文件或发broker。num-buffers: 取多少帧。sensor-id:编号。deepstream做开发。合并两个镜头到一个窗口。

2023-03-23 16:10:29 356 1

转载 DeepStream6.2发布(2/6/2023)

DeepsStream6.2发布了,上个版本是6.1.1。

2023-02-07 09:59:59 382

原创 deepstream-编解码

x264enc的基类是videoencoder, videoencoder是个壳子,它定义了chain函数gst_video_encoder_chain,这个函数包了一些虚函数,如klass->handle_frame,具体做什么需要子类去实现。gstreamer提供了软编码插件x264enc,x264enc是对软编码库x264的封装,如下图是插件的部分信息。软编插件x264enc。

2022-11-27 23:28:04 685

原创 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 509 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 460 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 583

原创 triton-tritonserver的main函数

tritonserver是triton的远端服务器。

2022-09-15 17:10:33 610

原创 deepstream-nvpreprocess

deepstream nvinfer会做前处理,但是preprecess的前处理功能更强大,他可以分组,使用不同的转换函数,而且支持ROI.

2022-09-10 23:21:35 757 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 1820 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 876

原创 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 529

原创 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 1085

原创 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 411

原创 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 737

原创 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 1533

原创 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 319

原创 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 1435

原创 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 585

原创 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 899

codeblocks绿豆色主题

codeblocks的一个主题,绿豆色主题,很好看,我自己喜欢的一个主题。

2018-01-10

codeblocks主题

codeblocks的主题设置,常有用,其中vim主题非常好,看起来很好看。

2017-11-18

aac头解析.docx

aac头解析.

2016-08-26

Windows下如何编译OpenSSL.docx

Windows下如何编译OpenSSL.docx.

2015-09-08

msado60_Backcompat

Win7上编译的ADO程序无法在低版本系统上运行,创建ADO时提示错误:0x80004002.

2014-12-10

tigervnc-1.3.1.rar

TigerVNC is a high-performance, platform-neutral implementation of VNC (Virtual Network Computing), a client/server application that allows users to launch and interact with graphical applications on remote machines. TigerVNC provides the levels of performance necessary to run 3D and video applications, and it attempts to maintain a common look and feel and re-use components, where possible, across the various platforms that it supports. TigerVNC also provides extensions for advanced authentication methods and TLS encryption.

2014-10-16

signcode.rar

数字签名可以讲CAB标为安全,数字签名的时候,要用到此软件。

2014-08-29

13818 1 ts ps

此文档是一个ISO文档,主要介绍TS,PS,PES的格式。

2014-08-01

VC2008下用ATL开发windows服务

VC2008下用ATL开发windows服务,服务的特点:开机启动,无界面。

2014-07-24

路由器的三种上网方式

本文档详细介绍了三种上网模式,PPPOE,静态IP,动态IP。

2014-07-14

win7下配置IIS

此文档,详细讲解了windows下配置iis,图文并茂,很容易理解,操作。

2014-03-13

IPCCapture

onvif协议不提供直接获取抓拍图片到本地的功能,只提供获取图片的地址(如:http://172.16.200.24/cgi-bin/jpg/image.cgi),必须通过HTTP的GET方式得到图片,此代码为C++编写,稍作改动即可完成图片获取到本地。

2014-03-12

c99下的stdint.h

stdint.h是c99中引进的一个标准C库的头文件。 比如在使用X264的时候会用到此头文件。

2014-03-09

pexports-0.43

有时候,编译只生成了动态库,没有生成lib文件,pexports能够把DLL解释称DEF文件,在利用VC的lib.exe就可以解释出lib文件。

2014-03-09

ffmpeg解码视频

此代码用ffmpeg来解码视频码率,本人亲自测过AVI,h264,mpeg2,使用时要加入必要的头文件,库文件。

2014-02-24

windows下用mingw编译ffmpeg

window下搭mingw环境,mingw下编译ffmpeg都比较麻烦,参考文档又旧又杂,本文档采用的方法简单有效,可以很快实现编译。

2014-02-20

VC2008工程下的解析TS出ES的例子

在VC2008工程下,一个TS的解析例子,含有一个视频文件test.264,解析出来的文件为1.264。 解析步骤为: 1 取得PAT. 2 取得PMT. 3 取得PES. 4 取得ES. 参考文档见:http://blog.csdn.net/evsqiezi/article/details/11960733。

2014-02-10

gsoap实现的加法实例

gsoap的入门例子,实现两个数字相加。

2013-12-03

VC6在64下退不出缺少的库

VC6在64位下断点调试,经常会退步出来,从任务管理器中关,也退不出,替换这连个库就解决了。

2013-11-07

ffmpeg的SDK

ffmpeg是一个很好用的开源编解码库,编译也是个麻烦的过程,先提供编译好的SDK,版本号为3.2。

2013-10-24

字符转utf8

汉字等字符有时候在网络传输时候要转成UTF8格式,此资源即实现C++下的转化。

2013-07-10

ICE_helloword.rar

使用ICE做一个简单的例子,客户端给服务端发送helloword,如果不在一个电脑要加上-h IP,对初学ICE帮助很大。

2013-07-04

rgb2yuv.rar

查表法进行,RGB跟YUV之间转换,效率很高。

2013-06-18

nasm和yasm

nasm.exe和yasm.exe是汇编工具,在编译ffmpeg时会用到。

2013-05-29

nasm与ndisasm

编译X264等源码时,经常会用到这两个工具。

2013-01-05

MySourceFilter

写第一个简单的filter,功能是:循环显示3张图片。

2012-11-21

rgb,yuv查看器

一个很好用图像播放器,支持rgb,yuv的各种格式。

2012-11-20

base64_live555

从live555抠出来的base64,使用的是查表法。

2012-11-13

udp通信的静态库

封装的一个UDP库,在windows,linux下都可以使用。

2012-11-06

coreavc2.0

coreavc,版本2.0,据说是最快的软解码。

2012-09-14

图片转换icon

png,gif,jpg,bmp转换成icon,

2012-09-14

23种设计模式

23种设计模式详解,比如单例模式,状态模式等。

2012-04-20

CVS使用方法

CVS和VSS一样都是版本控制软件。与VSS不同,CVS是在Unix下发展起来的。目前也有面向Windows操作系统的版本(包括服务端和客户端)。 以下将介绍CVS中的基本术语。

2011-12-31

桌面录像+摄像头录像

两个软件,一个是截桌面成录像,一个是采集摄像头成录像。

2011-11-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除