在远程服务器平台部署及运行CV项目——基于YOLOv5+deepsort的多人识别项目+TensorRT加速

在远程服务器上部署项目并运行

这个博客只是从项目部署的角度来写的,具体关于YOLOv5和deepsort等知识并不涉及。

部署的项目是上一个博客中提到的CV项目,上个博客是在Win10上部署,这个博客是在远端服务器上部署。(以后的项目都会要求在服务器上部署,所以要学会部署项目)

再次放上项目链接:Jetson 系列——基于yolov5和deepsort的多目标头部识别,跟踪,使用tensorrt和c++加速

连接到远端服务器

我一开始是在VS上部署的项目,本来是想用VS连接服务器,但是一搜全都是VSCode连接远程服务器的,然后我就查了一下VS和VSCode的区别,然后就选择了用VSCode来连接远程服务器。
Visual Studio 和Visual Studio Code的区别

总结来说VS是一个编译器,能够在上面编辑然后编译运行项目代码,而VSCode是一个编辑器,只能编辑代码而不能运行代码,只能在服务器上运行。

既然选择了VSCode,就要安装和部署VSCode。
VSCode安装参考博客:超详细VSCode安装教程(Windows)

重难点来了用VSCode连接远程服务器平台(虚拟机)

这个博客讲的非常详细,按照步骤一步步来就行。
链接:vscode连接虚拟机
补充一下:
做到博客中第三步之前要在这个下拉选项选择SSH Targets(我第一次弄的时候找了别的博客才找到这里)
在这里插入图片描述

连接上了远程服务器之后就能在上面部署和运行项目。

按照项目的博客一步步操作
因为是公司的虚拟机,大家都通用的,所以我新建了属于自己的文件夹,以后下载文件都放在这个文件夹里面。我下面称呼这个文件夹为 /cxy

1.用Git下载项目代码yolov5-deepsort-tensorrt
在 /cxy目录下运行:

sudo git clone https://github.com/RichardoMrMu/yolov5-deepsort-tensorrt.git

我的电脑必须加上sudo才能成功下载,我也不知道为什么,而且由于GitHub是外网,经常会出现下载失败,要多试几次。

2.下载yolov5官方代码和模型
注意yolov5版本必须是v5.0版,因为下面要用TensorRT进行加速,而TensorRT的yolov5只支持 v5.0版的,如果版本不对应会报错(血泪教训)。
在这里插入图片描述
在 /cxy目录下运行:

sudo git clone -b v5.0 https://github.com/ultralytics/yolov5.git

这里 -b v5.0 就是指定了下载版本
在这里插入图片描述在这里插入图片描述
参考CSDN上的提问以及某大佬的回答。
之后要下载yolov5的模型:

cd yolov5
mkdir weights
cd weights
// 这里使用yolov5s模型
wget https://github.com/ultralytics/yolov5/releases/download/v5.0/yolov5s.pt

先进入yolov5文件夹中,然后新建weights文件夹来存放模型。也就是说

wget https://github.com/ultralytics/yolov5/releases/download/v5.0/yolov5s.pt

上面指令是在/cxy/yolov5/weights/文件夹中执行的

3.下载并配置TensorRT
因为tensorRT的yolov5版本要和上面下载的yolov5版本对应,所以下载指令为:
在/cxy文件夹下执行指令

sudo git clone -b yolov5-v5.0 https://github.com/wang-xinyu/tensorrtx.git

现在/cxy文件夹下应该有这三个文件:
在这里插入图片描述
4.将pytorch的模型转为tensorrt支持的模型文件
也就是yolov5s.pt->yolov5s.wts
.pt是我们之前下载的模型,它是支持pytorch的而我们要采用TensorRT进行加速所以要转换成TensorRT支持的 .wts文件。
将tensorrtx下的get_wts.py文件拷贝到yolov5文件夹下,然后将下载好的或者训练好的yolov5s.pt模型转换为wts模型
在这里插入图片描述
在/cxy文件夹执行指令:

cp tensorrtx/yolov5/gen_wts.py yolov5/

