DDP:微軟提出動態detection head選擇,適配計算資源有限場景 | CVPR 2022

DPP能夠對目標檢測proposal進行非統一處理,根據proposal選擇不同復雜度的算子,加速整體推理過程。從實驗結果來看,效果非常不錯

來源:曉飛的算法工程筆記 公眾號

論文: Should All Proposals be Treated Equally in Object Detection?

  • 論文地址:https://arxiv.org/abs/2207.03520
  • 論文代碼:https://github.com/liyunsheng13/dpp

Introduction


? 在目標檢測中,影響速度的核心主要是密集的proposal設計。所以,Faster RCNN → Cascade RCNN → DETR → Sparse RCNN的演變都是為了稀疏化proposal密度。雖然Sparse R-CNN成功地將proposal數量從幾千個減少到幾百個,但更復雜deation head導致減少proposal數量帶來的整體計算收益有限。

? 復雜的deation head結構雖然能帶來準確率的提升,但會抹殺輕量級設計帶來的計算增益。對于僅有300個proposal的Sparse RCNN,deation head的計算量是主干網絡MobileNetV2的4倍(25 GFLOPS 與 5.5 GFLOPS)。

? 為此,作者研究是否有可能在降低deation head計算成本的同時保留精度增益和proposal稀疏性。現有檢測算法采用相同復雜度的操作處理所有proposal,在高質量proposal上花費大量的計算是合適的,但將相同的資源分配給低質量的proposal則是一種浪費。由于每個proposal的IoU在訓練期間是已知的,所以可以讓檢測器學習為不同的proposal分配不同的計算量。

? 由于在推理時沒有IoU,網絡需要學習如何根據proposal本身進行資源分配。為此,作者提出了dynamic proposal processing(DPP),將detection head使用的單一算子替換為一個包含不同復雜度算子的算子集,允許檢測器在復雜度-精度之間進行權衡。算子的選擇通過增加一個輕量級選擇模型來實現,該模型在網絡的每個階段選擇適用于每個proposal的最佳算子。

Complexity and Precision of Proposals


? 假設主干網絡產生了一組proposal X = { x 1 , x 2 , ? , x N } X = \{x_1, x_2, \cdots, x_N \} X={x1?,x2?,?,xN?},計算消耗主要來源于detection head而主干的計算消耗可忽略,并且將deation head的計算進一步分解為per-proposal的算子h(網絡結構)以及對應的proposal間處理組件pNMS操作或proposal之間的的自注意機制)。

  • Complexity of unequally treated proposals

? 在之前的檢測器中,所有的proposal都由同一個算子h處理:

? 其中 ψ = { h , p } \psi = \{h, p\} ψ={h,p} C h C_h Ch? C p C_p Cp? 分別是hp的 per-proposal 復雜度。

  • Complexity of unequally treated proposals

? 與其將相同的算子h應用于所有proposal,作者建議使用包含J個具有不同復雜度算子的算子集 G = { h j } j = 1 J \mathcal{G} = \{h_j\}^J_{j=1} G={hj?}j=1J?,由動態選擇器s選擇具體的算子分配給proposal x i x_i xi?

? 其中 s i = s ( x i ) s_i = s(x_i) si?=s(xi?) h s i ∈ G h_{s_i}\in \mathcal{G} hsi??G 表示來自 G \mathcal{G} G 的算子,由選擇器s分配給的proposal x i x_i xi? ψ = { { h s i } i , s , p } \psi = \{\{h_{s_i}\}_i, s, p\} ψ={{hsi??}i?,s,p} C h s i C_{h_{s_i}} Chsi???為整個per-proposal操作的計算復雜度。為簡單起見,p的復雜度仍然視為常數。

  • Precision over proposals

? 當deation head對proposal非統一處理時,給定復雜性約束C的最佳檢測器精度可以通過優化算子對proposal的分配來提升:

? 其中 P ( { h s i } i ) \mathcal{P}(\{h_{s_i}\}_i) P({hsi??}i?)是分配的特定運算符 { h s i } i \{h_{s_i}\}_i {hsi??}i?的精度。隨著C的變化, P ( ψ ? ∣ C ) P(\psi^{?}|C) P(ψ?C)構建了復雜度-精度(C-P)曲線,該曲線表示了可使用 G \mathcal{G} G實現的目標檢測器在成本和精度之間trade-off的最佳性能。

Dynamic Proposal Processing


? 基于上面的背景,作者提出了一個動態proposal處理(DPP)。假設detection head由多個階段( ψ = ? 1 ° ? ° ? K \psi = \phi_1 \circ \cdots \circ \phi_K ψ=?1?°?°?K?)依次處理proposal,每個階段 φ K \varphi_K φK?由選擇器s G \mathcal{G} G中選擇的運算符實現。為了最小化復雜性,選擇器每次只應用于階段子集 k ∈ K ? { 1 , ? , K } k \in K \subset \{1,\cdots,K\} kK?{1?K},其余階段使用上一次處理選擇的運算符,即 ? k = ? k ? 1 , ? k ? K \phi_k = \phi_{k?1}, \forall k\notin K ?k?=?k?1?,?k/K

