当前位置: 首页 > news >正文

Jetson AGX Xavier开发套件使用方法

Jetson AGX Xavier是一款由NVIDIA推出的一款强大的嵌入式AI开发平台,适合边缘计算和目标检测任务。如果你手上有一台 Jetson AGX Xavier Developer Kit,就可以使用它进行明火烟雾目标检测实验。以此为例,为了使你能够从零开始设置设备并完成实验,下面是具体的操作步骤:

第1步:熟悉 Jetson AGX Xavier Developer Kit

Jetson AGX Xavier是一款嵌入式系统模块(System-on-Module, SoM),专为自主机器和边缘AI应用设计。它是NVIDIA Jetson TX2的升级版,性能比TX2高出20倍,而能源效率则高出10倍。它支持NVIDIA JetPack和DeepStream SDK以及CUDA®,cuDNN和TensorRT软件库,并提供一系列可立即上手的工具。使用Jetson AGX Xavier可以打造出 AI 助力的自主机器,其运行功率低至 10W,却能实现高达32 TOPS的峰值计算能力和 750 Gbps 的高速 I/O 性能。作为行业领先AI计算平台的一部分,Jetson AGX Xavier得益于NVIDIA整套丰富的 AI工具和工作流程,可帮助开发者快速训练和部署神经网络。
在这里插入图片描述

配备硬件:

  • GPU:512核Volta GPU,支持Tensor Cores,提供高达32 TOPS(万亿次运算/秒)的AI性能。
  • CPU:8核64位ARMv8.2处理器,8MB L2+4MB L3 Cache。
  • 内存:32GB 256-bit LPDDR4x (eMMC5.1),带宽137 GB/s。
  • 功耗:可配置为10W、15W或30W。
  • 应用场景:适合机器人、智能城市、工业检测等任务。
    其它参见:https://ask.qcloudimg.com/http-save/yehe-1539448/8jt3lqtm5j.jpeg

第2步:开发前准备工作

使用这款设备前需要先完成硬件和软件的初始化配置。

硬件准备

硬件和配件需求:

  • Jetson AGX Xavier Developer Kit(包含充电器,原装type-c转usb数据线)。
  • microSD卡(建议32GB或更大容量,用于存储系统镜像)。
  • 电源适配器(Jetson AGX Xavier附带的电源,通常为19V 4.74A)。
  • 显示器(支持HDMI接口,用于初次设置)。
  • USB键盘和鼠标(用于交互)。
  • HDMI线(连接显示器)。
  • USB-C转USB-A线(用于连接主机和Jetson进行系统烧录)。
  • 一台主机电脑(运行Ubuntu或Windows,用于烧录系统镜像)。
  • 网络连接(以太网线或Wi-Fi,用于下载软件和数据集)。
  • 连接外设:
    • 将 Jetson AGX Xavier 连接到显示器(通过HDMI)、键盘、鼠标和电源适配器。
    • 确保电源适配器是开发套件提供的,因为设备在高负载下功耗较大。
    • 另外还需要一台运行Ubuntu的主机(比如您的笔记本电脑)来协助安装软件。

软件安装

软件需求:

  • NVIDIA SDK Manager:用于烧录Jetson的系统镜像和安装JetPack SDK。
  • JetPack SDK:包含Jetson的Linux操作系统(L4T,基于 Ubuntu)、CUDA、cuDNN、TensorRT等工具。推荐使用==JetPack 4.6.1==(最后一个支持Jetson AGX Xavier的版本)。
  • YOLOv5:目标检测模型。
  • 数据集:用于训练明火烟雾检测的数据集(可以从Roboflow获取公开数据集)。
  • 安装SDKManager
    在你自己的主机电脑上,访问 NVIDIA 开发者网站,进行注册或登陆。下载并安装SDK Manager,下载地址:https://developer.nvidia.com/nvidia-sdk-manager,下载.deb后缀的安装包。
# 在Ubuntu系统上安装SDKManager
# 以下示例<version = 1.81>、<build = 10392>
sudo apt install sdkmanager_1.8.1-10392_amd64.deb
# 启动运行SDKManager:
sdkmanager

务必关注兼容性
在这里插入图片描述

  • 连接Jetson:
    • 用USB数据线将Jetson AGX Xavier连接到主机。开发套件的连接如下图,原装type-c转usb数据线需要连接到led灯旁边的接口。

在这里插入图片描述

在这里插入图片描述

