Jetson TX2开发者套件从零到AI:系统迁移与YOLOv5环境一站式部署指南 1. Jetson TX2开发者套件开箱与系统烧录拿到Jetson TX2开发板的第一件事就是完成系统烧录。这里推荐使用NVIDIA官方提供的SDK Manager工具它能帮你一站式完成系统镜像和开发环境的部署。我实测下来这个工具确实能省去不少手动配置的麻烦不过有几个坑需要特别注意。首先你需要准备一台运行Ubuntu 16.04或18.04的电脑物理机或虚拟机都可以。我在VMware上装了个Ubuntu 18.04实测完全兼容。下载SDK Manager时建议直接从NVIDIA开发者官网获取最新版本避免使用第三方源可能带来的兼容性问题。烧录系统时记得用micro-USB线连接开发板和电脑。这里有个小技巧建议使用原装线缆我试过几根第三方线有的会出现识别不稳定的情况。在SDK Manager界面设备类型选择Jetson TX2然后重点来了——不要勾选Host Machine选项除非你打算同时在主机上安装开发环境。系统烧录过程中建议保持网络畅通因为工具会自动下载需要的组件。第一次运行时可能会比较慢我实测大概需要30-60分钟具体取决于你的网速。完成后开发板会自动重启进入Ubuntu系统这时候你就可以设置用户名和密码了。2. 系统迁移至SSD完整指南Jetson TX2板载的eMMC存储只有32GB跑几个AI模型就捉襟见肘了。我强烈建议将系统迁移到SSD不仅能解决存储瓶颈还能显著提升IO性能。这里分享下我亲测有效的迁移方案。首先需要准备一个M.2接口的SSD建议至少256GB和对应的转接卡。将SSD安装到开发板的PCIe插槽后进入系统打开磁盘工具进行格式化。这里要注意选择ext4文件系统我试过其他格式会导致后续步骤失败。迁移工具我推荐使用jetsonhacks开发的rootOnNVMe脚本这个方案最稳定。操作步骤如下sudo apt update sudo apt upgrade git clone https://github.com/jetsonhacks/rootOnNVMe.git cd rootOnNVMe ./copy-rootfs-ssd.sh ./setup-service.sh这个脚本会自动将系统文件拷贝到SSD并设置开机自动挂载。完成后还需要修改/boot/extlinux/extlinux.conf文件把root参数从/dev/mmcblk0p1改为/dev/nvme0n1p1。具体修改位置如下LABEL primary MENU LABEL primary kernel LINUX /boot/Image INITRD /boot/initrd APPEND ${cbootargs} quiet root/dev/nvme0n1p1 rw rootwait rootfstypeext4重启后在终端输入df -h如果看到根目录挂载在nvme0n1p1上说明迁移成功了。我迁移后实测IO性能提升了3倍模型加载速度明显加快。3. JetPack SDK组件安装与验证系统迁移完成后需要安装JetPack SDK提供的关键组件。重新打开SDK Manager这次要勾选Jetson SDK Components下的所有选项特别是CUDA、cuDNN和TensorRT这些深度学习必备组件。安装过程可能会比较久我建议放在晚上进行。完成后可以通过几个命令验证是否安装成功nvcc -V # 查看CUDA版本 jtop # 查看硬件状态和组件版本如果看到CUDA 10.2的输出TX2最新支持的版本说明安装正确。jtop是个非常实用的工具可以实时监控CPU/GPU使用率、温度和内存情况建议通过以下命令安装sudo apt install python3-pip sudo -H pip3 install jetson-stats4. Conda环境配置技巧为了避免污染系统环境我强烈建议使用Conda创建独立的Python环境。由于TX2是ARM架构不能直接用Anaconda需要安装专门适配的Miniforgewget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-aarch64.sh chmod x Miniforge3-Linux-aarch64.sh ./Miniforge3-Linux-aarch64.sh安装时注意看提示当询问Do you wish the installer to initialize Miniforge3时选择yes。安装完成后如果觉得终端启动变慢可以禁止自动激活base环境conda config --set auto_activate_base false然后创建一个专用于YOLOv5的Python 3.6环境conda create -n py36 python3.6 conda activate py365. PyTorch for Jetson TX2安装详解在ARM架构上安装PyTorch需要特别注意版本兼容性。NVIDIA官方提供了预编译的whl文件我们需要下载对应CUDA 10.2的版本sudo apt install libopenblas-base libopenmpi-dev libomp-dev wget https://nvidia.box.com/shared/static/wa34qwrwtk9njtyarwt5nvo6imenfy26.whl -O torch-1.10.0-cp36-cp36m-linux_aarch64.whl pip install torch-1.10.0-cp36-cp36m-linux_aarch64.whl安装完成后验证PyTorch是否能正确识别CUDAimport torch print(torch.__version__) print(CUDA available:, torch.cuda.is_available())如果输出CUDA available: True说明安装成功。接下来安装torchvision这里需要从源码编译sudo apt install libavcodec-dev libavformat-dev libswscale-dev git clone -b v0.11.1 https://github.com/pytorch/vision torchvision cd torchvision export BUILD_VERSION0.11.1 python3 setup.py install --user6. YOLOv5环境部署与测试现在可以开始部署YOLOv5了。首先安装依赖项sudo apt install gfortran build-essential libatlas-base-dev conda install matplotlib seaborn pyyaml tqdm pip install opencv-python4.5.5.64然后克隆YOLOv5仓库建议使用v6.0版本git clone -b v6.0 https://github.com/ultralytics/yolov5.git cd yolov5 pip install -r requirements.txt测试是否能够正常运行python detect.py --source data/images/bus.jpg --weights yolov5s.pt如果看到生成的runs/detect/exp目录下有检测结果图片说明环境配置成功。我在TX2上实测yolov5s模型能达到10FPS左右的推理速度对于边缘设备来说已经相当不错。7. 性能优化技巧为了让YOLOv5在TX2上跑得更流畅这里分享几个实测有效的优化技巧启用TensorRT加速将PyTorch模型转换为TensorRT引擎可以显著提升推理速度。可以使用NVIDIA提供的torch2trt工具git clone https://github.com/NVIDIA-AI-IOT/torch2trt cd torch2trt python setup.py install使用FP16精度Jetson TX2支持FP16计算能减少显存占用并提升速度。在YOLOv5的detect.py中添加--half参数即可启用。调整电源模式TX2有几种不同的电源模式高性能模式下GPU频率更高sudo nvpmodel -m 0 # 最大性能模式 sudo jetson_clocks # 锁定最高频率优化OpenCV默认安装的OpenCV可能没有启用硬件加速可以重新编译开启CUDA和NVDEC支持。经过这些优化后我的YOLOv5s模型推理速度从10FPS提升到了15FPS效果非常明显。当然如果对精度要求不高还可以考虑使用更小的模型如yolov5n在TX2上能跑到20FPS。