jeston nano + YOLOv8

1.硬件选型

1.购买jetson nano A02 4GB

2.Jetson Nano A02、B01和2Gb版本的区别(为什么选择A02)

  • 参数比较

在这里插入图片描述

  • 硬件区别

从表中我们可以看出,旧版的4Gb A02 Jetson Nano和新版的B01 Jetson Nano的差别只是少了一个CSI摄像头接口,而新的 Jetson Nano 2GB的明显区别是少了2Gb的内存和接口上的差异。 Jetson Nano 2GB 没有了Display Port,只留下 HDMI 端口连接外部显示器。USB连接器也发生了变化。 只有一个 USB 3.0 和一个 USB 2.0。 对于无线连接,Jetson Nano 2GB 没有了M2接口,要使用Wifi,只能使用Usb的 802.11ac 无线适配器

  • 软件区别

自从JetPack 4.4.1以后,A02和B01的Jetson Nano Image可以互相通用,在Nividia论坛的这里有讨论,虽然我还没测试过,但我记得4.3之前的版本我测试过不能混用。至今4Gb版本和2Gb版本还不能混用,所以如果要做系统迁移,这里是需要注意的。下图是4.5.1的JetPack还是区分4Gb和2Gb的image。

  • 总结:如果没有双摄像头的需求是,A02是B01版本的完美替代,A02结构图如下

在这里插入图片描述

3.其他硬件选型

  • 无线网卡AC8265 2.4/5G蓝牙 4.2PCB天线(将网卡嵌入开发板)
  • 5V4A DC供电电源(DC供电需要加跳线帽,USB供电则不需要)
  • 连接板子的 鼠标、键盘和显示屏(可能需要VGA转HDMI的转换器)
  • 16GB及以上SD卡(建议准备64G以上)+读卡器
  • USB摄像头(RGB摄像头,YOLO只能直接读取RGB摄像头,CSI摄像头无法直接使用)

2.镜像下载烧录

1.Jetson镜像下载

什么是NVIDIA JetPack? JetPack包括带引导加载程序的Jetson Linux、Linux内核、Ubuntu桌面环境以及一整套用于加速 GPU计算、多媒体、图形和计算机视觉的库。

下载地址(使用魔法下载更快): https://developer.nvidia.com/embedded/downloads

找到Jetson Nano Developer Kit SD Card Image,版本为4.6.1,点击下载即可

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

2.jetpack不同版本适用于不同的开发板

在这里插入图片描述

3.镜像烧录

  • 下载内存卡格式化工具和烧录工具

格式化工具:SDF官网: https://www.sdcardformatter.com/download/
烧录工具:Win32官网: https://sourceforge.net/projects/win32diskimager/

  • 格式化TF卡

  • 烧录镜像至开发板

显示“写入成功”后,就可以把内存卡插入到jetson nano

3.初始化jetson nano a02

1.硬件设置

1.准备显示器,HDML线和显示器电源线,将显示器连接开发板

2.软件设置

1.选择语言页面选择中文简体,其他全部设置默认,设置用户密码:账号:ubuntu,密码:ubuntu
2.进入初始化页面之后点击wifi,选择相应的网络进行连接,并点击连接信息,获取本机IPv4地址

3.远程连接

SSH连接(只显示终端,较为流畅):下载并安装WindTerm,点击新建会话,输入jetson nano的IP地址,输入账号和密码即可连接成功

VNC连接(显示全屏,较为卡顿):下载并安装VNC,并配置Vino,安装VNC后,在顶部输入开发板的ip地址,回车即可进行连接

Vino配置:Vino 是 GNOME 桌面环境中的一个远程桌面服务器,它实现了 VNC 协议,允许其他设备通过 VNC 客户端远程访问并控制运行 GNOME 桌面环境的计算机。

  • 查询是否有Vino服务(出现版本号则不需要安装)

使用命令来查看是否有vino服务器:dpkg -l | grep vino

  • 没安装的话,需要安装一下
