deepstream6.0 python 图片检测多流模型

目录

欢迎对文章内容进行交流

1. 运行说明

2. 解决方法


1. 运行说明

环境:在NVIDIA Xavier NX developer kit上,deepstream6.0.1版本

模型:deepstream的python案例模型,图片数据检测,文件地址 ../deepstream_python_apps/apps/deepstream-imagedata-multistream

运行:在上述地址的文件夹视图,右键打开终端,输入:

# 如提示无权限建立frames文件夹,必须运行下条代码,获取root权限
$ sudo su
# 运行
$ python3 deepstream_imagedata-multistream.py file:///opt/nvidia/deepstream/deepstream-6.0/samples/streams/sample_720p.h264 frames

报错如下: 

涉及的报错输出提取出3部分
# 1.
ERROR: Deserialize engine failed because file path: /opt/nvidia/deepstream/deepstream-6.0/sources/deepstream_python_apps/deepstream-imagedata-multistream/../../../../samples/models/Primary_Detector/resnet10.caffemodel_b1_gpu0_int8.engine open error

# 2. 
ERROR: Cannot access prototxt file '/opt/nvidia/deepstream/deepstream-6.0/sources/deepstream_python_apps/deepstream-imagedata-multistream/../../../../samples/models/Primary_Detector/resnet10.prototxt'
ERROR: failed to build network since parsing model errors.
ERROR: failed to build network.

# 3.
Error: gst-resource-error-quark: Failed to create NvDsInferContext instance (1): /dvs/git/dirty/git-master_linux/deepstream/sdk/src/gst-plugins/gst-nvinfer/gstnvinfer.cpp(841): gst_nvinfer_start (): /GstPipeline:pipeline0/GstNvInfer:primary-inference:
Config file path: dstest_imagedata_config.txt, NvDsInfer Error: NVDSINFER_CONFIG_FAILED

2. 解决方法

参考英伟达论坛,可能的错误有:

(1)采用的视频流不是.h264或.h265

NVIDIA forumI am trying to run a deepstream python application. deepstream_python_apps/apps/deepstream-test2 at master · NVIDIA-AI-IOT/deepstream_python_apps (github.com) The python file is running in a docker provide here. Docker …https://forums.developer.nvidia.com/t/config-file-path-dstest2-sgie3-config-txt-nvdsinfer-error-nvdsinfer-config-failed/220156(2)代码读取的路径有误/输入路径有误

参考error的第二部分,第一行说明没有取到prototxt文件,即该行给出的路径有误。观察路径,可分为三部分:

【当前运行路径】+4个【../】+【samples/models/Primary_Detector/resnet10.prototxt】

其中【../】代表前往上一层目录,4个代表往回出4层文件夹。

最后一块是目标调用文件的地址,这个是代码自带的内容不会出错。因为对deepstream_python_apps文件夹比较熟悉,迅速找到了samples文件夹下的这个prototxt文件。

综上可以分析出error的原因:

①当前的运行路径是错误的,好比在桌面desktop打开terminal,肯定调用不到任何的apps。

②往上走的目录层数不对,代码给出的4层是默认安装deepstream_python_apps路径的层数,但可能因为自己系统上下载的这个文件夹位置不太对,下载到了其他层次的文件夹,就会导致这个错误。

针对以上两种情况,相应的解决方法:

①检查路径,最好能到准备调用模型的最深层文件夹(比如我要运行deepstream-imagedata-multistream这个模型,就打开这个模型的文件夹,即能看到deepstream-imagedata-multistream.py文件),再右键打开terminal运行。

②打开模型文件夹下的配置文件(或.py)dstest_imagedata_config.txt,利用搜索功能,搜索../../../../,根据你的文件夹层次数量,增加或删除../的数量(可通过vim进行)。

比如我的当前路径(当前位于deepstream-imagedata-multistream文件夹内)是/opt/nvidia/deepstream/deepstream-6.0/sources/deepstream_python_apps/deepstream-imagedata-multistream/ 。要到达samples文件夹,我们得倒退到samples所在的父文件夹,即deepstream-6.0,我们应当回退3个层次(掰手丫子算的,如果算不清楚,就在4附近的几个数字都试一试,总有对的)。因此删去1个../。

也有另外一种方法,就是把模型所在的文件夹移动到NVIDIA默认的安装位置,也有可能你安装的位置是对的但是克隆过程不太对劲。我目前的文件夹路径问题在于,所有的模型直接暴露在deepstream_python_apps之内,而github中可以看到模型文件夹都是整理在了apps文件夹中。所以你可以在deepstream_python_apps新建一个apps文件夹(已有了就不用新建),把模型都移动到这里(可能需要root权限,并使用linux系统的指令进行文件移动,这个很容易在csdn网站上找到)。

你可能感兴趣的:(NVIDIA,python,开发语言,ubuntu,目标检测)