范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

deepstream实践Gstnvinfer插件

  学习deepstream插件,首先要了解推理插件,它运行AI模型实现推理,是核心插件。在了解完推理插件后,可以在此基础上了解其他插件的功能。
  Gst-nvinfer 插件是deepstream推理插件之一,它使用 NVIDIA® TensorRT™ 对输入图像数据进行推理。Gst-nvinfer框架
  下图Gst-nvinfer 插件框架图,该插件接受来自上游的NV12/RGBA 批量缓冲数据,NvDsBatchMeta 结构必须已经添加到 Gst Buffer。底层库 (libnvds_infer) 对具有高、宽维度的INT8 RGB、BGR 或 GRAY 数据进行处理。Gst-nvinfer 插件根据网络要求对输入帧进行转换(格式转换和缩放),并将转换后的数据传递给底层库。底层库对转换后的帧进行预处理(执行归一化和均值减法)并生成最终的浮点 RGB/BGR/GRAY 平面数据,数据传递给 TensorRT 引擎进行推理。
  nvinfer 框架
  Gst-nvinfer 目前适用于以下类型的网络:
  多类型目标检测;多标签分类;语义分割;实例分割
  Gst-nvinfer 插件可以在三种模式下工作:主模式:处理全帧;次要模式:对上游组件在元数据中添加的对象进行处理预处理张量输入模式:对上游组件添加的张量进行处理
  在预处理张量输入模式下运行时,会完全跳过 Gst-nvinfer 内部预处理。Gst-nvinfer查找添加到输入buffer的 GstNvDsPreProcessBatchMeta 并将张量原封不动传递给 TensorRT 推理函数。此模式目前支持处理全帧和 ROI。 GstNvDsPreProcessBatchMeta 由 Gst-nvdspreprocess 插件添加。
  当Gst-nvinfer与跟踪器插件一起作为二级分类器运行时,它把分类输出缓存在以对象的唯一 ID 作为键的map中,避免重复推断每一帧中的相同对象来提高性能。即当对象首次出现在框架中(基于对象 ID)或对象的大小(边界框区域)增加 20% 或更多时,才会推断对象。注意此优化仅当将跟踪器添加为上游元素时,才可能进行。
  Gst-nvinfer下游组件接收一个 Gst buffer,其中包含未修改的NV12/RGBA数据以及经 Gst-nvinfer 插件推理后创建的元数据。该插件可用于级联推理, 即可以直接对输入数据进行一级推理,然后对一级推理的结果进行二级推理,以此类推。Gst-infer输入输出
  输入:Gst BufferNvDsBatchMeta (包含NvDsFrameMeta)Caffe 模型和Caffe PrototxtONNXUFF文件TAO 编码模型和Key离线:支持TAO SDK工具箱转换模型产生的engine文件Layers: 支持TensorRT支持的所有Layers
  控制参数:
  Gst-nvinfer从配置文件中获取控制参数。通过GObject属性也可以设置Gst-nvinfer控制参数,它可以设置下面这些参数:Batch大小推理间隔帧数添加推理输出张量为buffer元数据添加实例mask输出到对象元数据通过GObject属性设置的参数会覆盖通过配置文件设置的参数
  输出:Gst Buffer根据网络类型和配置参数会输出下面的一种或几种数据:
  NvDsObjectMeta,NvDsClassifierMeta,NvDsInferSegmentation,MetaNvDsInferTensorMeta学习Gst-nvinfer配置文件
  参见https://www.toutiao.com/article/7096632112018686497/,我们分析安装deepstream后得到的deepstream-app配置文件样例来学习如何设置Gst-nvinfer属性。
  下面是配置了caffe模型的Gst-nvinfer 配置文件config_infer_primary_nano.txt,对主要的属性做了注释。[property] gpu-id=0 ## 把输入从0-255转换到0-1的比例值 net-scale-factor=0.0039215697906911373 ## caffe 模型文件,存储了权重、偏置信息,并存储了网络结构信息 model-file=../../models/Primary_Detector_Nano/resnet10.caffemodel ## caffe 模型网络结构信息 proto-file=../../models/Primary_Detector_Nano/resnet10.prototxt ## 模型识别处的物体类别标签 labelfile-path=../../models/Primary_Detector_Nano/labels.txt ## 最多一次预测8帧 batch-size=8 ## 1=处理整帧图像;2=只处理预测出来的对象区域 process-mode=1 ## 输入模型网络图像格式,0=RGB;1=BGR;2=GRAY model-color-format=0 ## 0=FP32, 1=INT8, 2=FP16 mode,预测网络使用的数据精度 network-mode=2 ## 预测出来的对象种类数量 num-detected-classes=4 ## 每隔一帧图像预测一次 interval=1 ## nvinfer 标志id,用来标记,无其他作用 gie-unique-id=1 ## 预测模型网络输出层名称 output-blob-names=conv2d_bbox;conv2d_cov/Sigmoid ## 1:隐式batch 维度,0:显式batch维度,使用onnx时 需要设置为显式batch维度; ## 模型网络使用动态tensor维度时,也需要设置为显式batch维度 force-implicit-batch-dim=1  [class-attrs-all] pre-cluster-threshold=0.2 group-threshold=1 eps=0.2 roi-top-offset=0 roi-bottom-offset=0 detected-min-w=0 detected-min-h=0 detected-max-w=0 detected-max-h=0
  在配置文件中,若没有指定模型的engine文件,需要根据情况指定以下属性:int8-calib-file(只有在模型进行了INT8量化时使用)若使用Caffe模型,需要指定下列属性:model-file, proto-file, output-blob-names若使用uff模型,需指定下列属性:uff-file, input-dims, uff-input-blob-name, output-blob-names
  对于目标检测,必须设置属性: num-detected-classes。下面属性是可选的:cluster-mode: 默认是Group Rectanglesinterval: 只有在主模式下起作用,默认值是0clustom-lib-path: 用户自定义bbox解析动态库路径
  parse-bbox-func-name: 用户自定义解析bbox函数名。
  clustom-lib-path 需要与parse-bbox-func-name一起配合使用
  对于分类,必须设置的属性有:
  classifier-threshold, is-classifier
  可选属性classifier-async-mode,只有在次模式下起作用,默认值是false
  在次模式下,可选的属性有:operate-on-gie-id:此Gst-nvinfer实例要处理的metadata 中必须包含的Gst-nvinfer实例 id,默认值0operate-on-class-ids:此Gst-nvinfer实例要处理对象的分类id。
  譬如主Gst-nvinfer目标检测实例,能检测4种类型物体,汽车、自行车、人、路标,它们的分类id是0;1;2;3,若operate-on-class-ids=0;表示此Gst-nvinfer实例会对汽车分类。默认是对目标检测出的所有类型物体进行分类。input-object-min-width,input-object-min-height
  input-object-max-width,input-object-max-height
  batch-size: 每次都推荐设置一个合适值,默认值是1操作Gst-nvinfer配置文件
  上一节介绍了Gst-nvinfer配置文件各属性作用。这节通过简单例子介绍如何修改Gst-nvinfer配置文件。
  上一节Gst-nvinfer配置文件使用了caffe 模型文件,bbox 处理函数是默认的方法。使用caffe模型转换后的tensorrt engine文件,bbox 处理函数使用用户自定义函数如何配置呢?可以看下面的配置,与上一节的配置文件相比model-file和proto-file换成了model-engine-file,添加了parse-bbox-func-name和custom-lib-path属性。
  安装deepstream后,开源的部分代码中给出了用户自定义处理函数样例,此部分代码路径:
  /{path-of-deepstream}/sources/libs/nvdsinfer_customparser/,{path-of-deepstream}是deepstream的安装路径。[property] gpu-id=0 ## 把输入从0-255转换到0-1的比例值 net-scale-factor=0.0039215697906911373 ## 模型gpu加速后的tensorrt模型文件 model-engine-file=../../models/Primary_Detector_Nano/resnet10.caffemodel_b8_gpu0_fp16.engine ## 模型识别出的物体类别标签 labelfile-path=../../models/Primary_Detector_Nano/labels.txt ## 最多一次预测8帧 batch-size=8 ## 1=处理整帧图像;2=只处理预测出来的对象区域 process-mode=1 ## 输入模型网络图像格式,0=RGB;1=BGR;2=GRAY model-color-format=0 ## 0=FP32, 1=INT8, 2=FP16 mode,预测网络使用的数据精度 network-mode=2 ## 预测出来的对象种类数量 num-detected-classes=4 ## 每隔一帧图像预测一次 interval=1 ## nvinfer 标志id,用来标记,无其他作用 gie-unique-id=1 ## 预测模型网络输出层名称 output-blob-names=conv2d_bbox;conv2d_cov/Sigmoid ## 1:隐式batch 维度,0:显式batch维度,使用onnx时 需要设置为显式batch维度; ## 模型网络使用动态tensor维度时,也需要设置为显式batch维度 force-implicit-batch-dim=1 ## 用户自定义解析bbox函数名 parse-bbox-func-name=NvDsInferParseCustomResnet ## 用户自定义bbox解析动态库路径 custom-lib-path=/home/nvidia/deepstream/sources/libs/nvdsinfer_customparser/libnvds_infercustomparser.so  [class-attrs-all] pre-cluster-threshold=0.2 group-threshold=1 eps=0.2 roi-top-offset=0 roi-bottom-offset=0 detected-min-w=0 detected-min-h=0 detected-max-w=0
  下面介绍deepstream-app配置文件如何调用Gst-nvinfer插件# 对于主模式Gst-nvinfer,config-file 是必须要配置的。 # 若配置属性与Gst-nvinfer属性一致,会覆盖Gst-nvinfer对应属性 [primary-gie] ## 确定调用Gst-nvinfer主模式 enable=1 ## 使用0号GPU, 会覆盖Gst-nvinfer配置文件中对应属性 gpu-id=0 ## 模型gpu加速后的tensorrt模型文件,会覆盖Gst-nvinfer配置文件中对应属性 model-engine-file=../../models/Primary_Detector_Nano/resnet10.caffemodel_b8_gpu0_fp16.engine ## 最多一次预测1帧,会覆盖Gst-nvinfer配置文件中对应属性 batch-size=1 ## 用于OSD, 不是Gst-nvinfer属性 bbox-border-color0=1;0;0;1 bbox-border-color1=0;1;1;1 bbox-border-color2=0;0;1;1 bbox-border-color3=0;1;0;1 ## 每隔4帧图像预测一次,会覆盖Gst-nvinfer配置文件中对应属性 interval=4 ## 给Gst-nvinfer实例设置的唯一id,用于区分不同实例产生的metadata,会覆盖Gst-nvinfer配置文件中对应属性 gie-unique-id=1 ## 设置推理输出配置的cuda内存类型 nvbuf-memory-type=0 ## Gst-nvinfer 配置文件路径 config-file=config_infer_primary_nano.txt ## 保存推理原始结果的文件路径 # infer-raw-output-dir=/home/nvidia/workspace/study  # 对于次模式Gst-nvinfer,config-file 是必须要配置的。 # 若配置属性与Gst-nvinfer属性一致,会覆盖Gst-nvinfer对应属性 [secondary-gie0] ## 确定调用Gst-nvinfer次模式 enable=1 ## 模型gpu加速后的tensorrt模型文件,会覆盖Gst-nvinfer配置文件中对应属性 model-engine-file=../../models/Secondary_VehicleTypes/resnet18.caffemodel_b16_gpu0_int8.engine ## 使用0号GPU, 会覆盖Gst-nvinfer配置文件中对应属性 gpu-id=0 ## 最多一次预测16帧,会覆盖Gst-nvinfer配置文件中对应属性 batch-size=16 ## 给Gst-nvinfer实例设置的唯一id,用于区分不同实例产生的metadata,会覆盖Gst-nvinfer配置文件中对应属性 gie-unique-id=4 ## 此Gst-nvinfer实例要处理的metadata 中必须包含的Gst-nvinfer实例id,会覆盖Gst-nvinfer配置文件中对应属性 operate-on-gie-id=1 ## 此Gst-nvinfer实例要处理对象的分类id。 ## 譬如主Gst-nvinfer 是目标检测实例,能检测4种类型物体,汽车、自行车、人、路标,汽车的分类id是0,此Gst-nvinfer实例对汽车分类 ## 此属性会覆盖Gst-nvinfer配置文件中对应属性 operate-on-class-ids=0; ## Gst-nvinfer 配置文件路径 config-file=config_infer_secondary_vehicletypes.txt
  本文介绍了如何配置deepstream Gst-nvinfer插件,相信了解这些后,可以轻松配置deepstream-app,调用Gst-nvinfer进行模型推理。
  参考:https://docs.nvidia.com/metropolis/deepstream/dev-guide/text/DS_plugin_gst-nvinfer.html

