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

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

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

超越Y(jié)OLOv8!YOLO-NAS:下一代目標(biāo)檢測基礎(chǔ)模型

CVer ? 來源:AIWalker ? 2023-05-15 15:31 ? 次閱讀

ea9a15d4-f2cc-11ed-90ce-dac502259ad0.png

1亮點在哪里?

  • 引入QARepVGG同時利用重參數(shù)與8-bit量化的優(yōu)勢;
  • 采用AutoNAC搜索最優(yōu)尺寸、每個stage的結(jié)構(gòu),含模塊類型、數(shù)量以及通道數(shù);
  • 采用混合量化機(jī)制進(jìn)行模型量化,既考慮了每一層對精度與延遲的影響,也考慮了8-bit與16-bit之間切換對整體延遲的影響;
  • 預(yù)訓(xùn)練方案:automatically labeled data, self-distillation, and large datasets

總而言之,YOLO-NAS達(dá)成目標(biāo)檢測任務(wù)新高度,取得了最佳的精度-延遲均衡。值得一提,YOLO-NAS與TensorRT推理引擎完全兼容,且支持INT8量化,達(dá)成前所未有的運(yùn)行時性能。

Model mAP Latency (ms)
YOLO-NAS S 47.5 3.21
YOLO-NAS M 51.55 5.85
YOLO-NAS L 52.22 7.87
YOLO-NAS S INT-8 47.03 2.36
YOLO-NAS M INT-8 51.0 3.78
YOLO-NAS L INT-8 52.1 4.78

2方案簡介

受啟發(fā)于YOLOv6、YOLOv7以及YOLOv8,DECI的研究人員采用AutoNAC搜索比YOLOv8更優(yōu)的架構(gòu),即"We used machine learning to find a new deep learning architecture!"

為什么要用AutoNAC呢?這是因為手工尋找"正確"結(jié)構(gòu)過于低效且乏味,因此DECI的研究人員采用AutoNAC搜索新的目標(biāo)檢測模型,同時最小化在NVIDIA T4上的推理延遲。

為構(gòu)建YOLO-NAS,作者構(gòu)建了一個深不可測的搜索空間(1014)以探索精度-延遲上限。最終,作者從中三樣三個"前沿觀察點"構(gòu)建了YOLO-NAS-S,YOLO-NAS-M,YOLO-NAS-L。

3訓(xùn)練簡介

YOLO-NAS采用了多階段訓(xùn)練方式,包含(1)預(yù)訓(xùn)練:Object365+COCO偽標(biāo)簽數(shù)據(jù);(2)知識蒸餾;(3) DFL,即Distribution Focal Loss

在訓(xùn)練數(shù)據(jù)方面,作者基于RoboFlow100(由100個不同領(lǐng)域的數(shù)據(jù)集構(gòu)成)進(jìn)行訓(xùn)練以驗證其處理復(fù)雜檢測任務(wù)的能力。

eab1f686-f2cc-11ed-90ce-dac502259ad0.png

下圖對比了YOLO-NAS與YOLOv8、YOLOv5、YOLOv7在Roboflow100數(shù)據(jù)集上的性能。

eae4ea82-f2cc-11ed-90ce-dac502259ad0.png

eaf86878-f2cc-11ed-90ce-dac502259ad0.png

4量化感知

YOLO-NAS采用了量化感知模塊與Selective量化以達(dá)成最優(yōu)性能,即基于延遲-精度均衡考慮在特定層進(jìn)行了"Skipping量化"。當(dāng)轉(zhuǎn)換為INT8量化模型后,YOLO-NAS具有更少的精度損失(L-M-S的損失分別為0.45,0.65,0.51mAP)。

YOLO-NAS架構(gòu)和預(yù)訓(xùn)練權(quán)重定義了低延遲推理的新領(lǐng)域,也是微調(diào)下游任務(wù)的絕佳起點。

5上手體驗

看完上面的介紹有沒有“一頭霧水”的感覺,哈哈,上手體驗一把。

Step 1. 安裝super-gradients

condacreate-nsgpython=3.7
condaactivatesg
pipinstallsuper-gradients

Step 2. 命令行測試

fromsuper_gradients.trainingimportmodels
fromsuper_gradients.common.object_namesimportModels

net=models.get(Models.YOLO_NAS_S,pretrained_weights='coco')
net.predict("bus.jpg").show()

不出意外的話,你就可以看到下面的輸出結(jié)果了。

eb0efa7a-f2cc-11ed-90ce-dac502259ad0.png

當(dāng)然,如果出了意外,可以試試用ONNX推理,導(dǎo)出只需一行代碼。

models.convert_to_onnx(model=net,input_shape=(3,640,640),out_path='yolo-nas-s.onnx')

相關(guān)推理code可參考"YOLOv8-TensorRT"中的推理微調(diào)一下即可。需要注意以下兩點,通過官方工具導(dǎo)出的"bboxes"已經(jīng)是"xyxy"格式了,所以不需要再執(zhí)行make_grid, distance2bbox等操作了,直接進(jìn)行"NMS"即可。但是,OpenCV的NMS要求輸入的BBOXES格式為xywh,所以還需要再改一下,^^哈哈哈^^

