【yolact_edge】在Jetson Xavier NX上部署yolact_edge(附资源)

0. 前言

这两天在尝试在Jetson Xavier NX上部署yolact_edge,因为之前部署了yolact模型,但帧率实在无法满足需求(测试下来帧率只有3-4fps),至少要达到10fps才行,于是在学长建议下部署了yolact_edge。实际测试下来效果较为理想(帧率稳定在13fps),记录下部署的过程:

1. 参考

最好的参考资料永远是官方给的,所有的博客都是在官方资料的基础上进行的修改,不一定对所有的系统都适用。下面把我参考的资料列出来。
1. yolact_edge GitHub地址
2.部署yolact_edge参考 GitHub地址
3.RuntimeError: stack expects a non-empty TensorList 如何解决?

2. 具体部署过程

2.1 我的环境

具体的部署过程并不麻烦,首先说明我的环境:(Jetson Xavier NX应该都差不多)
ubuntu系统版本:18.04
python:3.6
pytorch:1.8.0
torchvision:0.9.0
(pytorch和torchvision在arm板子上安装需要重新编译,不想编译安装可以看我之前分享的资源:pytorch1.8.0+torchvision0.9.0资源分享
cuda:10.2(pytorch1.8.0可以用cuda10.2)
cuDNN:8.0.0

我接下来说的部署过程不一定能解决所有问题,但大致思路没问题。遇到具体的问题自行CSDN、GitHub、Google挨着问一遍基本就能解决。(我也是第一次部署,有一些地方也没弄明白)

2.2 下载官方代码

首先需要去Git官方的代码,地址为:

yolact_edge GitHub地址

如果下得慢的话我把资源放在这里(yolact_edge-master文件夹):

链接:https://pan.baidu.com/s/1MsfajOuRg4rpvzwo2tVFuw
提取码:aaaa

在这里插入图片描述

我们看一下文件夹的结构:
在这里插入图片描述

2.3 下载官方训练好的模型(yolact_edge_resnet50_54_800000.pth)

我们可以先下载一个官方训练好的模型试试效果如何,我们看下官方提供了哪些训练好的模型:
在这里插入图片描述

提供了不少哈,我下的是红框框出来的这个,因为看起来帧率挺高的,这个模型文件可以在这里下载:

链接:https://pan.baidu.com/s/1MsfajOuRg4rpvzwo2tVFuw
提取码:aaaa

长这样(yolact_edge_resnet50_54_800000.pth):
在这里插入图片描述

下载好之后,在yolact_edge-master文件夹下建一个weights文件夹,把yolact_edge_resnet50_54_800000.pth放在weights文件夹里,后面检测的时候会用到。

2.3 下载torch2trt

为啥yolact_edge会比yolact快呢?一方面是网络结构进行了一定的改进,另一方面是使用了TenorRT进行优化。所以我们还需要安装TensorRT,但我安装了一半才发现原来Jetson Xavier NX自带有TensorRT,不用再安装了,这可真是太棒了!

Jetson Xavier NX自带的TensorRT是7.1.3.0版本的,能用。所以就不下载了, yolact_edge GitHub地址也自带有安装方法,不麻烦。下载好压缩包解压之后配置环境变量再安装就好了。

在这里插入图片描述
但是我们还需要下载torch2trt,首先先Git torch2trt项目:

git clone https://github.com/NVIDIA-AI-IOT/torch2trt

下载不了的可以直接用我提供的资源:

链接:https://pan.baidu.com/s/1MsfajOuRg4rpvzwo2tVFuw
提取码:aaaa
在这里插入图片描述
然后cd到该文件夹下面,执行命令:

sudo python3 setup.py install --plugins

如果报错非法指令,试试命令:

python3 setuo.py install --plugins --user

如果还有报错,自行百度应该就能解决。

2.4 下载COCO校准数据集

官网上说:
在这里插入图片描述

要使用 TensorRT INT8 校准评估 YolactEdge,您需要下载 COCO 和 YouTube VIS 的校准数据集(这避免了必须下载整个 COCO/YouTube-VIS 数据集及其注释)。 将 calib_images文件夹存储在其对应的数据集文件夹下,如下例所示。 请注意,我们最好的模型使用 INT8 校准,因此强烈建议执行此步骤

所以要下载COCO校准数据集,这样才能用到TensorRT加速。(实测不下载不能用,会报错:RuntimeError: stack expects a non-empty TensorList)

这里可以在我提供的网盘里下载:

链接:https://pan.baidu.com/s/1MsfajOuRg4rpvzwo2tVFuw
提取码:aaaa

在这里插入图片描述
下载好之后把coco文件夹放在yolact_edge-master下的data文件夹下即可。

2.5 检测

以上都完成后应该就不会有太大问题了,可以开始检测试试了:
使用命令:

python3 eval.py --trained_model=weights/yolact_edge_resnet50_54_800000.pth --score_threshold=0.3 --top_k=100 --video=0

在这里插入图片描述
第一次应该会比较慢,还需要转换模型啥的。

看看效果如何:
在这里插入图片描述

嗯,还不错,有12.78fps嘞。

看下资源使用情况:
在这里插入图片描述
还不错。

3.总结

部署的过程大体就是这样,这次只说了如何跑官方的demo,没有说如何训练自己的模型,之后如果有需要的话应该还会做自己模型的训练。祝你成功:)

Jetson Xavier是一款高性能的嵌入式计算平台,能够实现深度学习和人工智能应用的部署。而darknet_ros是一个用于目标检测和识别的开源软件包,结合了YOLO算法和ROS框架。下面是在Jetson Xavier部署darknet_ros的相关步骤。 首先,确保Jetson Xavier上已经安装好了ROS和CUDA。ROS是一个机器人操作系统,CUDA是一种用于并行计算的GPU加速库。 接下来,需要先将darknet_ros的源代码克隆到你的开发环境中。可以在GitHub上找到该项目,并按照说明进行克隆。 然后,进入darknet_ros的文件夹,并执行以下命令来编译代码: ``` $ catkin_make ``` 编译过程可能会需要一些时间,请耐心等待。 接着,将Jetson Xavier与ROS连接,运行ROS Master节点。 ``` $ roscore ``` 然后,在新的终端窗口中,进入darknet_ros文件夹,并运行以下命令来启动darknet_ros节点: ``` $ rosrun darknet_ros darknet_ros ``` 该命令将根据配置文件中的设置,开始目标检测和识别。 最后,你可以在另一个终端窗口中,使用以下命令来查看检测到的目标: ``` $ rostopic echo /darknet_ros/bounding_boxes ``` 该命令将以ROS通信的方式,显示darknet_ros检测到的目标的信息,例如目标位置、类别和置信度等。 这样,你就成功在Jetson Xavier部署了darknet_ros,可以开始进行目标检测和识别任务了。请注意,部署过程中可能会遇到一些问题,需要根据具体情况进行调试和解决。
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SinHao22

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值