(附論文)解讀 | CVPR 2021輕量化目標(biāo)檢測模型MobileDets
點(diǎn)擊左上方藍(lán)字關(guān)注我們


1簡介
構(gòu)建在深度卷積上的Inverted bottleneck layers已經(jīng)成為移動設(shè)備上最先進(jìn)目標(biāo)檢測模型的主要構(gòu)建模塊。在這項(xiàng)工作中,作者通過回顧常規(guī)卷積的實(shí)用性,研究了這種設(shè)計(jì)模式在廣泛的移動加速器上的最優(yōu)性。
作者研究發(fā)現(xiàn),正則卷積是一個(gè)強(qiáng)有力的組件,以提高延遲-準(zhǔn)確性權(quán)衡目標(biāo)檢測的加速器,只要他們被放置在網(wǎng)絡(luò)通過神經(jīng)結(jié)構(gòu)搜索。通過在搜索空間中合并Regular CNN并直接優(yōu)化目標(biāo)檢測的網(wǎng)絡(luò)架構(gòu),作者獲得了一系列目標(biāo)檢測模型,MobileDets,并在移動加速器中實(shí)現(xiàn)了最先進(jìn)的結(jié)果。
在COCO檢測任務(wù)上,在移動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即使不使用金字塔也可以在移動cpu上媲美最先進(jìn)的MnasFPN,并在EdgeTPUs和dsp上實(shí)現(xiàn)更好的mAP分?jǐn)?shù)以及高達(dá)2倍的加速。
本文主要貢獻(xiàn)
不像許多現(xiàn)有的專門針對移動應(yīng)用的IBN層的工作,本文提出了一種基于正則卷積構(gòu)建塊的增強(qiáng)搜索空間系列。證明了NAS方法可以從這種擴(kuò)大的搜索空間中獲得很大的收益,從而在各種移動設(shè)備上實(shí)現(xiàn)更好的延遲-準(zhǔn)確性權(quán)衡。
提供了MobileDets,一組在多個(gè)硬件平臺(包括手機(jī))上具有最先進(jìn)的Mobile目標(biāo)檢測模型。
2前人工作
2.1 Mobile Object Detection
物體檢測是一個(gè)經(jīng)典的計(jì)算機(jī)視覺任務(wù),其目標(biāo)是學(xué)習(xí)識別圖像中感興趣的物體?,F(xiàn)有的目標(biāo)檢測器可分為2類:
Two-Stage檢測器 One-Stage檢測器
對于Two-Stage檢測器,包括Faster RCNN, R-FCN和ThunderNet,在檢測器做出任何后續(xù)預(yù)測之前,必須首先生成區(qū)域建議。由于這種多階段的特性,Two-Stage檢測器在推理時(shí)間方面并不高效。
另一方面,One-Stage檢測器,如SSD、SSDLite、YOLO、SqueezeDet和Pelee,只需要通過一次網(wǎng)絡(luò)就可以預(yù)測所有的邊界框,使其成為邊緣設(shè)備高效推斷的理想候選。因此,在這項(xiàng)工作中將重點(diǎn)放在One-Stage檢測器上。
SSDLite是SSD的一個(gè)有效變體,它已經(jīng)成為最流行的輕量級檢測器之一。它非常適合移動設(shè)備上的應(yīng)用。高效的backbone,如MobileNetV2、MobileNetV3,與SSDLite配對,以實(shí)現(xiàn)最先進(jìn)的移動檢測結(jié)果。這兩個(gè)模型將被用作baseline,以證明所提出的搜索空間在不同移動加速器上的有效性。
2.2 Mobile Neural Architecture Search (NAS)
NetAdapt和AMC是第一批嘗試?yán)醚舆t感知搜索來微調(diào)預(yù)訓(xùn)練模型的通道數(shù)量的公司。MnasNet和MobileNetV3擴(kuò)展了這一想法,以便在NAS框架中找到資源效率高的架構(gòu)。通過技術(shù)的組合,MobileNetV3在移動CPU上提供了最先進(jìn)的架構(gòu)。作為一個(gè)互補(bǔ)的方向,最近有許多致力于提高NAS的搜索效率的工作。
2.3 NAS for Mobile Object Detection
大部分NAS文獻(xiàn)主要集中于分類,只將學(xué)習(xí)到的特征提取器作為目標(biāo)檢測的backbone,而沒有進(jìn)一步的搜索。最近,多篇論文表明,通過直接搜索目標(biāo)檢測模型可以獲得更好的延遲-精度權(quán)衡。
MnasFPN是移動檢測模型的一個(gè)強(qiáng)大的檢測NAS Baseline,它使用對移動友好的搜索空間搜索特征金字塔,極大地利用了深度可分離卷積。但是一九八存在幾個(gè)因素限制了它在移動加速器上的推廣:
到目前為止,深度卷積和特征金字塔在這些平臺上都沒有得到很好的優(yōu)化,
MnasFPN不搜索backbone,這是延遲的瓶頸。
相比之下,本文的工作依賴于SSD Heads,并提出了基于全卷積Backbone的搜索空間,更易于接受移動加速。
3重新回顧全卷積移動搜索空間
Are IBNs all we need ?
Inverted Bottleneck(IBN)的布局如圖2所示。IBN的設(shè)計(jì)目的是減少參數(shù)和FLOPS的數(shù)量,并利用depthwise和pointwise(1x1)卷積在移動cpu上實(shí)現(xiàn)高效率。

