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

目录

  • 0. 前言
  • 1. 参考
  • 2. 具体部署过程
    • 2.1 我的环境
    • 2.2 下载官方代码
    • 2.3 下载官方训练好的模型(yolact_edge_resnet50_54_800000.pth)
    • 2.3 下载torch2trt
    • 2.4 下载COCO校准数据集
    • 2.5 检测
  • 3.总结

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

【yolact_edge】在Jetson Xavier NX上部署yolact_edge(附资源)_第1张图片

我们看一下文件夹的结构:
【yolact_edge】在Jetson Xavier NX上部署yolact_edge(附资源)_第2张图片

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

我们可以先下载一个官方训练好的模型试试效果如何,我们看下官方提供了哪些训练好的模型:
【yolact_edge】在Jetson Xavier NX上部署yolact_edge(附资源)_第3张图片

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

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

长这样(yolact_edge_resnet50_54_800000.pth):
【yolact_edge】在Jetson Xavier NX上部署yolact_edge(附资源)_第4张图片

下载好之后,在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地址也自带有安装方法,不麻烦。下载好压缩包解压之后配置环境变量再安装就好了。

【yolact_edge】在Jetson Xavier NX上部署yolact_edge(附资源)_第5张图片
但是我们还需要下载torch2trt,首先先Git torch2trt项目:

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

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

链接:https://pan.baidu.com/s/1MsfajOuRg4rpvzwo2tVFuw
提取码:aaaa
【yolact_edge】在Jetson Xavier NX上部署yolact_edge(附资源)_第6张图片
然后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

【yolact_edge】在Jetson Xavier NX上部署yolact_edge(附资源)_第7张图片
下载好之后把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

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

看看效果如何:
【yolact_edge】在Jetson Xavier NX上部署yolact_edge(附资源)_第8张图片

嗯,还不错,有12.78fps嘞。

看下资源使用情况:
【yolact_edge】在Jetson Xavier NX上部署yolact_edge(附资源)_第9张图片
还不错。

3.总结

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

你可能感兴趣的:(yolact++,深度学习,实例分割,yolact_edge,Jetson,Xavier)