本文來自公眾號“每日一醒”
目標檢測或者實例分割不僅要關心語義信息,還要關注圖像的精確到像素點的淺層信息。
所以需要對骨干網絡中的網絡層進行融合,使其同時具有深層的語義信息和淺層的紋理信息。
PANet整體結構
PANet(Path Aggregation Network)最大的貢獻是提出了一個自頂向下和自底向上的雙向融合骨干網絡,同時在最底層和最高層之間添加了一條“short-cut”,用於縮短層之間的路徑。
PANet還提出了自適應特征池化和全連接融合兩個模塊。
其中自適應特征池化可以用於聚合不同層之間的特征,保證特征的完整性和多樣性,而通過全連接融合可以得到更加准確的預測mask。
PANet的整體結構:
PANet的網絡結構如圖1所示,它由5個核心模塊組成。
其中(a)是一個FPN,(b)是PAN增加的自底向上的特征融合層,(c)是自適應特征池化層,(d)是PANet的bounding box預測頭,(e)是用於預測掩碼的全連接融合層。
FPN
在FPN中,因為要走自底向上的過程,淺層的特征傳遞到頂層需要經過幾十個甚至上百個網絡層,當然這取決於BackBone網絡用的什么,因此經過這么多層傳遞之后,淺層的特征信息丟失就會比較嚴重。
(a)的最左側是一個線性網絡結構,通過這個自底向上模塊,可以得到 [C1、C2、C3、C4、C5] 五組不同尺寸的Feature Map。
FPN通過自頂向下的路徑得到4組Feature Map: [P5、P4、P3、P2] 。
其中上采樣采用的是雙線性差值, Pi 和Ci 的融合采用的是單位加的方式。
FPN的融合方式
PANet
PANet在FPN的自底向上的路徑之后又添加了一個自底向上的路徑,通過這個路徑PANet得到 [N2、N3、N4、N5] 共4個Feature Map。
PANet通過一個更淺層的Ni 和更深層的Pi+1 融合的方式得到它的下一層Ni+1 ,以N2 到N3 的計算為例。
它先通過一個步長為2的3*3 卷積對N2進行下采樣,再通過單位加的方式將P3和下采樣之后的Feature Map進行特征融合。
接着再使用一個3*3的卷積對特征進行融合,增加融合之后的特征的表征能力。
最后使用ReLU激活函數對特征進行非線性化。
在PANet中,[N3、N4、N5]均是采用上面的融合方式,而N2是直接復制的P2的值。
PANet的融合方式
此外PANet還在自頂向下模塊和自底向上模塊各添加了一個跨越多層的shortcut,如圖中的紅色和綠色虛線。
自適應特征池化
在FPN中,每個Feature Map都會輸出一個預測結果。
FPN這么做的原因是出於感受野和網絡深度成正比的關系,即網絡越深,網絡上的像素點的感受野越大。
但其實不同的層次的Feature Map的不同特性並不僅僅只有感受野,還有它們不同的側重點,基於這個思想,PANet提出了融合所有層的Feature Map的池化操作:自適應特征池化層。
自適應特征池化先將通過RPN提取的ROI壓縮成一維的特征向量,然后通過取max或者取和的方式進行不同Feature Map的融合,最后在融合之后的基礎上記性bounding box和類別的預測。
全連接融合
全連接和FCN都被廣泛應用到分割圖的預測,但是FCN和全連接都有它們各自的優點。
FCN給出的像素點級別的預測是基於它的局部感受野和共享的卷積核。
全連接的特點在於它是對位置敏感的,因為它對於不同的空間位置的預測都是使用不同的參數進行預測的,因此全連接層具有適應不同空間位置的能力。
同時全連接的每個像素點的預測都是基於整個圖的信息,這對於區分物體是否是同一個對象也非常重要。
基於這個動機,PANet提出了對FCN和全連接融合的結構。
其主分支由4個連續的3*3卷積核一個上采樣2倍的反卷積組成,它用來預測每個類別的mask分支。
全連接融合的另一個分支是從conv3叉出的一個全連接層,它先通過兩個3*3卷積進行降維,然后將其展開成一維向量,然后通過這個向量預測類別不可知的前景/背景的mask。
最后再通過一個reshape操作將其還原為 28*28的Feature Map。
這里一般只使用一個全連接層,因為兩個以上的全連接會使空間特征遭到破壞。
最后在單位加和一個sigmoid激活函數得到最終輸出。
Yolo v4中的PANet
PANet位在於YOLOv4模型的neck,主要通過保留空間信息來增強實例分割過程。
當圖像經過神經網絡的各個層時,特征的復雜度增加 ,同時圖像的空間分辨率降低 。
YOLOv3中使用的FPN使用自頂向下的路徑來提取語義豐富的特征並將其與精確的定位信息結合起來。
但對於為大目標生成mask,這種方法可能會導致路徑過於冗長,因為空間信息可能需要傳播到數百個層。
另一方面,PANet使用另一條自底向上的路徑,而FPN采用的自頂向下的路徑。
通過使用從底層到頂層的橫向連接,這有助於縮短路徑。
這就是所謂的“shortcut”連接,它只有大約10層。
PANet通常使用自適應特征池化將相鄰的層相加到一起進行mask預測。
但是,在YOLOv4中使用PANet時,這種方法做了點修改,不是相加相鄰的層,而是對它們應用一個拼接操作,以提高預測的准確性。
張量連接concat也是一種融合方式,只不過把如何融合交給了下一層卷積核的學習。
而add有一種先驗在里面,就是假設特征圖的每層代表着不同的語義信息,而待融合的兩個特征圖每個層是對應的,並且相比於concat,add操作使得相加以后,對應的層對應的特征分享相同的權重。
總結
PANet是一個加強版的FPN,它通過融合自底向上和自頂向下兩條路徑的方式增強了骨干網絡的表征能力。
自適應特征池化使模型自己選擇在預測不同物體時選擇不同的Feature Map,避免了目標尺寸和網絡深度的硬性匹配。
最后,PANet的全連接融合的輸出頭通過在原來的Mask分支的基礎上增加了全連接分支,提升了預測的掩碼的質量。
——————
淺談則止,細致入微AI大道理
掃描下方“每日一醒”,選擇“關注”公眾號
—————————————————————
—————————————————————