连接检测:

  • 需要确保Jetson和主机通过USB-C数据线保持连接。
  • 主机命令行输入lsusb检测,有NVidia Crop表示连接成功(不成功检查线是否有问题以及usb接口是否正常),Target Hardware也连接成功。若是refresh不显示开发板信息,没有关系,后面刷机会重新识别。Host Machine默认勾选。
  • 进入恢复模式:
    • 关闭Jetson电源,按住“恢复”(Recovery)按钮,然后接通电源,松开按钮,使其进入恢复模式。
  • 需要登陆Nvidia账号,让sdk manager作为客户端软件连到NVIDIA的云服务器上去,为后面的下载安装软件做准备。
  • STEP01中选择最新版本的JetPack(选择==JetPack 4.6.1==作为目标硬件),勾选“Jetson OS”和“Jetson SDK Components”。
    在这里插入图片描述
  • STEP02中安装内容保持默认,点接受,我下载完就安装了,没有选择后面的以后安装,这样可以查看下载细节,检查是否全部下载成功。也可以勾选,下载完后第二天再次启动sdkmanager。CONTINUE后输入电脑密码。
    在这里插入图片描述
  • STEP03中选择手动安装(Manual Steup)进行JETSON AGX XAVIER的系统镜像烧录,自动安装会出现错误。
    在这里插入图片描述

手动安装步骤译文:

  • 选择手动安装
  • 确保设备(JETSON AGX XAVIER)已连接电源适配器,但处于关机状态;
  • 将主机与设备使用type-c转usb数据线进行连接;
  • 按住AGX中间的按键(Force Recovery)不松手;
  • 按住AGX左边的电源(Power)不松手;
  • 释放按钮,过一两秒,同时松手。
  • 此时这个画面中设备会显示连接成功,输入JETSON AGX XAVIER系统的登陆账号和密码,记住这个,后面用得上。此时要提前保证显示屏、键盘、鼠标和设备连接成功,后续系统安装过程会显示,可能需要操作,我是没有操作,直接安装成功进入了设备的Ubuntu系统,这里SDK给我烧录的是Ubuntu20.04系统。
  • (我已经flash成功,所以没有连接设备,图片只是提供参考)
    一定要保证你电脑上面我图片红色位置是显示绿色连接后再进行Flash。
  • STEP04中Flash成功后会弹出安装界面,保证主机和设备连接正常。此时设备显示屏进入Ubuntu系统,设备系统需要先更新,才能保证后续安装成功。

注意换源!!!
先换源,需要根据设备上的Ubuntu系统版本进行更换,清华,阿里,中科大的镜像源都可以。
以使用阿里云镜像源为例:

  1. 备份sources.list文件
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
  1. 打开sources.list文件
sudo gedit /etc/apt/sources.list
  1. 删除原内容,添加以下内容
# 阿里云
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse

# deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
# deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
# deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
# deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse

## Pre-released source, not recommended.
# deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
# deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
  1. 保存sources.list文件后需要更新apt-get
sudo apt-get update

其他镜像源链接:

  • https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/
  • https://developer.aliyun.com/mirror/
  • http://t.csdn.cn/CMvQs
  • 点击“Download”开始下载系统镜像和组件。

    • 按照提示完成JetPack的安装(刷写过程),SDK Manager将自动烧录系统镜像到Jetson的内部eMMC存储,并安装SDK Components(包括CUDA、cuDNN、TensorRT等)。
    • 下载完成后,镜像会保存在指定目录(默认是 ~/nvidia/nvidia_sdk)。
  • 启动并初始化:

    • 刷写完成后,在主机电脑的SDK Manager中,输入Jetson的用户名和密码。
    • SDK Manager将继续安装剩余的SDK Components到Jetson上。
    • 启动Jetson,按照屏幕提示完成Ubuntu的初始设置(如选择语言、设置用户名和密码)。

第3步: 明火烟雾检测实验

Step 1:安装YOLOv5环境

  1. 访问Jetson终端:
    • 打开Jetson的终端(可以通过显示器直接操作,或通过SSH远程访问):
ssh 用户名@Jetson的IP地址
  • 例如:
ssh jetson@192.168.1.100
  1. 更新系统并安装必要工具:
 sudo apt update 
 sudo apt install -y python3-pip 
 pip3 install --upgrade pip
  1. 克隆YOLOv5仓库:
git clone https://github.com/ultralytics/yolov5.git cd yolov5
  1. 安装YOLOv5依赖:
    • 编辑 requirements.txt 文件,注释掉不兼容的版本(Jetson的PyTorch版本需要匹配JetPack 提供的版本,通常是torch>=1.7.0和torchvision>=0.8.1)。
    • 运行:
pip3 install -r requirements.txt
  • 如果遇到依赖问题,可以手动安装PyTorch和torchvision(JetPack 4.6.1预装了PyTorch 1.8.0和torchvision 0.9.0)。

Step 2:准备明火烟雾数据集

