Ultralytics YOLOv8 英伟达™ Jetson®处理器部署

2024-04-23 13:44

本文主要是介绍Ultralytics YOLOv8 英伟达™ Jetson®处理器部署,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

系列文章目录


前言

本综合指南提供了在英伟达 Jetson设备上部署Ultralytics YOLOv8 的详细攻略。此外,它还展示了性能基准,以证明YOLOv8 在这些小巧而功能强大的设备上的性能。

备注

        本指南使用Seeed Studio reComputer J4012进行测试,它基于运行最新稳定JetPack版本JP5.1.3的NVIDIA Jetson Orin NX 16GB。对于较旧的 Jetson 设备,如 Jetson Nano(仅支持 JP4.6.4 之前的版本),可能无法保证使用本指南。不过,本指南有望在所有运行 JP5.1.3 的 Jetson Orin、Xavier NX 和 AGX Xavier 设备上运行。

 


一、什么是 NVIDIA Jetson?

        英伟达™(NVIDIA®)Jetson 是一系列嵌入式计算板卡,旨在为边缘设备带来加速的 AI(人工智能)计算。这些小巧而功能强大的设备围绕英伟达™(NVIDIA®)的GPU架构打造,能够直接在设备上运行复杂的人工智能算法和深度学习模型,而无需依赖云计算资源。Jetson 板卡通常用于机器人、自动驾驶汽车、工业自动化和其他需要在本地以低延迟和高效率执行人工智能推理的应用中。此外,这些板卡基于 ARM64 架构,与传统 GPU 计算设备相比运行功耗更低。

二、英伟达 Jetson 系列对比

        Jetson Orin是英伟达 Jetson 系列的最新迭代产品,基于英伟达安培架构,与前几代产品相比,人工智能性能大幅提升。下表比较了生态系统中的几款 Jetson 设备。

Jetson AGX Orin 64GBJetson Orin NX 16GBJetson Orin Nano 8GBJetson AGX XavierJetson Xavier NXJetson Nano
人工智能性能275 TOPS100 TOPS40 TOPs32 TOPS21 TOPS472 GFLOPS
GPU2048 核英伟达安培架构 GPU,64 个Tensor 内核1024 核英伟达安培架构图形处理器,配备 32 个Tensor 内核1024 核英伟达安培架构图形处理器,配备 32 个Tensor 内核512 核英伟达 Volta 架构 GPU,64 个Tensor 内核384 核英伟达 Volta™ 架构 GPU,配备 48 个Tensor 内核128 核英伟达™(NVIDIA®)Maxwell™ 架构图形处理器
图形处理器最高频率1.3 千兆赫918 兆赫625 兆赫1377 兆赫1100 兆赫921MHz
中央处理器12 核 NVIDIA Arm® Cortex A78AE v8.2 64 位 CPU 3MB L2 + 6MB L38 核 NVIDIA Arm® Cortex A78AE v8.2 64 位 CPU 2MB L2 + 4MB L36 核 Arm® Cortex®-A78AE v8.2 64 位 CPU 1.5MB L2 + 4MB L38 核 NVIDIA Carmel Arm®v8.2 64 位 CPU 8MB L2 + 4MB L36 核 NVIDIA Carmel Arm®v8.2 64 位 CPU 6MB L2 + 4MB L3四核 Arm® Cortex®-A57 MPCore 处理器
CPU 最高频率2.2 千兆赫2.0 千兆赫1.5 千兆赫2.2 千兆赫1.9 千兆赫1.43GHz
内存64GB 256 位 LPDDR5 204.8GB/s16GB 128 位 LPDDR5 102.4GB/s8GB 128 位 LPDDR5 68 GB/s32GB 256 位 LPDDR4x 136.5GB/s8GB 128 位 LPDDR4x 59.7GB/s4GB 64 位 LPDDR4 25.6GB/s"

        如需更详细的比较表,请访问NVIDIA Jetson 官方网页的技术规格部分。

三、什么是 NVIDIA JetPack?

        英伟达™(NVIDIA®)JetPack SDK为Jetson模块提供动力,是最全面的解决方案,为构建端到端加速人工智能应用提供了完整的开发环境,缩短了产品上市时间。JetPack 包括带有引导加载器的 Jetson Linux、Linux 内核、Ubuntu 桌面环境以及一整套用于加速 GPU 计算、多媒体、图形和计算机视觉的库。它还包括用于主机和开发者工具包的示例、文档和开发者工具,并支持更高级别的 SDK,如用于流媒体视频分析的 DeepStream、用于机器人技术的 Isaac 和用于对话式人工智能的 Riva。