然后进入yolov5文件夹执行gen_wts.py将.pt文件转换成.wts文件。
即在/cxy/yolov5/文件夹下执行指令:

python3 gen_wts.py -w ./weights/yolov5s.pt -o ./weights/yolov5s.wts

这样在/cxy/yolov5/weights/文件夹中就生成了yolov5s.wts模型
在这里插入图片描述
5.编译tensorrtx/yolov5项目并获取tensorrt engine file
进入/cxy/tensorrtx/yolov5文件夹执行指令

mkdir build

创建build文件夹
进入build文件夹执行指令:

cp /cxy/yolov5/weights/yolov5s.wts /cxy/tensorrtx/yolov5/build/

将.wts文件复制到build文件夹中
在/cxy/tensorrtx/yolov5/build/文件夹下执行指令:

cmake ..
make
// 获得yolov5s.engine文件
sudo ./yolov5 -s yolov5s.wts yolov5s.engine s
// 测试是否获得了yolov5s.engine文件
sudo ./yolov5 -d yolov5s.engine ../samples

在这里插入图片描述
生成成功了,感动到流泪。
该生成的engine文件保存在:/cxy/tensorrtx/yolov5/build目录下。

6.获取deepsort特征提取的engine文件

先下载ckpt.t7
我是根据博客提供的百度云链接下载好上传到:/cxy/deep_sort_pytorch/deep_sort/deep/checkpoint
这个地址是我运行了一次它报错,提醒了在上面那个地址中没有ckpt.t7文件我才知道的。
在这里插入图片描述
然后下载deep_sort_pytorch:
在/cxy目录下执行指令:

sudo git clone https://github.com/RichardoMrMu/deep_sort_pytorch.git

下载deepsort-tensorrt
在/cxy目录下执行指令:

sudo git clone https://github.com/RichardoMrMu/deepsort-tensorrt.git

生成deepsort.onnx文件:
在cxy/deep_sort_pytorch文件夹中执行指令:

cp deepsort-tensorrt/exportOnnx.py deep_sort_pytorch/
python3 exportOnnx.py

这样在/cxy/deep_sort_pytorch中就生成了deepsort.onnx文件。
在这里插入图片描述
生成deepsort.engine文件

在/cxy/deep_sort_pytorch目录下执行指令:

mv ./deepsort.onnx ../deepsort-tensorrt/resources/

进入 cxy/deepsort-tensorrt目录:

cd ../deepsort-tensorrt/

在/cxy/deepsort-tensorrt目录下执行指令:

mkdir build
cd build
cmake ..
make 

在build目录下执行:

./onnx2engine ../resources/deepsort.onnx ../resources/deepsort.engine

在这里插入图片描述
成功后可以在/cxy/deepsort-tensorrt/resources目录下看到生成的deepsort.engine文件:
在这里插入图片描述
7.将生成的两个engine文件放到项目中
我们在项目文件夹中创建一个/resources文件夹来存放这两个engine模型:
进入项目文件夹:

cd /cxy/yolov5-deepsort-tensorrt
mkdir resources

将两个文件复制进来:
在/cxy/yolov5-deepsort-tensorrt目录下执行指令:

//复制yolov5s.engine
cp /ssd/cxy/cxy2/tensorrtx/yolov5/build/yolov5s.engine ./resources/
//复制 deepsort.engine
 cp /ssd/cxy/cxy2/deepsort-tensorrt/resources/deepsort.engine ./resources/


/cxy/yolov5-deepsort-tensorrt/rescorces目录下即可看到两个engine文件。在这里插入图片描述
8.执行项目
项目目录为:/cxy/yolov5-deepsort-tensorrt
修改项目目录下/src/main.cpp函数
在这里插入图片描述
然后将要分析的视频文件同样放到resources目录下:
在这里插入图片描述
最后在项目中执行:

mkdir build

进入build目录,执行:

cmake ..
make
./yolosort // 运行二进制文件

可以看到成功执行了:
在这里插入图片描述
同时也能在results文件夹下看到保存的图片(results文件夹要自己提前建好)
在这里插入图片描述
要想保存文件就要修改/src/manager.cpp文件
在这里插入图片描述

  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值