CSPNet


CSPNet

paper:CSPNET: A NEW BACKBONE THAT CAN ENHANCE LEARNING CAPABILITY OF CNN

Abstract

作者將模型推理過程需要龐大的計算量歸因於網絡優化過程中重復的梯度計算。

CSPNet整合了網絡從開始到結束階段的所有特征圖,節約了大概20%的計算量,並且保持相當高的精度。

Introduction

提出CSPNet,實現更加豐富的梯度組合並且減少計算量。CSPNet將基礎層的特征圖划分成兩部分,然后通過提出的跨階段分層結構進行合並。

論文的主要內容是分割梯度流,通過不同的網絡路徑傳播。

針對基於CSPNet的目標檢測網絡,主要關注以下幾個問題:

  • 加強CNN的學習能力:CNN在輕量化后,精度會大大降低。作者想通過加強CNN的學習能力,使其輕量化的同時保持足夠的准確性。應用CSPNet之后,可以將計算量減少10%~20%。
  • 移除計算瓶頸:過高的計算瓶頸會導致更多的計算周期來完成推理過程,或者一些算力單元經常閑置。因此作者通過均勻分配CNN中各層的計算量,這樣可以有效提升各個計算單元的利用率,從而減少不必要的能耗。
  • 減少內存占用:論文特征金字塔生成特征圖的過程中采用交叉通道池化壓縮特征圖,這樣減少內存占用。適合部署到邊緣設備上(內存小)。

成果:

  • 50% COCO AP50,109FPS,GTX 1080ti
  • 40% COCO AP50,52FPS,Core i9-9900K
  • 42% COCO AP50,49fps,Jetson TX2

Method

Cross Stage Partial Network

DenseNet

DenseNet的正向傳播:

\[x_1=w_1*x_0\\ x_2=w_2*[x_0,x_1]\\ \dots\\ x_k=w_k*[x_0,x_1,\dots,x_{k-1}] \]

反向傳播過程

\[w_1'=f(w_1,g_0)\\ w_2'=f(w_2,g_0,g_1)\\ w_3'=f(w_3,g_0,g_1,g_2)\\ \dots\\ w_k'=f(w_k,g_0,g_1,g_2,\dots,g_{k-1}) \]

Cross Stage Partial DenseNet

上圖b部分可知,第一個Dense Layer分為了兩個部分\([x_0', x_0'']\)。其中一部分隨着Dense Layer路徑傳播,另外一部分直接和Partial Dense Block的輸出\(X_T\)拼接,再經過一個卷積操作得到最后的輸出\(X_U\)

正向傳播:

\[x_k=w_k*[x_{0''},x_1,\dots,x_{k-1}]\\ x_T=w_T*[x_{0''},x_1,\dots,x_k]\\ x_U=w_U*[x_{0'},x_T] \]

反向傳播:

\[w_k'=f(w_k,g_{0''},g_1,g_2,\dots,g_{k-1})\\ w_T'=f(w_T,g_{0''},g_1,g_2,\dots,g_k)\\ w_U'=f(w_U,g_0',g_T) \]

作者提到CSPNet通過這個操作將\(x_0'\)類似於殘差鏈接一樣,直接concatenate到最后的輸出特征矩陣上去,減少了計算量。

Partial Dense Block

設計partial dense block的目的:

  • 增加梯度傳播路徑:划分+合並。論文中提到的Because of the cross-stage strategy, one can alleviate the disadvantages caused by using explicit feature map copy for concatenation,我並沒有理解到這個缺點指的是什么,可能需要去看一下DenseNet原論文。
  • 平衡每一層的計算量:base layer(Dense Block的第一層)一般通道數遠大於Dense Layer生成的中間特征矩陣的通道數,通過只在Dense Clock中引入base layer一半通道的特征矩陣,來減少Dense Block的計算瓶頸。
  • 減少內存流量:base layer的通道數為\(c\),中間生成的特征矩陣通道數為\(b\),dense layer數量為\(m\),CIO(可以理解為整個Dense Block所有特征矩陣大小的和)為\((c\times m)+((m+m^2)\times d)/2\),CSP版本的CIO為\(((c\times m)+(m^2+m)\times d)/2\)。由於\(c\)遠大於\(m\)\(d\),因此幾乎減少一半的內存占用。

Partial Transition Layer

該層通過截斷梯度信息流來阻止不同的層學習重復的梯度信息,也稱作分層特征模糊機制。

比較\((c)\)\((d)\)兩個結構:

\((c)\):先拼接再卷積。梯度信息重復使用。

\[w_{DB}'=f(w_{DB},g_{P2})\\ w_{T}'=f(w_T,g_{P1},g_{DB}) \]

\((d)\):先卷積再拼接。減少梯度信息復用。

\[w_{DB}'=f(w_{DB},g_{p2})\\ w_{T}'=f(w_{T},g_{DB}) \]

Exact Fusion Model

Looking Exactly to predict perfectly: 論文提出了EFM模型,為每個錨框捕捉合適的視野,提高單階段目標檢測算法的檢測精度。對於圖像分割來說,像素層的標簽不包含全局信息,因此需要考慮使用更大的塊來提取信息。對於圖像分類和目標檢測,從圖像層或者bounding box層提取的信息可能會模糊(分辨率變化+下采樣)。CNN從圖像層分析會導致注意力分散,這也是兩階段目標檢測效果更好的原因。

Aggregate Feature Pyramid:EFM比最初的特征金字塔具有更好的特征聚合能力。每個bounding box 分配一個anchor

Balance Computation:特征金字塔得到的特征圖十分巨大,使用Maxout壓縮特征圖。

實驗

略。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM