赞
踩
Jetson Xavier NX是nvidia开发的体型超小(只有70mm*45mm)的AI超级计算机,适用于嵌入式系统和边缘系统。
NVIDIA® Jetson Xavier™ NX 是外形小巧的模组系统 (SOM),可为边缘系统提供超级计算机性能。借助高达 21 TOPS 的加速计算能力,它可以并行运行现代神经网络并处理来自多个高分辨率传感器的数据,这是完整 AI 系统的要求。Jetson Xavier NX 是生产就绪型产品,可支持所有热门 AI 框架。
而jetson nx自带推理加速工具tensorrt,可以很方便的部署深度学习模型。
要注意点几个点:第一次刷机只刷了系统到sdk里,然后使用装上固态将内容拷贝到固态中,然后设置开机从硬盘启动。之后刷环境时虽然这个博客里没有勾选系统,但博主遇到的情况是单独装cuda等环境是装不上的,需要重新勾选系统,所以系统烤完插上屏幕进入系统后需要重新设置一遍硬盘,然后再紧接着烤环境。
包括且不限于jtop,cmake,vscode。
vscode可以在官网下载arm64的deb包,注意:要下老版本的vscode,新版本会出现依赖项问题
jtop和cmake的下载参考
其他软件在网上搜jetson nx安装***就能找到参考。
用tensorrt部署首先要下载tensorrt,但如果你使用了sdkmanger将jetson nx刷机了,你可以通过jtop查看是否有tensorrt(大概率cuda等一套都刷好了),如果没有刷好,移步1.jetson nx刷机
Pytorch训练出来的模型为XXX.pt或XXX.pth,我们以Yolov5举例,他训练出来的模型为.pt文件, 我们要将其通过tensorrt部署,就需要将pt文件转换为tensorrt支持的engine格式,转换方式有两种,可以用onnx也可以直接用github上的大佬开源的项目tensorrtx,此项目集模型转换与部署为一体,可以直接调用。

运行
python gen_wts.py -w best.pt
生成需要用的best.wts文件

mkdir build
cd build
cmake ..
make
./yolov5 -s best.wts best.engine s
了解什么是int8量化可以看这个博客。
简而言之就是让模型跑的更快,但精度会有微弱下降,实测推理速度会提高一倍左右。
具体操作步骤可以去看tensorrtx中yolov5的readme,博主在下面进行了简述。
mkdir build
cd build
cmake ..
make
./yolov5 -s best.wts best_int8.engine s
至于cmake部署可以参考别人的demo工程Mask_Detector(检测人是否佩戴口罩,若佩戴则输出绿框,未佩戴则输出红框),只需要修改engine_name便可以实现不同的目标检测,记得修改yololar.h中的class_num,其他需要修改的可以打开yolo中的yolov5.cpp自行修改,包括但不限于输出置信度等。
博主在jetson nx上尝试使用c++onnxruntime未果后,转而尝试使用tensorrt部署,结果发现效果还行。最大处理速度可以到120帧。博主写下这个完整流程留给之后要在jetson 上部署yolo模型的朋友一个参考,也方便之后自己忘记之后查看。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。