Jetson Deepstream常见问题汇总

NVIDIA blog
2282 0 2020-05-12

1. 如何安装Deepstream?

答:用最新版本的Jetpack刷Jetson平台即可

2.DeepStream 5.0支持哪些类型的输入流?

答:它支持H.264、H.265、JPEG和MJPEG流

3.如何在调试模式下运行DeepStream示例应用程序?

答:输入这个命令:

$ deepstream-app -c--gst-debug=

其中:

 是配置文件的路径名

是一个数字,用于指定调试输出中的细节数量
有关调试工具的信息,请参见:

https://gstreamer.freedesktop.org/documentation/tutorials/basic/debugging-tools.html

4. 在哪里可以找到DeepStream示例应用程序?

答:Deepstream样本应用程序位于:

/sources/apps/sample_apps/ 

示例应用程序的配置文件位于:

/samples/configs/deepstream-app 

有关更多信息,请参见NVIDIA DeepStream SDK开发指南。

5. 如何验证CUDA是否正确安装?

答:查看CUDA版本:

$ nvcc --version

6.如何解释控制台上的每秒帧数(FPS)显示信息?

答:在运行deepstream-app时,控制台上显示的FPS数是最近五秒钟的平均值。 括号中的数字是整个运行过程中的平均FPS。 每个流显示数字。 性能测量间隔是通过配置文件中的perf-measurement-interval-sec设置来设置的。

7.如何指定Deepstream输出的RTSP流?

答:您可以通过在应用程序配置文件中添加RTSP接收器来启用远程显示。示例配置文件source30_720p_dec_infer_resnet_tiled_display_int8 .txt的[sink2]部分提供了一个这样的示例。您必须将enable标志设置为1。

启用远程显示后,应用程序打印RTSP URL,您可以在任何媒体播放器(如VLC)中打开它。

8.什么是官方的DeepStream Docker img,我在哪里可以得到它?

答:您可以从这里下载官方的DeepStream Docker映像  DeepStream docker image

Jetson部分看这里: https://ngc.nvidia.com/containers/nvidia:deepstream-l4t 

9.创建我自己的Docker映像的秘诀是什么?

答:使用DeepStream容器作为基本映像。 使用Docker中的标准技术在其之上添加您自己的自定义层。

10.如果使用NVIDIA Tesla P4或NVIDIA Jetson Nano、Jetson TX2或Jetson TX1运行,为什么deepstream-nv -test应用程序会显示错误消息“设备不支持光流功能”?

答:光流功能仅支持NVIDIA®Jetson AGX Xavier™和图灵架构的gpu (NVIDIA®T4、NVIDIA®GeForce®RTX 2080等)。

11. 为什么DeepStream 4.0+中需要Gst-nvstreammux插件?

答:多个源组件(如解码器,摄像机等)连接到Gst-nvstreammux插件以形成批处理。

该插件负责创建批处理元数据,该元数据存储在NvDsBatchMeta结构中。 这是DeepStream 4.0.1中元数据的主要形式。

Gst-nvstreammux下游的所有插件都可以在NvDsBatchMeta上运行,以访问元数据并填写其生成的元数据。

12. 为什么在Gst-nveglglessink上游的Jetson平台上需要Gst-nvegltransform插件?

答:在Jetson平台上,Gst-nveglglessink可处理EGLImage结构。 需要Gst-nvegltranform才能将传入数据(包装在NVMM结构中)转换为EGLImage实例。 在dGPU平台上,Gst-nveglglessink直接处理包装在NVMM结构中的数据。

13. 如何调试DeepStream管道?

答:您可以使用NVIDIA®Nsight™系统,这是系统范围的性能分析工具。

访问: https://developer.nvidia.com/nsight-systems 了解更多信息。

14. DeepStream中包含哪些跟踪器,我应该为我的应用程序选择哪种跟踪器?

DeepStream随附三个跟踪器:KLT,IOU和NvDCF。 跟踪器从高性能到高精度不等。 下面的权衡表可以帮助您为您的应用选择最佳的跟踪器。 有关跟踪器的更多信息,请阅读《 DeepStream 5.0插件手册》中的“ Gst-nvtracker”一章。

15. 当Deepstream-app在Jetson AGX Xavier上使用“ while true; 做deepstream-app -c; done;”,经过几次迭代后,我发现某些迭代的FPS较低。

答:当您以30帧/秒的速度运行三十个1080p流时,可能会发生这种情况。 该问题是由初始负载引起的。 I / O操作使CPU陷入困境,并且qos = 1作为[sink0]组的默认属性,decodebin开始丢弃帧。 为避免这种情况,请在配置文件的[sink0]组中设置qos = 0。

16.为什么 编译DeepStream示例应用程序时,出现“Makefile:13: *** "CUDA_VER is not set". Stop” ?

答:导出此环境变量:

•对于dGPU:CUDA_VER = 10.2

•对于Jetson:CUDA_VER = 10.2

17.为什么出现:“ImportError: No module named google.protobuf.internal when running convert_to_uff.py on Jetson AGX Xavier”?

答:如果您使用https://elinux.org/Jetson_Zoo#TensorFlow设置Tensorflow,请使用Python 3运行convert_to_uff.py:

$ python3 /usr/lib/python3.6/dist-packages/uff/bin/convert_to_uff.py

18. nvstreammux和nvinfer的批处理大小有什么区别?nvstreammux的批处理大小的推荐值是什么?

答:nvstreammux的批处理大小是它将在一个muxed缓冲区中批处理的缓冲区(帧)的数量。nvinfer的批处理大小是它将一起推断的帧(主模式)/对象(次模式)的数量。

我们建议将nvstreammux的批处理大小设置为链接到它的源数量或主nvinfer的批处理大小。

19. 为什么在升级到DeepStream 5.0之后,一些caffemodels不能构建?

答:DeepStream 5.0对caffemodel使用显式批处理维度。一些caffemodels使用TensorRT插件/层,这些插件/层还没有为显式批处理维度进行更新。在nvinfer配置文件中为这样的模型添加“force-implicit-batch-dim=1”,以使用隐式批处理维度网络构建模型。

20. 如何配置管道以获得NTP时间戳? 

答:要获得NTP时间戳,在nvstreammux组件上将attach-sys-ts属性设置为FALSE。

21.为什么NTP时间戳值为0?

答:如果NTP时间戳为0,则表明您没有从RTCP发送者报告接收NTP时间戳。您可以使用Wireshark之类的工具来验证这一点。

22. 如何处理Triton Inference服务器不支持的操作?

答:有关处理不受支援的行动的详情,请参阅:

https://docs.nvidia.com/deeplearning/sdk/triton-inference-server-guide/docs/custom_operation.html.

文档中提到的自定义库可以通过以下方法之一加载到DeepStream应用程序中:

•以as运行应用程序

LD_PRELOAD=./libcustomOp.so deepstream-app -c <app-config>

•在“nvinferserver”配置文件中添加自定义库路径


infer_config {
...
custom_lib { path: "./libcustomOp.so" }
}



平台和操作系统兼容性