四、将 Flash JetPack 插入英伟达™ Jetson

        拿到 NVIDIA Jetson 设备后,第一步就是将 NVIDIA JetPack 闪存到设备上。闪存英伟达™ Jetson 设备有几种不同的方法。

  1. 如果你拥有官方的英伟达开发套件(如 Jetson Orin Nano 开发套件),可以访问此链接下载映像,并准备一张装有 JetPack 的 SD 卡以启动设备。
  2. 如果您拥有其他英伟达™(NVIDIA®)开发套件,可以访问此链接,使用SDK 管理器将 JetPack 闪存到设备。
  3. 如果你拥有 Seeed Studio reComputer J4012 设备,可以访问此链接将 JetPack 闪存到附带的固态硬盘中。
  4. 如果您拥有任何其他由英伟达™(NVIDIA®)Jetson 模块驱动的第三方设备,建议访问此链接进行命令行闪存。

备注

        对于上述方法 3 和 4,在刷新系统并启动设备后,请在设备终端输入 "sudo apt update && sudo apt install nvidia-jetpack-y",以安装所需的所有剩余 JetPack 组件。

 

五、从 Docker 开始

        在英伟达™(NVIDIA®)Jetson 上开始使用Ultralytics YOLOv8 的最快方法是使用为 Jetson 预制的 docker 镜像。

        执行以下命令,提取 Docker 容器并在 Jetson 上运行。这是基于l4t-pytorchdocker 镜像,其中包含 Python3 环境中的PyTorch 和 Torchvision。

t=ultralytics/ultralytics:latest-jetson && sudo docker pull $t && sudo docker run -it --ipc=host --runtime=nvidia $t

 

六、不使用 Docker 启动

6.1 安装Ultralytics 软件包

        在这里,我们将在 Jetson 上安装 ultralyics 软件包和可选依赖项,以便将PyTorch 模型导出为其他不同格式。我们将主要关注英伟达TensorRT 导出,因为 TensoRT 将确保我们能从 Jetson 设备中获得最高性能。

  1. 更新软件包列表,安装 pip 并升级到最新版本
    sudo apt update
    sudo apt install python3-pip -y
    pip install -U pip
  2. 安装 ultralytics pip 软件包与可选依赖项
    pip install ultralytics[export]
  3. 重启设备
    sudo reboot

6.2 安装PyTorch 和 Torchvision

        上述ultralytics 安装程序将安装Torch 和 Torchvision。但是,通过 pip 安装的这两个软件包无法在基于 ARM64 架构的 Jetson 平台上兼容运行。因此,我们需要手动安装预编译的PyTorch pip wheel,并从源代码编译/安装 Torchvision。

  1. 卸载当前安装的PyTorch 和 Torchvision
    pip uninstall torch torchvision
  2. 根据 JP5.1.3 安装PyTorch 2.1.0
    sudo apt-get install -y libopenblas-base libopenmpi-dev
    wget https://developer.download.nvidia.com/compute/redist/jp/v512/pytorch/torch-2.1.0a0+41361538.nv23.06-cp38-cp38-linux_aarch64.whl -O torch-2.1.0a0+41361538.nv23.06-cp38-cp38-linux_aarch64.whl
    pip install torch-2.1.0a0+41361538.nv23.06-cp38-cp38-linux_aarch64.whl
  3. 根据PyTorch v2.1.0 安装 Torchvision v0.16.2
    sudo apt install -y libjpeg-dev zlib1g-dev
    git clone https://github.com/pytorch/vision torchvision
    cd torchvision
    git checkout v0.16.2
    python3 setup.py install --user

        访问此页面可访问针对不同 JetPack 版本的所有不同版本的PyTorch 。有关PyTorch, Torchvision 兼容性的更详细列表,请点击此处。

七、在 NVIDIA Jetson 上使用TensorRT

        在Ultralytics 支持的所有模型导出格式中,TensorRT 在使用英伟达 Jetson 设备时推理性能最佳,我们建议在使用 Jetson 时使用TensorRT 。我们还在此处提供了有关TensorRT 的详细文档。

八、将模型转换为TensorRT 并运行推理

        PyTorch 格式的YOLOv8n 模型转换为TensorRT 格式,以便使用导出的模型进行推理。

示例