eb368a04-f2cc-11ed-90ce-dac502259ad0.png

最后,附上YOLO-NAS的網(wǎng)絡(luò)結(jié)構(gòu)示意圖,這里僅給出了YOLO-NAS-S的示意圖,另外兩個跟這個整體類似,區(qū)別在于Block改為了YOLOv7的ELAN且通道數(shù)更多。

eb67bdfe-f2cc-11ed-90ce-dac502259ad0.png

審核編輯 :李倩


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

    關(guān)注

    0

    文章

    257

    瀏覽量

    19968
  • 目標(biāo)檢測
    +關(guān)注

    關(guān)注

    0

    文章

    197

    瀏覽量

    15576

原文標(biāo)題:超越Y(jié)OLOv8!YOLO-NAS:下一代目標(biāo)檢測基礎(chǔ)模型

文章出處:【微信號:CVer,微信公眾號:CVer】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

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

    嘗試將最新的yolov8模型轉(zhuǎn)換為愛芯派的模型。 環(huán)境準(zhǔn)備 準(zhǔn)備Docker環(huán)境 首先自己在任意機(jī)器上準(zhǔn)備好docker環(huán)境,詳細(xì)步驟見官網(wǎng)。 Docker 鏡像文件 準(zhǔn)備 yolo8
    發(fā)表于 11-20 12:19

    使用YOLOv8目標(biāo)檢測和實例分割的演示

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

    YOLOv8 來啦!文帶你解讀 YOLO"內(nèi)卷"期的模型選型以及在 NGC 飛槳容器中快速體驗!

    本次為大家?guī)?YOLOv8、PP-YOLOE+等 YOLO 全系列體驗。歡迎廣大開發(fā)者使用 NVIDIA 與飛槳聯(lián)合深度適配的 NGC 飛槳容器,在 NVIDIA GPU 上體
    的頭像 發(fā)表于 02-18 01:50 ?2195次閱讀

    在AI愛克斯開發(fā)板上用OpenVINO?加速YOLOv8分類模型

    本系列文章將在 AI 愛克斯開發(fā)板上使用 OpenVINO 開發(fā)套件依次部署并測評 YOLOv8 的分類模型、目標(biāo)檢測模型、實例分割
    的頭像 發(fā)表于 05-05 11:47 ?976次閱讀
    在AI愛克斯開發(fā)板上用OpenVINO?加速<b class='flag-5'>YOLOv8</b>分類<b class='flag-5'>模型</b>

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

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

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

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

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

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

    在AI愛克斯開發(fā)板上用OpenVINO?加速YOLOv8-seg實例分割模型

    《在 AI 愛克斯開發(fā)板上用 OpenVINO 加速 YOLOv8 目標(biāo)檢測模型》介紹了在 AI 愛克斯開發(fā)板上使用 OpenVINO 開發(fā)套件部署并測評
    的頭像 發(fā)表于 06-05 11:52 ?916次閱讀
    在AI愛克斯開發(fā)板上用OpenVINO?加速<b class='flag-5'>YOLOv8</b>-seg實例分割<b class='flag-5'>模型</b>

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

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

    目標(biāo)檢測算法再升級!YOLOv8保姆級教程鍵體驗

    YOLO作為種基于圖像全局信息進(jìn)行預(yù)測的目標(biāo)檢測系統(tǒng),始終保持著極高的迭代更新率,從YOLOv5到YO
    的頭像 發(fā)表于 02-28 11:16 ?2434次閱讀
    <b class='flag-5'>目標(biāo)</b><b class='flag-5'>檢測</b>算法再升級!<b class='flag-5'>YOLOv8</b>保姆級教程<b class='flag-5'>一</b>鍵體驗

    在AI愛克斯開發(fā)板上用OpenVINO?加速YOLOv8-seg實例分割模型

    《在 AI 愛克斯開發(fā)板上用 OpenVINO 加速 YOLOv8 目標(biāo)檢測模型》介紹了在 AI 愛克斯開發(fā)板上使用 OpenVINO 開發(fā)套件部署并測評
    的頭像 發(fā)表于 06-30 10:43 ?824次閱讀
    在AI愛克斯開發(fā)板上用OpenVINO?加速<b class='flag-5'>YOLOv8</b>-seg實例分割<b class='flag-5'>模型</b>

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

    部署。這里以YOLOv8為例,演示了YOLOv8對象檢測模型在OpenVINO、ONNXRUNTIME、TensorRT三個主流框架上C++推理演示效果。
    的頭像 發(fā)表于 08-06 11:39 ?2529次閱讀

    YOLOv8+OpenCV實現(xiàn)DM碼定位檢測與解析

    YOLOv8YOLO系列模型的最新王者,各種指標(biāo)全面超越現(xiàn)有對象檢測與實例分割模型,借鑒了
    的頭像 發(fā)表于 08-10 11:35 ?1185次閱讀
    <b class='flag-5'>YOLOv8</b>+OpenCV實現(xiàn)DM碼定位<b class='flag-5'>檢測</b>與解析

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

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

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

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