一、apt和pip3全局镜像源设置
xavier NX下载都是国外的,存在下载很慢的问题,所以我们选择国内下载速度较快的清华镜像源
1.apt换清华源
重新编辑source.list文件
sudo vim /etc/apt/sources.list
更换清华源(删除官方源复制粘贴清华源)
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main restricted universe multiverse
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main universe restricted
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main universe restricted
更新源
sudo apt-get update
2.pip3换清华源
直接终端输入
pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
二、环境安装(virtualenv)
1. 安装虚拟环境virtualenv(养成好习惯)
直接pip3因为网络原因会比较慢,所以提前配置了镜像源
sudo pip3 install virtualenv virtualenvwrapper
创建目录用来存放虚拟环境
mkdir $HOME/.virtualenvs
修改环境变量
vim ~/.bashrc
添加下面三行到最下面
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /usr/local/bin/virtualenvwrapper.sh
运行变量
source ~/.bashrc
更多详细的内容参考这位朋友的文章,可以说写的是非常完整:虚拟环境搭建
创建一个叫做yolov5的虚拟环境,与原opencv进行链接
# 这里采用的直创建python3的虚拟环境
mkvirtualenv -p /usr/bin/python3 yolov5
#激活环境:
workon yolov5
#找到原生的OpenCV位置(寻找 .so 档案,大家应该都一样会在 /usr/lib/python3.6/dist-packages/cv2/python-3.6/ 里面):
sudo find / -name cv2
#建立链接,注意查看路径根据自己的路径来修改
ln -s /usr/lib/python3.6/dist-packages/cv2/python-3.6/cv2.cpython-36m-aarch64-linux-gnu.so ./nx/yolov5/lib/python3.6/site-packages
三、安装pytorch和torchvision
1.安装pytorch
我的Jetson Xavier NX默认cuda版本是:10.2,对应的pytorch版本为1.8.0,如果cuda版本和我的不一样,可以去pytorch官网看一下:pytorch官网
由于Jetson Xavier NX是arm架构,需要下载相对应的torch,然后编译安装。
我安装的torch:torch-1.8.0-cp36-cp36m-linux_aarch64.whl
百度网盘:
链接:https://pan.baidu.com/s/1UuTqBxg2uViguP_ruFod7Q
提取码:f9sz
安装如下:
#安装需要的包
sudo apt-get install python3-pip libopenblas-base libopenmpi-dev
pip3 install Cython
#numpy根据我自己的版本选择的1.19.3
pip3 install numpy==1.19.3
#安装pytorch
pip3 install torch-1.8.0-cp36-cp36m-linux_aarch64.whl
验证安装是否成功:
python3
>>>import torch
>>>print(torch.__version__)
#出现版本号就算成功
注意:如果numpy安装的版本过高会出现“非核心转储”的错误(一开始我安装的1.19.5的numpy,后面uninstall下载的1.19.3版本解决问题)
2.安装torchvision
torchvision一定要和pytorch相对应!下面是一份对应版本的表格
我的是1.8.0的pytorch,所以这里是对应的0.9.0的torchvision
百度网盘:链接:https://pan.baidu.com/s/1dnXpIkXFRmm15-YAn1kVnA
提取码:auvg
安装步骤:
#我直接放在桌面上的
cd torchvision
#设置临时变量(x就是你的版本号,我这里是9)
export BUILD_VERSION=0.x.0
#开始安装(注意这里--user是安装在主环境,如果是虚拟环境要改为 --你的环境名)
python3 setup.py install --user
编译可能需要10多分钟,到最后可能pillow安装不上会卡死,可以直接退出单独安装,8.4.0的版本就刚好合适
pip install pillow==8.4.0
最后验证是否安装成功
python3
>>>import torchvision
>>>print(torchversion.__version__)
#出现版本号就算成功
四.搭建yolov5环境
然后安装yolov5必须的环境依赖
sudo apt-get install liblapack-dev
sudo apt-get install libblas-dev
sudo apt-get install gfortran
pip3 install scipy
pip3 install matplotlib pyyaml tensorboard tqdm
#安装seaborn时会自动安装matplotlib和pandas
pip3 install seaborn
下载yolov5-5.0的代码,安装里面必须的环境
注意:这里面因为我们已经安装了pillow和matplotlib以及numpy了,所以可以删除他们避免覆盖掉之前安装的版本导致报错
git clone -b v5.0 https://github.com/ultralytics/yolov5.git
cd yolov5/
pip install -r requirements.txt
这里我是想要做摄像头的实时检测推理的,在我搭建好yolov5环境后运行发现有问题,一直无法调用摄像头,这个问题前前后后折腾了我两周,中间还重新烧录了一次系统,最后稀里糊涂的解决了这个问题,我感觉应该是之前的opencv-python的版本有问题,开发板的Linux系统和电脑的有所不同,最后我安装的opencv-python的版本为:
opencv_python-4.5.1.48-cp36-cp36m-manylinux2014_aarch64.whl
下载地址为:https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/opencv-python/
后面几乎都没有出过问题,直到我使用pyside2的时候又出现过一系列的问题,此时我又将opencv-python的版本降低到:
opencv_python-3.4.13.47-cp36-cp36m-manylinux2014_aarch64.whl
至此,yolov5的环境基本搭建完成,可以成功调用摄像头,帧率大概在10~20左右,在这个情况下很难满足实时检测推理所以我们采用TensorRT加速。
五、TensorRT加速推理yolov5
这里我们直接采用大佬给我们铺垫好的tensorrtx,下载地址为:
https://github.com/wang-xinyu/tensorrtx
记得选择我们的相同的5.0版本