1亮點在哪里?
- 引入QARepVGG同時利用重參數(shù)與8-bit量化的優(yōu)勢;
- 采用AutoNAC搜索最優(yōu)尺寸、每個stage的結(jié)構(gòu),含模塊類型、數(shù)量以及通道數(shù);
- 采用混合量化機制進行模型量化,既考慮了每一層對精度與延遲的影響,也考慮了8-bit與16-bit之間切換對整體延遲的影響;
- 預(yù)訓(xùn)練方案:automatically labeled data, self-distillation, and large datasets
總而言之,YOLO-NAS達成目標檢測任務(wù)新高度,取得了最佳的精度-延遲均衡。值得一提,YOLO-NAS與TensorRT推理引擎完全兼容,且支持INT8量化,達成前所未有的運行時性能。
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搜索新的目標檢測模型,同時最小化在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偽標簽數(shù)據(jù);(2)知識蒸餾;(3) DFL,即Distribution Focal Loss
在訓(xùn)練數(shù)據(jù)方面,作者基于RoboFlow100(由100個不同領(lǐng)域的數(shù)據(jù)集構(gòu)成)進行訓(xùn)練以驗證其處理復(fù)雜檢測任務(wù)的能力。
下圖對比了YOLO-NAS與YOLOv8、YOLOv5、YOLOv7在Roboflow100數(shù)據(jù)集上的性能。
4量化感知
YOLO-NAS采用了量化感知模塊與Selective量化以達成最優(yōu)性能,即基于延遲-精度均衡考慮在特定層進行了"Skipping量化"。當轉(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é)果了。
當然,如果出了意外,可以試試用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
等操作了,直接進行"NMS
"即可。但是,OpenCV的NMS要求輸入的BBOXES格式為xywh
,所以還需要再改一下,^^哈哈哈^^
最后,附上YOLO-NAS的網(wǎng)絡(luò)結(jié)構(gòu)示意圖,這里僅給出了YOLO-NAS-S的示意圖,另外兩個跟這個整體類似,區(qū)別在于Block改為了YOLOv7的ELAN且通道數(shù)更多。
審核編輯 :李倩
-
精度
+關(guān)注
關(guān)注
0文章
261瀏覽量
20107 -
目標檢測
+關(guān)注
關(guān)注
0文章
211瀏覽量
15674
原文標題:超越Y(jié)OLOv8!YOLO-NAS:下一代目標檢測基礎(chǔ)模型
文章出處:【微信號:CVer,微信公眾號:CVer】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
【愛芯派 Pro 開發(fā)板試用體驗】yolov8模型轉(zhuǎn)換
使用YOLOv8做目標檢測和實例分割的演示
YOLOv8 來啦!一文帶你解讀 YOLO"內(nèi)卷"期的模型選型以及在 NGC 飛槳容器中快速體驗!
在AI愛克斯開發(fā)板上用OpenVINO?加速YOLOv8分類模型
![在AI愛克斯開發(fā)板上用OpenVINO?加速<b class='flag-5'>YOLOv8</b>分類<b class='flag-5'>模型</b>](https://file1.elecfans.com/web2/M00/82/79/wKgZomRUfNiABd-qAAAT5AAjKtc607.png)
在AI愛克斯開發(fā)板上用OpenVINO?加速YOLOv8目標檢測模型
![在AI愛克斯開發(fā)板上用OpenVINO?加速<b class='flag-5'>YOLOv8</b><b class='flag-5'>目標</b><b class='flag-5'>檢測</b><b class='flag-5'>模型</b>](https://file1.elecfans.com/web2/M00/82/B1/wKgZomRdkeGAd8S2AAAm8DCq3H4572.png)
YOLOv8版本升級支持小目標檢測與高分辨率圖像輸入
![<b class='flag-5'>YOLOv8</b>版本升級支持小<b class='flag-5'>目標</b><b class='flag-5'>檢測</b>與高分辨率圖像輸入](https://file1.elecfans.com/web2/M00/82/CE/wKgZomRi9ZiAQ_8gAABAHdjYHvo467.png)
AI愛克斯開發(fā)板上使用OpenVINO加速YOLOv8目標檢測模型
![AI愛克斯開發(fā)板上使用OpenVINO加速<b class='flag-5'>YOLOv8</b><b class='flag-5'>目標</b><b class='flag-5'>檢測</b><b class='flag-5'>模型</b>](https://file1.elecfans.com/web2/M00/88/B7/wKgaomRwIXSAVKmcAAAm8DCq3H4143.png)
在AI愛克斯開發(fā)板上用OpenVINO?加速YOLOv8-seg實例分割模型
![在AI愛克斯開發(fā)板上用OpenVINO?加速<b class='flag-5'>YOLOv8</b>-seg實例分割<b class='flag-5'>模型</b>](https://file1.elecfans.com/web2/M00/89/31/wKgaomR9XDaAapBNAAAep8r2xQc078.png)
教你如何用兩行代碼搞定YOLOv8各種模型推理
![教你如何用兩行代碼搞定<b class='flag-5'>YOLOv8</b>各種<b class='flag-5'>模型</b>推理](https://file1.elecfans.com/web2/M00/8A/05/wKgZomSOf3iAf_ATAABcweWVywE605.png)
在AI愛克斯開發(fā)板上用OpenVINO?加速YOLOv8-seg實例分割模型
![在AI愛克斯開發(fā)板上用OpenVINO?加速<b class='flag-5'>YOLOv8</b>-seg實例分割<b class='flag-5'>模型</b>](https://file1.elecfans.com/web2/M00/8B/BE/wKgZomSeQamARiyDAAAep8r2xQc619.png)
三種主流模型部署框架YOLOv8推理演示
基于YOLOv8的自定義醫(yī)學(xué)圖像分割
![基于<b class='flag-5'>YOLOv8</b>的自定義醫(yī)學(xué)圖像分割](https://file1.elecfans.com/web2/M00/B6/E6/wKgaomWCWJiAM1oBAAARpnn1nSs514.jpg)
評論