最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

阿里達(dá)摩院開源DAMO-YOLO:兼顧速度與精度的新目標(biāo)檢測框架

2022-11-29 15:05 作者:極市平臺  | 我要投稿

作者丨陳威華 阿里達(dá)摩院智能計(jì)算實(shí)驗(yàn)室

編輯丨極市平臺

圖片

1.簡介

DAMO-YOLO是一個(gè)兼顧速度與精度的目標(biāo)檢測框架,其效果超越了目前的一眾YOLO系列方法,在實(shí)現(xiàn)SOTA的同時(shí),保持了很高的推理速度。DAMO-YOLO是在YOLO框架基礎(chǔ)上引入了一系列新技術(shù),對整個(gè)檢測框架進(jìn)行了大幅的修改。具體包括:基于NAS搜索的新檢測backbone結(jié)構(gòu),更深的neck結(jié)構(gòu),精簡的head結(jié)構(gòu),以及引入蒸餾技術(shù)實(shí)現(xiàn)效果的進(jìn)一步提升。模型之外,DAMO-YOLO還提供高效的訓(xùn)練策略以及便捷易用的部署工具,能夠快速解決工業(yè)落地中的實(shí)際問題!

使用入口:

https://modelscope.cn/models/damo/cv_tinynas_object-detection_damoyolo/summary

代碼地址:GitHub - tinyvision/damo-yolo

圖片
圖1 DAMO-YOLO和其他YOLO系列方法的性能對比結(jié)果

2. 關(guān)鍵技術(shù)

2.1. NAS backbone: MAE-NAS

Backbone的網(wǎng)絡(luò)結(jié)構(gòu)在目標(biāo)檢測中起著重要的作用。DarkNet在早期YOLO系列中一直占據(jù)著主導(dǎo)地位。最近,一些工作也開始探索其他對檢測有效的網(wǎng)絡(luò)結(jié)構(gòu),比如YOLOv6和YOLOv7。然而,這些網(wǎng)絡(luò)仍然是人工設(shè)計(jì)的。隨著神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索技術(shù)(NAS)的發(fā)展,出現(xiàn)了許多可以用于檢測任務(wù)的NAS網(wǎng)絡(luò)結(jié)構(gòu),并且相比于傳統(tǒng)手動(dòng)設(shè)計(jì)的網(wǎng)絡(luò),NAS網(wǎng)絡(luò)結(jié)構(gòu)可以達(dá)到能好的檢測效果。因此,我們利用NAS技術(shù)搜索出合適的網(wǎng)絡(luò)結(jié)構(gòu)作為我們的DAMO-YOLO的backbone。這里我們采用的是阿里自研的MAE-NAS(開源鏈接)。MAE-NAS是一種啟發(fā)式和免訓(xùn)練的NAS搜索方法,可以用于快速大范圍搜索各種不同規(guī)模的骨干網(wǎng)絡(luò)結(jié)構(gòu)。

MAE-NAS利用信息論理論從熵的角度去評測初始化網(wǎng)絡(luò),評測過程不需要任何訓(xùn)練過程,從而解決了之前NAS搜索方法需要訓(xùn)練再評測的弊端。實(shí)現(xiàn)短時(shí)間內(nèi)大范圍的網(wǎng)絡(luò)搜索,降低搜索成本的同時(shí),也提高了可以找到的潛在更優(yōu)網(wǎng)絡(luò)結(jié)構(gòu)的可能性。特別值得注意的是,在MAE-NAS搜索中,我們使用K1K3作為基本搜索模塊。同時(shí),受YOLOv6啟發(fā),我們直接使用GPU推理延遲Latency,而不是 Flops,作為目標(biāo)預(yù)算。搜索后,我們將空間金字塔池化和焦點(diǎn)模塊應(yīng)用到最后的骨干。

下表1中列出了不同的主干的性能對比結(jié)果??梢钥吹組AE-NAS骨干網(wǎng)絡(luò)的效果要明顯優(yōu)于DarkNet網(wǎng)絡(luò)結(jié)構(gòu)。

2.2. Large Neck: RepGFPN

在FPN(Feature Pyramid Network)中,多尺度特征融合旨在對從backbone不同stage輸出的特征進(jìn)行聚合,從而增強(qiáng)輸出特征的表達(dá)能力,提升模型性能。傳統(tǒng)的FPN引入top-to-down的路徑來融合多尺度特征??紤]到單向信息流的限制,PAFPN增加了一個(gè)額外的自底向上的路徑聚合網(wǎng)絡(luò),然而增加了計(jì)算成本。為了降低計(jì)算量,YOLO系列檢測網(wǎng)絡(luò)選擇帶有CSPNet的PAFPN來融合來自backbone輸出的多尺度特征。

