目录
一.盒子配置
1.首先sudo apt update (注意:此时先不要挂载ssd)
注:sudo apt update不成功的话就换源:
先备份原本的源,更改 source.list 文件的名字,以 备不时之需:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo gedit /etc/apt/sources.list
然后删除所有内容,复制以下内容:
deb https://mirror.tuna.tsinghua.edu.cn/ubuntu-ports/ focal main restricted universe multiverse
deb https://mirror.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-updates main restricted universe multiverse
deb https://mirror.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-backports main restricted universe multiverse
deb https://mirror.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-security main restricted universe multiverse
deb https://mirror.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-proposed main restricted universe multiverse
再打开终端,输入下述命令进行更新:
sudo apt-get update
2.update成功的话,安装jetpack:
sudo apt install nvidia-jetpack -y
如果提示unable to locate package nvidia-jetpack:
那么原因就是之前的环境都是配置在SSD上面,在他上面不能update了,只能回到emmc上执行。
解决办法是最好是格式化SSD,重新挂载。但这样的话你之前在SSD上的东西 都会没有了
解决办法:依次执行以下命令:
sudo mount /dev/mmcblk0p1 /mnt
cd /mnt/etc/
sudo rm setssdroot.conf
sudo reboot
执行完之后重启,然后再执行:
sudo apt update(一定要连网)
sudo apt install nvidia-jetpack -y
然后就绝对可以安装jetpack了,静静等待一段时间。
二.配置CUDA环境变量
cuda已经默认安装在/usr/local/cuda下
sudo gedit ~/.bashrc
在bashrc文件最后添加:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export PATH=$PATH:/usr/local/cuda/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda
完事后在终端:
source ~/.bashrc
然后就可以查看cuda版本了:
nvcc -V
三.配置cudnn:
cuDNN 的默认安装路径如下:
cudnn head (头文件): /usr/include/cudnn.h
cudnn lib(库文件): /usr/lib/aarch64-linux-gnu/libcudnn*
libcudnn* 表示所有以 libcudnn... 开头的文件。把这两部分文件复制到我们刚才操作的cuda路径 /usr/local/cuda
首先复制文件到cuda目录下:
cd /usr/include && sudo cp cudnn* /usr/local/cuda/include
cd /usr/lib/aarch64-linux-gnu && sudo cp libcudnn* /usr/local/cuda/lib64
修改文件权限,修改复制完的头文件与库文件的权限,所有用户都可读,可写,可执行:
sudo chmod 777 /usr/local/cuda/include/cudnn.h
sudo chmod 777 /usr/local/cuda/lib64/libcudnn*
重新软链接,这里的8.4.1和8对应安装的cudnn版本号和首数字
cd /usr/local/cuda/lib64
sudo ln -sf libcudnn.so.8.4.1 libcudnn.so.8
sudo ln -sf libcudnn_ops_train.so.8.4.1 libcudnn_ops_train.so.8
sudo ln -sf libcudnn_ops_infer.so.8.4.1 libcudnn_ops_infer.so.8
sudo ln -sf libcudnn_adv_train.so.8.4.1 libcudnn_adv_train.so.8
sudo ln -sf libcudnn_adv_infer.so.8.4.1 libcudnn_adv_infer.so.8
sudo ln -sf libcudnn_cnn_train.so.8.4.1 libcudnn_cnn_train.so.8
sudo ln -sf libcudnn_cnn_infer.so.8.4.1 libcudnn_cnn_infer.so.8
sudo ldconfig
测试cudnn的demo:
sudo cp -r /usr/src/cudnn_samples_v8/ ~/
cd ~/cudnn_samples_v8/conv_sample
sudo make clean
sudo make
./conv_sample
cudnn_samples_v8 里面有七八个 demo,但是有个别跑不通,比如mnistCUDNN ,目前不清楚原因,不过有能跑通的就好。下面是 conv_sample demo 的输出结果:
出现Test PASSED字样则说明成功。
四.Pytorch安装
jetson 的 pytorch不能像pc那样安装。不同的 JetPack 版本对应于不同的 python 和 pytorch 版本,请根据Jetson Zoo进行判断。我装的是 JetPack 5.0,因此匹配 python 3.8 + pytorch 1.12.0
查看jetpack版本命令:
sudo apt show nvidia-jetpack
jetpack版本与python版本与pytorch版本对应关系图:
直 接去官网下载: PyTorch for Jetson - Jetson Nano - NVIDIA Developer Forums
下载完后放到home路径下
然后开始安装:
安装步骤按照官网:
第一行不用执行,然后把方框中的版本换成下载的版本即可
sudo apt-get install python3-pip libopenblas-base libopenmpi-dev libomp-dev
pip3 install Cython
pip3 install numpy + 你安装的版本
如果提示pip找不到命令:
sudo apt-get install python3-pip
安装成功:
五.安装torchvision:
首先去官网查看对应版本:https://forums.developer.nvidia.com/t/pytorch-for-jetson/72048
我这里面装的是pytorch1.12,所以对应的torchvision是0.13.0
安装命令:
第一步:
sudo apt-get install libjpeg-dev zlib1g-dev libpython3-dev libavcodec-dev libavformat-dev libswscale-dev
第二步:
就是下载安装包:
有两种下载方式,第一种是使用命令:
git clone --branch v0.12.0 https://github.com/pytorch/vision torchvision(这里面的v0.12.0换成你自己要下载的版本,注意这里前面的字母v不要漏了)
第二种下载方式是通过GitHub直接下载到home根目录下:首先在home根目录下打开终端创建文件夹:
mkdir torchvision
然后进入GitHub网站进行下载:
GitHub - pytorch/vision: Datasets, Transforms and Models specific to Computer VisionGitHub - pytorch/vision: Datasets, Transforms and Models specific to Computer Vision
选择0.13.0版本后,在code中进行下载
下载好了以后,文件就在download文件夹里面,解压,然后复制里面所有的文件,粘贴到刚才在home根目录下创建的torchvision文件夹下面。
第三步:
cd torchvision
第四步:
export BUILD_VERSION=0.13.0
注意后面的0.13.0换成你自己安装的版本,但这里前面没有字母v
第五步:
python3 setup.py install --user
注意:这里面如果报错:找不到usr/local/cuda/nvcc:
此时首先判断cuda安装好了没,打开终端输入:nvcc -V。如果有输出cuda版本信息,就说明安装好了。
安装好了还出现找不到nvcc的错误的话,就在终端(新打开一个)输入:
export CUDA_HOME=/usr/local/cuda
然后再重新执行第三、四、五步就好了:
安装成功后会提示:
安装完后验证pytorch和torchvision:
如果出现版本信息说明安装完成。
至此环境基本配置完毕,可以用命令看一下自己已经安装的东西:
JetPack: sudo apt show nvidia-jetpack
CUDA: nvcc -V
cuDNN :dpkg -l libcudnn8
openCV:dpkg -l libopencv
TensorRT: dpkg -l tensorrt
六.下载YOLOv5包:
(在github上下载:GitHub - ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLitehttps://github.com/ultralytics/yolov5)
下载后复制到home根目录下(yolov5-master)
然后在yolov5-master下载权重文件:
然后在yolov5-master目录下打开终端进行测试:
python3 detect.py
如果报错缺什么就pip3安装什么,直到测试成功。例如:
补充:
如果下载慢:(后面加上阿里的镜像源),例如:
pip install -r requirements.txt -i Simple Index --trusted-host mirrors.aliyun.com
全部弄完之后在重新敲命令:python3 detect.py
就会在/yolov5-master/runs/detect/exp 中看到自带图像的识别结果:
外接usb摄像头进行图像识别:
只需在source中修改摄像头(USB的摄像头)参数(具体的接口数字)
python3 detect.py --source 8
(我当时测试出来图为盒子是8)
备注:
上面的内容都是yolov5-master版本
如果下载的是yolov5-5.0的版本,运行python3 detect.py后会出现一些问题:
问题1.关于upsample:
解决办法:
按照路径:home/nvidia/.local/lib/python3.8.site-packages/torch/nn/modules/upsample.py
打开该文件:
第152行修改成和下面一样:
问题2:argument of type 'int' is not iterable:
解决办法:
在/yolov5-5.5/utils/datasets.py文件下279行修改成如图: