jetson nano配置yolov5(超详细)

前言:本文是本人经过无数踩坑之后做出的总结

一、需要的工具

1、SD卡:推荐使用闪迪或者金士顿的SD卡,使用其他牌子的SD卡在使用时可能会造成系统崩溃。

2、读卡器:使用电脑烧录镜像时使用

3、网线:假如板子不带网卡就需要使用网线联网。

二、镜像烧录

首先需要对SD卡进行格式化,

1、下载镜像文件:

Jetson Download Center | NVIDIA Developer

选择需要的镜像文件,由于采用SD卡烧录镜像,所以需要下载名称中带SD Card的镜像文件,我这里下载的是这个:

点击即可下载。

2、下载烧录软件:

balenaEtcher - Flash OS images to SD cards & USB drives

具体版本根据自己电脑的系统下载,我使用的是Windows系统,下载的版本为:

3、烧录文件

打开安装好的软件,选择下载的镜像文件进行烧录:

烧录成功后电脑无法查看SD卡是正常现象。

4、将SD卡插入jetson nano的卡槽即可开机,然后自行配置ubuntu系统即可。

三、环境配置

1、换源

系统默认源为ubuntu,更新下载速度奇慢,需要更新为国内源。

首先需要备份一下然后打开源文件:

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo gedit /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

保存并关闭窗口,更新软件包:

sudo apt-get update
sudo apt-get upgrade

2、配置CUDA环境

jetson nano中已经内置好了CUDA,但需要配置环境变量才能使用,打开命令行添加环境变量即可。

sudo gedit ~/.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

保存,查看是否配置成功。

nvcc -V

输出这些就表示配置成功了:

3、安装U盘挂载:

大容量设备可能会出现无法挂载,使用此命令后可使用U盘拷贝文件。

sudo apt-get install exfat-utils

4、配置conda

jetson nano的架构是aarch64,与windows和liunx不同不同,所以不能安装Anaconda、Miniconda和anconda,可以安装一个替代它的Archiconda。

下载网址:https://github.com/Archiconda/build-tools/releases

打开下载archiconda包的文件夹位置,使用终端cd进行这个文件夹,然后执行:

sudo apt-get install Archiconda3-0.2.3-Linux-aarch64.sh

若是使用上面指令报错则采用:

bash Archiconda3-0.2.3-Linux-aarch64.sh

安装时一直按enter键默认安装即可。

执行完上述指令后需要添加进环境变量:

sudo gedit ~/.bashrc

在文档最后一行后面添加:

export PATH=~/archiconda3/bin:$PATH

输入以下指令创建虚拟环境:

conda create -n  yolov5 python=3.6 #创建一个python3.6环境

在虚拟环境中输入以下指令添加国内源:

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge 
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/

安装pip:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt-get install python3-pip libopenblas-base libopenmpi-dev
pip3 install --upgrade pip

设置为默认源:

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

5、安装pytorch和torchvision

1、安装pytorch

去英伟达官网下载所需版本,我这里是1.8.0,网址如下:

PyTorch for Jetson - Jetson & Embedded Systems / Announcements - NVIDIA Developer Forums

由于jetson nano板使用的是ubuntu18.04,只能安装JetPack 4以下的pytorch包,采用JetPack 5以上的包会造成兼容性错误。

点击即可自动下载,若是下载不能进行,则需使用科学上网进行下载。

下载完成后在torchvision文件夹的目录下右键,进入终端,然后进入你创建的虚拟环境,输入以下命令:

sudo apt-get install python3-pip libopenblas-base libopenmpi-dev 
pip install torch-1.8.0-cp36-cp36m-linux_aarch64.whl

安装torch时,一定要安装numpy,不然的话显示你安装torch成功,但是你conda list是找不到的。

sudo apt install python3-numpy

输入

export OPENBLAS_CORETYPE=ARMV8

输入python,进入python环境,在python环境下输入下方代码查看是否安装成功

import torch 
print(torch.__version__)

2、安装torchvision

torchvision的版本需要和pytorch版本对应。

torchvision包已放到百度网盘链接:

链接:https://pan.baidu.com/s/1KToQaGkuozp6LtHPaS48zg?pwd=ucg0 
提取码:ucg0

将包下载到板子上,使用终端进入该包,输入:

sudo apt-get install libjpeg8 libjpeg62-dev libfreetype6 libfreetype6-dev
python3 -m pip install -i https://mirrors.aliyun.com/pypi/simple pillow
export BUILD_VERSION=0.9.0
python setup.py install