我們在ICLR2022的工作GiraffeDet中提出了新穎的Light-Backbone Heavy-Neck結(jié)構(gòu)并達(dá)到了SOTA性能,原因在于給出的neck結(jié)構(gòu)GFPN(Generalized FPN)能夠充分交換高級語義信息和低級空間信息。在GFPN中,多尺度特征融合發(fā)生在前一層和當(dāng)前層的不同尺度特征中,此外,log_2(n)的跨層連接提供了更有效的信息傳輸,可以擴(kuò)展到更深的網(wǎng)絡(luò)。

因此,我們嘗試將GFPN引入到DAMO-YOLO中,相比于PANet,我們?nèi)〉昧烁叩木?,這是在預(yù)期之中的。然而與之同時(shí),GFPN帶來了模型推理時(shí)延的增加,使得精度/時(shí)延的權(quán)衡并未取得較大的優(yōu)勢。通過對原始GFPN結(jié)構(gòu)的分析,我們將原因歸結(jié)為以下幾個(gè)方面:(1)不同尺度特征共享相同通道數(shù),導(dǎo)致難以給出一個(gè)最優(yōu)通道數(shù)來保證高層低分辨率特征和低層高分辨率特征具有同樣豐富的表達(dá)能力;(2)GFPN采用Queen-Fusion強(qiáng)化特征之間的融合,而Queen-Fusion包含大量的上采樣和下采樣操作來實(shí)現(xiàn)不同尺度特征的融合,極大影響推理速度;(3)GFPN中使用的3x3卷積進(jìn)行跨尺度特征融合的效率不高,不能滿足輕量級計(jì)算量的需求,需要進(jìn)一步優(yōu)化。

圖片
圖2 DAMO-YOLO整體框架圖

經(jīng)過上述分析后,我們在GFPN的基礎(chǔ)上提出了新的Efficient-RepGFPN來滿足實(shí)時(shí)目標(biāo)檢測中neck的設(shè)計(jì),主要包括以下改進(jìn):(1)不同尺度特征使用不同的通道數(shù),從而在輕量級計(jì)算量約束下,靈活控制高層特征和低層特征的表達(dá)能力;(2)刪除了Queen-Fusion中的額外的上采樣操作,在精度下降較少的情況下,較大降低模型推理時(shí)延;(3)將原始基于卷積的特征融合改進(jìn)為CSPNet連接,同時(shí)引入重參數(shù)化思想和ELAN連接,在不增加更多計(jì)算量的同時(shí),提升模型的精度。最終的Efficient-RepGFPN網(wǎng)絡(luò)結(jié)構(gòu)如上圖2所示。

Efficient-RepNGFPN的消融實(shí)驗(yàn)見下表2。

從表2-(1)可以看到,靈活控制不同尺度特征圖的通道數(shù),我們能夠取得相比于所有尺度特征圖共享相同通道數(shù)更高的精度,表明靈活控制高層特征和低層特征的表達(dá)能力能夠帶來更多收益。同時(shí),通過控制模型在同一計(jì)算量級別,我們也做了Efficient-RepGFPN中depth/width的權(quán)衡對比,當(dāng)depth=3,width=(96,192,384)時(shí),模型取得了最高精度。表2-(2)對Queen-Fusion連接進(jìn)行了消融實(shí)驗(yàn)對比,當(dāng)不增加額外的上采樣及下采樣算子時(shí),neck結(jié)構(gòu)為PANet連接。我們嘗試了只增加上采樣算子和只增加下采樣算子以及完整的Queen-Fusion結(jié)構(gòu),模型精度均取得了提升。然而,只增加上采樣算子帶來了0.6ms的推理時(shí)間增加,精度僅提升0.3,遠(yuǎn)遠(yuǎn)低于只增加額外下采樣算子的精度/時(shí)延收益,因此在最終設(shè)計(jì)上我們摒棄了額外的上采樣算子。

表2-(3)中,我們對多尺度特征融合方式進(jìn)行了實(shí)驗(yàn)對比,從表中可以看到,在低計(jì)算量約束下,CSPNet的特征融合方式要遠(yuǎn)優(yōu)于基于卷積的融合方式,同時(shí),引入重參數(shù)化思想及ELAN的連接能夠在Latency少量增加的情況下,帶來大的精度提升。