sudo apt update
sudo apt install vino
  • 设置vino属性
gsettings set org.gnome.Vino require-encryption false 
gsettings set org.gnome.Vino prompt-enabled false 
gsettings set org.gnome.Vino authentication-methods "['vnc']"
  • 设置vnc连接密码,这里设置的是ubuntu
gsettings set org.gnome.Vino vnc-password $(echo -n 'root' | base64)
  • 设Enable VNC 服务
sudo ln -s ../vino-server.service /usr/lib/systemd/user/graphical -session.target.wants
  • 编辑xml配置文件
sudo nano /usr/share/glib-2.0/schemas/org.gnome.Vino.gschema.xml

若未安装nano编辑器软件,运行以下命令,安装一下编辑器。重新执行上面的命令
sudo apt update
sudo apt install nano

  • xml文件最底部,增加一项配置(python缩进严格)
<key name='enabled' type='b'>
  <summary>Enable remote access to the desktop</summary>
  <description>
    If true, allows remote access to the desktop via the RFB protocol. Users on remote machines may then connect to the desktop using a VNC viewer.
  </description>
  <default>false</default>
</key>

修改完后,按ctrl+X退出,输入y回车确认

  • 设置为Gnome编译模式
sudo glib-compile-schemas /usr/share/glib-2.0/schemas
  • 重启电脑
sudo reboot

4.设置winSCP传输工具

下载地址:winSCP官网下载地址:https://winscp.net/eng/download.php

左侧是本机电脑的文件,右侧是远程开发板的文件;选中文件后,可以上传或者下载实现传输

4.系统资源设置

1.修改下载源

  • 首先备份源列表
sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup
  • 打开sources.list文件,把里面的内容,替换为下方的下载源。
sudo nano /etc/apt/sources.list
  • 下载源
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main multiverse restricted universe deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main multiverse restricted universe deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main multiverse restricted universe deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main multiverse restricted universe deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main multiverse restricted universe deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main multiverse restricted universe deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main multiverse restricted universe deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main multiverse restricted universe
  • 输入 ctrl+x ,然后输入 y 回车确认即可修改完成

2.设置CUDA系统变量

默认的jetpack镜像包里面,已经封装有cuda显卡驱动了,不需要重复安装,只需要添加把它的路 径添加到系统环境变量就行

  • 打开bashrc配置文件
sudo nano ~/.bashrc
  • 添加以下内容
export CUDA_HOME=/usr/local/cuda-10.2
export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64:$LD_LIBRARY_PATH
export PATH=/usr/local/cuda-10.2/bin:$PATH
  • 更新文件,并查看是否生效
source ~/.bashrc
nvcc -V

3.安装miniconda

是python包管理器,可以通过conda和pip命令安装python包,用于隔绝环境

bash Miniconda3-latest-Linux-aarch64.sh
  • 一直按回车键确认, 直到出现选择yes no的界面,然后输入 yes,之后直接按回车确认就行
  • 安装完后,更新一下系统配置文件
source ~/.bashrc
  • 当终端的前面,多了一个括号(base)就说明安装好了

4.修改miniconda下载源

conda config --set show_channel_urls yes
  • 使用编辑器,打开.condarc
nano ~/miniconda3/.condarc
  • 选择清华源粘贴进去,ctrl+x,y,回车确认退出即可
channels:- defaults
show_channel_urls: true、
default_channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels: 
  conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud

5.部署yolov8

1.下载YOLOv8源码

下载完成之后解压源码,将文件夹命名为yolov8,并通过winSCP传入开发板根目录中

YOLOv8官网: https://github.com/ultralytics/ultralytics

2.在根目录下创建虚拟环境

conda create -n yolov8 python=3.8 -y

3.进入虚拟环境

conda activate yolov8 

4.进入到yolov8环境,并且cd打开到yolov8的目录

5.安装依赖

(在安装前,需要注意先把pytorch相关的注释掉,否则无法调用英伟达加速)

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/

