如何理解u net中的overlap tile策略?

時間 2021-06-03 15:14:27

1樓:蠟筆小楚

我的理解是,比如你有乙個非常大的圖,假設是2048 * 2048的,然後直接放進網路,假設你的GPU不太行,那就跑不成,那麼把他拆成4張512 * 512的影象,然後分別進行分割,如果直接輸入那就又有問題了,512 * 512的小圖的邊緣,在原圖中可不一定是邊緣呀(下、右邊),而且還在原圖中間,細節往往很重要,在512 * 512中我們需要將這種邊緣保留,如果採用same卷積,邊緣進行0填充,那麼誤差就會很大,還不如我直接在邊緣將30畫素(計算出來的)對稱過來進行填充,形成572 * 572的大圖,然後在進行valid卷積,這樣的話,由於即使是對稱也包含了一些有用的資訊,最起碼比0有用,(而且1個512圖的邊緣,跟另乙個512的邊緣,是很相似的),那麼將來對單個圖進行完分割後合併的時候,可以實現所謂的「無縫」。我理解無縫的意思,就是我沒有用0,用的是自身的對稱。

2樓:張粉

個人理解

如果你仔細看了unet的結構,你會發現,因為每次卷積時候因為沒有padding,所以feature map會越卷越小。

可以看到最開始輸入的影象尺寸是(572,572),channel=1的灰度影象, 經過第一波卷積二連,尺寸已經變成(568,568),channel=64的feature map了。

經過一頓瘋狂的不帶padding的卷積操作,最後的輸出已經(388,388)了,channel=2,兩個channel分別為foreground和background的mask,及白色的細胞區域和黑色的背景區域,也就是完成了segmentation。

顯然,如果生生把原始影象喂進來,最後輸出的結果,會比原始影象小好多。

我們希望輸入跟輸出尺寸一樣,

即不能強行scale up最後的輸出,

又不想給每層卷積加padding(我的理解,連續對feature map加padding卷積,會使得padding進來的feature誤差越來越大,因為越卷積,feature的抽象程度越高,就更容易受到padding的影響)

於是就簡單粗暴的在最開始直接通過padding擴大輸入影象,使得最後輸出的結果正好是原始影象的尺寸。在這篇文章中,用的mirror padding, 視場景可以使用別的padding方法

比如在這裡做牙齒影象的segmentation,使用到了zero padding,即擴大的尺寸全用0(黑色)來填充。

以上個人理解,如有不足懇請指出。

如何理解few shot learning中的n way k shot?

以分類問題為例 few shot問題的定義是對於某乙個資料集,訓練集中每乙個類別的樣本數量都很少,比如一共有10個類,每個類別只有5個樣本。那麼如何訓練乙個神經網路來對這個資料集進行分類呢?乙個直接的做法就是,就像常規的分類模型一樣,用這50個樣本進行訓練 10個類別,每個類別5個樣本 那麼這麼做會...

如何理解 MylifeOrganized中Goal屬性?

Goal只是軟體提供了乙個選項,並沒有要求使用者一定要使用,如果你覺得沒什麼用,那麼不必用它。對我來說,我用goal作為乙個清單的過濾器,根據GTD的原則,你可以根據自己需要,制定多個清單,我因工作緣故,制定了乙個 本週代辦 的清單,這個清單中的乙個過濾器,就是利用了Goal 說句題外話,對於沒接觸...

如何理解Flask中的藍本?

Jaraxuss 個人理解 你的筆記本上有很多介面 USB 電源介面 SD卡槽 耳機孔 HDMI 可插拔檢視 等等 隔壁老王的電腦,就一type C口 藍圖介面 其他的介面只能通過type C的擴充套件塢 在藍圖中新增url規則 再接到電腦上 註冊藍圖 老王下班,直接拔了那一根type C走人 取消...