Jetson Xavier NX 入门一

一.制作sd卡:
参考:https://www.cnblogs.com/jfchen/p/15068032.html
https://blog.csdn.net/DBlueink/article/details/108261233
https://blog.csdn.net/sinat_16643223/article/details/120015723
1.下载镜像压缩包:https://developer.nvidia.com/jetson-nx-developer-kit-sd-card-image
2.用软件制作镜像,先将sd卡格式化,再进行烧录。
软件下载地址:
格式化软件:https://www.sdcardformatter.com/download/
烧录软件:https://sourceforge.net/projects/win32diskimager/files/latest/download,用这个有问题,用etcher烧录:https://blog.csdn.net/sinat_16643223/article/details/120015723
二、连接Xavier NX
先连显示屏,进行一些设置,设置好之后可以直接ssh连接。
xavier有hdmi线,可以直接连接显示屏,但是好像没有驱动。而且一般都是边缘使用,不当作单独的电脑使用,都是用自己的电脑远程连接xavier。
参考:
https://blog.csdn.net/macidoo/article/details/103306651
https://www.cnblogs.com/jfchen/p/15069886.html
1.查看Xavier NX的ip并远程连接。

三。配置darknet和torch环境,跑算法demo
参考:https://www.bilibili.com/read/cv11869887
其中安装torchvision报错,采用手动安装的方式:
https://blog.csdn.net/qq_37301003/article/details/107139218.

安装requirement.txt时报错launchpadlib 1.10.6 requires testresources, which is not installed.

python3.6 -m pip install launchpadlib

下载好tensorrtx之后:

cp {tensorrtx}/yolov5/gen_wts.py {ultralytics}/yolov5
cd {ultralytics}/yolov5
python3 gen_wts.py -w yolov5s.pt -o yolov5s.wts

顺利跑通darknet-yolov4,pytorch-yolov5,tensorrt-yolov5.

四、根据官方教程,跑deepstream的demo
https://docs.nvidia.com/metropolis/deepstream/dev-guide/text/DS_Quickstart.html#jetson-setup
安装依赖,安装librdkafka和deepstream.

4.1测试deepstream-5.1/samples/configs/deepstream-app中的:

deepstream-app -c source30_1080p_dec_infer-resnet_tiled_display_int8.txt

全部测试一遍:1080p的是测试video;csi和usb是测试外部输入;confi_*是基础配置,不可以直接运行。

4.2测试deepstream-5.1/sources/apps/sample_apps/中的:
每个进去之后从readme看运行方法。
例如:deepstream-app。make;
报错:Makefile:25: *** “CUDA_VER is not set”. Stop.
解决:export CUDA_VER=10.2
报错:deepstream_app.c:23:10:fatal error :gst/gst.h:No such file or directory
解决:

五、source30_1080p_dec_infer-resnet_tiled_display_int8.txt参数意义及调优方法
参考官方文档:
https://docs.nvidia.com/metropolis/deepstream/dev-guide/text/DS_ref_app_deepstream.html#application-architecture
调优方法:
1.将 [streammux]和[primary-gie]的batch_size设置为等于输入源的数量。这使管道保持满负荷运行。高于或低于输入源数量的批次大小有时会增加管道中的延迟。
2.将 streammux 的高度和宽度设置为输入分辨率。这确保流不会经过任何不需要的图像缩放。
3.如果您从实时源(如 RTSP 或 USB 摄像头)流式传输,请live-source=1在[streammux]配置文件组中进行设置。这可以为实时源提供适当的时间戳,从而创建更流畅的播放。
4.平铺和视觉输出会占用 GPU 资源。当您不需要在屏幕上呈现输出时,您可以禁用 3 项功能以最大化吞吐量。例如
禁用 OSD 或屏幕显示。OSD 插件用于绘制边界框和其他工件并在输出帧中添加标签。要禁用 OSD [osd],请在配置文件组中设置 enable=0 。
tiler 创建一个NxM用于显示输出流的网格。要禁用平铺输出,请[tiled-display]在配置文件组中设置 enable=0 。
禁用输出接收器进行渲染:选择fakesink,即在配置文件type=1的[sink]组中。性能部分中的所有性能基准测试都在禁用平铺、OSD 和输出接收器的情况下运行。
5.If CPU/GPU utilization is low, then one of the possibilities is that the elements in the pipeline are getting starved for buffers. Then try increasing the number of buffers allocated by the decoder by setting the num-extra-surfaces property of the [source#] group in the application or the num-extra-surfaces property of Gst-nvv4l2decoder element.
6.如果您在 docker 控制台内运行应用程序并且它提供低 FPS,请qos=0在配置文件的 [sink0] 组中设置。该问题是由初始加载引起的。当 qos 设置为 1 时,作为该属性在[sink0]组中的默认值,decodebin 开始丢帧。
7.如果您想优化处理管道的端到端延迟,您可以使用 DeepStream 中的延迟测量方法。
要启用帧延迟测量,请在控制台上运行以下命令:
$ export NVDS_ENABLE_LATENCY_MEASUREMENT=1
要为所有插件启用延迟,请在控制台上运行以下命令:
$ export NVDS_ENABLE_COMPONENT_LATENCY_MEASUREMENT=1

以下几个步骤可帮助您提高应用的通道密度:

如果您使用的是 Jetson Xavier 或 Xavier NX,则可以使用 DLA(深度学习加速器)进行推理。这为其他模型或更多流释放了 GPU。

使用 DeepStream,用户可以推断每隔一帧或每隔三帧,并使用跟踪器来预测对象中的位置。这可以通过简单的配置文件更改来完成。用户可以使用 3 个可用跟踪器之一来跟踪框架中的对象。在推理配置文件中,更改[property]. 这是一个跳跃间隔,推理之间要跳过的帧数。间隔 0 表示每帧推断一次,间隔 1 表示跳过 1 帧并每隔一帧进行推断。通过从 0 到 1 的间隔,这可以有效地将您的整体通道吞吐量加倍。

选择较低的精度,例如 FP16 或 INT8 进行推理。如果要使用 FP16,则不需要新型号。这是 DS 中的一个简单更改。要更改,请更新推理配置文件中的网络模式选项。如果要运行 INT8,则需要一个 INT8 校准缓存,其中包含 FP32 到 INT8 量化表。

DeepStream 应用程序也可以配置为具有级联神经网络。第一个网络进行检测,然后第二个网络对检测进行一些分类。要启用辅助推理,请从配置文件启用辅助 gie。设置适当的批次大小。批量大小将取决于通常从初级推理发送到次级推理的对象数量。用户将不得不进行试验,看看适合他们用例的批量大小是多少。为了减少二级分类器的推理次数,可以通过适当设置input-object-min-width、input-object-min-height、input-object-max-width、input-object-max-height、operate-on-gie-id、来过滤要推理的对象operate-on-class-ids。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值