etsonano系列文章():eeptream

大部分DeepStream应用演示,都会使用SDK提供的deepstream-app这个非常强大的体验工具,这是从3.x版本就已经开发好的演示应用,只要挑选samples下面的config/deepstream-app里面十多个配置文件,花个十几分钟时间进行小幅度修改,然后用“-c”指定配置文件,就能实现非常多的强大功能,可以执行非常专业的(多屏)输出显示,而且执行性能非常好。

如果您执行过前一篇文章的实验,就能体验到DeepStream执行多检测器(detector)加成识别的应用,在Jetson Nano 2GB上居然能得到4路视频都在20+FPS的性能,如果刨去安装环境的时间,从头到尾大概十几分钟时间就能完成。

这种情况让众多专注在视频分析软件开发的资深工程师,承受了前所未有的巨大压力,因为过去可能需要5位以上熟练的工程师、花费至少4~6个月时间开发的功能,如今一个初学者就能在DeepStream上,仅用几十分钟就作出专业的效果,这就是“善用工具”所带来的威力。

正因为deepstream-app这个演示工具太过强大,几乎将DeepStream绝大部分特色功能都涵盖进去,导致有不少人误以为deepstream-app就是整套DeepStream开发包,只要把设定文件里面的“群(group)参数”搞通了,就能驾驭这套视频分析工具,然后走偏路子。

当然,能将这些设定值研究透彻,也能用deepstream-app去实现非常多的强大应用,已经是非常厉害的,但这并不能完全发挥DeepStream的全部功能,或者开发一些特殊功能的应用。

Gstreamer的基本组成元件

事实上DeepStream是基于Gstreamer框架所搭建的,因此应用程序就是由一连串的GStreamer管道(pipeline)所组成,下面就是最基本的管道示意图:

从视频输入流到一系列用于处理流的元素或插件以及深入的输出流组成,每个插件都有一个定义的输入(名为sink)和定义的输出(名为source)。在管道中,一个插件的源衬垫(source pad)连接到下一个插件的接收器板(sink pad),源包括从处理过程中提取的信息、元数据,这些信息可用于视频注释和关于输入流的其他细节。

典型的应用工作流包括“输入源处理”、“计算处理”、“汇总输出”三大步骤,DeepStream也不例外,下图就是这个开发工具的标准工作流:

Gstreamer框架在输入与输出部分,原本就提供非常丰富的插件,因此DeepStream除了需要调用NVIDIA并行计算能力或硬件资源的部分,包括视频颜色空间转换、图像处理(放大/缩小/旋转)、streammux/streamdemux多图像组合/分解处理、图像合成渲染、以及Jetson设备上的H254/H265/JPEG硬件编解码器、CSI摄像头调用的ISP图像信号处理器等,其他都直接使用Gstreamer的开源插件。

GStream的开源插件

GstFileSrc:从文件中读取数据:视频数据或图像。Gst-v4l2src:从v4l2设备(例如USB摄像头或视频采集卡)捕获视频流。GstURIdecodebin:将数据从URI解码到原始媒体中。它选择可以处理给定“ uri”方案的源元素,并将其连接到解码器。GstCapsFilter:不修改数据的情况下限制数据格式。GstH26xParser:其中x=4或5,读取h264或h265视频进行解析。GstRtpH26xPay:其中X=4或5,将h26X编码的有效负载转换为RTP数据包.GstFileSink:传入数据写入本地文件系统中的文件。GstUPDSink:将UDP数据包发送到网络,这个与RTP有效负载(rtph26Xpay)配对时,它可以实现RTP流。

NVIDIA提供的插件:

