Facebook AI近期提出一項新研究,表明CNN中常用的padding機制存在重大缺陷,會導致特徵圖中出現偽影,從而影響CNN的應用。
作者把這種偽影稱為空間偏差,這種偏差對於某些任務特別是小目標檢測是有害的,偏差會導致特徵圖上的偽影,而處於偽影中的物體無法被檢測到,從而導致盲點或誤檢測。此外,該機制還會導致學習的權重出現不對稱。
為此,作者提出了減輕空間偏差的解決方案,實驗結果表明這有助於提高模型的準確率。
論文地址:
1 神秘故障
目前對於卷積神經網路的大量研究工作集中在理解CNN的特徵圖。但是,很少有人關注特徵圖中啟用的空間分佈。
Facebook AI的研究人員表示,之所以會對其空間分佈感興趣,是因為交通訊號燈檢測器經常出現神秘故障,該檢測器能夠在道路場景的一幀照片中以高分數檢測出小而可見的訊號燈。
但是其對下一幀的交通訊號燈的檢測完全失敗。這兩張輸入影像的主要區別在於,在垂直方向存在有限的位移(影像是透過移動車輛採集的)。鑑於CNN通常被認為具有高度的平移不變性,因此在目標檢測方面出現如此大的差異,實在令人驚訝。
特徵圖啟用的空間分佈隨輸入而變化。透過仔細檢查大量輸入樣本的特徵分佈,作者發現,這些特徵圖會出現與任何輸入特徵都不相似的偽影。
透過分析,作者證明了這些偽像是造成前面提到的神秘故障的原因,因為它們會導致目標檢測出現“盲點”。
2 padding如何導致空間偏差
在BSTLD這個GitHub專案中,作者對交通訊號燈檢測模型進行了分析。圖1展示了使用的資料集中的兩個示例場景。對於每個場景,圖中展示了第11個卷積層中由兩個卷積核計算出的兩個特徵圖。
圖1的最後一行展示了上述兩個卷積核中每個卷積核的平均響應。第一個過濾器似乎主要響應輸入的上半部分的特徵,而第二個過濾器主要響應街道區域。
在兩個平均圖中,存在一些可見的線條,與任何場景特徵都不相似,並且始終存在於各個特徵圖中。
作者分析了所有512個卷積核的特徵圖中這些偽影的普遍性,發現這些偽影在平均特徵圖中大部分都是可見的。
有一種使偽影突出的方法,是透過計算零值輸入的特徵圖來中和場景特徵。圖2描繪了應用ReLU單元后每個卷積層的平均圖。
其中,第一層平均特徵圖在值為0的輸入下是恆定的。除了一個1畫素的邊緣之外(左邊),第二層平均特徵圖也是恆定的。
邊界偏差在隨後的層中增加了厚度並增加了方差,從而在每個邊界處建立了多個偽影。這些偽像在ReLU 8上變得非常明顯,並開始向內傳播,類似於圖1中的偽像。
顯然,第二層特徵圖中的1畫素邊界是由padding機制引起的。該機制使用1畫素0值邊框填充前一層的輸出,以便在應用3x3卷積核後保持特徵圖的大小。
第一層中的特徵圖不會受到影響,因為輸入為零值。但是,後續層越來越受到padding的影響,因為偏置項導致不能保證輸入值為0。
在圖2中值得注意的是,由padding引起的偽影在四個邊界上都不同。為了研究這種不對稱性,作者分析了生成特徵圖的卷積核。
圖3描繪了這些3x3卷積核的每層平均值。這些平均核在其權重的空間分佈中表現出不同程度的不對稱性。
例如,L1中的平均核在左邊界分配負權重,在底部分配正權重。這會直接影響padding在每個邊界處引起的變化。這種不對稱與padding的不均勻應用有關。
3 空間偏差的影響
接下來,作者演示了特徵圖偽影如何導致SSD模型的盲點。類似的問題出現在幾種小物體的檢測中,例如人臉,以及畫素級任務,例如語義分割和影像修復。
圖4展示了SSD如何根據第11個卷積層的特徵圖預測小物體。SSD使用特徵圖中的畫素位置作為目標建議的anchor。SSD會對每個建議進行評分,以預測目標類別和背景類別。除了這些分數外,SSD還計算邊界框,從而將預測目標定位在每個anchor處。
作者檢查了以1:2長寬比計算的目標建議,因為它們類似於資料集中大多數交通訊號燈的形狀。在向SSD饋入0值的輸入時,作者視覺化了針對背景類別和交通訊號燈生成的分數圖,此外還將影像空間中這些建議的邊界框視覺化。從兩個分數圖中的值範圍可以明顯看出,SSD預測影像在所有anchor位置都屬於背景類別。
對於不包含交通訊號燈的輸入,此類預測是正常的。但是,特徵圖中的偽影對分數圖有很大的影響,這些偽影使anchor被分類為背景(參照背景分數圖中的黃色區域)。與特徵圖中的其他anchor相比,這些anchor在交通訊號燈類別中的得分要低得多。
由於SSD為每個目標分配給特徵圖的權重不同,結果,偽影導致了潛在的盲點,其中某些類別的分數被降低。
為了驗證盲點是否會妨礙物體檢測,作者檢查了受影響區域中包含高度可見交通訊號燈例項的道路場景。圖4的底部展示了這種場景。
當交通訊號燈位於盲點(參見中間影像)時,SSD計算出的檢測分數低至7%(遠低於檢測假陽性截止值)。如果向上或向下移動場景影像,則只要目標位於盲點之外,就可以高分地檢測到目標。
偽影還進一步破壞了目標的定位,如圖4右上所示,該圖顯示了針對0輸入計算的每個anchor目標的建議。
這解釋了之前提到的神秘故障情況。為了進一步驗證這種效果,作者在基準影像資料集上執行SSD,其中每張影像在輸入的特定位置都包含一個交通訊號燈例項。
圖5a描繪了2D圖中的計算得分。顯然,當模型位於“盲區”頻帶內時,該模型無法準確檢測到交通訊號目標。
4 padding方法怎麼選?
值得注意的是,圖5b中的分數圖比圖5a中的分數圖更為均勻。特別是,在mirror padding下,模型能夠檢測放置在零值 padding模型的盲點中的交通訊號燈。圖8描繪了與零值 padding情況不同的大致均勻的平均特徵圖。
為了進一步分析mirror padding的影響,作者按照原始訓練協議重新訓練了模型。如表2所示,mirror padding在不同的重疊閾值(匹配IoU)下顯著提高了平均精度(AP),從而表明小物體檢測對特徵圖偽像特別敏感。
表2:兩種不同padding方案訓練的SSD交通燈檢測器的效能。
其他填充方法中,REFLECT、PartialConv和circular padding也可以有效地減少特徵圖偽影,詳情參見附錄D。
SAME 0-padding是迄今為止使用最廣泛的方法。與其他方法相比,它可以使訓練和推理速度提高多達50%。
目前缺乏通用的優越方法,作者建議考慮多個約束:
-
特徵圖統計:零值 padding會更改特徵圖中的值分佈,並且可以在使用ReLU函式的情況下改變平均值。第6節中介紹的替代方法由於重用了特徵圖中的現有值,可以保留這種分佈。
-
偏向行為(參見第6節):與circular padding和mirror padding不同,零值 padding可能不適合在邊界需要高精度預測的任務。
-
干擾影像語義(尤其是填充量> 1個畫素):例如,circular padding會引入邊界不連續性,除非輸入為全景。
-
誘發特徵圖偽影的可能性:除Distribution padding外,所有零值 padding的替代方法均會引起相對較少的偽影。