0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

英伟达Jetson设备上的YOLOv8性能基准测试

柴火创客空间 来源:柴火创客空间 2023-04-12 14:27 次阅读

我们将谈论在不同的NVIDIA Jetson 系列设备上运行YOLOv8 模型的性能基准测试。我们特别选择了3种不同的Jetson设备进行测试,它们是 Jetson AGX Orin 32GB H01套件、使用Orin NX 16GB构建的reComputer J4012,以及使用Xavier NX 8GB构建的reComputer J2021。

什么是 YOLOv8 ?

YOLOv8 由 Ultralytics 公司开发,是一个尖端的、最先进的(SOTA)模型,它建立在以前的 YOLO 版本的成功基础上,并引入了新的功能和改进,以进一步提高性能和灵活性。YOLOv8 被设计为快速、准确和易于使用,使其成为广泛的物体检测、图像分割和图像分类任务的绝佳选择。

YOLOv8 模型

YOLOv8有不同的模型类型,基于参数的数量,将关系到模型的准确性。因此,模型越大,它就越准确。例如,YOLOv8x是最大的模型,它在所有模型中具有最高的准确性。

bea07312-d574-11ed-bfe3-dac502259ad0.png

为什么我们需要进行性能基准测试 ?

通过运行性能基准,你可以知道在特定设备上运行的特定模型类型可以获得多大的推理性能。这对于NVIDIA Jetson平台等嵌入式设备来说更为重要,因为如果你知道你的应用程序想要使用的确切模型类型,你就可以决定哪种硬件适合运行该模型。

为什么我们需要 TensorRT基准测试 ?

TensorRT是由NVIDIA开发的一个库,用于在NVIDIA GPU上提高推理速度。TensorRT建立在CUDA之上,与运行PyTorch和ONNX等本地模型相比,在许多实时服务和嵌入式应用中,它的推理速度可以提高2到3倍。

在NVIDIA Jetson 设备上安装YOLOv8

第1步:按照Wiki中的介绍步骤,在Jetson设备中安装JetPack 系统。

第2步:按照wiki的 "安装必要的软件包 "和 "安装PyTorch和Torchvision "部分,在Jetson设备上安装YOLOv8。

如何运行基准测试 ?

当你在NVIDIA Jetson设备上安装带有SDK组件的NVIDIA JetPack时,会有一个名为trtexec的工具。该工具实际上位于随SDK组件安装而来的TensorRT内。这是一个使用TensorRT的工具,无需开发自己的应用程序。

trtexec工具有三个主要用途

在随机或用户提供的输入数据上对网络进行基准测试。

从模型中生成序列化的引擎。

从构建器中生成一个序列化的时序缓存。

在这里,我们可以使用trtexec工具对不同参数的模型进行快速基准测试。但首先,你需要有一个ONNX模型,我们可以通过使用Ultralytics YOLOv8来生成这个ONNX模型。

第1步:使用ONNX模型建立:

yolo mode=export model=yolov8s.pt format=onnx

这将下载最新的yolov8s.pt模型并转换为ONNX格式。

第2步:使用trtexec建立引擎文件,如下所示:

cd /usr/src/tensorrt/bin 
./trtexec  --onnx= --saveEngine=

比如说:

./trtexec --onnx=/home/nvidia/yolov8s.onnx -- saveEngine=/home/nvidia/yolov8s.engine

这将输出性能结果,如下所示,同时生成一个.引擎文件。默认情况下,它将把ONNX转换为FP32精度的TensorRT优化的文件,你可以看到输出如下:

bebe1566-d574-11ed-bfe3-dac502259ad0.png

在这里,我们可以把平均延迟看作是7.2ms,换算成139FPS。

然而,如果你想要INT8精度,提供更好的性能,你可以执行上述命令,如下所示:

./trtexec --onnx=/home/nvidia/yolov8s.onnx --saveEngine=/home/nvidia/yolov8s.engine --int8

bed05802-d574-11ed-bfe3-dac502259ad0.png

在这里,我们可以把平均延迟看作是3.2ms,换算成313FPS。

如果你也想在FP16精度下运行,你可以执行如下命令:

./trtexec --onnx=/home/nvidia/yolov8s.onnx --saveEngine=/home/nvidia/yolov8s.engine --fp16

要检查YOLOv8模型的默认PyTorch版本的性能,你可以简单地运行推理并检查延迟,如下所示:

yolo detect predict model=yolov8s.pt source='<>'

在这里,你可以根据本页面上的表格来改变来源。

另外,如果你不指定来源,它将默认使用一个名为 "bus.jpg "的图像。

基准测试结果

在进入基准测试结果之前,我将快速强调我们用于基准测试过程的每台设备的AI性能。

