环境配置
1、配置CUDA
1.1、编辑.bashrc文件
gedit ~/.bashrc
1.2、在最后添加下方代码
export PATH=/usr/local/cuda-10.2/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export CUDA_ROOT=/usr/local/cuda
1.3、应用修改完的配置
source ~/.bashrc
1.4、检查是否配置成功
nvcc -V
2、安装pip3
sudo apt-get update
sudo apt-get install python3-pip python3-dev -y
3、配置需要用到的库
sudo apt-get install build-essential make cmake cmake-curses-gui -y
sudo apt-get install git g++ pkg-config curl -y
sudo apt-get install libatlas-base-dev gfortran libcanberra-gtk-module libcanberra-gtk3-module -y
sudo apt-get install libhdf5-serial-dev hdf5-tools -y
sudo apt-get install nano locate screen -y
4、安装所需要的依赖环境
sudo apt-get install libfreetype6-dev -y
sudo apt-get install protobuf-compiler libprotobuf-dev openssl -y
sudo apt-get install libssl-dev libcurl4-openssl-dev -y
sudo apt-get install cython3 -y
5、安装opencv的系统及依赖,一些编解码的库
sudo apt-get install build-essential -y
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev -y
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff5-dev libdc1394-22-dev -y
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev liblapacke-dev -y
sudo apt-get install libxvidcore-dev libx264-dev -y
sudo apt-get install libatlas-base-dev gfortran -y
sudo apt-get install ffmpeg -y
6、更新CMake
wget http://www.cmake.org/files/v3.13/cmake-3.13.0.tar.gz
tar xpvf cmake-3.13.0.tar.gz cmake-3.13.0/
cd cmake-3.13.0/
./bootstrap --system-curl
make -j4
echo 'export PATH=~/cmake-3.13.0/bin/:$PATH' >> ~/.bashrc
source ~/.bashrc
7、安装pytorch
如果Linux系统安装不了百度网盘的话,可以用网页微信传输pytorch压缩包。
7.1 下载pytorch1.8
https://forums.developer.nvidia.com/t/pytorch-for-jetson-version-1-9-0-now-available/72048
7.2 安装
路径的话直接从文件夹拖到Terminal就行,会自动写入地址。
sudo pip3 install 路径
8、安装torchvision 0.9.0
注意:要和pytoch版本对应。
git clone --branch v0.7.0 https://github.com/pytorch/vision torchvision
cd torchvision # 进入目录
export BUILD_VERSION=0.9.0
sudo python3 setup.py install # 安装
检查是否安装成功
python3
import torch
import torchvision
print(torch.cuda.is_available()) # 输出True那么就成功了
quit() # 退出python编译 或者ctrl+D也可以退出
9、下载yolov5源码
git clone https://github.com/ultralytics/yolov5
外网,下载很慢,这里给出一个网盘链接。
链接:https://pan.baidu.com/s/1LgPjInMtwQQk35ykFKk2Ag
提取码:1111
9、安装yolov5需要的包
9.1 安装一
#下载过程如果因为网络原因失败的话可以在命令后加上 -i https://pypi.tuna.tsinghua.edu.cn/simple 来使用清华镜像源
sudo pip3 install matplotlib==3.2.2
sudo pip3 install --upgrade Cython #更新一下这个包
注:我在安装matplotlib时就出错了,显示
解决方法:
pip3 install -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com matplotlib==3.2.2
9.2 安装二
#numpy有些特殊,已经自带了,但是是apt-get安装的,所以先卸掉原来的,也方便之后包的管理
sudo apt-get remove python-numpy
sudo pip3 install numpy==1.19.4
sudo pip3 install scipy==1.4.1. # 这个包安装很慢
注:安装numpy也出现问题,显示了三个错
1、failed building wheel for numpy
2、failed cleaning build dir for numpy
3、command....
解决方法:先卸载numpy
sudo pip3 uninstall numpy
但是卸载又报错 ,报错内容为:
Not uninstalling numpy at /usr/lib/python3/dist-packages, outside environment /usr
解决方法:找到usr/lib/python3.0/dist-package文件夹,里面有个-info文件
sudo rm -rf 文件路径 #例如文件叫numpy-1.3.9.egg-info
最后一个问题: cannot unpack file
解决方法:
pip3 install -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com matplotlib==3.2.2
要是别的包就只需要将代码最后面改一下就行。
9.3 安装三
sudo pip3 install tqdm==4.61.2
sudo pip3 install seaborn==0.11.1
sudo pip3 install scikit-build==0.11.1 # 安装opencv需要这个包
sudo pip3 install opencv-python==4.5.3.56 # 不出意外也是一个相当漫长的过程
sudo pip3 install tensorboard==2.5.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
sudo pip3 install --upgrade PyYAML # 我升级到了5.4.1 也可以sudo pip3 install PyYAML==5.4.1
sudo pip3 install thop
sudo pip3 install pycocotools
10、yolov5使用
上面全都装完之后就可以使用yolov5了。
10.1 yolov5测试
下载一个yolov5s.pt权重文件,进入yolov5文件夹
sudo python3 detect.py --weights yolov5s.pt
10.2 tensorrt加速
a、生成.wts文件(在windows电脑上操作即可)
1.将训练得到的.pt权重文件改名为yolov5s.pt,把它放到yolov5(Tenserrtx)文件夹中。
2.将这个文件 yolov5-5.0(Tensorrtx)\tensorrtx-yolov5-v5.0\yolov5\gen_wts.py
复制粘贴到yolov5(Tensorrtx)文件夹中。
注意: 此时yolov5(Tensorrtx)文件夹中有了 yolov5s.pt和gen_wts.py这两个文件。
然后,在yolov5(Tensorrtx)文件夹中右击鼠标,打开终端,激活在anaconda中自己创建的虚拟环境
比如:conda activate yolov5_5.0。
然后输入命令:
python gen_wts.py -w yolov5s.pt -o yolov5s.wts
b、 build(在Jetson nano上弄)(这一步是生成引擎文件)
1.将上述生成的.wts文件用U盘复制到Jetson nano里的yolov5-5.0(Tensorrtx)\tensorrtx-yolov5-v5.0\yolov5文件夹中。
2.打开上述文件夹里的yololayer.h文件,修改CLASS_NUM的数量(根据自己训练模型的类的个数来设,我的是55)。
3.此时上述文件夹里有(.wts 是在windows电脑上生成的)(yolov5.cpp 未进行过改动)(yololayer.h 已经改为自己训练的类数了)这三个。
4.在上述文件夹中打开终端,依次运行指令:
mkdir build
cd build
cmake ..
make
sudo ./yolov5 -s ../yolov5s.wts yolov5s.engine s
出错,报错信息如下
10.3 调用摄像头
未完待续。。。
参考来源:
Jetson nano部署Yolov5 ——从烧录到运行 1:1复刻全过程_jetson nano部署yolov5 从烧录到运行_IamYZD的博客-CSDN博客
我的上一篇关于jetson nano的介绍: