? ? 每次寫一篇都為了自己更深的思考,也希望大家能讀懂,一丟丟都不難肉康。這篇論文解決的問題是使用通用框架解決像素到像素的預(yù)測吼和,按照從上到下,從做到右說明:上圖的第一幅分割街景圖恢復(fù)成真是街景圖刚夺,第二幅使用不同顏色的塊生成真實建筑侠姑,第三幅圖是常見的灰度變彩色莽红,第四幅是將空中照片生成地圖(谷歌地圖)邦邦,第五幅是圖片的風(fēng)格轉(zhuǎn)移圃酵,第六幅圖是通過簡單的草圖生成真實物體。綜上薪韩,這些任務(wù)都是將一張輸入圖片翻譯成另一張與之對應(yīng)的圖片俘陷,而且是一個通用網(wǎng)絡(luò)來做到的拉盾,訓(xùn)練數(shù)據(jù)肯定不一樣的捉偏。實例——戳一下,這里可以看看泻红。
????根據(jù)之前那個Gan網(wǎng)絡(luò)的意義谊路,我們要明白實際上這篇論文框架可以通用的原因是Gan可以學(xué)習(xí)到loss,自己理解下的話大概是這個意思,判別網(wǎng)絡(luò)的目的就是判定得到的圖片是否符合要求是吧?? 普通網(wǎng)絡(luò)loss函數(shù)的本質(zhì)也是要求最終得到的圖片盡最大可能的得到符合要求的圖片骗灶。實際上本質(zhì)上判別網(wǎng)絡(luò)做的事情就是loss做的事情矿卑。
? ? Gan可以生成復(fù)雜清晰(分辨率高)的圖片母廷,這是其他網(wǎng)絡(luò)辦不到的琴昆,生成不清晰的圖片會被判別網(wǎng)絡(luò)認為是假的业舍。一個有趣的例子升酣,面臨一個選擇噩茄,既可以畫一只綠色的鸚鵡绩聘,也可以畫一只藍色的鸚鵡凿菩,但是你畫的必須是其中之一。一個沒有對抗方的監(jiān)督網(wǎng)絡(luò)接受了真實鸚鵡的識別訓(xùn)練椒拗,會傾向于畫出某種摻雜藍色或綠色的平均色蚀苛,導(dǎo)致其線條模糊不清枉阵。而一個對抗式網(wǎng)絡(luò)則可以畫出藍色或綠色的鸚鵡预茄,也可以在利用鸚鵡的{藍耻陕,綠}概率分布隨機地選擇一種顏色诗宣。但它絕不會畫出某種自然鸚鵡不存在的中間色召庞。這篇論文使用的是一個條件對抗生成網(wǎng)絡(luò)(Conditional Adversarial network), 區(qū)別與Gan的話篮灼,就是可以加約束條件诅诱。例如類別信息,或者其他模態(tài)的數(shù)據(jù)娘荡。假設(shè)下圖中的表示的y類別信息是貓炮沐,鑒別器的鑒別前提就是生成的圖片內(nèi)容得有貓大年,在此基礎(chǔ)上判別其他條件鲜戒。
圖像到圖像轉(zhuǎn)換問題的一個特征定義是將高分辨率輸入網(wǎng)格映射到高分辨率輸出網(wǎng)格遏餐。輸入和輸出的表面外觀雖不同失都,但兩者都是相同底層結(jié)構(gòu)的渲染粹庞。因此庞溜,使用Gan的生成器中輸入的結(jié)構(gòu)大致與輸出的結(jié)構(gòu)對齊。判別器如果只使用Gan同樣也是判別圖片的結(jié)構(gòu)延刘,L1范數(shù)計算的是兩個像素值的距離碘赖,判別的是圖片的大致顏色普泡。所以gan+L1是一個較好的結(jié)合劫哼。
它做的是去最大化D的區(qū)分度,最小化G(U-net)和real數(shù)據(jù)集的數(shù)據(jù)分布般码,在最小化損失函數(shù)時板祝,可以通過梯度下降法來一步步的迭代求解券时,得到最小化的損失函數(shù),和模型參數(shù)值炸枣。反過來适肠,如果我們需要求解損失函數(shù)的最大值,這時就需要用梯度上升法來迭代了逛揩。本篇論文使用最小化和最大化函數(shù)是minibatch SGD和Adam携兵。順便提一嘴,網(wǎng)站里面的貓炭懊,邊->鞋侮腹,或者包,可能是利用了條件對抗生成模型中那個條件加矛,就是cgan上面圖的y變量。
此篇論文生成網(wǎng)絡(luò)是U_Net(作者自己的網(wǎng)絡(luò),用于醫(yī)學(xué)圖像的分割網(wǎng)絡(luò))妓羊,下面看看U-Net 的結(jié)構(gòu):
U-Gan中的保留淺層結(jié)構(gòu)的做法實際上較好的保留的邊界丙猬,角點等高頻的內(nèi)容庭瑰,U-Net對提升細節(jié)的效果非常明顯弹灭。這里可以用更好的方法逻翁,分割方法有多種,能保留淺層信息的方法也很多缠诅,segnet,refinenet等。本文網(wǎng)絡(luò)名同其結(jié)構(gòu)U型。
對Patch的理解
這個大家要看清楚奧重慢!不是一張圖的一小部分那種~ 判別器使用提出的patchGan,用來判別感受野是N×N的局部patch是真是假。這個感受野舉個例子,網(wǎng)絡(luò)1*1大小的輸出吉懊,他的感受野表示的是原圖转培,含義是原圖是真是假惨寿,這就是常規(guī)的判別器所用的(判別器的輸出是1*1,感受野是原圖)特碳。本中判別器的輸出是30*30大小,相當于900個像素,每個像素感受野對應(yīng)的是原圖的70*70的patch,含義對應(yīng)原圖的900個70*70的patch是真是假(patch有重疊)瘾英。也就是說:傳統(tǒng)的判別器的輸出是1個像素,表示生成圖像為真/假颂暇,而patch Gan 判別器輸出是30*30的特征圖缺谴,表示對應(yīng)輸入判別器圖像的900個70*70的patch是真是假。感受野是什么意思呢耳鸯?戳一下就知道?用判別器對整個N*N大小圖像進行卷積湿蛔,也就是同一層的feature map 們,如下圖县爬,并平均所有的響應(yīng)來得到最終的輸出D阳啥。其中,N可以比圖像的全尺寸小得多财喳,比如N=1,就有點像范數(shù)了察迟,畢竟是要產(chǎn)生高層的特征,也仍能產(chǎn)生高質(zhì)量的結(jié)果耳高。這是因為更小的PatchGAN有著更少的參數(shù)扎瓶,跑得更快。
假定距離大于patch塊直徑的元素間是相互獨立的泌枪,這樣的判別器有效地將圖像建模為一個馬爾可夫隨機場概荷,馬爾可夫隨機場是通過像素值的局部碎片區(qū)域描繪圖像特征的。PatchGAN可以被理解為紋理/風(fēng)格損失的一種形式工闺。在看過文中提到的【25】這篇論文后乍赫,patch這個含義以及為什么叫做馬爾科夫判別器瓣蛀,【25】這個論文的patch和馬爾科夫性體現(xiàn)在固定層的featuremap作為patch輸入到判別網(wǎng)絡(luò)看是否為‘真’,神經(jīng)網(wǎng)絡(luò)本身是有向圖,每一個節(jié)點的取值只取決于前一級的節(jié)點,而與更前面的節(jié)點無關(guān),也就是說遵從馬爾科夫性雷厂。本篇論文惋增,patch可以看成原始的一小塊,馬爾可夫性是論文作者假設(shè)出來的改鲫。
說到這里這篇論文的結(jié)構(gòu)已經(jīng)講好了诈皿,那大家會不會好奇,如何評價生成圖片好不好呢?論文中提出了兩個策略像棘,Amazon Mechanical Turk (AMT)稽亏,大概就是一些人提出要求并付費,一些人有償接受要求缕题,有一丟丟那啥截歉,比如圖像標注啦~另一種fcn-score,屬于語義分割中的,看圖理解下烟零。
他有計算公式的瘪松,圖像分割文章里有的奧!