为了检测明火和烟雾,我们需要一个标注好的数据集。推荐使用现成的公开数据集,以节省时间。

  1. 获取数据集:
    • 推荐使用 Roboflow平台的公开数据集,例如搜索“Fire and Smoke Detection”(火与烟检测)数据集。
    • 选择一个包含“火”和“烟”两种类别的标注数据集,并以YOLOv5 PyTorch格式 下载(这种格式与后续模型兼容)。
    • 下载数据集(选择YOLOv5格式),会包含train和val文件夹,以及data.yaml文件。
  2. 检查数据集:
    • 确保数据集包含明火和烟雾的图像,并已标注好目标位置。
  3. 将数据集传输到Jetson:
    • 使用SCP命令从主机电脑传输到Jetson:
scp -r /path/to/dataset 用户名@Jetson的IP地址:/home/用户名/
  • 例如:
scp -r ~/Downloads/wildfire-smoke-dataset jetson@192.168.1.100:/home/jetson/
  1. 调整数据集路径:
    • 假设数据集位于/home/jetson/wildfire-smoke-dataset,编辑data.yaml文件:
train: /home/jetson/wildfire-smoke-dataset/images/train
val: /home/jetson/wildfire-smoke-dataset/images/val 
nc: 2 
names: ['fire', 'smoke']
  • 如果数据集只包含烟雾(smoke),将nc设为 1,names设为 [‘smoke’]。

Step 3:训练YOLOv5模型

由于训练深度学习模型需要大量计算资源,建议使用Kaggle或者Google Colab(提供免费GPU)来完成训练,而不是直接在Jetson上训练(虽然Jetson也支持训练,但速度较慢)。
如果直接在Jetson上训练:

  1. 运行训练:
    • 在yolov5目录下,运行以下命令:
python3 train.py --img 640 --batch 16 --epochs 50 --data /home/jetson/wildfire-smoke-dataset/data.yaml --weights yolov5s.pt --cache --device 0
- 参数说明:
    - --img 640:输入图像大小。
    - --batch 16:批大小(根据Jetson内存调整,16GB内存建议16)。
    - --epochs 50:训练轮数。
    - --data:数据集配置文件路径。
    - --weights yolov5s.pt:预训练权重(yolov5s是小型模型,适合Jetson)。
    - --device 0:使用GPU。
  1. 训练结果:
    • 训练完成后,模型权重会保存在 /home/jetson/yolov5/runs/train/exp/weights/best.pt。

[!example]+ 使用Google Colab训练

  • 打开 YOLOv5 Colab 训练笔记本。
  • 将从Roboflow下载的数据集上传到Colab。
  • 按照笔记本中的说明运行代码,训练YOLOv5模型(默认会使用YOLOv5s或YOLOv5m模型,您可以根据需要调整)。
  • 训练完成后,保存模型权重文件(如 best.pt),并下载到本地。

Step 4:推理(检测明火烟雾)

  1. 准备测试数据:
    • 将测试图片或视频放入Jetson,例如/home/jetson/test_images/。
  2. 运行推理:
python3 detect.py --weights /home/jetson/yolov5/runs/train/exp/weights/best.pt --img 640 --conf 0.25 --source /home/jetson/test_images/
- 参数说明:
    - --weights:训练好的模型权重。
    - --img 640:推理图像大小。
    - --conf 0.25:置信度阈值。
    - --source:测试数据路径。
  1. 查看结果:
    • 检测结果会保存在/home/jetson/yolov5/runs/detect/exp/,包含带边界框的图片。

Step 5:保存和下载结果

  1. 打包结果:
zip -r /home/jetson/runs.zip /home/jetson/yolov5/runs
  1. 传输到主机电脑:
    • 从主机电脑运行:
scp jetson@192.168.1.100:/home/jetson/runs.zip ~/Downloads/

第4步:在Jetson上部署模型

训练好模型后,将其部署到Jetson AGX Xavier上,用于实时检测。

  • 传输模型:
    • 将训练好的模型权重文件(best.pt)通过SSH或U盘传输到Jetson。
  • 安装YOLOv5环境:
    • 在Jetson上打开终端,克隆YOLOv5仓库并安装依赖:
      git clone https://github.com/ultralytics/yolov5.git
      cd yolov5
      pip install -r requirements.txt
      
    • JetPack已包含CUDA和cuDNN,安装过程通常会顺利完成。
  • 优化模型(可选但推荐):
    • 为提升推理速度,将PyTorch模型转换为TensorRT格式:
      python export.py --weights best.pt --include engine --device 0
      
    • 转换后会生成best.engine文件,适用于Jetson的GPU优化。

第5步:真实目标检测测试

  • 实时检测:
    • 连接一个USB网络摄像头到Jetson,使用USB摄像头捕捉实时视频。
    • 运行detect.py脚本进行实时检测:
      python detect.py --weights best.engine --source 0  # “0”表示默认摄像头
      
    • 屏幕上将显示摄像头视频流, Jetson会处理视频流并检测明火和烟雾,并标注出检测到的明火和烟雾。
    • 如需调整检测效果,可修改detect.py中的参数(如置信度阈值--conf-thres)。
  • 可选评估:
    • 使用数据集的验证集运行YOLOv5的验证脚本,计算检测精度(如mAP)。
    • 在Jetson上运行tegrastats查看GPU使用率和功耗:
      sudo tegrastats
      

