Jetson Nano + YOLOv8:从硬件选型到实时目标检测的完整部署指南

张开发
2026/4/16 20:53:38 15 分钟阅读

分享文章

Jetson Nano + YOLOv8:从硬件选型到实时目标检测的完整部署指南
1. Jetson Nano硬件选型指南第一次接触Jetson Nano时我也被各种版本搞得一头雾水。经过实际测试发现A02 4GB版本是最适合目标检测项目的选择。这个版本不仅保留了完整的接口功能价格也比工业级版本亲民许多。目前市面上主要有三种版本A02 4GB老款B01 4GB新款2GB版本简化版实测发现B01只是比A02少了一个CSI摄像头接口其他配置完全相同。如果你不需要同时连接两个摄像头完全可以选择更便宜的A02。而2GB版本就有点尴尬了不仅内存减半还阉割了DisplayPort和M.2接口这意味着你只能用USB网卡来实现无线连接。我建议的完整配件清单开发板Jetson Nano A02 4GB无线网卡Intel AC8265支持双频和蓝牙4.2电源5V4A DC电源一定要选质量好的存储至少64GB的UHS-I microSD卡摄像头普通USB摄像头注意要RGB格式散热建议加装散热风扇套件特别提醒很多人忽略电源的重要性。我遇到过因为电源供电不足导致系统随机重启的问题后来换了足额的5V4A电源才解决。SD卡也要选高速卡低速卡会导致系统响应缓慢。2. 系统镜像烧录与初始化拿到开发板第一步就是烧录系统镜像。NVIDIA官方提供的JetPack镜像已经包含了完整的开发环境从系统内核到CUDA工具链一应俱全。目前最新稳定版本是JetPack 4.6.1建议直接使用这个版本。烧录步骤其实很简单下载SD卡格式化工具推荐使用SD Card Formatter用Win32 Disk Imager写入镜像插入开发板启动但有几个坑要特别注意烧录前一定要先格式化SD卡写入完成后Windows可能会提示需要格式化千万别点首次启动需要连接显示器完成初始化设置初始化时建议选择英文系统语言避免后续出现编码问题。设置好WiFi后我推荐使用SSH远程连接开发比直接接显示器方便多了。可以用WindTerm这类支持SSH的终端工具连接后记得先运行sudo apt update sudo apt upgrade -y3. 开发环境配置技巧系统跑起来后需要优化几个关键配置。首先是更换软件源默认的国外源速度太慢sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak sudo nano /etc/apt/sources.list替换为清华源后安装速度能快10倍不止。接下来配置CUDA环境变量。虽然JetPack已经安装了CUDA但需要手动添加路径export PATH/usr/local/cuda/bin:$PATH export LD_LIBRARY_PATH/usr/local/cuda/lib64:$LD_LIBRARY_PATH我强烈建议安装Miniconda来管理Python环境。ARM架构的安装包需要特别下载wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-aarch64.sh bash Miniconda3-latest-Linux-aarch64.sh安装后别忘了配置conda清华源否则安装包会非常慢。4. YOLOv8环境部署实战创建专属的conda环境是个好习惯conda create -n yolov8 python3.8 -y conda activate yolov8下载YOLOv8官方代码git clone https://github.com/ultralytics/ultralytics cd ultralytics安装依赖时要特别注意顺序。先注释掉requirements.txt中的torch相关行手动安装适配Jetson的PyTorchpip install torch-1.11.0-cp38-cp38-linux_aarch64.whl pip install torchvision-0.12.0a09b5a3fe-cp38-cp38-linux_aarch64.whl常见问题解决方案遇到libomp缺失sudo apt install libomp-devnumpy版本冲突降级到1.23.5版本OpenBLAS报错安装libopenblas-dev测试CUDA是否可用import torch print(torch.cuda.is_available()) # 应该输出True5. 模型转换与优化技巧YOLOv8原生支持PyTorch模型但在Jetson上想要获得最佳性能需要转换为TensorRT格式。转换前先安装必要的依赖pip install tensorrt-8.2.3.0-cp38-none-linux_aarch64.whl pip install onnx onnxruntime-gpu转换命令很简单yolo export modelyolov8n.pt formatengine但有几个优化技巧转换时指定fp16精度可以提升速度yolo export modelyolov8n.pt formatengine halfTrue对于小目标检测可以调整输入分辨率yolo export modelyolov8n.pt formatengine imgsz640启用动态batch size支持yolo export modelyolov8n.pt formatengine dynamicTrue实测发现经过TensorRT优化后推理速度可以从原来的15FPS提升到30FPS以上。6. 实时目标检测实现最后是实现摄像头实时检测。USB摄像头直接使用yolo predict modelyolov8n.engine source0 showTrue如果需要保存检测结果yolo predict modelyolov8n.engine source0 showTrue saveTrue性能优化建议降低显示分辨率可以提升帧率关闭不必要的后处理如不显示类别置信度使用多线程处理图像采集和推理我常用的优化后启动命令yolo predict modelyolov8n.engine source0 \ imgsz320 \ conf0.5 \ showTrue \ halfTrue \ device0这套配置在Jetson Nano上可以实现25-30FPS的实时检测性能足够大多数应用场景。如果还需要更高性能可以考虑使用YOLOv8s等更小的模型。

更多文章