圖片
表2 (1)不同“尺度-通道數(shù)”組合結(jié)果;(2)Queen-Fusion中上下采樣的影響;(3)CSP中重采樣和ELAN的影響

2.3. Small Head: ZeroHead

在這個(gè)小節(jié),我們主要介紹DAMO-YOLO中的檢測頭(ZeroHead)。目前目標(biāo)檢測方法中,比較常見的是采用Decouple Head來作為檢測頭。Decouple Head可以實(shí)現(xiàn)了更高的 AP,但會一定程度上增加模型的計(jì)算時(shí)間。為了平衡模型速度和性能,我們進(jìn)行了下表3的實(shí)驗(yàn)來選擇合適的neck和head比重。

圖片
表3 Neck和Head不同比重對訓(xùn)練結(jié)果的影響

從表2中我們可以發(fā)現(xiàn)“大neck,小head”的結(jié)構(gòu)會獲得更好的性能。因此,我們丟棄了之前方法中常使用的Decouple Head,只保留了用于分類和回歸任務(wù)的一層線性投影層,我們稱其為ZeroHead。ZeroHead可以最大限度地壓縮檢測頭的計(jì)算量,從而省出更大的空間給更復(fù)雜的Neck,比如我們的RepGFPN neck。值得注意的是ZeroHead 本質(zhì)上可以被認(rèn)為是一種Couple Head,這也是和之前方法所采樣的Decouple Head的一個(gè)明顯不同。

2.4. Label Assignment: AlignOTA

標(biāo)簽分配(label assignment)是物體檢測中的一個(gè)關(guān)鍵組件,以往的靜態(tài)分配方法往往只考慮anchor與ground truth的IoU,這類分配方法容易導(dǎo)致分類任務(wù)的失焦,如圖3左圖所示,手的檢測框要用玩偶熊身上的點(diǎn)去做預(yù)測,這對模型來說是不合理的為難,理想中的標(biāo)簽如圖3右圖所示。另外,此類方法依賴anchor先驗(yàn),在工業(yè)應(yīng)用中,被檢物體尺度變化多端,要找到一個(gè)最合適的anchor先驗(yàn)十分繁瑣。

圖片
圖3 靜態(tài)和動(dòng)態(tài)分配差異

為了克服以上的問題,學(xué)術(shù)界涌現(xiàn)了一批利用模型的分類和回歸預(yù)測值進(jìn)行動(dòng)態(tài)分配的標(biāo)簽分配方法,該類方法消除了標(biāo)簽分配對anchor的依賴,并且在分配時(shí)同時(shí)考慮分類和回歸的影響,一定程度上消除失焦問題。OTA 是其中的一個(gè)經(jīng)典工作,其根據(jù)模型的分類和回歸預(yù)測值計(jì)算分配cost,并且使用Sinkhorn-Knopp算法求解全局最優(yōu)匹配,在復(fù)雜分配場景下性能優(yōu)異,因此這里我們采用OTA作為我們的匹配策略。

但是OTA本身也存在一定的問題,在計(jì)算匹配時(shí),并不能保證同時(shí)兼顧到分類和回歸對匹配的影響。換句話說,存在分類回歸不對齊的問題。針對這個(gè)問題,我們對匹配分?jǐn)?shù)的計(jì)算方式進(jìn)行了修改,如下面公式所示。

其中, |IoU?clspred| 用來調(diào)節(jié)分類和回歸的匹配程度, CE(clspred,IoU) 用來將分類的硬標(biāo)簽轉(zhuǎn)化為基于IOU的軟數(shù)值。

表4給出了改進(jìn)后的AlignOTA和原OTA的比較,可以看到AlignOTA在效果上有著明顯的提升。

圖片
表4 AlignOTA和原OTA效果比較

2.5. Distillation Enhancement

模型蒸餾是提升模型效果的一種有效手段。YOLOv6嘗試在其large模型中使用自蒸餾技術(shù)提升模型效果。但整體來說目前在YOLO系列的工作中,蒸餾的應(yīng)用還不是很普遍,特別是小模型上的蒸餾。我們針對DAMO-YOLO做了專門的研究,最終實(shí)用蒸餾技術(shù)在DAMO-YOLO的各尺度模型上實(shí)現(xiàn)了效果的提升。