from ultralytics import YOLO# Load a YOLOv8n PyTorch model
model = YOLO('yolov8n.pt')# Export the model
model.export(format='engine')  # creates 'yolov8n.engine'# Load the exported TensorRT model
trt_model = YOLO('yolov8n.engine')# Run inference
results = trt_model('https://ultralytics.com/images/bus.jpg')
# Export a YOLOv8n PyTorch model to TensorRT format
yolo export model=yolov8n.pt format=engine  # creates 'yolov8n.engine'# Run inference with the exported model
yolo predict model=yolov8n.engine source='https://ultralytics.com/images/bus.jpg'

九、论据

钥匙价值说明
format'engine'格式导出到
imgsz640图像尺寸标量或(高,宽)列表,即(640,480)
halfFalseFP16 量化

十、英伟达 Jetson OrinYOLOv8 基准测试

        YOLOv8 以下基准测试由Ultralytics 团队在 3 种不同的模型格式上运行,测量速度和精度:PyTorch 、TorchScript 和TensorRT 。基准测试在搭载 Jetson Orin NX 16GB 设备的 Seeed Studio reComputer J4012 上运行,精度为 FP32,默认输入图像大小为 640。

模型格式现状大小(MB)mAP50-95(B)推理时间(毫秒/分钟)
YOLOv8nPyTorch6.20.447314.3
YOLOv8nTorchScript12.40.452013.3
YOLOv8nTensorRT13.60.45208.7
YOLOv8sPyTorch21.50.586818
YOLOv8sTorchScript43.00.597123.9
YOLOv8sTensorRT44.00.596514.82
YOLOv8mPyTorch49.70.610136.4
YOLOv8mTorchScript99.20.612553.34
YOLOv8mTensorRT100.30.612333.28
YOLOv8lPyTorch83.70.658861.3
YOLOv8lTorchScript167.20.658785.21
YOLOv8lTensorRT168.30.659151.34
YOLOv8xPyTorch130.50.665093
YOLOv8xTorchScript260.70.6651135.3
YOLOv8xTensorRT261.80.664584.5

        该表显示了三种不同格式(PyTorch,TorchScript,TensorRT )下的五个不同模型(YOLOv8n,YOLOv8s,YOLOv8m,YOLOv8l,YOLOv8x )的基准结果,并给出了每种组合的状态、大小、mAP50-95(B) 指标和推理时间。

        请访问此链接,查看 Seeed Studio 在不同版本的英伟达™(NVIDIA®)Jetson 硬件上运行的更多基准测试结果。

十一、复制我们的结果

        要在所有导出格式上重现上述Ultralytics 基准,请运行此代码:

示例

from ultralytics import YOLO# Load a YOLOv8n PyTorch model
model = YOLO('yolov8n.pt')# Benchmark YOLOv8n speed and accuracy on the COCO8 dataset for all all export formats
results = model.benchmarks(data='coco8.yaml', imgsz=640)
# Benchmark YOLOv8n speed and accuracy on the COCO8 dataset for all all export formats
yolo benchmark model=yolov8n.pt data=coco8.yaml imgsz=640

备注

        目前只有PyTorch 、Torchscript 和TensorRT 可与基准测试工具配合使用。我们将在未来进行更新,以支持其他出口。

十二、使用英伟达™ Jetson 时的最佳实践

        在使用英伟达™(NVIDIA®)Jetson 时,需要遵循一些最佳实践,以便在运行YOLOv8 的英伟达™(NVIDIA®)Jetson 上实现最高性能。

  1. 启用 MAX 功率模式

    sudo nvpmodel -m 0

    在 Jetson 上启用 MAX Power 模式将确保所有 CPU 和 GPU 内核都处于开启状态。

  2. 启用 Jetson 时钟

    sudo jetson_clocks

    启用 Jetson Clocks 可确保所有 CPU 和 GPU 内核都以最高频率运行。

  3. 安装 Jetson Stats 应用程序

    我们可以使用 jetson stats 应用

    sudo apt update
    sudo pip install jetson-stats
    sudo reboot
    jtop

    程序监控系统组件的温度,检查其他系统细节,如查看 CPU、GPU、RAM 利用率,更改电源模式,设置为最大时钟,检查 JetPack 信息等。

十三、下一步工作

        恭喜您在 NVIDIA Jetson 上成功设置YOLOv8 !如需进一步学习和支持,请访问Ultralytics YOLOv8 Docs 获取更多指南!

