FCN語義分割中Shift-and-stitch中的stitch部分的理解,反捲積的實現過程

1. 關於Shift-and-stitch的一點解釋

FCN原文如下:Process each of these f2 inputs, and interlace the outputs so that the predictions correspond to the pixels at the centers of their receptive fields。

翻譯過來大致就是處理每個 f2 輸入,並交錯輸出,以便預測與其接受字段的中心的像素相對應

關於這個簡書上有一個詳盡的解釋並給出了具體的示例圖。但是我有點笨,stitch過程沒讀明白。後來注意到這個原文的交錯輸出才恍然大悟

那就也舉那個例子吧

簡書這個例子如下圖:

 

回家去補圖。

 

前面的就不多說了。簡書上說的很明白,生成了4張pool圖。下面單講stitch過程。注意交錯輸出幾個字。目的是上採樣,將圖像擴大。根據小圖3*3可以知道原圖大小爲6*6.但是真正的原圖是5*5啊,捨棄最左側一行一列即可。

下面開始交錯輸出:

第一次:相當於擴大原圖A的A(0,0)部分,就去小圖的各個(0,0)部分取值交錯填入吧。完成了第一次交錯輸出。A(0,0)有4個像素點哦,把A看成分塊矩陣更好理解。

 


 

7 12        
25 25        
           
           
           
           

第二次:  擴大原圖A的A(0,1)部分。就去取小圖的各個(0,1)部分填入吧。填入結果就是

7 12 12 12    
25 25 75 75    
           
           
           
           

第三次:擴大原圖A的A(0,2)部分。就去取小圖的各個(0,2)部分填入吧。填入結果就是

7 12 12 12 2 2
25 25 75 75 45 11
           
           
           
           

 

第四次:擴大原圖A的A(1,0)部分。就去取小圖的各個(1,0)部分填入吧。填入結果就是

7 12 12 12 2 2
25 25 75 75 45 11
27 27        
68 86        
           
           

 

依次類推,最終結果如下

7 12 12 12 2 2
25 25 75 75 45 11
27 27 75 75 54 11
68 86 86 54 54 20
98 98 86 65 41 20
98 98 65 65 19 19

 

最終的最終 原圖大小是5*5啊  那就捨棄一行一列好了。與簡書的結果一致了吧。

7 12 12 12 2
25 25 75 75 45
27 27 75 75 54
68 86 86 54 54
98 98 86 65 41

 

2.反捲積的解釋:

嗯,網上資料很多。理論就不說了,只關心實現過程吧。說白了就

a.一次上池化,在縮小圖中插入行 列,值爲0.。

b.用一個卷積覈對上池化的圖像進行卷積。就得到反捲積的最終結果了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章