Operator Set

? 作者提出了由三個計算成本差異較大的算子組成的算子集合 G = { g 0 , g 1 , g 2 } \mathcal{G} = \{g_0, g_1, g_2\} G={g0?,g1?,g2?}

  • g 0 g_0 g0?是高復雜度的算子,由一個參數與proposal相關的動態卷積層(DyConv)和一個前饋網絡(FFN)來實現,類似于Sparse R-CNN采用的動態Head結構。
  • g 1 g_1 g1?是一個中等復雜度的算子,由FFN實現。
  • g 2 g_2 g2?是一個由identity block構建的輕量級算子,只是簡單地傳遞proposal而無需進一步提取特征。

Selector

? 在DPP中,通過控制操作符對proposal的分配,選擇器是控制精度和復雜性之間權衡的關鍵組件。定義 z i k z^k_i zik?是proposal x i x_i xi?在階段 ? k \phi_k ?k?的輸入特征,選擇器由3層MLP實現,輸出與關聯 z i k z^k_i zik?的3維向量 ? i k ∈ [ 0 , 1 ] 3 \epsilon^k_i \in [0, 1]^3 ?ik?[0,1]3

? 其中 ? i , j k \epsilon^k_{i,j} ?i,jk? ? i k \epsilon^k_i ?ik?中的選擇變量,代表將操作 g j g_j gj?分配給proposal x i x_i xi?的權重:

  • 在訓練期間,選擇向量是包含三個變量one hot編碼,將Gumble-Softmax函數作為MLP的激活函數,用于生成選擇向量。
  • 在推理中,選擇向量包含三個連續值,選擇值最大的變量對應的操作。

? 分配過程如圖2所示,整體開銷非常小(100個proposal僅需4e-3 GFLOPS),與detection head相比可以忽略不計。

? 從公式4可以看出,不同的proposal和階段選擇的算子都有變化,從而能夠進行動態處理。
此外,雖然 G \mathcal{G} G僅有三個候選項,但潛在的detection head網絡結構有 3 ∣ K ∣ 3^{|K|} 3K種。最后,由于選擇器是可訓練的,所以整體結構可以端到端學習。

Loss Functions

? 為了確保在給定復雜度的情況下,DPP能為每個proposal選擇最優的操作序列,作者增加了選擇器損失,包含兩個目標:

  • 首先,應該將復雜的算子( g 0 g_0 g0? g 1 g_1 g1?)分配給高質量的proposal(高IoU):

    其中 u k u_k uk?是第i個proposal在第k階段的 IoU。當IoU小于0.5時, L i o u L_{iou} Liou?推動選擇器將 ? i , 0 k \epsilon^k_{i,0} ?i,0k? ? i , 1 k \epsilon^k_{i,1} ?i,1k?變為0,反之則變為1,鼓勵在階段 k 中使用更復雜的算子來獲得高質量的proposal。此外,損失的大小是由IoU值決定的,為高IoU proposal選擇簡單結構或為低IoU proposal選擇復雜結構均會產生大梯度值。

  • 其次,選擇器應該知道每張圖像中的實例總數,并根據總數調整整體復雜度,在實例密集時選擇更復雜的算子:

    其中T是特定圖像選擇 g 0 g_0 g0?算子目標次數,定義為 T = α M T = \alpha M T=αM,即圖像中M個實例的倍數。此外, T ∈ [ T m i n , N ] T\in [T_{min}, N ] T[Tmin?,N]需通過根據預先指定的下限 T m i n T_{min} Tmin?和由總體proposal數N給出的上限對 α M \alpha M αM進行裁剪。下界防止對高復雜度算子進行過于稀疏的選擇,然后 α \alpha α則是根據實例數調整選擇器。

? 最終的整體選擇器損失為:

? 選擇器損失是一種即插即用損失,可以應用于不同的對象檢測器。在實現時,與應用DPP的原始檢測器的所有損失相結合,包括交叉熵損失和邊界框回歸損失。

Experiments


? DPP的主干網絡使用MobileNet V2或ResNet-50,使用特征金字塔網絡(FPN)生成多維特征,在其之上使用Sparse R-CNN的策略學習初始proposal。為簡單起見,選擇器僅應用于階段 K = { 2 , 4 , 6 } K = \{2, 4, 6\} K={2,4,6}

? 對于損失函數,設置 λ = 1 \lambda=1 λ=1 T m i n = 1 T_{min}=1 Tmin?=1 α = 2 \alpha=2 α=2 N = 100 N=100 N=100

