0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

英偉達Jetson設(shè)備上的YOLOv8性能基準測試

柴火創(chuàng)客空間 ? 來源:柴火創(chuàng)客空間 ? 2023-04-12 14:27 ? 次閱讀

我們將談?wù)撛诓煌腘VIDIA Jetson 系列設(shè)備上運行YOLOv8 模型的性能基準測試。我們特別選擇了3種不同的Jetson設(shè)備進行測試,它們是 Jetson AGX Orin 32GB H01套件、使用Orin NX 16GB構(gòu)建的reComputer J4012,以及使用Xavier NX 8GB構(gòu)建的reComputer J2021。

什么是 YOLOv8 ?

YOLOv8 由 Ultralytics 公司開發(fā),是一個尖端的、最先進的(SOTA)模型,它建立在以前的 YOLO 版本的成功基礎(chǔ)上,并引入了新的功能和改進,以進一步提高性能和靈活性。YOLOv8 被設(shè)計為快速、準確和易于使用,使其成為廣泛的物體檢測、圖像分割和圖像分類任務(wù)的絕佳選擇。

YOLOv8 模型

YOLOv8有不同的模型類型,基于參數(shù)的數(shù)量,將關(guān)系到模型的準確性。因此,模型越大,它就越準確。例如,YOLOv8x是最大的模型,它在所有模型中具有最高的準確性。

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

為什么我們需要進行性能基準測試 ?

通過運行性能基準,你可以知道在特定設(shè)備上運行的特定模型類型可以獲得多大的推理性能。這對于NVIDIA Jetson平臺等嵌入式設(shè)備來說更為重要,因為如果你知道你的應(yīng)用程序想要使用的確切模型類型,你就可以決定哪種硬件適合運行該模型。

為什么我們需要 TensorRT基準測試 ?

TensorRT是由NVIDIA開發(fā)的一個庫,用于在NVIDIA GPU上提高推理速度。TensorRT建立在CUDA之上,與運行PyTorch和ONNX等本地模型相比,在許多實時服務(wù)和嵌入式應(yīng)用中,它的推理速度可以提高2到3倍。

在NVIDIA Jetson 設(shè)備上安裝YOLOv8

第1步:按照Wiki中的介紹步驟,在Jetson設(shè)備中安裝JetPack 系統(tǒng)。

第2步:按照wiki的 "安裝必要的軟件包 "和 "安裝PyTorch和Torchvision "部分,在Jetson設(shè)備上安裝YOLOv8。

如何運行基準測試 ?

當(dāng)你在NVIDIA Jetson設(shè)備上安裝帶有SDK組件的NVIDIA JetPack時,會有一個名為trtexec的工具。該工具實際上位于隨SDK組件安裝而來的TensorRT內(nèi)。這是一個使用TensorRT的工具,無需開發(fā)自己的應(yīng)用程序。

trtexec工具有三個主要用途

在隨機或用戶提供的輸入數(shù)據(jù)上對網(wǎng)絡(luò)進行基準測試。

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

從構(gòu)建器中生成一個序列化的時序緩存。

在這里,我們可以使用trtexec工具對不同參數(shù)的模型進行快速基準測試。但首先,你需要有一個ONNX模型,我們可以通過使用Ultralytics YOLOv8來生成這個ONNX模型。

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

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

這將下載最新的yolov8s.pt模型并轉(zhuǎn)換為ONNX格式。

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

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

比如說:

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

這將輸出性能結(jié)果,如下所示,同時生成一個.引擎文件。默認情況下,它將把ONNX轉(zhuǎn)換為FP32精度的TensorRT優(yōu)化的文件,你可以看到輸出如下:

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

在這里,我們可以把平均延遲看作是7.2ms,換算成139FPS。

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

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

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

在這里,我們可以把平均延遲看作是3.2ms,換算成313FPS。

如果你也想在FP16精度下運行,你可以執(zhí)行如下命令:

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