6.安装pytorch GPU版

  • 在开发板根目录新建文件夹pytorch
  • 通过winSCP把安装包(torch-1.11.0a0+gitbc2c6ed-cp38-cp38 linux_aarch64.whl和torchvision-0.12.0a0+9b5a3fe-cp38-cp38-linux_aarch64.whl)传输到开发板pytorch文件夹中
  • 通过cd命令,打开pytorch文件夹,开始安装
pip install torch-1.11.0a0+gitbc2c6ed-cp38-cp38-linux_aarch64.whl torchvision 0.12.0a0+9b5a3fe-cp38-cp38-linux_aarch64.whl -i https://pypi.tuna.tsinghua.edu.cn/simple/
  • 安装常见依赖库
sudo apt-get install libjpeg-dev zlib1g-dev libpython3-dev libavcodec-dev libavformat-dev libswscale-dev
  • 安装libopenmpi
wget http://ports.ubuntu.com/pool/universe/o/openmpi/libopenmpi2_2.1.1 8_arm64.deb
sudo dpkg -i libopenmpi2_2.1.1-8_arm64.deb
  • 若安装报错,运行下方的命令
sudo apt-get install libhwloc5 libhwloc-plugins
sudo apt-get update && sudo apt-get upgrade
  • 出现OSError: libomp.so.5: cannot open shared object file: No such file or directory
sudo apt-get update
sudo apt-get install libomp-dev
sudo apt-get install libomp5
  • 出现报错:有未能满足的依赖关系。请尝试不指明软件包的名字来运行“apt --fix-broken install”
sudo apt --fix-broken install
  • 出现报错则:ImportError: libopenblas.so.0
sudo apt-get install libopenblas-dev
  • numpy版本降级
pip uninstall numpy 
pip install numpy==1.23.5 -i https://pypi.tuna.tsinghua.edu.cn/simple/
  • 测试是否安装成功
python
import torch
print(torch.cuda.is_available())

输出返回True的时候,pytorch版安装成功

6.测试yolov8

1.在yolov8虚拟环境中进入yolov8目录

python wzq.py

或者

yolo predict model=yolov8n.pt source="ultralytics/assets/bus.jpg"

看到运行结果保存到run目录下

2.转换onnx格式加速

  • 安装环境依赖:onnxruntime_gpu-1.11.0-cp38-cp38-linux_aarch64.whl
  • 上传安装包至开发板(yolov8目录)
  • 开始安装
pip install onnxruntime_gpu-1.11.0-cp38-cp38-linux_aarch64.whl -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install onnx -i https://pypi.tuna.tsinghua.edu.cn/simple/
  • 把pt模型,转为onnx格式
yolo export model=yolov8n.pt format=onnx device=0
  • 测试是否转换成功
yolo predict model=yolov8n.onnx source="ultralytics/assets/bus.jpg"

3.导出TensorRT格式

  • 安装环境依赖
所需要的安装包:
tensorrt-8.2.3.0-cp38-none-linux_aarch64.whl
onnxruntime_gpu-1.16.0-cp38-cp38-linux_aarch64.whl
  • 上传至开发板(yolov8目录)
  • 然后安装
pip install tensorrt-8.2.3.0-cp38-none-linux_aarch64.whl -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install onnxruntime_gpu-1.11.0-cp38-cp38-linux_aarch64.whl -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install onnx -i https://pypi.tuna.tsinghua.edu.cn/simple/
  • 开始转换,转换yolov8n.pt为yolov8n.engine
yolo export model=yolov8n.pt format=engine
  • 测试是否导出成功
yolo predict model=yolov8n.engine source="ultralytics/assets/bus.jpg" device=0

4.测试摄像头检测

yolo predict model=yolov8n.engine source=0 device=0

5.增加参数实时显示画面:show=True

yolo predict model=yolov8n.engine source=0 device=0 show=True

6.保存训练的结果,可以增加参数:save=True

yolo predict model=yolov8n.engine source=0 device=0 show=True save=True

以上为粗略笔记,感谢各位浏览至此

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值