
Deepstream
文章平均质量分 76
Arnold-FY-Chen
On the way of AI spiritual practice...
展开
-
YOLO序列版本和Deepstream的数据缩放预处理问题
因为我们的项目使用Deepstream作为视频播放和模型推理的框架,经过前面解决若干模型转换上的问题和Deepstream内在的问题后,在同分布的测试集上,Deepstream里FP16量化模型的推理精度基本上和无量化版模型使用python调用的推理精度差不多了,可以说是基本无损了,但是近来拿到从未参与训练的场景和摄像头角度差异有点大的新的试点部署现场测试,泛化能力表现却比较差,在经过序列调查排除网络模型本身的问题后,发现几点原因:1. 我们目前使用的yolov5-v6版模型比之前使用的yolov5旧版原创 2022-05-02 10:42:18 · 1214 阅读 · 2 评论 -
调用std::map的emplace()出现Segmentation fault (core dumped)
去年和今年在Jetson板子上写Deepstream插件代码时使用到std::map容器时都遇到过奇怪的崩溃,这些崩溃和网上别人说的引用的值没有初始化导致的崩溃根本不是一回事,就是一个非常简单的定义:std::map<std::string, int>或者std::map<int, int>这里的key和value根本没什么复杂的类型,所以根本不是别人常说的那种情况。代码很简单:在插件的GObject里定义了一个全局性的 std::map<std::string原创 2022-03-26 18:55:40 · 2737 阅读 · 1 评论 -
基于TensorRT API实现模型网络时用到CUDA核函数时需要注意的一个问题
TensorRT提供了一些常用的基本API,例如2d和3d卷积、池化、上采样、反卷积(转置卷积)、ReLU和全连接等等,但是更新比较慢,对于新的算子和激活函数没有及时提供实现,至于类似不同输出层多种维度特征数据融合这些复杂一点的组合功能是不可能提供现成的API的,所以这些在自己基于TensorRT API实现某个比较新的模型的网络时是需要自己去实现的。对于这种需要自己定制的部分,TensorRT提供了Plugin机制,也就是提供了几个Plugin接口和超级类分别用于支持输入数据维度是静态的或者动态的,我原创 2022-01-09 00:18:42 · 1867 阅读 · 0 评论 -
如何dump出基于Deepstream开发出的app的pipeline结构图
Dump出app的pipeline的全部结构有助于快速了解一个陌生app的组成,也有助于分析和查找问题或者进行展示说明。在Deepstream开发的app里按要求增加一些代码将pipeline结构图导出成DOT语言脚本文件 *.dot,并且安装AT&T实验室的用于绘制DOT语言脚本描述的图形的开源工具包graphviz,使用这个工具将*.dot文件转换输出成图片文件即可。 1) 首先,安装graphviz sudo apt-get installgra...原创 2022-01-02 22:37:44 · 1326 阅读 · 0 评论 -
Jetson Nano上如何自己编译deepstream-app
Deepstream安装后除了提供了编译好的二进制版的deepstream-app(安装在/usr/bin/下)外还在在samples下提供了deepstream-app等sample app的源码,平时如果只需直接使用deepstream-app跑跑做实验的话(例如查看Deepstream的版本,执行deepstream-app --version),直接执行deepstream-app -c <config-file>即可把deepstream-app跑起来,但是如果需要在dee...原创 2022-01-02 22:11:21 · 1117 阅读 · 2 评论 -
Deepstream里如何调用多个模型
Deepstream提供了nvinfer plugin供封装调用模型使用, Deepstream的sample代码deepstream app里实现调用多个模型时是针对一主多从的使用方案,也就是一个主模型(primary inference engine),一个或者多个次要从属模型(secondary inference engine),因为模型使用前都转换成了TensorRT的engine文件,所以一般叫engine。Deepstream app里使用了四个模型,一个主模型,三个次要模型,主模型用来识原创 2022-01-02 00:00:10 · 5589 阅读 · 10 评论 -
如何将基于Jetpack 4.5 + Deepstream 5开发的程序升级到Jetpack 4.6 + Deepstream 6
Jetpack 4.5.1及以前的版本4.x里使用的是TensorRT 7.1.3,JetPack 4.6开始则是使用的TensorRT 8,由于我们在模型加速上多是建立在TensorRT的基础上的,而TensorRT 8没有完全保证对TensorRT 7.x的兼容,所以受TensorRT这个版本的变化对封装调用模型的部分代码是有影响的,在Jetpack 4.5 + Deepstream 5开发的程序涉及到AI模型的部分在Jetpack 4.6 + Deepstream 6下很可能编译都会出错,...原创 2021-11-13 12:10:40 · 1667 阅读 · 0 评论 -
TensorRT的IPluginV2IOExt 和 IPluginV2Ext 的configurePlugin() 的virtual function override问题
有类似如下代码:namespace nvinfer1{ class YoloLayerPlugin : public IPluginV2IOExt { ... void configurePlugin(const PluginTensorDesc* in, int nbInput, const PluginTensorDesc* out, int nbOutput) override; ... } ...}在编译时总有如下原创 2021-05-21 17:26:52 · 1754 阅读 · 0 评论 -
DeepStream插件启动出错问题
NVIDIA DeepStream是基于GStreamer框架开发的,增加了一些适应视频识别推理跟踪方面的自己定制的扩展以及内置了提供了YOLO和Faster-RCNN的实现而已,需要简单看一下DeepStream的文档https://docs.nvidia.com/metropolis/deepstream/dev-guide/index.html(说实话那些文档写得真的很不咋样,超简单,很多都没说清楚的,没有GStreamer的基础估计理解也费劲,尤其API文档更是估计使用的doxygen机...原创 2020-08-08 12:36:17 · 2295 阅读 · 10 评论 -
Xavier NX上安装Deepstream导致NX不断的重启
使用安装SDK Manager后再使用JetPack安装板子的方式非常慢而且由于网络慢容易出错,所以直接使用SD Image烧写TF卡是最快的安装方式,将image写入TF卡后,启动板子可以看到Ubuntu18.04和和TensorRT等大部分工具软件已经打包在image内一起安装了,但是Deepstream却没有包含进去,这点很奇怪。 我们使用的SD Image是6月份从NVIDIA官网上下载的nv-jetson-nx-sd-card-image-r32.4.2,为何不下载使用最新...原创 2020-07-25 19:52:22 · 1170 阅读 · 7 评论