保姆级教程:在Jetson AGX Orin上从零部署YOLOv8,手把手解决环境配置难题
在Jetson AGX Orin上从零部署YOLOv8环境配置全流程避坑指南当你第一次拿到Jetson AGX Orin这款性能强大的边缘计算设备时可能会被它复杂的软件生态吓到。作为一款专为AI推理优化的硬件平台它需要特定的软件栈支持而YOLOv8作为当前最流行的实时目标检测算法之一其部署过程更是充满各种坑。本文将带你一步步完成从系统配置到最终运行YOLOv8的全过程特别针对那些容易出错的关键环节提供解决方案。1. 准备工作了解你的硬件和基础环境在开始安装任何软件之前我们需要先确认设备的基础信息。Jetson AGX Orin预装了NVIDIA专门为Jetson系列设计的JetPack SDK这个套件包含了CUDA、cuDNN、TensorRT等关键组件。不同版本的JetPack对应着不同的软件生态因此第一步就是确认你的JetPack版本。打开终端执行以下任一命令查看JetPack版本dpkg -l | grep nvidia-jetpack # 或 sudo apt show nvidia-jetpack常见的JetPack版本包括5.1.2、6.0等记录下这个版本号它将决定后续所有软件组件的选择。如果你的设备还没有安装JetPack需要先从NVIDIA官网下载对应镜像并刷机。提示建议在开始前执行sudo apt update sudo apt upgrade更新系统软件包但注意这可能会改变某些已安装组件的版本导致兼容性问题。2. PyTorch的正确安装版本匹配是关键PyTorch作为YOLOv8的底层框架其版本选择必须严格匹配JetPack版本。NVIDIA为Jetson平台提供了专门编译的PyTorch版本而不是通用的PyTorch安装包。2.1 确定正确的PyTorch版本访问NVIDIA官方提供的PyTorch for Jetson下载页面根据你的JetPack版本选择对应的PyTorch wheel文件。例如JetPack 5.1.2通常对应PyTorch 2.1.0的特定构建版本。下载命令示例wget https://nvidia.box.com/shared/static/xxxxxxxxxx.whl -O torch-2.1.0a0-cp38-cp38-linux_aarch64.whl2.2 安装系统依赖在安装PyTorch之前需要确保系统具备所有必要的编译工具和库文件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-dev2.3 安装PyTorch下载完成后使用pip安装wheel文件pip install torch-2.1.0a041361538.nv23.06-cp38-cp38-linux_aarch64.whl安装后可能会看到关于PATH的警告信息这表示某些脚本的安装目录没有被包含在系统路径中。解决方法echo export PATH$PATH:/home/nvidia/.local/bin ~/.bashrc source ~/.bashrc验证安装是否成功python3 -c import torch; print(torch.__version__); print(torch.cuda.is_available())应该能看到正确的版本号和True的输出。3. Torchvision的匹配安装Torchvision必须与PyTorch版本严格匹配否则会导致各种难以排查的问题。以下是常见的版本对应关系PyTorch版本Torchvision版本2.1.00.16.02.0.00.15.01.13.00.14.03.1 安装系统依赖sudo apt-get update sudo apt-get upgrade sudo apt-get install libjpeg-dev zlib1g-dev libpython3-dev \ libavcodec-dev libavformat-dev libswscale-dev3.2 下载并安装Torchvision找到与PyTorch版本匹配的Torchvision wheel文件后使用pip安装pip install torchvision-0.16.2c6f3977-cp38-cp38-linux_aarch64.whl验证安装python3 -c import torchvision; print(torchvision.__version__)4. YOLOv8环境配置现在来到了最关键的环节——配置YOLOv8的运行环境。Ultralytics官方提供的requirements.txt可能不完全适用于Jetson平台需要进行一些调整。4.1 修改requirements.txt首先下载YOLOv8的源代码然后编辑requirements.txt文件删除或注释掉torch和torchvision行我们已经安装了特定版本检查其他依赖项的兼容性典型的修改后requirements.txt内容示例# torch1.8.0 # torchvision0.9.0 numpy1.22.0 opencv-python4.6.0 tqdm4.64.0 Pillow9.3.0 scipy1.9.3 matplotlib3.6.0 pyyaml6.0 pandas1.5.0 seaborn0.12.04.2 安装依赖pip install -r requirements.txt可能会遇到一些安装错误常见问题及解决方案opencv-python安装失败Jetson平台需要特殊版本的OpenCV建议使用JetPack自带的OpenCVsudo apt-get install python3-opencvnumpy版本冲突可能需要指定较旧版本的numpypip install numpy1.23.0sentry_sdk缺失错误pip install sentry_sdk5. 常见问题解决方案在实际部署过程中你可能会遇到以下典型问题5.1 Python版本问题Jetson设备可能同时安装了Python 2和Python 3确保使用Python 3sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 1验证Python版本python --version5.2 离线安装方案对于网络受限的环境可以采用离线安装方式在其他联网设备上下载所需的wheel文件将文件传输到Jetson设备使用pip安装本地wheel文件pip install /path/to/package.whl5.3 内存不足问题在安装大型软件包时可能会遇到内存不足的错误。解决方法创建交换空间sudo fallocate -l 4G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile在安装命令前添加PYTHONDEVMODE1PYTHONDEVMODE1 pip install some-package6. 验证YOLOv8运行完成所有环境配置后可以运行简单的测试脚本来验证YOLOv8是否正常工作from ultralytics import YOLO # 加载预训练模型 model YOLO(yolov8n.pt) # 运行推理 results model(https://ultralytics.com/images/bus.jpg) # 显示结果 results[0].show()如果一切正常你应该能看到目标检测的可视化结果。第一次运行时会自动下载模型文件请确保网络连接正常。