Jetson Device AGX Orin 32GB H01 Kit reComputer J4012 built with Orin NX 16GB reComputer J2021 built with Xavier NX 8GB
AI Performance 200TOPS 100TOPS 21TOPS

现在我们将看一下基准图,以比较YOLOv8在单个设备上的性能。我已经用640×640的默认PyTorch模型文件进行了所有的基准测试,如上文所解释的那样转换为ONNX格式。

AGX Orin 32GB H01 Kit

bef0f724-d574-11ed-bfe3-dac502259ad0.png

reComputer J4012 built with Orin NX 16GB

bf0cfe38-d574-11ed-bfe3-dac502259ad0.png

reComputer J2021 built with Xavier NX 8GB

bf228f5a-d574-11ed-bfe3-dac502259ad0.png

正如我们所看到的,TensorRT可以带来性能上的大幅提升。

接下来,我们将从不同的角度看一下基准图,在不同的设备上比较每个YOLOv8模型的性能。

bf37a99e-d574-11ed-bfe3-dac502259ad0.png

bf4e5d74-d574-11ed-bfe3-dac502259ad0.png

如果我们比较一下最大的YOLOv8模型,即在上述3个设备上运行的YOLOv8x,我们会得到以下结果:

bf676030-d574-11ed-bfe3-dac502259ad0.png

正如你所看到的,在最大的YOLOv8x模型上使用INT8精度,我们可以在AGX Orin 32GB上实现约75的FPS,这对于一个嵌入式设备来说是非常令人印象深刻的!我们可以看到,在AGX Orin 32GB上的FPS为1.5,而在AGX Orin 32GB上的FPS为2.5!

AI 边缘计算盒子

reComputer J2021-Edge AI 设备

J2021是一款采用Jetson Xavier NX 8GB模块的边缘AI设备,可提供高达21TOPS算力,丰富的IO端口包括USB 3.1端口(4x)、用于WIFI的M.2接口、用于SSD的M.2接口、RTC、CAN树莓派 GPIO 40针扩展接口等;外壳采用铝合金材质带冷却风扇,预装JetPack系统,可以作为NVIDIA Jetson Xavier NX Dev Kit的替代品,为您的AI应用开发和部署提供支持。

reComputer J4012-Edge AI 边缘计算设备

reComputer J4012是一款采用NVIDIA Jetson Orin NX 16GB模块的边缘AI设备,可提供高达100 TOPS算力的AI性能,并拥有丰富的IO接口,包括USB 3.2端口(4x)、HDMI 2.1、用于WIFI的M.2接口、用于SSD的M.2接口、RTC、CAN、树莓派GPIO 40针接口等;外壳采用铝合金材质自带散热风扇,预装NVIDIA JetPack的Jetpack系统。作为NVIDIA Jetson生态系统的一部分,reComputer J4012可以为您的AI应用开发和部署提供支持。

写在最后

根据上述所有基准测试,多年来,在英伟达Jetson Orin平台等嵌入式设备上,推理性能似乎有了显著提高,现在我们几乎可以用这种紧凑的设备来匹配服务器级别的性能了!

审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • AI
    AI
    +关注

    关注

    87

    文章

    26459

    浏览量

    264079
  • 基准测试
    +关注

    关注

    0

    文章

    12

    浏览量

    7539
  • 模型
    +关注

    关注

    1

    文章

    2704

    浏览量

    47691
  • 英伟达
    +关注

    关注

    22

    文章

    3330

    浏览量

    87783
  • 边缘计算
    +关注

    关注

    22

    文章

    2804

    浏览量

    46017

原文标题:边缘计算 | 英伟达Jetson设备上的YOLOv8性能基准测试

