Background
1)Scene parsing:給輸入的圖像的每一個像素賦予一個類別標簽。即在pixel集合與category label集合之間建立影射關系。如果category label數目多、pixel變化大,則對應的scene parsing任務難。ADE20K數據集:category label數目較多、場景復雜(pixel變化大),因此,對其進行scene parsing較難!
2)復雜場景scene parsing存在的問題,如下圖所示(FCN是作者選取的Baseline,PSPNet是作者提出的網絡)
“There exist co-occurrent visual pattern”,例如“飛機要么在天上飛或者跑到上”、“car很少會出現在水面上”。上圖第一行中的boat被FCN誤標記為car。因此,引入上下文信息能夠在一定程度上避免“誤識別”。
“There are many class label pairs in the ADE20K dataset that are confusing in classification. Examples are field and earth; mountain and hill; wall, house, building and skyscraper”,在上圖第二行我們可看出,FCN輸出中,building中有Skyscraper,Skyscraper中有building。我們期望一個物體屬於一個類別,而不是兩個類別的組合,這可以通過類別之間的關系緩解。
上圖第三行中,FCN將pillow誤識別為sheet,這是由於pillow與sheet外觀很相似,如果“Overlooking the global scene category may fail to parse the pillow”。為了提升小物體或者大物體的准確率,不同尺度的sub-regions是必須的。
為了獲取global contextual prior、sub-regions contextual prior作者提出了Pyramid pooling module。
Main points
1)Pyramid pooling module
(c)中紅色部分代表global pooling,捕獲的是 global contextual prior。2x2、3x3、6x6捕獲的是不同尺度sub-regions contextual prior(也隱含捕獲了不同類別直接的關系)。
2)網絡結構選擇
作者選取了pre-trained ResNet model with the dilated network strategy。也實驗了不同深度的ResNet(實驗發現,ResNet越深越好)。
3)Deep Supervision for ResNet-Based FCN
網絡越深性能越好,但是也越難訓練。“ResNet solves this problem with skip connection in each block”。作者在網絡中間引入了一個額外的loss函數,這個loss函數和網絡輸出層的loss pass through all previous layers,圖示如下
4)實驗
作者在實驗部分詳述了solver的細節,在ADE20K、PASCAL VOC 2012、Cityscapes數據集上測試了算法的性能。
Summary
1)作者分析了不同尺度上下文信息的重要性,據此提出了Pyramid pooling module。一點體會,“有需求,然后將需求轉化為網絡結構”。當然了,轉化為網絡結構時可以充分利用現有的結構。
2)引入了additional loss假設ResNet的訓練,這種思想其實已經有了。
3)有了網絡結構之外,其實下面的難點就是實驗細節的處理,正如論文中所言“For a practical deep learning system, devil is always in the details”。我自己最近調實驗的一個深切體會就是,idea很好產生,但是idea如何通過實驗轉化為一個不錯的效果很難!這里面涉及到很多實驗細節的處理問題!最好就是,我們有一個調整實驗參數的基本原則或者思想,亂調試不行的哦!哈哈