詳細(xì)解讀 | CVPR 2021輕量化目標(biāo)檢測(cè)模型MobileDets(附論文下載)
1簡(jiǎn)介
構(gòu)建在深度卷積上的Inverted bottleneck layers已經(jīng)成為移動(dòng)設(shè)備上最先進(jìn)目標(biāo)檢測(cè)模型的主要構(gòu)建模塊。在這項(xiàng)工作中,作者通過(guò)回顧常規(guī)卷積的實(shí)用性,研究了這種設(shè)計(jì)模式在廣泛的移動(dòng)加速器上的最優(yōu)性。
作者研究發(fā)現(xiàn),正則卷積是一個(gè)強(qiáng)有力的組件,以提高延遲-準(zhǔn)確性權(quán)衡目標(biāo)檢測(cè)的加速器,只要他們被放置在網(wǎng)絡(luò)通過(guò)神經(jīng)結(jié)構(gòu)搜索。通過(guò)在搜索空間中合并Regular CNN并直接優(yōu)化目標(biāo)檢測(cè)的網(wǎng)絡(luò)架構(gòu),作者獲得了一系列目標(biāo)檢測(cè)模型,MobileDets,并在移動(dòng)加速器中實(shí)現(xiàn)了最先進(jìn)的結(jié)果。
在COCO檢測(cè)任務(wù)上,在移動(dòng)CPU上MobileDets比MobileNetV3+SSDLite提升了1.7 mAP。MobileDets比MobileNetV2+SSDLite提升了1.9mAP,
在不增加延遲的情況下,在谷歌EdgeTPU上提升了3.7 mAP,在Qualcomm Hexagon DSP上提升了3.4 mAP,在Nvidia Jetson GPU上提升了2.7 mAP。此外,MobileDets即使不使用金字塔也可以在移動(dòng)cpu上媲美最先進(jìn)的MnasFPN,并在EdgeTPUs和dsp上實(shí)現(xiàn)更好的mAP分?jǐn)?shù)以及高達(dá)2倍的加速。
本文主要貢獻(xiàn)
-
不像許多現(xiàn)有的專門針對(duì)移動(dòng)應(yīng)用的IBN層的工作,本文提出了一種基于正則卷積構(gòu)建塊的增強(qiáng)搜索空間系列。證明了NAS方法可以從這種擴(kuò)大的搜索空間中獲得很大的收益,從而在各種移動(dòng)設(shè)備上實(shí)現(xiàn)更好的延遲-準(zhǔn)確性權(quán)衡。
-
提供了MobileDets,一組在多個(gè)硬件平臺(tái)(包括手機(jī))上具有最先進(jìn)的Mobile目標(biāo)檢測(cè)模型。
2前人工作
2.1 Mobile Object Detection
物體檢測(cè)是一個(gè)經(jīng)典的計(jì)算機(jī)視覺(jué)任務(wù),其目標(biāo)是學(xué)習(xí)識(shí)別圖像中感興趣的物體?,F(xiàn)有的目標(biāo)檢測(cè)器可分為2類:
-
Two-Stage檢測(cè)器 -
One-Stage檢測(cè)器
對(duì)于Two-Stage檢測(cè)器,包括Faster RCNN, R-FCN和ThunderNet,在檢測(cè)器做出任何后續(xù)預(yù)測(cè)之前,必須首先生成區(qū)域建議。由于這種多階段的特性,Two-Stage檢測(cè)器在推理時(shí)間方面并不高效。
另一方面,One-Stage檢測(cè)器,如SSD、SSDLite、YOLO、SqueezeDet和Pelee,只需要通過(guò)一次網(wǎng)絡(luò)就可以預(yù)測(cè)所有的邊界框,使其成為邊緣設(shè)備高效推斷的理想候選。因此,在這項(xiàng)工作中將重點(diǎn)放在One-Stage檢測(cè)器上。
SSDLite是SSD的一個(gè)有效變體,它已經(jīng)成為最流行的輕量級(jí)檢測(cè)器之一。它非常適合移動(dòng)設(shè)備上的應(yīng)用。高效的backbone,如MobileNetV2、MobileNetV3,與SSDLite配對(duì),以實(shí)現(xiàn)最先進(jìn)的移動(dòng)檢測(cè)結(jié)果。這兩個(gè)模型將被用作baseline,以證明所提出的搜索空間在不同移動(dòng)加速器上的有效性。
2.2 Mobile Neural Architecture Search (NAS)
NetAdapt和AMC是第一批嘗試?yán)醚舆t感知搜索來(lái)微調(diào)預(yù)訓(xùn)練模型的通道數(shù)量的公司。MnasNet和MobileNetV3擴(kuò)展了這一想法,以便在NAS框架中找到資源效率高的架構(gòu)。通過(guò)技術(shù)的組合,MobileNetV3在移動(dòng)CPU上提供了最先進(jìn)的架構(gòu)。作為一個(gè)互補(bǔ)的方向,最近有許多致力于提高NAS的搜索效率的工作。
2.3 NAS for Mobile Object Detection
大部分NAS文獻(xiàn)主要集中于分類,只將學(xué)習(xí)到的特征提取器作為目標(biāo)檢測(cè)的backbone,而沒(méi)有進(jìn)一步的搜索。最近,多篇論文表明,通過(guò)直接搜索目標(biāo)檢測(cè)模型可以獲得更好的延遲-精度權(quán)衡。
MnasFPN是移動(dòng)檢測(cè)模型的一個(gè)強(qiáng)大的檢測(cè)NAS Baseline,它使用對(duì)移動(dòng)友好的搜索空間搜索特征金字塔,極大地利用了深度可分離卷積。但是一九八存在幾個(gè)因素限制了它在移動(dòng)加速器上的推廣:
-
到目前為止,深度卷積和特征金字塔在這些平臺(tái)上都沒(méi)有得到很好的優(yōu)化,
-
MnasFPN不搜索backbone,這是延遲的瓶頸。
相比之下,本文的工作依賴于SSD Heads,并提出了基于全卷積Backbone的搜索空間,更易于接受移動(dòng)加速。
3重新回顧全卷積移動(dòng)搜索空間
Are IBNs all we need ?
Inverted Bottleneck(IBN)的布局如圖2所示。IBN的設(shè)計(jì)目的是減少參數(shù)和FLOPS的數(shù)量,并利用depthwise和pointwise(1x1)卷積在移動(dòng)cpu上實(shí)現(xiàn)高效率。
然而,并非所有的FLOPS都是一樣的,特別是對(duì)于EdgeTPU和dsp這樣的現(xiàn)代移動(dòng)加速器來(lái)說(shuō)。例如,一個(gè)常規(guī)的卷積在EdgeTPUs上的運(yùn)行速度可能比它的深度變化快3倍,即使它有7倍的FLOPS。
觀察結(jié)果表明,目前廣泛使用的IBN-only搜索空間對(duì)于現(xiàn)代移動(dòng)加速器來(lái)說(shuō)可能是次優(yōu)的。這促使本文通過(guò)重新訪問(wèn)規(guī)則(完全)卷積來(lái)提出新的構(gòu)建塊,以豐富移動(dòng)加速器的IBN-only搜索空間。具體來(lái)說(shuō),提出了2個(gè)靈活的層分別進(jìn)行通道擴(kuò)展和壓縮,具體如下。
3.1 融合IBN層(擴(kuò)展)
深度可分離卷積是IBN的關(guān)鍵(圖2)。深度可分離卷積背后的想法是將深度卷積(用于空間維度)和 點(diǎn)卷積(用于通道維度)的組合代替復(fù)雜的全卷積。
然而,復(fù)雜的概念在很大程度上是基于FLOPS或參數(shù)的數(shù)量來(lái)定義的,這與現(xiàn)代移動(dòng)加速器的推理效率不一定相關(guān)。為了整合卷積,作者提出對(duì)IBN層進(jìn)行修改,將其前 卷積和隨后的 深度卷積融合為單個(gè) 正則卷積(圖3)。融合IBN的初始卷積使Kernel的數(shù)量增加了一個(gè)因子 ;這一層的擴(kuò)展比例由NAS算法決定。
3.2 Tucker卷積層(壓縮)
在ResNet中引入瓶頸層,降低了在高維特征圖上進(jìn)行大卷積的消耗。壓縮比s<1的瓶頸層有:
-
輸入通道為 輸出通道為 的1×1卷積; -
輸入通道為 輸出通道為 的K×K卷積; -
輸入通道為 輸出通道為 的1×1卷積;
作者概括了這些瓶頸(圖4)通過(guò)允許初始1×1卷積比K×K卷積有不同數(shù)量的輸出卷積核,并讓NAS算法決定最終的最佳配置。
作者將這些新的構(gòu)建塊稱為Tucker卷積層,因?yàn)樗鼈兣cTucker分解有關(guān)。
4架構(gòu)搜索方法
本文提出的搜索空間是互補(bǔ)的任何神經(jīng)結(jié)構(gòu)搜索算法。
在實(shí)驗(yàn)中使用了TuNAS,因?yàn)樗目缮炜s性和相對(duì)于隨機(jī)baseline的可靠改進(jìn)。TuNAS構(gòu)建了一個(gè)one-shot模型,該模型包含給定搜索空間中的所有架構(gòu)選擇,以及一個(gè)控制器,其目標(biāo)是選擇優(yōu)化平臺(tái)感知的獎(jiǎng)勵(lì)功能的架構(gòu)。
在搜索過(guò)程中,one-shot模型和控制器一起訓(xùn)練。在每一步中,控制器從跨越選擇的多項(xiàng)分布中抽樣一個(gè)隨機(jī)體系結(jié)構(gòu),然后更新與抽樣體系結(jié)構(gòu)相關(guān)的one-shot模型權(quán)值的部分,最后計(jì)算抽樣體系結(jié)構(gòu)的獎(jiǎng)勵(lì),用于更新控制器。更新內(nèi)容是通過(guò)對(duì)以下獎(jiǎng)勵(lì)功能應(yīng)用強(qiáng)化算法來(lái)實(shí)現(xiàn)的:
Cost Models
作者訓(xùn)練了一個(gè)Cost Model, ——一個(gè)線性回歸模型,它的特征是,對(duì)于每一層,輸入/輸出通道規(guī)模和層類型之間的交叉乘積的指標(biāo)。該模型跨平臺(tái)高保真度 。線性代價(jià)模型與之前提出的基于查找表的方法有關(guān),但只要求在搜索空間內(nèi)對(duì)隨機(jī)選取的模型的延遲進(jìn)行基準(zhǔn)測(cè)試,而不要求度量卷積等單個(gè)網(wǎng)絡(luò)操作的cost。
因?yàn)镽(M)是在每次更新步驟時(shí)計(jì)算的,所以效率是關(guān)鍵。在搜索過(guò)程中,本文基于一個(gè)小型的小批處理估計(jì)了mAP(M)的效率,并使用回歸模型作為設(shè)備上延遲c(M)的替代。為了收集成本模型的訓(xùn)練數(shù)據(jù),本文從搜索空間隨機(jī)抽取數(shù)千個(gè)網(wǎng)絡(luò)架構(gòu),并在設(shè)備上對(duì)每個(gè)架構(gòu)進(jìn)行基準(zhǔn)測(cè)試。這在每個(gè)硬件和搜索之前只執(zhí)行一次,消除了服務(wù)器類ML硬件和移動(dòng)設(shè)備之間直接通信的需要。對(duì)于最終的評(píng)估,所找到的體系結(jié)構(gòu)將基于實(shí)際硬件測(cè)試而不是成本模型進(jìn)行基準(zhǔn)測(cè)試。
5實(shí)驗(yàn)
5.1 不同硬件的實(shí)驗(yàn)
CPU
圖5顯示了pixel-1 cpu的NAS結(jié)果。正如預(yù)期的那樣,MobileNetV3+SSDLite是一個(gè)強(qiáng)大的baseline,因?yàn)樗腷ackbone的效率已經(jīng)在相同的硬件平臺(tái)上對(duì)ImageNet上的分類任務(wù)進(jìn)行了大量?jī)?yōu)化。作者還注意到,在這種特殊情況下,常規(guī)卷積并沒(méi)有提供明顯的優(yōu)勢(shì),因?yàn)镮BN-only在FLOPS/CPU延遲下已經(jīng)很強(qiáng)大了。然而,w.r.t.進(jìn)行特定領(lǐng)域的體系結(jié)構(gòu)搜索,目標(biāo)檢測(cè)任務(wù)在COCO上提供了不小的收益(150-200ms范圍內(nèi)的+1mAP)。
EdgeTPU
圖6顯示了以Pixel-4 EdgeTPUs為目標(biāo)時(shí)的NAS結(jié)果。使用這3種搜索空間中的任何一種進(jìn)行硬件感知的體系結(jié)構(gòu)搜索,都能顯著提高整體質(zhì)量。這很大程度上是由于baseline架構(gòu)(MobileNetV2)1對(duì)CPU延遲進(jìn)行了大量?jī)?yōu)化,這與FLOPS/MAdds密切相關(guān),但與EdgeTPU延遲沒(méi)有很好地校準(zhǔn)。值得注意的是,雖然IBN-only仍然提供了最好的準(zhǔn)確性-madds權(quán)衡(中間圖),但在搜索空間中使用常規(guī)卷積(IBN+Fused或IBN+Fused+Tucker)在準(zhǔn)確性-延遲權(quán)衡方面提供了明顯的進(jìn)一步優(yōu)勢(shì)。實(shí)驗(yàn)結(jié)果證明了完全卷積在EdgeTPUs上的有效性。
DSP
圖7顯示了Pixel-4 DSP的搜索結(jié)果。與EdgeTPUs類似,很明顯,在搜索空間中包含規(guī)則卷積可以在相當(dāng)?shù)耐茢嘌舆t下顯著改善mAP。
5.2 SOTA對(duì)比結(jié)果
6參考
[1].MobileDets: Searching for Object Detection Architectures for Mobile Accelerators
7推薦閱讀
即插即用模塊 | CompConv卷積讓模型不丟精度還可以提速(附論文下載)
詳細(xì)解讀Google新作 | 教你How to train自己的Transfomer模型?
CVPR2021 GAN詳細(xì)解讀 | AdaConv自適應(yīng)卷積讓你的GAN比AdaIN更看重細(xì)節(jié)(附論文下載)
本文論文原文獲取方式,掃描下方二維碼
回復(fù)【MobileDets】即可獲取論文
長(zhǎng)按掃描下方二維碼添加小助手。
可以一起討論遇到的問(wèn)題
聲明:轉(zhuǎn)載請(qǐng)說(shuō)明出處
掃描下方二維碼關(guān)注【集智書(shū)童】公眾號(hào),獲取更多實(shí)踐項(xiàng)目源碼和論文解讀,非常期待你我的相遇,讓我們以夢(mèng)為馬,砥礪前行!
