持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第16天,点击查看活动详情
1 介绍LInux PPA
在介绍问题之前,首先来说明一下什么是PPA,清楚问题的本质,追根溯源,这样才能更明确问题,然后针对性的去解决这个问题!
1.1 为什么需要PPA
PPA
:Personal Package Archive
(个人软件包存档)
具体,请阅读下面的这篇文章,写的很好:
关于PPA的介绍 # 强烈建议先看一下!
1.2 如何查找我们要添加的PPA
1、查找添加的PPA
- PPA:Personal Package Archives :launchpad.net/ubuntu/+ppa… # 在这里查找ppa的源
- 这里也可以查找:同上一样
如下图,查找的时候,你可以输入:
- 要查找
软件包的名
- 或 软件包的创建者名
2、关于PPA的一些其他连接
2 yolov5编译tensorrt的时候报错
2.1 编译错误原因
1、在编译yolov5的tensorrt模型的时候报错:fatal error: opencv2/dnn/dnn.hpp: No such file or directory
2、然后在issues中查看到,这是由于缺少opencv dnn库包错误
,可以用如下命令查看自己有没有安装dnn模块:
dpkg -l |grep dnn
如果有安装则返回类似如下(参考):
$ dpkg -l | grep dnn
ii libcudnn7 7.6.5.32-1+cuda10.0 amd64 cuDNN runtime libraries
ii libcudnn7-dev 7.6.5.32-1+cuda10.0 amd64 cuDNN development libraries and headers
ii libopencv-dnn-dev:amd64 3.3.1-xenial1.4 amd64 development files for libopencv-dnn3.3
ii libopencv-dnn3.3:amd64 3.3.1-xenial1.4 amd64 computer vision Machine Learning library
我自己是什么也没有返回,因此我想去安装这个模块!
2.2 解决错误方法
1、那我们就安装opencv的dnn模块(参考):
sudo add-apt-repository ppa:timsc/opencv-3.3
sudo apt-get update
sudo apt install libopencv-dev
2、结果在添加opencv的源的时候报错:无法添加 PPA:“'此 PPA 不支持 bionic'”。
说这个软件包,不支持bionic
,也就是不支持Ubuntu18.04
上安装!如果18.04以下版本应该没有问题!
3、我在ppa的官网也能够查找到这个源,而且添加源的命令也是一样的!
然后,我就日了dog了,我的Ubuntu刚好是18.04版本的!果然是不支持的
3 最终解决方案:在Jetson nano上进行yolov5的tensorrt的模型转换
本来我也打算在自己的电脑上进行yolov5 tensorrt模型的推理检测的,而是要在Jetson naon
上进行tensorrt的推理,因此我直接在Tesnorrt上进行模型的转换!
1、在Jetson nano上默认是安装了opencv dnn库包的!
dpkg -l|grep dnn
zhihui@zhihui-desktop:~/shl_proj/yolov5_to_trt/yolov5$ dpkg -l|grep dnn
ii libcudnn8 8.0.0.180-1+cuda10.2 arm64 cuDNN runtime libraries
ii libcudnn8-dev 8.0.0.180-1+cuda10.2 arm64 cuDNN development libraries and headers
ii libcudnn8-doc 8.0.0.180-1+cuda10.2 arm64 cuDNN documents and samples
ii nvidia-container-csv-cudnn 8.0.0.180-1+cuda10.2 arm64 Jetpack CUDNN CSV file
zhihui@zhihui-desktop:~/shl_proj/yolov5_to_trt/yolov5$
2、下面是yolov5模型转换tensorrt模型的过程!
python3 gen_wts.py weights/yolov5s.pt
这个错误,是由于下载的yolov5s模型破损导致的(参考),重新下载即可:
zhihui@zhihui-desktop:~/shl_proj/yolov5_to_trt/yolov5$ python3 gen_wts.py weights/yolov5s.pt
Traceback (most recent call last):
File "gen_wts.py", line 10, in <module>
model = torch.load(pt_file, map_location=device)['model'].float() # load to FP32
File "/home/zhihui/.local/lib/python3.6/site-packages/torch/serialization.py", line 585, in load
with _open_zipfile_reader(opened_file) as opened_zipfile:
File "/home/zhihui/.local/lib/python3.6/site-packages/torch/serialization.py", line 242, in __init__
super(_open_zipfile_reader, self).__init__(torch._C.PyTorchFileReader(name_or_buffer))
RuntimeError: [enforce fail at inline_container.cc:145] . PytorchStreamReader failed reading zip archive: failed finding central directory
zhihui@zhihui-desktop:~/shl_proj/yolov5_to_trt/yolov5$ ls