---
# System prepended metadata

title: Free-Form Image Inpainting with ++Gated Convolution++ (直譯：門捲積)

---

# Free-Form Image Inpainting with ++Gated Convolution++ (直譯：門捲積)


#### reference:
[Image Inpainting for Irregular Holes Using
Partial Convolutions](https://arxiv.org/pdf/1804.07723.pdf)
[Free-Form Image Inpainting with Gated Convolution](https://arxiv.org/pdf/1806.03589.pdf)
[Generative Image Inpainting with Contextual Attention](https://arxiv.org/pdf/1801.07892.pdf)
[Gated Convolution 圖像修復任務](https://xiaosean5408.medium.com/gated-convolution-%E5%9C%96%E5%83%8F%E4%BF%AE%E5%BE%A9%E4%BB%BB%E5%8B%99-deepfillv2-free-form-image-inpainting-with-gated-convolution-b84a44a3cf5b)
[Partial Convolution 圖像修復任務](https://xiaosean5408.medium.com/partial-convolution-%E5%9C%96%E5%83%8F%E4%BF%AE%E5%BE%A9%E4%BB%BB%E5%8B%99pconv%E7%B0%A1%E4%BB%8B-image-inpainting-for-irregular-holes-using-partial-convolutions-81e6259b8e5f)
- mask 可以是不規則的(Free-form)讓模型進行修補
- 

### Convolution network v.s partial Convolution v.s Gated Convolution

##### Convolution network
- 執行過程
將正常的pixels與空洞的pixels視為同樣的方式去處理
![](https://i.imgur.com/GZ3gi0w.png)
黃色為3x3大小的Kernel，kernel會慢慢掃過整張圖片
可能的情況只區分為三種：
1. 都是需要填補的pixel。
2. 都是不需填補的pixel。
3. 有需要填補以及不需填補的pixel。

##### Partial Convolution
- 執行過程
概念上，是一般的CNN搭配上Mask
Mask代表一張圖片哪邊是需要修補的空洞(1表示不需要修補；0表示為空洞需要修補)
讓CNN在傳遞十有Mask，Mask用來區分空洞與否，來做輔助，可以知道目前的pixel是正常還是不正常
![](https://i.imgur.com/NAMzCjA.png)
框框表示Kernel，在Kernel中有Mask Value(0 or 1)
1. 紅框：Kernel中所有Mask Value皆為1，不需要修補，使用一般的Convolution正常處理
2. 綠框：雖然Kernel中右下角的Mask Value為0，但可以透過附近的1來學習顏色、紋理等，使其修補，整個Kernel的Mask Value變成1
3. 藍框：全部皆為0，先不處理，等傳遞到後面的Layer中有較多的資訊時再修補
直到整張圖片皆為1，修補完成

##### Gated Convolution
- 執行過程
Partial Convolution的進階版本，更改了當出現上圖綠框情況(有1有0)時，Partial Convolution會把整個Kernel轉成全部都是1，然而，如果有一個5x5的kernel，只有最左上角的mask value為1，其餘皆為0，但Partial convolution會把所有的kernel變成1，有點不合理。
因此，Gated Convolution的概念為下：
1. Layer 1：64個空間的原圖
2. Layer 2：Layer 1經過CNN後修補的結果
3. 將兩層Layer 相乘
![](https://i.imgur.com/PzhbrsA.png)

![](https://i.imgur.com/h8wZPd0.png)
即使在深層我們還是可以發現有塗鴉的資訊存留在該 layer 的某個 Channel，
比較最下方的 PConv， 其塗鴉資訊會逐漸消失。

比較圖
![](https://i.imgur.com/INLvVB7.png)