DAMO-YOLO的訓(xùn)練過程分為兩階段,第一階段是基于強(qiáng)馬賽克增強(qiáng)的訓(xùn)練,共284ep,第二階段是關(guān)閉馬賽克增強(qiáng)的訓(xùn)練,共16ep。我們發(fā)現(xiàn)在第一階段使用蒸餾技術(shù),可以實(shí)現(xiàn)更快速的收斂,達(dá)到更高的效果;但是第二階段繼續(xù)使用蒸餾卻無法進(jìn)一步提升效果。我們認(rèn)為,第二階段數(shù)據(jù)分布和第一階段相比已經(jīng)出現(xiàn)了比較大的偏差,第二階段的知識蒸餾會一定程度上破壞第一階段已經(jīng)學(xué)到的知識分布。而第二階段過短的訓(xùn)練時(shí)間,使得模型無法從第一階段知識分布充分過度到第二階段知識分布。但如果強(qiáng)行拉長訓(xùn)練周期或者提高學(xué)習(xí)率,一方面增加了訓(xùn)練成本和時(shí)間,另一方面也會弱化第一階段蒸餾所帶來的效果。因此,這里我們在第二階段關(guān)閉蒸餾操作,只進(jìn)行第一階段蒸餾。

圖片
圖4 不同蒸餾權(quán)重下分類loss和準(zhǔn)確率的變化關(guān)系

其次,我們在蒸餾中引入了兩個(gè)技術(shù),一個(gè)是對齊模塊,用于把teacher和student的特征圖大小進(jìn)行對齊。另一個(gè)是歸一化操作,用于弱化teacher和student之間數(shù)值尺度波動(dòng)所造成影響,起作用可以看成是一種用于KL loss的動(dòng)態(tài)溫度系數(shù)。

除此之外,我們還發(fā)現(xiàn)蒸餾的loss權(quán)重和head大小對蒸餾效果也有著很大影響。如上圖4所示,當(dāng)蒸餾loss權(quán)重變大時(shí),分類loss收斂變慢,且出現(xiàn)很大波動(dòng)。我們知道,分類loss對檢測影響非常大。其過晚的收斂會導(dǎo)致模型優(yōu)化不夠充分,從而影響最終的檢測效果。因此不同于之前蒸餾的經(jīng)驗(yàn),在DAMO-YOLO中,我們采用很小的蒸餾權(quán)重來控制蒸餾loss(weight=0.5),弱化了蒸餾loss和分類loss之間的沖突。而且,針對蒸餾loss收斂速度快于分類loss的特點(diǎn),我們用cosine weight代替constant weight,來提升蒸餾loss在訓(xùn)練初期的主導(dǎo)作用。

同時(shí),為了進(jìn)一步提升分類loss和蒸餾loss優(yōu)化時(shí)的一致性,我們采用更小的Head來訓(xùn)練檢測,這里使用的是ZeroHead。ZeroHead只包含了一個(gè)用于任務(wù)投影的線性層。因此,相當(dāng)于是蒸餾loss和分類loss同時(shí)在優(yōu)化同一個(gè)特征空間。隨著訓(xùn)練的進(jìn)行,學(xué)習(xí)到的空間可以同時(shí)滿足蒸餾和分類兩者的優(yōu)化。最終我們還是實(shí)驗(yàn)了不同蒸餾方法,結(jié)果如下表5。發(fā)現(xiàn)CWD蒸餾可以達(dá)到更好的效果,Bravo CWD。

圖片
表5 不同蒸餾方法的結(jié)果對比

3. 性能對比

Damo-YOLO團(tuán)隊(duì)在MSCOCO val集上驗(yàn)證了DAMO-YOLO的性能??梢钥吹?,結(jié)合上述的改進(jìn)點(diǎn),DAMO-YOLO在嚴(yán)格限制Latency的情況下精度取得了顯著的提升,創(chuàng)造了新SOTA。

圖片

4. 最后

DAMO-YOLO是一個(gè)新生的、尚處在高速發(fā)展中的檢測框架,如有疑問或建議,可郵件聯(lián)系我們:xianzhe.xxz@alibaba-inc.com!


阿里達(dá)摩院開源DAMO-YOLO:兼顧速度與精度的新目標(biāo)檢測框架的評論 (共 條)

分享到微博請遵守國家法律
漯河市| 张家川| 旬阳县| 洞口县| 城固县| 吕梁市| 山丹县| 莫力| 揭东县| 蓬安县| 江华| 托里县| 沙雅县| 恭城| 泾源县| 疏附县| 永宁县| 寿宁县| 高碑店市| 桃园市| 永靖县| 左贡县| 百色市| 沂源县| 昂仁县| 潮安县| 中卫市| 集贤县| 长汀县| 阳山县| 桦南县| 沁阳市| 明光市| 郎溪县| 兴国县| 肥城市| 陵水| 建始县| 辛集市| 荣成市| 霍城县|