Proposal processing by DPP

  • Contribution of Each Operator

? 不同候選算子對性能的貢獻。

  • Performance of Each Stage in DPP

? 階段1~6的AP分別為 { 15.6 , 32.1 , 39.3 , 41.7 , 42.0 , 42.2 } \{15.6, 32.1, 39.3, 41.7, 42.0, 42.2\} {15.6,32.1,39.3,41.7,42.0,42.2},精度在前 4 個階段迅速增加,然后達到飽和。較后的階段,復雜算子占比越少,這說明 DPP 如何在復雜性與精度之間取得相當成功。

  • Visualization

? 階段4和階段6中, g 0 g_0 g0?的預測結果。

Main Results

  • ResNet

? 基于ResNet50與SOTA算法對比。

  • MobileNetV2

? 基于MobileNetV2與SOTA算法對比。

  • Inference speed

? 推理速度對比。

Ablation Study

  • Selection loss

? 選擇器損失的作用。

  • Target number of heavy operators

? 復雜算子預期數量的作用。

Conclusion


? DPP能夠對目標檢測proposal進行非統一處理,根據proposal選擇不同復雜度的算子,加速整體推理過程。從實驗結果來看,效果非常不錯。

?
?
?

如果本文對你有幫助,麻煩點個贊或在看唄~
更多內容請關注 微信公眾號【曉飛的算法工程筆記】

work-life balance.

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/42892.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/42892.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/42892.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

同聲傳譯app哪個好免費?對話交流推薦這5個

暑期到,也是旅游出行的好日子~自打周邊不少國家都開放免簽政策之后,出國游也變得更加方便了~對于外語水平不高的朋友來講,想要保證出行體驗,其實手上只要備好一個同聲傳譯app就OK! 倘若你還不清楚都有哪些同聲傳譯app…

背部筋膜炎的癥狀及治療

背部筋膜炎,也稱為胸背肌筋膜炎,主要是由于勞損或風寒濕邪侵入引起的。其典型癥狀主要包括: 1、疼痛:背部筋膜一旦出現炎癥性病變,會對周圍交感神經組織產生刺激作用,從而引起不同程度的疼痛癥狀。 2、僵…

NAT:地址轉換技術

為什么會引入NAT? NAT(網絡地址轉換)的引入主要是為了解決兩個問題 IPv4地址短缺:互聯網快速發展,可用的公網IP地址越來越少。網絡安全:需要一種方法來保護內部網絡不被直接暴露在互聯網上。 IPv4 &…

低通濾波以及卡爾曼濾波

先講解幾個低通濾波,低通濾波比卡爾曼濾波簡單,因為卡爾曼濾波涉及到兩個輸入量,一個是控制量,一個是觀測量,而低通濾波是一個輸入量 1,利用工具箱配置低通濾波 參考地址:https://blog.csdn.net…

SystemUIService啟動-Android13

SystemUIService啟動-Android13 1、SystemUIService啟動2、其他SystemUI services啟動2.1 Dagger依賴注入2.2 Recents為例 1、SystemUIService啟動 SystemUI啟動&#xff0c;及其SystemUIService啟動 <!-- SystemUi service component --><string name"config_s…

應用層協議原理——可供應用程序使用的運輸服務

前面講過套接字是應用程序進程和運輸層協議之間的接口。在發送端的應用程序將報文推進該套接字。在該套接字的另一側&#xff0c;運輸層協議負責使該報文進入接收進程的套接字。 包括因特網在內的很多網絡提供了不止一種運輸層協議。當開發一個應用時&#xff0c;必須選擇一種可…

什么是海外倉管理自動化?策略及落地實施步驟指南

作為海外倉的管理者&#xff0c;你每天都面臨提高海外倉運營效率、降低成本和滿足客戶需求的問題。海外倉自動化管理技術為這些問題提供了不錯的解決思路&#xff0c;不過和任何新技術一樣&#xff0c;從策略到落地實施&#xff0c;都有一個對基礎邏輯的認識過程。 今天我們整…

重生奇跡mu的地圖名

地圖之一&#xff1a;勇者大陸 勇者大陸地處奇跡大陸中央。終年陰雨連綿&#xff0c;氣候潮濕悶熱。植物由充滿黑暗陰森氣氛的草地所構成。這里的NPC數量是所有地圖中最多的。因為地步交通要沖&#xff0c;所以也是玩家聚集最多的地方。 這里是劍士、魔法師、魔劍士和圣導師初…

vue3關于在線考試 實現監考功能 推流拉流

vue3 關于在線考試 實現監考功能&#xff0c; pc端考試 本質是直播推流的功能 使用騰訊云直播: 在線文檔 index.html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><link rel"icon" href"/f…