要檢查YOLOv8模型的默認PyTorch版本的性能,你可以簡單地運行推理并檢查延遲,如下所示:

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

在這里,你可以根據(jù)本頁面上的表格來改變來源。

另外,如果你不指定來源,它將默認使用一個名為 "bus.jpg "的圖像。

基準測試結(jié)果

在進入基準測試結(jié)果之前,我將快速強調(diào)我們用于基準測試過程的每臺設(shè)備的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

現(xiàn)在我們將看一下基準圖,以比較YOLOv8在單個設(shè)備上的性能。我已經(jīng)用640×640的默認PyTorch模型文件進行了所有的基準測試,如上文所解釋的那樣轉(zhuǎn)換為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可以帶來性能上的大幅提升。

接下來,我們將從不同的角度看一下基準圖,在不同的設(shè)備上比較每個YOLOv8模型的性能。

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

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

如果我們比較一下最大的YOLOv8模型,即在上述3個設(shè)備上運行的YOLOv8x,我們會得到以下結(jié)果:

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

正如你所看到的,在最大的YOLOv8x模型上使用INT8精度,我們可以在AGX Orin 32GB上實現(xiàn)約75的FPS,這對于一個嵌入式設(shè)備來說是非常令人印象深刻的!我們可以看到,在AGX Orin 32GB上的FPS為1.5,而在AGX Orin 32GB上的FPS為2.5!

AI 邊緣計算盒子

reComputer J2021-Edge AI 設(shè)備

J2021是一款采用Jetson Xavier NX 8GB模塊的邊緣AI設(shè)備,可提供高達21TOPS算力,豐富的IO端口包括USB 3.1端口(4x)、用于WIFI的M.2接口、用于SSD的M.2接口、RTC、CAN樹莓派 GPIO 40針擴展接口等;外殼采用鋁合金材質(zhì)帶冷卻風(fēng)扇,預(yù)裝JetPack系統(tǒng),可以作為NVIDIA Jetson Xavier NX Dev Kit的替代品,為您的AI應(yīng)用開發(fā)和部署提供支持。

reComputer J4012-Edge AI 邊緣計算設(shè)備

reComputer J4012是一款采用NVIDIA Jetson Orin NX 16GB模塊的邊緣AI設(shè)備,可提供高達100 TOPS算力的AI性能,并擁有豐富的IO接口,包括USB 3.2端口(4x)、HDMI 2.1、用于WIFI的M.2接口、用于SSD的M.2接口、RTC、CAN、樹莓派GPIO 40針接口等;外殼采用鋁合金材質(zhì)自帶散熱風(fēng)扇,預(yù)裝NVIDIA JetPack的Jetpack系統(tǒng)。作為NVIDIA Jetson生態(tài)系統(tǒng)的一部分,reComputer J4012可以為您的AI應(yīng)用開發(fā)和部署提供支持。

寫在最后

根據(jù)上述所有基準測試,多年來,在英偉達Jetson Orin平臺等嵌入式設(shè)備上,推理性能似乎有了顯著提高,現(xiàn)在我們幾乎可以用這種緊湊的設(shè)備來匹配服務(wù)器級別的性能了!

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • AI
    AI
    +關(guān)注

    關(guān)注

    87

    文章

    30887

    瀏覽量

    269062
  • 基準測試
    +關(guān)注

    關(guān)注

    0

    文章

    19

    瀏覽量

    7587
  • 模型
    +關(guān)注

    關(guān)注

    1

    文章

    3243

    瀏覽量

    48836
  • 英偉達
    +關(guān)注

    關(guān)注

    22

    文章

    3776

    瀏覽量

    91079
  • 邊緣計算
    +關(guān)注

    關(guān)注

    22

    文章

    3092

    瀏覽量

    48954

原文標題:邊緣計算 | 英偉達Jetson設(shè)備上的YOLOv8性能基準測試