文章出处:【微信号:ChaiHuoMakerSpace,微信公众号:柴火创客空间】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    00032 Jetson TX2 NX开发者套件!TX2的性能,NANO的尺寸! #英伟 #jetson

    英伟
    学习电子知识
    发布于 :2023年07月02日 13:21:19

    瑞芯微和英伟的边缘计算盒子方案,你会选哪一家的?

    机,miniPC整机,工控一体机,零售机和快递柜等需要边缘计算的场景。 #3英伟NVIDIA Jetson Xavier NX 21T算力机器人无人值守设备智能边缘盒子 方案
    发表于 09-29 14:31

    【爱芯派 Pro 开发板试用体验】yolov8模型转换

    通过开发板预制的ax_run_model 工具,测试模型速度和精度。 示例都是yolov5的,没有yolov8,模型怎么运行还需进一步研究。
    发表于 11-20 12:19

    使用YOLOv8做目标检测和实例分割的演示

    YOLOv8是来自Ultralytics的最新的基于YOLO的对象检测模型系列,提供最先进的性能
    的头像 发表于 02-06 10:11 5978次阅读

    YOLOv8自定义数据集训练到模型部署推理简析

    如果你只是想使用而不是开发,强烈推荐通过pip安装方式获取YOLOv8包!YOLOv8安装命令行
    的头像 发表于 03-24 09:27 3746次阅读

    在AI爱克斯开发板上用OpenVINO™加速YOLOv8目标检测模型

    《在 AI 爱克斯开发板上用 OpenVINO 加速 YOLOv8 分类模型》介绍了在 AI 爱克斯开发板上使用 OpenVINO 开发套件部署并测评 YOLOv8 的分类模型,本文将介绍在 AI 爱克斯开发板上使用 OpenVINO 加速
    的头像 发表于 05-12 09:08 849次阅读
    在AI爱克斯开发板上用OpenVINO™加速<b class='flag-5'>YOLOv8</b>目标检测模型

    AI爱克斯开发板上使用OpenVINO加速YOLOv8目标检测模型

    《在AI爱克斯开发板上用OpenVINO加速YOLOv8分类模型》介绍了在AI爱克斯开发板上使用OpenVINO 开发套件部署并测评YOLOv8的分类模型,本文将介绍在AI爱克斯开发板上使用OpenVINO加速YOLOv8目标检
    的头像 发表于 05-26 11:03 720次阅读
    AI爱克斯开发板上使用OpenVINO加速<b class='flag-5'>YOLOv8</b>目标检测模型

    一文彻底搞懂YOLOv8【网络结构+代码+实操】

    从上面可以看出,YOLOv8 主要参考了最近提出的诸如 YOLOX、YOLOv6、YOLOv7 和 PPYOLOE 等算法的相关设计,本身的创新点不多,偏向工程实践,主推的还是 ultralytics 这个框架本身。
    的头像 发表于 06-15 17:15 6733次阅读
    一文彻底搞懂<b class='flag-5'>YOLOv8</b>【网络结构+代码+实操】

    教你如何用两行代码搞定YOLOv8各种模型推理

    大家好,YOLOv8 框架本身提供的API函数是可以两行代码实现 YOLOv8 模型推理,这次我把这段代码封装成了一个类,只有40行代码左右,可以同时支持YOLOv8对象检测、实例分割、姿态评估模型的GPU与CPU上推理演示。
    的头像 发表于 06-18 11:50 2084次阅读
    教你如何用两行代码搞定<b class='flag-5'>YOLOv8</b>各种模型推理

    目标检测算法再升级!YOLOv8保姆级教程一键体验

    YOLO作为一种基于图像全局信息进行预测的目标检测系统,始终保持着极高的迭代更新率,从YOLOv5到YOLOv8,本次升级主要包括结构算法、命令行界面、PythonAPI等。具体到YOLOv8,它可
    的头像 发表于 02-28 11:16 1486次阅读
    目标检测算法再升级!<b class='flag-5'>YOLOv8</b>保姆级教程一键体验

    三种主流模型部署框架YOLOv8推理演示

    深度学习模型部署有OpenVINO、ONNXRUNTIME、TensorRT三个主流框架,均支持Python与C++的SDK使用。对YOLOv5~YOLOv8的系列模型,均可以通过C++推理实现模型
    的头像 发表于 08-06 11:39 1844次阅读

    解锁YOLOv8修改+注意力模块训练与部署流程

    很多人也想跟修改YOLOv5源码一样的方式去修改YOLOv8的源码,但是在github上面却发现找到的YOLOv8项目下面TAG分支是空的
    的头像 发表于 08-11 14:14 2683次阅读
    解锁<b class='flag-5'>YOLOv8</b>修改+注意力模块训练与部署流程

    如何修改YOLOv8的源码

    很多人也想跟修改YOLOv5源码一样的方式去修改YOLOv8的源码,但是在github上面却发现找到的YOLOv8项目下面TAG分支是空的,然后就直接从master/main下面把源码克隆出来一通
    的头像 发表于 09-04 10:02 1219次阅读
    如何修改<b class='flag-5'>YOLOv8</b>的源码

    基于YOLOv8的自定义医学图像分割

    YOLOv8是一种令人惊叹的分割模型;它易于训练、测试和部署。在本教程中,我们将学习如何在自定义数据集上使用YOLOv8。但在此之前,我想告诉你为什么在存在其他优秀的分割模型时应该使用YOLO
    的头像 发表于 12-20 10:51 411次阅读
    基于<b class='flag-5'>YOLOv8</b>的自定义医学图像分割

    基于OpenCV DNN实现YOLOv8的模型部署与推理演示

    基于OpenCV DNN实现YOLOv8推理的好处就是一套代码就可以部署在Windows10系统、乌班图系统、Jetson的Jetpack系统
    的头像 发表于 03-01 15:52 447次阅读
    基于OpenCV DNN实现<b class='flag-5'>YOLOv8</b>的模型部署与推理演示