YOLOv5部署在Jetson Nano上的详细教程

2025-06发布1次浏览

YOLOv5 是一种先进的实时目标检测算法,而 Jetson Nano 是一款强大的嵌入式计算设备,适合运行深度学习模型。将 YOLOv5 部署到 Jetson Nano 上可以实现高效的边缘计算任务。以下是详细的部署教程。


1. 环境准备

1.1 安装系统

Jetson Nano 支持多种操作系统,推荐使用 NVIDIA 提供的官方 JetPack(包含 Ubuntu 和 CUDA)。下载并刷写 JetPack 到 Jetson Nano:

  • 下载地址:NVIDIA JetPack
  • 使用 SD 卡或 eMMC 安装 JetPack。

安装完成后,默认系统为 Ubuntu 18.04 或 20.04。

1.2 更新系统

通过以下命令更新系统:

sudo apt update && sudo apt upgrade -y

1.3 安装依赖库

YOLOv5 需要一些 Python 库和 C++ 库支持,安装如下依赖:

sudo apt install python3-pip python3-dev libopencv-dev cmake git -y
pip3 install numpy opencv-python torch torchvision

2. 模型准备

2.1 克隆 YOLOv5 仓库

从 GitHub 克隆 YOLOv5 的官方仓库:

git clone https://github.com/ultralytics/yolov5.git
cd yolov5

2.2 下载预训练模型

YOLOv5 提供了多个版本的预训练模型(如 yolov5s.ptyolov5m.pt 等),选择一个适合 Jetson Nano 性能的模型(推荐 yolov5s.pt):

wget https://github.com/ultralytics/yolov5/releases/download/v6.2/yolov5s.pt

3. 配置 CUDA 和 cuDNN

Jetson Nano 内置了 NVIDIA GPU,因此需要配置 CUDA 和 cuDNN 来加速推理。

3.1 检查 CUDA 版本

运行以下命令检查是否已安装 CUDA:

nvcc --version

如果未安装,可以通过 JetPack 自动安装。

3.2 验证 cuDNN

确保 cuDNN 已正确安装,运行以下命令验证:

cat /usr/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

3.3 测试 PyTorch CUDA 支持

在 Python 环境中测试 PyTorch 是否支持 CUDA:

import torch
print(torch.cuda.is_available())  # 输出 True 表示支持

4. 部署与推理

4.1 修改推理脚本

YOLOv5 提供了一个简单的推理脚本 detect.py,可以直接运行。为了适配 Jetson Nano,建议修改部分代码以优化性能。

示例代码

# yolov5/detect.py (部分代码)
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
model = torch.load('yolov5s.pt', map_location=device)['model'].float().eval()

4.2 运行推理

运行以下命令进行目标检测:

python3 detect.py --weights yolov5s.pt --img 640 --conf 0.4 --source 0

参数说明:

  • --weights:指定预训练模型文件。
  • --img:输入图像大小(建议设置为 640x640)。
  • --conf:置信度阈值。
  • --source:输入源(0 表示摄像头,也可以是图片路径或视频文件)。

5. 性能优化

Jetson Nano 的硬件资源有限,可以通过以下方式优化性能:

5.1 动态量化

使用 PyTorch 的动态量化技术减少模型大小并提升推理速度:

import torch.quantization
quantized_model = torch.quantization.quantize_dynamic(model, {torch.nn.Linear}, dtype=torch.qint8)
torch.save(quantized_model.state_dict(), 'yolov5s_quantized.pt')

5.2 TensorRT 加速

TensorRT 是 NVIDIA 提供的高性能推理框架,可以显著提升推理速度。步骤如下:

  1. 安装 TensorRT:
    sudo apt install tensorrt
    
  2. 使用 export.py 脚本将模型转换为 ONNX 格式:
    python3 export.py --weights yolov5s.pt --include engine
    
  3. 使用 TensorRT 引擎进行推理。

6. 常见问题与解决方法

6.1 CUDA 错误

如果出现 CUDA 错误,请检查驱动程序和 CUDA 版本是否匹配。可以通过以下命令更新驱动:

sudo apt install nvidia-driver-460

6.2 内存不足

Jetson Nano 的内存较小,可能会导致 OOM(Out of Memory)。降低输入分辨率(如从 640x640 降到 320x320)可以缓解该问题。


7. 结论

通过上述步骤,您可以成功将 YOLOv5 部署到 Jetson Nano 上,并实现高效的目标检测任务。根据实际需求,还可以进一步优化模型性能。