文章出處:【微信號:ChaiHuoMakerSpace,微信公眾號:柴火創(chuàng)客空間】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    【愛芯派 Pro 開發(fā)板試用體驗】yolov8模型轉(zhuǎn)換

    通過開發(fā)板預(yù)制的ax_run_model 工具,測試模型速度和精度。 示例都是yolov5的,沒有yolov8,模型怎么運行還需進一步研究。
    發(fā)表于 11-20 12:19

    使用YOLOv8做目標檢測和實例分割的演示

    YOLOv8是來自Ultralytics的最新的基于YOLO的對象檢測模型系列,提供最先進的性能。
    的頭像 發(fā)表于 02-06 10:11 ?7492次閱讀

    YOLOv8自定義數(shù)據(jù)集訓(xùn)練到模型部署推理簡析

    如果你只是想使用而不是開發(fā),強烈推薦通過pip安裝方式獲取YOLOv8包!YOLOv8安裝命令行
    的頭像 發(fā)表于 03-24 09:27 ?4664次閱讀

    在AI愛克斯開發(fā)板用OpenVINO?加速YOLOv8目標檢測模型

    《在 AI 愛克斯開發(fā)板用 OpenVINO 加速 YOLOv8 分類模型》介紹了在 AI 愛克斯開發(fā)板使用 OpenVINO 開發(fā)套件部署并測評 YOLOv8 的分類模型,本文將
    的頭像 發(fā)表于 05-12 09:08 ?1326次閱讀
    在AI愛克斯開發(fā)板<b class='flag-5'>上</b>用OpenVINO?加速<b class='flag-5'>YOLOv8</b>目標檢測模型

    YOLOv8版本升級支持小目標檢測與高分辨率圖像輸入

    YOLOv8版本最近版本又更新了,除了支持姿態(tài)評估以外,通過模型結(jié)構(gòu)的修改還支持了小目標檢測與高分辨率圖像檢測。原始的YOLOv8模型結(jié)構(gòu)如下。
    的頭像 發(fā)表于 05-16 11:14 ?1.2w次閱讀
    <b class='flag-5'>YOLOv8</b>版本升級支持小目標檢測與高分辨率圖像輸入

    AI愛克斯開發(fā)板使用OpenVINO加速YOLOv8目標檢測模型

    《在AI愛克斯開發(fā)板用OpenVINO加速YOLOv8分類模型》介紹了在AI愛克斯開發(fā)板使用OpenVINO 開發(fā)套件部署并測評YOLOv8的分類模型,本文將介紹在AI愛克斯開發(fā)板
    的頭像 發(fā)表于 05-26 11:03 ?1251次閱讀
    AI愛克斯開發(fā)板<b class='flag-5'>上</b>使用OpenVINO加速<b class='flag-5'>YOLOv8</b>目標檢測模型

    教你如何用兩行代碼搞定YOLOv8各種模型推理

    大家好,YOLOv8 框架本身提供的API函數(shù)是可以兩行代碼實現(xiàn) YOLOv8 模型推理,這次我把這段代碼封裝成了一個類,只有40行代碼左右,可以同時支持YOLOv8對象檢測、實例分割、姿態(tài)評估模型的GPU與CPU
    的頭像 發(fā)表于 06-18 11:50 ?3065次閱讀
    教你如何用兩行代碼搞定<b class='flag-5'>YOLOv8</b>各種模型推理

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

    深度學(xué)習(xí)模型部署有OpenVINO、ONNXRUNTIME、TensorRT三個主流框架,均支持Python與C++的SDK使用。對YOLOv5~YOLOv8的系列模型,均可以通過C++推理實現(xiàn)模型
    的頭像 發(fā)表于 08-06 11:39 ?2748次閱讀

    解鎖YOLOv8修改+注意力模塊訓(xùn)練與部署流程

    很多人也想跟修改YOLOv5源碼一樣的方式去修改YOLOv8的源碼,但是在github上面卻發(fā)現(xiàn)找到的YOLOv8項目下面TAG分支是空的
    的頭像 發(fā)表于 08-11 14:14 ?4362次閱讀
    解鎖<b class='flag-5'>YOLOv8</b>修改+注意力模塊訓(xùn)練與部署流程

    如何修改YOLOv8的源碼

    很多人也想跟修改YOLOv5源碼一樣的方式去修改YOLOv8的源碼,但是在github上面卻發(fā)現(xiàn)找到的YOLOv8項目下面TAG分支是空的,然后就直接從master/main下面把源碼克隆出來一通
    的頭像 發(fā)表于 09-04 10:02 ?2004次閱讀
    如何修改<b class='flag-5'>YOLOv8</b>的源碼

    YOLOv8實現(xiàn)任意目錄下命令行訓(xùn)練

    當(dāng)你使用YOLOv8命令行訓(xùn)練模型的時候,如果當(dāng)前執(zhí)行的目錄下沒有相關(guān)的預(yù)訓(xùn)練模型文件,YOLOv8就會自動下載模型權(quán)重文件。這個是一個正常操作,但是你還會發(fā)現(xiàn),當(dāng)你在參數(shù)model中指定已有
    的頭像 發(fā)表于 09-04 10:50 ?1114次閱讀
    <b class='flag-5'>YOLOv8</b>實現(xiàn)任意目錄下命令行訓(xùn)練

    日本yolov8用戶案例

    通過模擬人手臂的姿態(tài)來控制機械臂。演示的內(nèi)容是使用USB攝像頭通過圖像識別估計手臂,并將mycobot制作成類似的手臂形狀。 視頻鏈接:https://youtu.be/h1H6pSvhQxQ 該項目主要使用Ultralytics YOLOv8來進行姿態(tài)的估計,結(jié)合機器視覺和機械臂的控制
    的頭像 發(fā)表于 12-18 15:51 ?635次閱讀
    日本<b class='flag-5'>yolov8</b>用戶案例

    基于YOLOv8的自定義醫(yī)學(xué)圖像分割

    YOLOv8是一種令人驚嘆的分割模型;它易于訓(xùn)練、測試和部署。在本教程中,我們將學(xué)習(xí)如何在自定義數(shù)據(jù)集使用YOLOv8。但在此之前,我想告訴你為什么在存在其他優(yōu)秀的分割模型時應(yīng)該使用
    的頭像 發(fā)表于 12-20 10:51 ?781次閱讀
    基于<b class='flag-5'>YOLOv8</b>的自定義醫(yī)學(xué)圖像分割

    YOLOv8實現(xiàn)旋轉(zhuǎn)對象檢測

    YOLOv8框架在在支持分類、對象檢測、實例分割、姿態(tài)評估的基礎(chǔ)更近一步,現(xiàn)已經(jīng)支持旋轉(zhuǎn)對象檢測(OBB),基于DOTA數(shù)據(jù)集,支持航拍圖像的15個類別對象檢測,包括車輛、船只、典型各種場地等。包含2800多張圖像、18W個實例對象。
    的頭像 發(fā)表于 01-11 10:43 ?1826次閱讀
    <b class='flag-5'>YOLOv8</b>實現(xiàn)旋轉(zhuǎn)對象檢測

    基于OpenCV DNN實現(xiàn)YOLOv8的模型部署與推理演示

    基于OpenCV DNN實現(xiàn)YOLOv8推理的好處就是一套代碼就可以部署在Windows10系統(tǒng)、烏班圖系統(tǒng)、Jetson的Jetpack系統(tǒng)
    的頭像 發(fā)表于 03-01 15:52 ?1629次閱讀
    基于OpenCV DNN實現(xiàn)<b class='flag-5'>YOLOv8</b>的模型部署與推理演示