Gst-nvArgusCameraSrc:提供使用Argus API控制ISP属性的选项。Gst-nvStreamMux:当有多个输入源打时候,就需要将多个图像帧进行批次处理,然后再一并传送给推理计算插件。DeepStream使用可扩展的元数据(metadata)标准结构,基本元数据结构NvDsBatchMeta从批次级(batch)元数据开始,该元数据是在所需的Gst nvstreammux插件中创建的。辅助元数据结构包含框架、对象、分类器和标签数据。DeepStream还提供了一种在批处理、帧或对象级别添加用户特定元数据的机制。Gst-nvStreamDemux:将批处理的图像帧,分解为多路的单独缓冲区。Gst-nvDSOsd:绘制边界框,文本和关注区域(ROI)多边形。Gst-nvVideoConvert:执行视频颜色格式转换,接受NVMM内存以及RAW(使用calloc()或分配的内存malloc()),并在输出处提供NVMM或RAW内存。Gst-nvVideo4Linux2:这是DeepStream 5.0增加的插件,NVIDIA将Gstreamer的开源Gst-v4l2解码插件进行扩展,通过Jetson和DGPU的libv4l2插件接口,以支持设备上提供的硬件加速编解码器的调用:解码器(decoder):支持H.264,H.265,JPEG和MJPEG格式编码器(Encoder):接受I420格式RAW数据,使用NVENC对RAW输入进行编码,输出采用基本比特流支持的格式。Gst-nvJpegDec:解压缩图片的编解码器。

2. 智能推理计算:这部分全都由NVIDIA提供专属的插件,最重要的是推理(inferece)与追踪(track)两大功能,然后再添加智能统计分析插件,主要如下:

Gst-nvmsgconv:将DeepStream完整模式所支持打对象检测、分析模块、事件、位置和传感器详细语义等任何有获取对象的信息,传输到消息代理(message broker)去。Gst-nvmsgbroker:此使用指定的通信协议向服务器发送有效负载消息。

4. 其他:最后还有两个特定应用的插件,一个是配合360度鱼眼监控摄像头,将画面还原成为平面图像的插件,另一个是针对光流计算的应将加速器:

Gst-nvdevarper:使摄像机输入分离,接受gpu-id和config-file作为属性,根据选定的曲面配置,它最多可以生成四个变形曲面,这个功能很有效地应用在360度摄像头的图像还原应用。Gst-nvof:这个计算光流的硬件加速器目前只有在Jetson Xavier上才有支持。

这里可以看到在“输入/输出”部分的插件数量是最多的,如果参考下面示意图,就可以更清楚的确在“输入/输出”阶段的数据处理步骤是比较繁琐的,在程式之中绝大部分的代码也都是在这两方面的处理,特别在“格式转换”的部分。

至于智能推理计算的部分,主要就是将深度学习的网络模型转换成TensorRT加速引擎,然后进行推理计算,步骤是单纯的但计算量是最大的。

deepstream-app这个范例为了展现完整的功能,于是使用deepstream_app.c、deepstream_app_main.c与deepstream_app_config_parser.c这三支程式,总代码量超过2,200行,反而不适合入门开发人员去修改成自己想要的专属应用。当然不是说做不到,而是你必须花费更多时间去解读的所有内容。

而DeepStream开发套件的<主目录>/sources/apps/sample_apps里提供大约20个C/C++范例代码,除了deepstream-appa是通用范例之外,其他的都是特定应用的基础代码,特别是deepstream-testN系列范例是比较合适入门学习。

接下去就简单执行test1与test2两个范例,让大家简单体验一下这些功能:

Deepstream-test1实验

对刚入门的朋友来说,建议从“deepstream-test”系列范例入手比较合适,其中deepstream-test1是最基础的代码,这个300+行的程式中在每个阶段都使用最基本的插件,下面简单列出处理重点以及插件流内容:

编程语言:C/C++代码量:326行(含注解)输入源:单个H264/H265视频文件智能推理:单个的4类别(car, person, bicycle, roadsign)检测器显示输出:显示器管道流:filesrc -> h264parse -> nvv4l2decoder -> nvstreammux -> nvinfer (primary detector) -> nvvideoconvert -> nvdsosd -> nvegltransform -> nveglglessink

这个设定文件使用一个“4分类(Car, Bicyce, Person, Raodsign)”检测器,不过视频中只有“Person”内容,您可以试试其他视频作为输入。

Deepstream-test2实验

接着看一下deepstream-test2的范例,这是基于test1的基础上去添加“多级检测器”的功能,由于这个功能与DeepStream的追踪功能相捆绑,因此也许一并启动。

编程语言:C/C++代码量:506行(含注解)输入源:单个H264/H265视频文件智能推理:单个的4类别(car, person, bicycle, roadsign)主检测器,加上3个基于“Car”类别的次级检测器,包括颜色、品牌、车型等等,这里还必须打开“追踪器(tracker)”的功能显示输出:显示器插件流:filesrc -> h264parse -> nvv4l2decoder -> nvstreammux -> nvinfer (primary detector) -> nvtracker -> nvinfer(secondary classifier) -> nvvideoconvert -> nvdsosd -> nvegltransform -> nveglglessink

执行以下指令,看看执行结果与test1有什么不同?

这里明显看到test2不仅能为每个检测到的物体标上编号,这就是“追踪”的功能,在“car”物体上,还有“颜色”、“品牌”、“车型”等信息。

结语

使用deepstream-app可以让我们轻松透过修改配置文件去快速执行DeepStream一些亮眼的演示,但真正要进入到实际应用时,就存在不少deepstream-app所不能完成的功能,必须仰赖其他范例代码的协助。

例如“redaction_with_deepstream”这个视频实时编辑的开源项目,在时下“隐私权”高涨的时代中非常重要,这个应用在视频中检测到人脸或车牌之后,将这些牵涉到个人隐私的信息图块进行“遮盖”动作,虽然难度并不高,但在目前小视频充斥的潮流中就显得十分重要。而“遮盖”功能在deepstream-app并没有提供,要进行改写的困难度不小,因此这个项目就基于deepstream-test1这个范例进行改写而成。

另外一个“deepstream_lpr_app”车牌识别应用,是由一个Car主检测器(primary detector),配合Plate次检测器(secondary detector)与字符抽离的分类器(classifier),最终将车牌内容识别出来(如下图),这个项目就以deepstream_test2_app.c的基础进行开发。

这两个项目将在下一篇文章中进一步说明,其他还有“姿势识别”、“360度视角还原”、“人流分析”等项目,也都是基于deepstream-test范例代码所改写的,因此学习用这些范例去开发自己的应用,才是长期的正道,也是本系列文章后面所要说明的重点,包括DeepStream的Python范例等等。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