这篇关于Ultralytics YOLOv8 英伟达™ Jetson®处理器部署的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/928954

相关文章

UnrealScriptIDE调试环境部署

先安装vs2010   再安装VSIsoShell.exe, 下载地址 https://pan.baidu.com/s/10kPNUuDGTbWXbz7Nos-1WA       fd3t   最后安装unside,下载地址 https://archive.codeplex.com/?p=uside  安装中间有一步选择Binary文件夹要选对路径。   安装好以后,启动 UDKDe

YOLOv8改进 | SPPF | 具有多尺度带孔卷积层的ASPP【CVPR2018】

💡💡💡本专栏所有程序均经过测试,可成功执行💡💡💡 专栏目录 :《YOLOv8改进有效涨点》专栏介绍 & 专栏目录 | 目前已有40+篇内容,内含各种Head检测头、损失函数Loss、Backbone、Neck、NMS等创新点改进——点击即可跳转 Atrous Spatial Pyramid Pooling (ASPP) 是一种在深度学习框架中用于语义分割的网络结构,它旨

青龙面板部署通用教程,含服务器、路由器、X86等部署方法

1. 拉取镜像/更新镜像 docker pull whyour/qinglong:latest 2. 删除镜像 docker rmi whyour/qinglong:latest 3. 启动容器 普通服务器 docker run -dit \-v $PWD/ql/config:/ql/config \-v $PWD/ql/log:/ql/log \-v $PWD/ql/db:

宝塔面板部署青龙面板教程【简单易上手】

首先,你得有一台部署了宝塔面板的服务器(自己用本地电脑也可以)。 宝塔面板部署自行百度一下,很简单,这里就不走流程了,官网版本就可以,无需开心版。 首先,打开宝塔面板的软件商店,找到下图这个软件(Docker管理器)安装,青龙面板还是安装在docker里,这里依赖宝塔面板安装和管理docker。 安装完成后,进入SSH终端管理,输入代码安装青龙面板。ssh可以直接宝塔里操作,也可以安装ssh连接

手把手教你入门vue+springboot开发(五)--docker部署

文章目录 前言一、前端打包二、后端打包三、docker运行总结 前言 前面我们重点介绍了vue+springboot前后端分离开发的过程,本篇我们结合docker容器来研究一下打包部署过程。 一、前端打包 在VSCode的命令行中输入npm run build可以打包前端代码,出现下图提示表示打包完成。 打包成功后会在前端工程目录生成dist目录,如下图所示: 把

[Centos7] 部署Zabbix5.0

目录 0 卸载 Zabbix1 准备工作1.1 关闭防火墙1.2 关闭SELinux1.3 重启服务器1.4 安装MySQL 2 配置 Zabbix yum 源2.1 安装zabbix的软件仓库配置包2.2 安装 Software Collections 仓库2.3 修改 Zabbix 仓库配置文件 3 安装 Zabbix3.1 遇到报错Requires: libmysqlclient.so

[分布式网络通讯框架]----ZooKeeper下载以及Linux环境下安装与单机模式部署(附带每一步截图)

首先进入apache官网 点击中间的see all Projects->Project List菜单项进入页面 找到zookeeper,进入 在Zookeeper主页的顶部点击菜单Project->Releases,进入Zookeeper发布版本信息页面,如下图: 找到需要下载的版本 进行下载既可,这里我已经下载过3.4.10,所以以下使用3.4.10进行演示其他的步骤。

springboot学习02-[热部署和日志]

热部署和日志 热部署 热部署

关于修改计算机的处理器数和最大内存数的问题

问题描述: 刚开始本来是想让计算机的运行速度运行的快点,于是在网上搜索如何让计算机的运行速度更快,找到了一种关于修改计算机内存数和计算机的处理核数可以让计算机运行的更快。 遇到问题: 当我通过命令msconfig →引导→高级选项→勾选了处理器数和最大内存数,然后重启,结构整个计算机都卡的要死,于是记录下来。网上的答案有时候真的是很不负责任,也有可能是自己技术不到位。 结果:取消处理器和内

上位机图像处理和嵌入式模块部署(mcu和swd接口)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】         最近学习mcu的时候,接触了不少调试器,这里面有daplink、st-link v2、j-link v9。虽然模块的形状可能不太一样,但是硬件的连线都差不多,都是mcu上的3.3v、clk、dio和gnd四根连线。出于好奇,今天花了点时间了解了一下debug port、sw