在网上找了好多关于Jetson Nano部署Yolo v5的帖子,由于每个人的环境和版本都不同,过程也都有所不同,因此在Jetson Orin Nano CLB上安装Yolo v5也有必要记录一下过程,以便后续无脑重装,让我们开始。
由于我这个Jetson Orin Nano CLB是固态硬盘的形式,没有SD卡槽,因此不能按Nvidia官方采用SD卡进行系统烧录的方式。
一、烧录
1. 由于之前虚拟机的系统是22.04很多东西都太新了,导致按教程安装有问题,懒得降级,这里在VMware虚拟机里直接安装64位ubuntu18.04系统并保持apt-get update 和 grade到最新,如果太慢就换源。
2. 安装烧录环境,分别执行以下命令。
sudo apt-get install qemu-user-static
sudo apt-get install python
直到输入python -V能显示python 2.7就OK。
3. 将Jetson Orin Nano CLB套件客户资料文件夹下的这两个文件拷贝到ubuntu的某个文件夹下。
4. cd到这两个文件所在目录下,分别执行以下命令解压缩文件,这两个解压缩时间都很久,要耐心等候。
tar xf Jetson_Linux_R35.3.1_aarch64.tbz2
sudo tar xpf Tegra_Linux_Sample-Root-Filesystem_R35.3.1_aarch64.tbz2 -C Linux_for_Tegra/rootfs/
以上是参考Nvidia官网的烧录教程
Quick Start — Jetson Linux Developer Guide documentation
如果遇到下图所示的错误信息,说明文件有错误,解压失败。那就需要到官网Jetson Linux Archive | NVIDIA Developer重新下载固件并执行以上操作。
官网固件下载指引见下图:
5. 配置
cd 到Linux_for_Tegra目录下,分别执行以下命令:
sudo ./apply_binaries.sh
./tools/l4t_flash_prerequisites.sh
6. 烧录
短接FC_REC和GND(这个角度看,是从上往下第二个和第三个引脚),接上TypeC接口,保证虚拟机的USB设置兼容USB3.1,否则连接不上,完了之后上电。
确保NVIDIA APX被勾选
如果没有,并且连接显示为灰色。请移步到这位兄台的页面下:
VMware能识别usb设备,但无法连接(灰色)的问题解决办法_虚拟机显示所有usb输入设备灰色_黑刀夜的博客-CSDN博客
cd 到Linux_for_Tegra目录下,分别执行以下命令开始烧写,需要耐心等待,中间有一步会显示以上画面,要及时选择"连接到虚拟机",才能正常烧录进去:
sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 \
-c tools/kernel_flash/flash_l4t_external.xml -p "-c bootloader/t186ref/cfg/flash_t234_qspi.xml" \
--showlogs --network usb0 jetson-orin-nano-devkit internal
直到出现以下信息,烧录完毕,拔掉跳线,重新上电即可。
二、CUDA环境安装
1. 安装pip3
sudo apt-get install python3-pip
sudo pip3 install -U pip
2. 安装Jtop
sudo pip3 install -U jetson-stats
安装好之后,就可以输入命令打开jtop,看到Libraries没有安装。
sudo jtop
3. 安装Library
sudo apt-get install nvidia-jetpack
完成之后再来看jtop,库已经装好了,并且能显示版本。
4. 连接并测试摄像头(这个角度看,排线黑色一面朝里,金手指朝外)
git clone https://github.com/jetsonhacks/CSI-Camera
cd到CSI-Camera文件夹下,执行以下命令以启动测试程序,检测摄像头显示是否正常。
python3 simple_camera.py
三、安装pytorch与torchvision
由jtop的信息中可以得知Jetpack的版本为Jeppack 5.1.1。根据Nvidia官网链接 以及PyTorch链接可知对应的pytorch和torchvision版本如下:
但实际上,Jetpack 5.1.1可用的版本组合是 pytorch 1.14.0,而torchvision对应的版本为torchvision 0.15.1
先安装依赖库
sudo apt-get -y install autoconf bc build-essential g++-8 gcc-8 clang-8 lld-8 gettext-base gfortran-8 iputils-ping libbz2-dev libc++-dev libcgal-dev libffi-dev libfreetype6-dev libhdf5-dev libjpeg-dev liblzma-dev libncurses5-dev libncursesw5-dev libpng-dev libreadline-dev libssl-dev libsqlite3-dev libxml2-dev libxslt-dev locales moreutils openssl python-openssl rsync scons python3-pip libopenblas-dev;
Nvidia官网里Jetpack对应的torch和torchvision 这里选v51/pytorch/里的最后一个
下载whl文件后安装torch
pip3 install torch-1.14.0a0+44dac51c.nv23.02-cp38-cp38-linux_aarch64.whl
使用下面的命令行从源码安装torchvision 0.15.1及其依赖库:
sudo apt install libjpeg-dev zlib1g-dev libpython3-dev libavcodec-dev libavformat-dev libswscale-dev
pip3 install --upgrade pillow
wget https://github.com/pytorch/vision/archive/refs/tags/v0.15.1.zip
unzip v0.15.1.zip
cd vision-0.15.1
export BUILD_VERSION=0.15.1
python3 setup.py install --user
这个过程有点慢,需耐心等候,如果失败,再多试几次 。