圖像修復(fù)(Image inpainting)是一個(gè)已經(jīng)被廣泛研究的計(jì)算機(jī)視覺問題,即恢復(fù)圖像中缺失的部分。斯坦福大學(xué)CS230課程的Mark Sabini等人提出“Imageoutpainting”,比圖像修復(fù)更進(jìn)一步,能從一個(gè)圖像片段“推斷”出外延的部分,補(bǔ)全成整個(gè)畫面。這篇論文獲得了CS230期末poster的第一名,效果非常驚艷。
這是Painting Outside the Box: Image Outpainting這篇論文的代碼實(shí)現(xiàn)。這篇論文在吳恩達(dá)的斯坦福大學(xué)CS230課程中獲得了期末Poster的第一名。
圖像修復(fù)(Image inpainting)是一個(gè)已經(jīng)被廣泛研究的計(jì)算機(jī)視覺問題,涉及恢復(fù)圖像中缺失的部分。
目前最先進(jìn)的圖像修復(fù)方法方法包括Satoshi Iizuka等人在SIGGRAPH 2017提出的基于GAN的方法[1],以及NVIDIA的Guilin Liu等人提出的基于CNN的方法[2]。
在這個(gè)研究中,我們的目標(biāo)是將[1]的方法拓展到修復(fù)圖像之外的部分(outpainting),即補(bǔ)全超出圖像邊界的畫面。
通過遞歸地進(jìn)行outpainting,可以任意地?cái)U(kuò)展圖像。
問題描述和數(shù)據(jù)準(zhǔn)備
給定一幅 m × n 的源圖像,生成一幅 m × (n + 2k) 的圖像,其中
要解決的問題是:m=128,n=64,k=32
數(shù)據(jù)
baseline圖像:128×128的RGB城市圖像
數(shù)據(jù)集:Place365-Standard [3]
包含36500張256×256的RGB圖像,被降低采樣到128×128
100張圖像用于驗(yàn)證
Place365數(shù)據(jù)集中城市圖像的樣本
數(shù)據(jù)預(yù)處理:
給定圖像,標(biāo)準(zhǔn)化成 [0,1] →?
定義mask M:
定義補(bǔ)足的mask
計(jì)算
設(shè)
堆疊
輸出
方法
訓(xùn)練Pipeline:
使用與文獻(xiàn)[1]類似的DCGAN結(jié)構(gòu)(G,D);
給定Itr,進(jìn)行預(yù)處理來得到In和Ip;
運(yùn)行G(Ip)來得到outpainted的圖像Io;
在Io和ground-truthIn上運(yùn)行D;
訓(xùn)練Schedule:
用于調(diào)節(jié)G和D的三階段訓(xùn)練;
階段i:使用Adam(Ir=0.0001,β1=0.9,β2=0.999,ε=10-8)在迭代Ti中優(yōu)化損失(i);
在18:2:80的分片中選擇T1,T2,T3
α=0.0004控制MSE損失
后處理:
將Io重整化為[0,255]→
使用泊松克?。⊿eamless Cloning)來將和進(jìn)行混合
模型
結(jié)構(gòu)
除了G和D的最后一層之外,每一層都是ReLU。G和D的輸出是Sigmoid函數(shù)。其中,η是伸縮因子(dilation factors)。
Outpainting
驗(yàn)證集中保留圖像樣本的修復(fù)結(jié)果,與原始ground-truth一起顯示。模型訓(xùn)練了100個(gè)時(shí)段(相當(dāng)于227,500次迭代),批量大小為16。
Places365的MSE損失
在Place365中訓(xùn)練MSE損失。不同階段的背景顏色是不同的。在階段3中,由于將聯(lián)合損失(joint loss)進(jìn)行了優(yōu)化,MSE損失有小幅度增長。
本地標(biāo)識符(Local Discriminator)
使用本地標(biāo)識符進(jìn)行訓(xùn)練,減少了垂直條帶并提高了色彩保真度,但是增加了artifact和訓(xùn)練時(shí)間。
擴(kuò)張(dilation)的影響
網(wǎng)絡(luò)的訓(xùn)練在城市圖像上過擬合了。在擴(kuò)張不足的情況下,由于接受域有限,網(wǎng)絡(luò)無法outpaint。
遞歸的outpainting
在擴(kuò)展和填充之后,可以將圖像輸入到網(wǎng)絡(luò)中。遞歸地將這個(gè)過程進(jìn)行重復(fù)操作,將圖像的寬度擴(kuò)大到3.5。正如期望的那樣,噪聲隨著連續(xù)迭代而混合。
結(jié)論
最終實(shí)現(xiàn)了圖像的outpainting;
三階段的訓(xùn)練有助于其穩(wěn)定性;
對于outpainting,擴(kuò)張卷積對充分的神經(jīng)元接受域至關(guān)重要
雖然會(huì)伴隨噪聲和誤差,但對outpainting進(jìn)行遞歸是可行的。
用Keras實(shí)現(xiàn)Image Outpainting
在代碼實(shí)現(xiàn)中,我們對256*256的圖像進(jìn)行了一些修改:
添加了Identity loss,即從生成的圖像到原始圖像
從訓(xùn)練數(shù)據(jù)中刪除了patches(訓(xùn)練pipeline)
用裁減(cropping)代替了掩膜(masking)(訓(xùn)練pipeline)
添加了卷積層
結(jié)果
模型用海灘的數(shù)據(jù)訓(xùn)練了200 epochs。
Recursive painting
用Keras實(shí)現(xiàn)Image Outpainting
1. 準(zhǔn)備數(shù)據(jù):
2. 構(gòu)建模型
要從頭開始構(gòu)建模型,你可以直接運(yùn)行’outpaint.ipynb',或
你可以下載訓(xùn)練完成模型,并將其移到“checkpoint/”,然后運(yùn)行它。
-
圖像
+關(guān)注
關(guān)注
2文章
1084瀏覽量
40470 -
計(jì)算機(jī)視覺
+關(guān)注
關(guān)注
8文章
1698瀏覽量
45994
原文標(biāo)題:吳恩達(dá)斯坦福CS230第一名:圖像超級補(bǔ)全,效果驚艷(附代碼)
文章出處:【微信號:AI_era,微信公眾號:新智元】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論