永磁同步電機控制算法--最大轉矩電流比控制(虛擬信號注入法)

目前&#xff0c;國內外相關學者對 MTPA 控制方法進行了一系列的理論研究與仿真分析。通過研究取得的成果綜合來看&#xff0c;該控制方法主要有&#xff1a;直接公式計算法、曲線擬合法、查表法、搜索法、高頻信號注入法以及參數辨識法等。 之前的文章中已經介紹了直接公式計…

Java.Maths類的常用方法

Maths類的常用方法 Math 類是 Java 標準庫中的一個類&#xff0c;位于 java.lang 包中。它提供了一些基本的數學操作方法&#xff0c;這些方法都是靜態的。以下是 Math 類的所有方法&#xff1a; 數學常量 double E: 自然對數的底數&#xff08;約等于 2.718&#xff09;doub…

對于“百模大戰”,幾乎所有大佬的口風都180 °大轉變了?

文 | 智能相對論 作者 | 陳泊丞 在2024世界人工智能大會暨人工智能全球治理高級別會議產業發展主論壇上&#xff0c;百度創始人、董事長兼首席執行官李彥宏談了些對于AI大模型的看法&#xff0c;語驚四座。 他先是指出&#xff0c;“百模大戰造成了社會資源的巨大浪費&#x…

ubuntu 如何復制文件夾的內容

在Ubuntu中&#xff0c;您可以使用cp命令來復制文件夾的內容。如果您想要復制文件夾及其所有內容&#xff08;包括子文件夾&#xff09;&#xff0c;可以使用-r&#xff08;遞歸&#xff09;選項。 cp -r /path/to/source/folder/* /path/to/destination/folder/ 這個命令會將s…

現在2024年網絡安全真實情況還好就業嗎?_2024年網絡安全專業到底行不行了

2024年網絡安全行業的前景看起來非常樂觀。根據當前的趨勢和發展&#xff0c;一些趨勢和發展可能對2024年網絡安全行業產生影響&#xff1a; 5G技術的廣泛應用&#xff1a;5G技術的普及將會使互聯網的速度更快&#xff0c;同時也將帶來更多的網絡威脅和安全挑戰。網絡安全專家…

java-spring boot光速入門教程(超詳細!!)

目錄 一、引言 1.1 初始化配置 1.2 整合第三方框架 1.3 后期維護 1.4 部署工程 1.5 敏捷式開發 二、SpringBoot介紹 spring boot 2.1 搭建一個spring boot工程 2.2 使用idea創建項目 2.3 在線創建姿勢 2.4 項目的目錄結構 2.5 項目的運行方式 2.6 yml文件格式 2…

CP AUTOSAR標準之XCP(AUTOSAR_CP_SWS_XCP)(更新中……)

1 簡介和功能概述 該規范規定了AUTOSAR基礎軟件模塊XCP的功能、API和配置。XCP是主設備(工具)和從設備(設備)之間的協議描述(ASAM標準),提供以下基本功能: 同步數據采集(測量)同步數據刺激(用于快速原型設計)在線內存校準(讀/寫訪問)校準數據頁面初始化和切換用于ECU開發目的…

分享外貿工作中常用英文標準表達和英文語句

常用英文表達 報拉格斯最低到岸價 quote the lowest price CIF Lagos經營紡織品多年 be in the line of textiles for many years貨物受歡迎 the goods are very popular with customers / have met with a warm reception /be well received/accepted/ enjoy a wide populari…

Java線程死鎖及解決方法

多線程環境下&#xff0c;死鎖即兩個或兩個以上的線程去爭奪同一個共享資源&#xff0c;而導致互相等待的情況。 要產生死鎖&#xff0c;必須滿足如下四個條件&#xff1a; 互斥條件&#xff0c;共享資源x和y只能被一個線程占有請求和保持條件&#xff0c;T1持有x&#xff0c…

解讀BASE理論:高可用性與性能的完美平衡

Base概念 BASE 理論是一種處理大規模分布式系統中的數據一致性問題的思路。相比于傳統的嚴格一致性&#xff0c;它更靈活&#xff0c;適用于那些需要高可用性和性能的系統。BASE 理論由三個部分組成&#xff1a; 基本可用&#xff08;Basically Available&#xff09; 基本可用…

【c++刷題筆記-動態規劃】day32: 509. 斐波那契數 、 70. 爬樓梯 、 746. 使用最小花費爬樓梯

509. 斐波那契數 - 力扣&#xff08;LeetCode&#xff09; class Solution { public:int fib(int n) {if(n0){return 0;}vector<int>dp(n1);dp[0]0;dp[1]1;for(int i2;i<n;i){dp[i]dp[i-1]dp[i-2];}return dp[n];} }; 70. 爬樓梯 - 力扣&#xff08;LeetCode&#x…