M2Det-一种使用新的特征金字塔方式的单阶段目标检测器(论文笔记)
摘要
 特征金字塔被最先進的一階段目標檢測器(如DSSD、RetinaNet、RefineDet)和兩階段目標檢測器(如Mask RCNN、DetNet)廣泛利用,以緩解跨目標實例的尺度變化所帶來的問題。雖然這些帶有特征金字塔的目標檢測器取得了不錯的結果,但由于它們只是簡單地根據原本用于對象分類任務的骨干網固有的多尺度金字塔結構構造特征金字塔,因此存在一定的局限性。因此,坐著提出了多級特征金字塔網絡(MLFPN)來構建檢測不同尺度目標更有效的金子塔。
 方法:
- 首先,將骨干網提取的多級特征(即多層)融合為基本特征。
- 其次,將基本特征輸入到交替連接的u型減薄模塊和特征融合模塊中,利用每個U型模塊的解碼器層作為檢測目標的特征。
- 最后,我們將具有等價尺度(大小)的解碼器層集合起來,構造一個用于目標檢測的特征金字塔,其中每個特征映射由多個層次的層(特征)組成。
為了評估所提出的多目標檢測器(MLFPN)的有效性,設計并訓練了一種功能強大的端到端單級目標檢測器(M2Det),將其集成到SSD的體系結構中,該檢測器的檢測性能優于目前最先進的單級檢測器。
介紹
 a. SSD:分別在骨架網絡中的兩層和額外四層(分辨率降低一半)特征圖上進行預測
 b. FPN :自頂向下融合深層和淺層,構建特征金字塔
 c. STDN僅使用DenseNet的最后一個密集塊通過匯聚和尺度轉移操作構建特征金字塔;
 傳統的多尺度目標檢測的實現方式主要有兩種方法:圖像金字塔和特征金字塔。
 特征金字塔更容易集成到目前最新的基于神經網絡的檢測器,形成端對端的解決方案。特征金字塔的局限性:根據內部多尺度,骨干金字塔實質上用來進行目標分類任務的。這種方法有兩個局限性:
- 金字塔中的特征圖不能完全代表目標檢測任務,僅僅用骨干網絡的層來構建。
- 金字塔中的每個特征圖主要甚至單獨從骨干網的單層構建,因此它只包含單層信息。在實際中小尺寸目標實例的外表可能大相徑庭。
eg.一個交通燈和一個遠距離的人可能具有可以比較的尺寸,并且人的外表更加復雜。因此,金字塔中的每個特征圖(用來在特殊尺寸范圍檢測目標)主要或者僅僅由單層特征構成可能會導致次優的檢測性能。
本文的目的是構筑一個更加有效的特征金字塔對不同尺度的目標進行檢測:
- 首先把從骨干網提取的多層特征融合起來作為基本的特征,然后把它加入交替連接的TUM和FFM來提取更多表示,多層多尺度特征。值得注意的是,每個u型模塊中的解碼器層具有相似的深度。
- 將具有等效尺度的特征映射集合起來,構建最終的特征金字塔進行目標檢測。顯然,構成最終特征金字塔的解碼器層要比主干層深得多,即更具代表性。在最終的特征金字塔中,每個特征映射都由多個層次的解碼器層組成。因此,我們稱我們的特征金字塔塊為多層次特征金字塔網絡(MLFPN)。
提出的方法:
- 使用主干和多級特征金字塔網絡(MLFPN)從輸入圖像中提取特征
- 然后與SSD類似,根據所學習的特征生成密集的邊界框和類別得分
- 然后通過非最大抑制(NMS)操作生成最終結果
MLFPN由三部分組成:
- Feature Fusion Module ==(FFM)==特征融合模塊
- Thinned U-shape Module ==(TUM)==薄的U型模塊
- Scale-wise Feature Aggregation Module (SFAM) 尺度特征融合模塊
FFM:通過融合主干的特征映射,將語義信息豐富成基本特征。
 TUM:每個TUM生成一組多尺度特征,然后交替連接TUMs和FFMv2s提取多級多尺度特征。
 SFAM:通過尺度級聯操作和自適應注意機制將特征聚合到多層次的特征金字塔中。
 
 如圖:概述了擬議的M2Det(320×320)。M2Det利用了主干和多級特征金字塔
 網絡(MLFPN)從輸入圖像中提取特征,然后生成密集的邊界框和類別得分。在
 MLFPN、FFMv1融合主干的特征映射生成基特征。每個TUM生成一組多尺度特征,然后交替關聯TUMs和FFMv2s提取多級多尺度特征。最后,SFAM將這些特性聚合到一個多層次的特性金字塔中。
 FFMS:將FFMs應用于M2Det中不同層次特征的融合,是構建最終多層次特征金字塔的關鍵。它們使用1x1卷積層來壓縮輸入特征的通道,并使用連接操作來聚合這些特征映射。特別地,由于FFMv1以骨干網中兩個尺度不同的feature map作為輸入,在進行拼接操作之前,采用一次upsample操作將深度feature重新縮放到相同的尺度。同時,FFMv2將上一個TUM的基特征和最大的輸出特征圖作為輸入,這兩個特征是相同尺度的,并為下一個TUM生成融合的特征。FFMv1和FFMv2的結構細節分別如下圖(a)和(b)所示。
 
 FFMv1:圖(a),有兩個輸入,來自于主圖的最后兩個stage的卷積層(SSD結構),1024 * 20 * 20輸出512 * 20 * 20上采樣得到512 * 40 * 40與256 * 40 * 40concat得到768 * 40 * 40。