THE END
0.施工现场临时用电施工方案安装工程,包括给排水、电气安装工程、智能建筑及电梯安装工程。 二、施工现场负荷计算 2.1设备容量的换算方法 (1)对于长期工作的用电设备,其设备容量就等于设备上标称法人名牌容量。 (2)对于反复短时工作制用电设备,设备容量就是将设备在某一暂载率 下的名牌容量换算到一个标准暂载率下的功率。 jvzq<84yyy4489iqe0ipo8iqewsfp}4441694=42:1=:9@>746e22=:28:8547xjvor
1.手表智能计算器imAppStore最好的 Apple Watch 智能计算器!简单,易于使用,功能卓越和非常美丽! Neuheiten 25. Jan. 2024 Version 3.2 - Performance enhancement App-Datenschutz Der Entwickler,Sing Fu Chan, hat darauf hingewiesen, dass die Datenschutzrichtlinien der App den unten stehenden Umgang mit Daten einschließen könnjvzquC41kv{og|3crrrf0lto1et0cyu1tgiipnw/cwl.dntdcenugw4kf;>95:65;2Em?mj
2.台州智能计算事业群招聘网猎聘2025年台州智能计算事业群招聘信息,海量高薪猎头职位等你来选,了解台州智能计算事业群岗位要求、薪资待遇等真实招聘信息,找高薪职位,上猎聘!jvzquC41yy}/nrjrkp4dqv4ekv.vjn|jq{0|ypluyzsƒ=u;1
3.首届“计算智能与智能控制”国际学术研讨会顺利召开2020年12月19日,首届“计算智能与智能控制”国际学术研讨会(International Symposium on Computational Intelligence and Cybernetics)顺利召开,来自国内外各高校、科研院所等的一百余名师生参加了此次线上研讨会。本届研讨会由华中科技大学人工智能与自动化学院、图像信息处理与智能控制教育部重点实验室、IEEE计算智能学会武jvzq<84ckc4iw|y0gf{/ew4kphu03:<;15;247mvo
4.《人工智能、云计算、大数据》考试复习参考题库(浓缩500题).pdf《人工智能、云计算、大数据》考试复习参考题库(浓缩500题).pdf,根据您提供的文档,我生成了一个简单的摘要,如下所示摘要《人工智能云计算大数据》考试复习参考题库浓缩500题,是一套涵盖了多项人工智能云计算大数据知识点的复习参考书其中包含了500道试题,涵盖了多个知jvzquC41oc~/dxtm33>/exr1jvsm1;54616:4=4925818=5672673>90ujzn
5.周艳敏主要研究方向为视触融合感知、人机交互安全、智能机器人等。主持国家自然科学基金委面上/青年、国家重点研发课题/子课题、上海市自然科学基金面上/探索等项目10余项,在T-MM、IEEE/ASME T-MECH、T-IE、T-ASE、RAL等发表期刊论文50余篇,在ICML、IJCAI、ICRA等领域顶会发表论文10余篇,授权中国/美国发明专利50余件jvzquC41tqhpv7yqpipj0niw0et0kwkq13868872:74ivv
6.神经网络在智能信息处理中的应用智能信息处理 神经网络 神经网络的 处理信息 .. 中的应用 在信息处理中的应用 中的神经网络 里面的 智能应用 蚂蚁文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。 关于本文 本文标题:神经网络在智能信息处理中的应用 链接地址:https://www.mayiwenku.com/p-4498802.html当前jvzquC41yy}/oj~kygtlw7hqo1v.6=>::28/j}rn
7.硕士点介绍建有交通安全应急信息技术国家工程实验室温州分实验室、浙江省高校高水平创新团队、温州市数字经济研究院、温州市视觉大数据智能计算与应用重点实验室、温州市协同创新中心、科技创新团队等科研平台和科研团队、以及浙江省“十三五”省级重点建设实验教学示范中心、网络工程国家级虚拟仿真实验教学中心等实验教学平台。 jvzquC41ck4x|~3gfw4dp8nphq524@=163970qyo
8.AI计算机app下载,AI计算机app软件v3.1.8AI计算机app是一款集计算、娱乐、办公于一体的移动应用软件,它使用了AI技术,提供了智能计算、智能聊天、智能娱乐等多种功能,同时还可以提升用户的手机使用体验。这款软件拥有强大的AI算法算力,可以完成复杂的计算和解答问题,提供高效的智能计算服务。 软件特色: 1、集成了众多的算法和公式,可以像人类一般进行算术、几jvzquC41okv/nrzncpwj0wjv1uugv88626=70qyon
9.LightningCSS处理CSSGrid:模板优化与浏览器兼容性{ "browserslist": ["last 2 versions", "ie >= 11"] } json 2. 智能前缀处理 在src/prefixes.rs中,Lightning CSS定义了各CSS特性需要添加前缀的浏览器版本范围。对于Grid布局,当需要支持旧版浏览器(如IE 11)时,会自动添加-ms-前缀: /* 输入 */ jvzquC41dnuh0lxfp0tfv8lkvdrpih52:3?0c{ykenk0fnyckny03>9687?37
10.圆满落幕第三届AI定义汽车论坛汽车频道在AI计算平台方面,科技企业纷纷布局,从加速计算到异构计算,再到整车智能计算平台,为汽车行业提供了高效、可靠的算力解决方案。数据处理与云端算力的紧密结合,为汽车的个性化应用与智能化服务奠定了坚实的基础。 此外,智能座舱、AI底盘及AI飞行汽车等前沿话题也将成为本次论坛的亮点。智能座舱通过AI技术实现了更加人性化的jvzq<84pgyy/u}temuzbt7hqo1OH49772581295526;40|mvon
11.互联网技术管理(精选5篇)但是互联网具有对信息进行“海量检索、目标处理、精准推送”的特点,使化工企业消防安全信息集中智能计算成为可能。比如目前,很多地方都要求化工企业定期上传相关信息,联动消防部门信息系统,即一种借助互联网技术的智慧消防系统,能够实现对化工企业消防安全隐患的自动判定,并自动生成消防监督检查的提示。jvzquC41yy}/3vnujw4dqv4jcq}fp86874750qyon
12.上海大学2023年博士研究生招生简章:计算机科学与技术考博本学科也建设具备多个高水平学科基地与平台,包括上海智能计算系统工程技术研究中心、教育部海洋智能无人系统装备工程研究中心、工业控制安全国家地方联合实验室上海分中心等基地,以及类脑计算、大数据可视化分析、机器学习等高水平一流实验平台。 本学科实力雄厚,科研环境优良,欢迎有志于科研深造的博士研究生报考。本学科博士jvzquC41mcucq7pqqnkbtw3eqo532;7344<0:=:7354ivvq
13.triedge智能计算边缘计算英特尔Developer Cloud for the Edge|2023-06-01 研华许杰弘:双向奔赴,Edge AI正在与产业深度融合 智能计算研华Edge AI|2022-12-13 宜鼎靠三技术 冲刺Edge AI 智能计算宜鼎Edge AI|2022-05-23 IE浏览器6月16日正式退役被送上热搜 Edge官博郁闷喊话 智能计算Edge微软IE jvzquC41yy}/gnuy0eun0ls1vgii1}4m1vxj/niig
14.江苏大学研究生招生信息网江苏大学考研信息网1.多媒体与智能计算 詹永照 yzzhan@ujs.edu.cn 毛启容 mao_qr@ujs.edu.cn 2.系统安全与信息安全 王良民 wanglm@ujs.edu.cn 陈锦富 jinfuchen@ujs.edu.cn 孙宏祥 jsdxshx@ujs.edu.cn 3.物联网设备与系统(农业物联网) 刘路 chinaliulu@hotmail.com 鲍煦 xbao@ujs.edu.cn 4.数据处理与数据工程 刘哲 jvzquC41yy}/|qnlkcu/ew4mcqbp8sgyu5bnuutq18888622;?:0qyon
15.从周到天:华大九天ALPSCS通过数模域同步协同和并行计算技术突破智能接口元件(IE):具备内置自动化的数模/模数信号转换功能,依据配置精确模拟信号的上升/下降时间以及电压阈值,简化跨域验证设置流程,有效提升验证效率。 核心技术二:基于智能矩阵求解与并行计算的高速仿真引擎 仿真速度是决定验证效率的关键因素。ALPS CS传承了ALPS仿真器家族在性能方面的技术积累,并将其充分运用到数模混合jvzq<84pgyy/39osmc4dqv3ep1814>62355d8@68;9?287xjvor
16.智能信息处理与优化计算学术团队智能信息处理与优化计算学术团队是江西理工大学信息工程学院“计算机科学与技术”一级学科下具有交叉学科特点的科研团队,本团队一直跟踪智能仿真优化与调度、进化计算和智能优化算法的国内外研究前沿,长期开展智能计算、进化算法、优化调度等智能优化理论及其在冶金、采矿、稀土、应急管理、家具作业车间等区域特色方面的应用创新jvzquC41kg4kz~xv0gjv0ls1kplp1:5:81735;;0jvs