将fastreid权重文件轻量化,并将其嵌入deepsort模型中,踩坑集锦

1.准备, 已经训练好的fast_reid配置文件和权重文件

在这里插入图片描述
这是配置文件
在这里插入图片描述
这是权重文件
此时的权重文件共有282.10MB

2.将配置文件转为onnx文件

pip install onnx

fast_reid代码(https://github.com/JDAI-CV/fast-reid/tree/master/tools/deploy)
照着步骤走,先下载fastreid代码,cd 到tools/deploy文件夹下,
将fastreid权重文件轻量化,并将其嵌入deepsort模型中,踩坑集锦_第1张图片
在这里插入图片描述
然后终端运行命令:

python onnx_export.py --config-file root-path/bagtricks_R50/config.yml --name baseline_R50 --output outputs/onnx_model --opts MODEL.WEIGHTS root-path/logs/market1501/bagtricks_R50/model_final.pth

最好路径都设置成跟官网上一样的,如下面这张图
将fastreid权重文件轻量化,并将其嵌入deepsort模型中,踩坑集锦_第2张图片
可能的报错:
在这里插入图片描述
这是因为config.yaml文件中有DATALOADER.NAIVE_WAY这个关键字,而fast_reid目录下fastreid/config/default.py文件里面没有,将其添加到default.py文件夹下就行了,如图:
将fastreid权重文件轻量化,并将其嵌入deepsort模型中,踩坑集锦_第3张图片
此类的错误就按照这样解决
若还有其他错误,则有可能是因为配置文件的版本太低,而下载的fast_reid文件版本太高,需要重新下载低版本的fast_reid文件,然后再运行。
这一步生成的文件:
将fastreid权重文件轻量化,并将其嵌入deepsort模型中,踩坑集锦_第4张图片

3.配置tensorrt环境

依据ubuntu版本和cuda版本下载相应的tensorrt包,
我用的是:ubuntu 16.04/cuda10.2/tensorrt7.2.3
进入NVIDIA TensorRT官网,需要登录,然后选择相应的版本,我下载的是TAR文件
将fastreid权重文件轻量化,并将其嵌入deepsort模型中,踩坑集锦_第5张图片
添加环境变量:

vim ~/.bashrc

在这里插入图片描述
然后保存退出
将下载的TensorRT文件解压,之后进入TensorRT7.2.3/python文件夹下:
在这里插入图片描述

有许多tensorRT文件,然后查看自己的python版本,我的是python3.8
则运行命令:

sudo pip3 install tensorrt-7.2.2.3-cp38-none-linux_x86_64.whl
cd ../uff
sudo pip3 install uff-0.6.9-py2.py3-none-any.whl

然后进入python环境下,
在这里插入图片描述
安装成功

4. 将onnx文件转为Tensorrt文件

python3 trt_inference.py --model-path outputs/trt_model/baseline_R50.engine --input test_data/*.jpg --batch-size 1 --height 256 --width 128 --output trt_output

可能碰到的问题:
1.batch-size问题
将fastreid权重文件轻量化,并将其嵌入deepsort模型中,踩坑集锦_第6张图片
解决:将batch-size 大小改为1
2.getPluginCreater问题
将fastreid权重文件轻量化,并将其嵌入deepsort模型中,踩坑集锦_第7张图片
解决:在trt_inference.py文件里添加下面一行
将fastreid权重文件轻量化,并将其嵌入deepsort模型中,踩坑集锦_第8张图片
这一步生成的文件
将fastreid权重文件轻量化,并将其嵌入deepsort模型中,踩坑集锦_第9张图片
此时的权重文件已经降至137.13M,轻量化了一半还多。

5.将其嵌入到deepsort模型中

在deepsort.py同一目录下,上传fast_reid文件
将fastreid权重文件轻量化,并将其嵌入deepsort模型中,踩坑集锦_第10张图片
a.导入包
将fastreid权重文件轻量化,并将其嵌入deepsort模型中,踩坑集锦_第11张图片
并在deepsort类中添加:
将fastreid权重文件轻量化,并将其嵌入deepsort模型中,踩坑集锦_第12张图片
在_get_features的修改如下:
将fastreid权重文件轻量化,并将其嵌入deepsort模型中,踩坑集锦_第13张图片
可能遇到的问题:
将fastreid权重文件轻量化,并将其嵌入deepsort模型中,踩坑集锦_第14张图片
解决:
找到报错的行,在这之前加上

Torch.cuda.set_device(gpu_idx)

并且在最前面加上

opt.device与gpu_idx都指gpu的块数。

你可能感兴趣的:(工程化,python,目标跟踪,TensorRT,fastreid)