1亮點(diǎn)在哪里?
- 引入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呢?這是因?yàn)槭止ふ?正確"結(jié)構(gòu)過于低效且乏味,因此DECI的研究人員采用AutoNAC搜索新的目標(biāo)檢測模型,同時最小化在NVIDIA T4上的推理延遲。
為構(gòu)建YOLO-NAS,作者構(gòu)建了一個深不可測的搜索空間(1014)以探索精度-延遲上限。最終,作者從中三樣三個"前沿觀察點(diǎn)"構(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)練以驗(yàn)證其處理復(fù)雜檢測任務(wù)的能力。
下圖對比了YOLO-NAS與YOLOv8、YOLOv5、YOLOv7在Roboflow100數(shù)據(jù)集上的性能。
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ù)的絕佳起點(diǎn)。
5上手體驗(yàn)
看完上面的介紹有沒有“一頭霧水”的感覺,哈哈,上手體驗(yàn)一把。
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é)果了。
當(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)一下即可。需要注意以下兩點(diǎn),通過官方工具導(dǎo)出的"bboxes"已經(jīng)是"xyxy"格式了,所以不需要再執(zhí)行make_grid
, distance2bbox
等操作了,直接進(jìn)行"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文章
259瀏覽量
20022 -
目標(biāo)檢測
+關(guān)注
關(guān)注
0文章
209瀏覽量
15611
原文標(biāo)題:超越Y(jié)OLOv8!YOLO-NAS:下一代目標(biāo)檢測基礎(chǔ)模型
文章出處:【微信號:CVer,微信公眾號:CVer】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論