以上便是pytorch安装全部步骤了。

四、安装yolov5

1、去官网上下载需要的版本

网址:ultralytics/yolov5 at v6.0 (github.com)

注:由于yolov5-6.1及以上版本已不再支持python3.6,而jetson nano的pytorch包最高支持版本为python3.6,所以只能下载6.0及以下版本,否则会出现报错。

点击左上角选择版本:

下载权重:Releases · ultralytics/yolov5 (github.com)

选择对应版本,我使用的是yolov5-6.0:

下载完后放入下载的yolo包里面。之后再进行依赖下载:

首先将numpy版本降低:

pip install numpy==1.19.4 -i https://pypi.tuna.tsinghua.edu.cn/simple

使用终端打开下载的yolov5包,输入:

pip install -r requirements.txt

等待依赖安装完成即可。

2、测试

输入

python3 detect.py

可以看到结果输出到了runs/detect/exp中,打开文件夹可查看结果:

五、jetson nano远程连接

使用ssh远程连接可以更方便的进行配置。

首先在jetson nano中下载putty配置,输入ifconfig查看ip地址,对于有线网络,我们查看eth0下面的IP地址;对于无线网卡,我们查看wlan0下面的IP地址。

### 部署YOLO模型到NVIDIA Jetson Nano #### 准备环境和工具 为了成功在NVIDIA Jetson Nano上部署YOLO模型,需要先安装必要的软件包以及配置开发环境。这包括但不限于Python库、CUDA Toolkit、cuDNN以及其他依赖项[^1]。 #### 获取并准备YOLOv5模型 下载官方发布的预训练权重文件或是自行训练得到的特定场景下的YOLOv5权重。对于Jetson Nano而言,建议采用较小版本如`yolov5s.pt`来减少资源占用并提高推理速度。完成下载后需转换此PyTorch格式(.pt)至ONNX格式以便后续优化处理。 ```bash # 下载 yolov5 模型仓库 git clone https://github.com/ultralytics/yolov5.git cd yolov5 # 安装需求 pip install -r requirements.txt # 导出 ONNX 文件 (假设使用的是 yolov5s 版本) python export.py --weights yolov5s.pt --include onnx ``` #### 使用TensorRT加速YOLOv5 通过将上述获得的`.onnx`文件进一步转化为适用于TensorRT引擎运行的形式——即`.engine`文件,可以显著提升性能表现。具体操作可通过调用`trtexec`命令行工具实现,该工具位于CUDA安装目录下。 ```bash # 转换 .onnx 至 TensorRT engine (.engine) /path/to/trtexec --onnx=yolov5s.onnx --saveEngine=yolov5s.engine \ --explicitBatch --workspace=256 --fp16 ``` #### 整合DeepStream SDK进行视频流分析 利用NVIDIA提供的DeepStream SDK框架能够方便快捷地接入摄像头或其他媒体源作为输入,并实现实时图像处理功能。创建一个新的GStreamer管道定义文件(`pipeline.config`)用于描述数据流动路径;编写应用程序代码读取生成好的`.engine`文件加载入内存执行推断任务。 ```c++ // C++ 示例:初始化 DeepStream 并加载 TensorRT Engine 进行预测 #include <gst/gst.h> ... std::string model_path = "/path/to/yolov5s.engine"; nvinfer1::ICudaEngine* load_engine(const std::string& path); void init_deepstream_pipeline(); ... int main() { GstElement *pipeline; // 初始化 GStreamer 和 DeepStream 组件 gst_init(NULL, NULL); pipeline = gst_parse_launch("filesrc location=test.mp4 ! qtdemux ! h264parse ! nvv4l2decoder ! nvvidconv ! queue max-size-buffers=0 max-size-bytes=0 max-size-time=0 ! nvinferserver config-file-path=pipeline.config batch-size=1 ! fakesink", NULL); // 加载 TensorRT 推理引擎 auto trt_engine = load_engine(model_path.c_str()); // 启动流水线 gst_element_set_state(pipeline, GST_STATE_PLAYING); } ``` #### 测试与验证 最后一步是对整个系统进行全面测试以确认各部分工作正常无误。可以通过播放一段本地存储的视频片段或者连接USB摄像机来进行实际效果评估。观察输出日志中的FPS指标判断是否达到了预期水平,必要时调整参数重新编译直至满意为止。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值