FFMv2:兩個輸入,一個是FFMv1的輸出,另一個是上一個TUM的尺度最大的輸出(128,40,40),cancat一波得到2564040,構成當前層級的TUM的輸入。融合了基本特征和前面TUM輸出的最大特征圖。融合后的特征圖被送入下一個TUM。值得注意,第一個TUM沒有任何其他TUMs的先驗知識,因此它只從X base 學習。
 多層多尺度特征計算方式為:
 
 其中Xbase為基特征,xil為第l個TUM中第i個尺度的特征,L為TUMs個數,Tl為第l個TUM的處理,F為FFMv1處理。
 注:除了第一個TUM的輸入是直接來自于FFMv1的輸出,剩下的TUM均是來自于FFMv2的輸出。而FFMv2又是來自于FFMv1和上一個TUM的輸出,加入FFMv1應該是類似于殘差的想法。
 **TUM:**TUMs不同于FPN和RetinaNet, TUM采用較薄的u型結構,如下圖所示,編碼器為一系列跨度為2的3x3的卷積層。解碼器將這些層的輸出作為其特征映射的參考集,原始FPN選擇ResNet骨干中每個階段的最后一層的輸出。另外,在解碼器分支上進行上采樣和elementwise求和運算后,再加上1x1個卷積層,增強了學習能力,保持了特征的平滑性。每一轉譯碼器的輸出均形成當前層的多尺度特征。總體而言,堆積TUMs的輸出形成了多層次、多尺度的特征,而前面的TUM主要提供淺層特征,中間的TUM主要提供中層特征,后面的TUM主要提供深層特征。
SFAM:目的是將TUMs生成的多級多尺度特征集合成一個多級特征金字塔。
 由主圖可知有了8個層級的TUM的輸出,每個TUM均會輸出6個尺度(圖c),SFAM就負責這些不同層級不同尺度的融合:對每一個尺度而言,從8個層級抽取該尺度的特征圖concat到一起(128*8=1024),語義也就實現了從淺到深,再利用SE block對channel做了一個Attention。之后就得到了6個尺度的特征金字塔,金字塔的每一層均是來自于8個從淺到深的語義層級,也就是所謂的Multi-level。這就是不同于現有的金字塔的結構的地方。
 第一階段是沿著通道尺寸將相同尺度的特征連接起來。聚合特征金字塔可以表示為
 [X1;X2,…,Xi],
 其中
 
 為第i大尺度的特征。在這里,聚合金字塔中的每個尺度都包含來自多層深度的特征。然而,簡單的連接操作還不夠自適應。
第二階段中引入了一個面向頻道的注意力模塊,使得功能將注意力集中在它們受益最多的頻道上。在SE block之后,使用全局平均池在壓縮步驟中生成通道方向的統計數據。為了充分捕捉通道依賴性,以下激勵步驟通過兩個完全連通的層來學習注意機制: 
 其中σ為ReLU函數,δ為sigmoid函數,
 
 r為還原比(r = 16)
最終輸出通過激活s對輸入X重新加權得到:
 
 其中,通過縮放操作,每個特征增強或減弱。
 
 最后再利用了兩個卷積層進行分類和回歸就能得到最后的結果。
 實驗
 
 
 
總結
以上是生活随笔為你收集整理的M2Det-一种使用新的特征金字塔方式的单阶段目标检测器(论文笔记)的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: matlab小波滤波详解,基于matla
- 下一篇: TMDB电影数据分析报告