然而,并非所有的FLOPS都是一樣的,特別是對于EdgeTPU和dsp這樣的現(xiàn)代移動加速器來說。例如,一個(gè)常規(guī)的卷積在EdgeTPUs上的運(yùn)行速度可能比它的深度變化快3倍,即使它有7倍的FLOPS。
觀察結(jié)果表明,目前廣泛使用的IBN-only搜索空間對于現(xiàn)代移動加速器來說可能是次優(yōu)的。這促使本文通過重新訪問規(guī)則(完全)卷積來提出新的構(gòu)建塊,以豐富移動加速器的IBN-only搜索空間。具體來說,提出了2個(gè)靈活的層分別進(jìn)行通道擴(kuò)展和壓縮,具體如下。
3.1 融合IBN層(擴(kuò)展)
深度可分離卷積是IBN的關(guān)鍵(圖2)。深度可分離卷積背后的想法是將深度卷積(用于空間維度)和點(diǎn)卷積(用于通道維度)的組合代替復(fù)雜的全卷積。

然而,復(fù)雜的概念在很大程度上是基于FLOPS或參數(shù)的數(shù)量來定義的,這與現(xiàn)代移動加速器的推理效率不一定相關(guān)。為了整合卷積,作者提出對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)通過允許初始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性和相對于隨機(jī)baseline的可靠改進(jìn)。TuNAS構(gòu)建了一個(gè)one-shot模型,該模型包含給定搜索空間中的所有架構(gòu)選擇,以及一個(gè)控制器,其目標(biāo)是選擇優(yōu)化平臺感知的獎(jiǎng)勵(lì)功能的架構(gòu)。
在搜索過程中,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)容是通過對以下獎(jiǎng)勵(lì)功能應(yīng)用強(qiáng)化算法來實(shí)現(xiàn)的:

Cost Models
作者訓(xùn)練了一個(gè)Cost Model,——一個(gè)線性回歸模型,它的特征是,對于每一層,輸入/輸出通道規(guī)模和層類型之間的交叉乘積的指標(biāo)。該模型跨平臺高保真度。線性代價(jià)模型與之前提出的基于查找表的方法有關(guān),但只要求在搜索空間內(nèi)對隨機(jī)選取的模型的延遲進(jìn)行基準(zhǔn)測試,而不要求度量卷積等單個(gè)網(wǎng)絡(luò)操作的cost。
因?yàn)镽(M)是在每次更新步驟時(shí)計(jì)算的,所以效率是關(guān)鍵。在搜索過程中,本文基于一個(gè)小型的小批處理估計(jì)了mAP(M)的效率,并使用回歸模型作為設(shè)備上延遲c(M)的替代。為了收集成本模型的訓(xùn)練數(shù)據(jù),本文從搜索空間隨機(jī)抽取數(shù)千個(gè)網(wǎng)絡(luò)架構(gòu),并在設(shè)備上對每個(gè)架構(gòu)進(jìn)行基準(zhǔn)測試。這在每個(gè)硬件和搜索之前只執(zhí)行一次,消除了服務(wù)器類ML硬件和移動設(shè)備之間直接通信的需要。對于最終的評估,所找到的體系結(jié)構(gòu)將基于實(shí)際硬件測試而不是成本模型進(jìn)行基準(zhǔn)測試。
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)在相同的硬件平臺上對ImageNet上的分類任務(wù)進(jìn)行了大量優(yōu)化。作者還注意到,在這種特殊情況下,常規(guī)卷積并沒有提供明顯的優(yōu)勢,因?yàn)镮BN-only在FLOPS/CPU延遲下已經(jīng)很強(qiáng)大了。然而,w.r.t.進(jìn)行特定領(lǐng)域的體系結(jié)構(gòu)搜索,目標(biāo)檢測任務(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對CPU延遲進(jìn)行了大量優(yōu)化,這與FLOPS/MAdds密切相關(guān),但與EdgeTPU延遲沒有很好地校準(zhǔn)。值得注意的是,雖然IBN-only仍然提供了最好的準(zhǔn)確性-madds權(quán)衡(中間圖),但在搜索空間中使用常規(guī)卷積(IBN+Fused或IBN+Fused+Tucker)在準(zhǔn)確性-延遲權(quán)衡方面提供了明顯的進(jìn)一步優(yōu)勢。實(shí)驗(yàn)結(jié)果證明了完全卷積在EdgeTPUs上的有效性。
DSP

圖7顯示了Pixel-4 DSP的搜索結(jié)果。與EdgeTPUs類似,很明顯,在搜索空間中包含規(guī)則卷積可以在相當(dāng)?shù)耐茢嘌舆t下顯著改善mAP。
5.2 SOTA對比結(jié)果

6參考
[1].MobileDets: Searching for Object Detection Architectures for Mobile Accelerators
END
整理不易,點(diǎn)贊三連↓