解决openlayers加载高德地图拉伸昨天利用openlayer加载高德地图的切片服务用了默认的4326坐标系发现图层的瓦片好像被拉伸了,然后查阅网上的资料发现高德采用的坐标系是GCJ02坐标系。高德地图腾讯地图以及谷计算机基础是哪些?为什么很重要简单来说就是万丈高楼平地起,站得高看得远。如果将编程知识体系比作一座大楼,理论基础是大楼的地基,地基打不好,大楼就会存在隐患。所以如果你想在计算机行业走下去,基础一定学好。万变不离外卖员不容易cp现在的社会很现实,很多企业不是很人性化。很多大企业的老板一直在压榨劳动力,其实有很多老板是从劳动者过来的,对于劳动者,这些老板是很人性化的。但是有些企业不然,比如美团,美团对于逛啥子?怎么逛?科博会最全攻略请查收11月16日第十届中国(绵阳)科技城国际科技博览会(以下简称科博会)正式拉开帷幕!第十届科博会开幕式科技秀展示。图源绵阳发布第十届科博会于11月16日至19日举办,以科技引领创新创华为EUV光刻新专利公开,解决相干光无法匀光问题欣喜的看到华为在突破卡脖子技术上从未停止努力!集成电路制造中,光刻覆盖了微纳图形的转移加工和形成环节,决定着集成电路晶圆上电路的特征尺寸和芯片内晶体管的数量,是集成电路制造的关键技i百联创享数智双食衣,百联互动城数字藏品聚力数字零售联动线上线下业态演绎魔都生活的百联互动城,聚焦数实融合,创新营销玩法的数字藏品。。以数智为抓手,i百联逐鹿双食衣。据数据显示,生鲜类商品成为消费者在i百联平台关注的TOP1品类,销显示心脏漏跳睡眠不足智能手表的数据能信吗?智能可穿戴设备应用场景变多能对多项健康指征进行监测近年来,随着人工智能大数据等技术的进步,智能可穿戴行业快速发展。与此同时,智能可穿戴设备与用户需求的契合度也迅速提高,不仅让用户的TCP客户端开发TCP客户端程序开发流程介绍TCP客户端程序开发步骤创建客户端套接字对象和服务端套接字建立连接发送数据接收数据关闭客户端套接字socket类的介绍导入socket模块imports都在说亚马逊大裁员,这些德国企业已经悄悄裁员快一年了今天各大头版头条都在说,美国电商巨头亚马逊最快本周开始裁减多达1万名员工,这将是亚马逊创立以来最大规模裁员行动。上周,Facebook母公司Meta宣布裁员1。1万人,占总员工数1国家级小巨人占比近四成,北交所成专精特新企业主阵地11月以来,随着两家国家级专精特新小巨人慧为智能远航精密相继上市,北交所上市公司增至123家,国家级专精特新小巨人则增至48家,占比接近四成。从数据上看,专精特新企业已经成为推动北火星移民靠谱吗?按照如今的科技水平,我们何时才能在火星定居?你知道吗?在火星上看日出,太阳是蓝色的,配上粉色的天空,非常的梦幻,移民火星是每个心存星辰大海的人们的终极浪漫,但火星的自然生存环境比撒哈拉大沙漠还要恶劣百倍,你准备好了吗?为啥非
聚焦两会全国人大代表广汽集团总经理冯兴亚多措并举提振汽车产业,推动中国芯高质量发展今年是全面贯彻落实党的二十大精神开局之年。如何开好局起好步,全国两会将释放重要信号。e公司官微推出聚焦两会栏目,聚焦上市公司代表委员们的提案和建议。证券时报两会报道组进入2023年给中国的市来一次正名目前的城市命名太复杂了,有上海这样高端的直辖市,也有苏州这样的地级市,更有昆山这样的县级市,于是有了江苏省苏州市昆山市这样的别扭说法。为了给中国的建制市正名,使这种尴尬局面尽早终结李铁绝食求死!陈戌源曝大鱼,62岁蔡振华受牵连,名记要翻赌坊说到李铁陈戌源蔡振华相信很多球迷朋友不会陌生,最近中国足坛掀起了反腐浪潮,有关李铁陈戌源蔡振华的话题被大家热议。大家都知道的李铁被查后,中国足坛掀起了反腐,随后大家都看到了中国足协港区全国政协委员粤港澳大湾区建设需人才互补中新社北京3月11日电(记者王捷先)香港与内地全面恢复通关已经满月,人流物流畅旺。多位港区全国政协委员10日在北京表示,人员交流为粤港澳大湾区建设提供活力,需要进一步增强粤港澳人才凝心聚力再出发原标题凝心聚力再出发(主题)全国政协十四届一次会议闭幕侧记(引题)工人日报中工网记者王维砚陈晓燕裴龙翔郝赫赵琛春回大地,万象更新。北京人民大会堂,人民的殿堂,3月11日下午,全国政山东青年政治学院用青春担当擦亮志愿红穿越时空的雷锋故事丰富多彩的志愿文化展思想碰撞的团说团话思想沙龙第60个学雷锋纪念日到来之际,山东青年政治学院上新了精彩充实的学雷锋活动。这只是山东青年政治学院深入开展学雷锋活动的2023年若出台延迟退休,谁会在65岁退下来?养老金能提高多少钱?延迟退休这个词大家不会陌生,几乎每年都得提上一次或几次,但目前的法定退休年龄还是按照男性60周岁,女职工50周岁,女干部55周岁的方案实施,不过,今年延迟退休被网上炒热的程度更高,湖南有色职院开展守护青春关爱女生女生节系列活动红网时刻新闻3月11日讯(通讯员刘和俊)3月7日至8日,湖南有色金属职业技术学院资源环境系倾力打造守护青春关爱女生2023年女生文化节系列活动,引导女生正确认识自我保护自我发展自我山西大学马克思主义学院教师用思想教育引领开学第一堂思政课新的学期意味着新的起点新的希望,思政课是落实立德树人根本任务的关键课程。为了上好开学第一堂思政课,近日,山西大学马克思主义学院组织思政课教师开展了开学第一堂思政课集体备课活动,从大李双江二婚娶小27岁妻子,前妻儿子成他骄傲,现任儿子让他苦恼头条创作挑战赛1990年,歌唱家李双江二婚娶了小自己27岁的学生梦鸽。婚后妻子为已经57岁的李双江生下小儿子李天一。本以为以后的生活会是幸福美满的,可这一切都被这个小儿子毁了。20百姓看联播全国两会特别版两会热词扩大消费两会热词年年有,年年都有新变化。今年的政府工作报告中,恢复和扩大消费前排出现。会内会外,扩大消费都很热。说到扩大消费,咱们河北有大招。就在前几天,河北人的小黄车又上了一大波优惠链接