附录

注意事项和优化建议

  1. 功耗模式:
    • 默认模式可能不是最高性能,切换到30W模式:
      sudo nvpmodel -m 0
      sudo jetson_clocks
      
    • 适合计算密集型任务。
    • 这会提升GPU和CPU性能。
  2. 性能优化:
    • 若推理速度慢,可尝试:
      • 模型量化:转为INT8精度。
      • TensorRT加速:使用NVIDIA TensorRT优化模型。
      • 批处理:增加批次大小(视内存而定)。
  3. 散热管理:
    • 使用原装电源适配器,确保供电稳定。
    • 开发套件自带风扇,但需保持通风良好,避免过热。
    • 高负载下设备会发热,需通风良好。监控温度:
      sudo jetson_stats
      
    -GPU温度保持在80°C以下。
  4. 网络连接:
    • 可通过以太网或Wi-Fi连接Jetson到网络,便于文件传输或远程操作(如SSH)。
    • 确保稳定网络,建议使用以太网线。
  5. 软件更新:
    • 定期更新系统和YOLOv5:
      sudo apt update && sudo apt upgrade
      git pull origin master
      
  6. 数据集扩展:
    • 若检测效果不佳,增加明火烟雾图像并使用数据增强(如旋转、缩放)。
  7. 模型选择:
    • YOLOv5s轻量,适合实验;需更高精度可试YOLOv5m或YOLOv5l。
  8. 摄像头选择:
  • 如果有CSI接口摄像头,也可以使用,但USB摄像头更简单,适合初次实验。

故障排除

如遇到问题,可访问NVIDIA 开发者论坛或YOLOv5的GitHub Issues页面寻求帮助。

  1. CUDA错误:
    • 检查 JetPack和PyTorch兼容性:
      python3 -c "import torch; print(torch.cuda.is_available())"
      
      输出应为True
  2. 依赖安装失败:
    • pip install -r requirements.txt失败,手动安装或查找Jetson专用wheel文件。
  3. SSH连接问题:
    • 启用SSH:
      sudo systemctl enable ssh
      sudo systemctl start ssh
      
    • 检查端口22是否开放。
  4. 摄像头无法识别:
    • 检查USB设备(lsusb)或安装CSI摄像头驱动。
  5. 训练内存不足:
    • 减小批次大小或关闭后台进程。

常用命令速查

  • 查看GPU状态:nvidia-smi
  • 查看系统资源:tegrastats
  • 重启Jetson:sudo reboot
  • 关闭Jetson:sudo shutdown -h now
  • 更新YOLOv5:git pull origin master
  • 清理训练日志:rm -rf runs/train/exp*

参考资料

  • [Jetson AGX Xavier Developer Kit 用户指南](嵌入式系统开发者套件、模块和 SDK | NVIDIA Jetson
  • YOLOv5 官方文档
  • NVIDIA TensorRT 文档
  • Roboflow 数据集

相关文章:

  • HCIE无线控制器配置常见问题及解决方法
  • 【C语言】--- 文件操作
  • IPD推进中关键角色与岗位(八)LPMT优化产品全生命周期管理,帮助企业在竞争
  • 基于 JavaWeb 的 SSM 在线视频教育系统设计和实现(源码+文档+部署讲解)
  • P10899 [蓝桥杯 2024 省 C] 劲舞团
  • 文件IO7(中文字库的原理与应用/目录检索原理与应用/并发编程的原理与应用)
  • Windows系统备份和还原点
  • 第十五届蓝桥杯PythonC组题解
  • 如何使用通义灵码完成PHP单元测试 - AI辅助开发教程
  • 数字内容体验案例解析与行业应用
  • 神经动力学系统与计算及AI拓展
  • MySQL的数据库性能分析利器Percona toolkit
  • 利用Ruby的Typhoeus编写爬虫程序
  • 快速上手Linux联网管理
  • 【Ansible自动化运维】四、ansible应用部署:加速开发到生产的流程
  • 接口和抽象类的区别
  • maven 依赖的优先级
  • 一个批量文件Dos2Unix程序(Microsoft Store,开源)
  • 【 Beautiful Soup (bs4) 详解】
  • 五、用例篇
  • 海南房产网站建设/关键词seo排名公司
  • wordpress加统计代码/windows优化大师下载
  • 创新的成都 网站建设/南京网站设计公司大全
  • it运维管理平台软件/正版seo搜索引擎
  • 婚纱摄影网站建设方案/厦门网站到首页排名
  • 网站建设禁止性规定/竞价系统