最近兩天剛看到的論文谊却,寫一篇文章當做筆記
繼去年底Phillip Isola,Jun-Yan Zhu等人提出pix2pix框架以來梅誓,image translation的應用引起了大家的重點關注,相應的github倉庫更是獲得了高達4000+的star奈梳。至此,GAN在image to image translation, semantic segmentation, image style transfer等眾多領域都達到了state-of-the-art的效果,本文介紹的ST-CGAN在pix2pix框架的基礎上做出改進循榆,分別構建兩個生成器和兩個判別器從而實現(xiàn)了陰影檢測和陰影去除,與之前的模型相比取得了更好的效果墨坚。
生成對抗網(wǎng)絡GAN(Generative adversarial network)由Goodfellow于2014年提出秧饮,16年DCGAN在圖像領域取得了十分驚艷的效果,之后便接連出現(xiàn)GAN的許多變體(pix2pix, WGAN, SRGAN, CycleGAN等等),原始GAN提出了一個minimax game浦楣,由生成器不斷生成fake data去欺騙判別器袖肥,而判別器不斷學習如何鑒別fake data和real data,生成器和判別器在不斷博弈的過程中互相提升振劳,最終達到收斂椎组。
首先讓我們先來看一看為什么pix2pix能取得如此驚艷的效果
在pix2pix之前已經(jīng)有許多GAN的變種(DCGAN, CGAN),這些GAN在當時都取得了不錯的效果历恐,雖然在某種程度上還存在著不穩(wěn)定寸癌,多樣性差,生成圖像分辨率不高等問題弱贼。博主認為這些GAN的變種是以生成看起來真的圖像作為目標蒸苇,缺乏實際的應用場景。pix2pix模型借用conditional GAN的思想吮旅,將整張原圖直接輸入溪烤,并提出了pair的概念,讓判別器同時判斷兩個pair的真假庇勃,從而建立了圖片與圖片之間的聯(lián)系檬嘀,實現(xiàn)image-to-image translation。
說得更直白一點责嚷,pix2pix與之前的GAN最大的區(qū)別就在于將一個pair中的兩張圖一起作為判別器的輸入(實現(xiàn)上就是把兩個圖片疊在一起鸳兽,channel為6作為輸入),這樣的結構使得判別器不再是簡單地判斷圖片本身的真與假罕拂,而是進一步判斷兩個圖片的對應關系揍异,從而使得生成器生成的圖片同時具備真實性和相關性。
回到本篇文章將要介紹的ST-CGAN中來爆班,介于pix2pix應用場景的單一性衷掷,很多人在思考如何將GAN應用于更廣泛的應用場景中,ST-CGAN就是其中一個柿菩。ST-CGAN的模型結構如下圖所示棍鳖。
由上圖我們可以看到,ST-CGAN構建了兩個生成器碗旅,G1用于從原圖生成含有陰影的圖渡处,G2用于從原圖和陰影圖的疊加中生成去除了陰影的圖,而兩個判別器則分別監(jiān)督這兩個生成過程祟辟,最終達到收斂医瘫。
論文中作者將Balance Error Rate (BER)作為評估檢測(Detection)陰影效果的標準,用Root mean square error (RMSE)作為評估生成的去除陰影的圖像(Removal)效果的標準
關于Balance Error Rate (BER)的詳細解釋讀者可以看這個回答旧困。Root mean square error (RMSE)就是在MSE的基礎上取平方根醇份。
在這里要吐槽一下稼锅,文中并沒有指明BER表達式中幾個變量對應的含義,包括在實驗部分的表格中論文里給出了shadow和Non-shadow也沒有給出定義僚纷。矩距。。博主根據(jù)實驗描述判斷怖竭,這里把生成的陰影圖切割為包含陰影的區(qū)域(shadow)和不包含陰影的區(qū)域(Non-shadow)锥债,然后針對這兩個不同的類分別與Ground Truth計算對應的像素點之間的error(論文中的描述為"along with separated per pixel error rates per class (shadow and non-shadow“)。具體而言痊臭,TP/(TP+FN)指代陰影區(qū)域正確檢測到陰影的部分哮肚,TN/(TN+FP)指代非陰影區(qū)域判斷為沒有陰影的部分,這樣BER的值越低對應模型的效果就越好广匙。
實驗部分允趟,論文提出了一個新的數(shù)據(jù)集ISTD(Large-scale Dataset with Image Shadow Triplets),與其他包含陰影圖的數(shù)據(jù)集不同的地方在于鸦致,ISTD數(shù)據(jù)集包含三類數(shù)據(jù)潮剪,包含陰影的原始圖片,陰影標注數(shù)據(jù)和不包含陰影的原始圖片分唾,基于ISTD數(shù)據(jù)集論文提出的模型才得以實踐(因為模型要求的輸入條件就必須包含這三種數(shù)據(jù))鲁纠。
可以看到,基于ISTD數(shù)據(jù)集訓練的情況下鳍寂,ST-CGAN達到了不錯的效果,同時為了說明模型的魯棒性情龄,論文也在別的數(shù)據(jù)集下做了對比實驗迄汛,由于其它的數(shù)據(jù)集不具備包含三類數(shù)據(jù)的條件(即不包含沒有陰影的原始圖像),論文給出的解決辦法是先用別的模型生成一個"roughly generated shadow-free images"添加到數(shù)據(jù)集中骤视。
效果相對于第一個實驗略差一點鞍爱。還有幾組數(shù)據(jù)這里就不再贅述了,論文給出了幾種不同模型做陰影去除(Removal)的效果對比
可以看到专酗,除了第5組數(shù)據(jù)中陰影部分較暗的情況下效果略差睹逃,其他情況效果還不錯。
最后祷肯,博主想到既然pix2pix實現(xiàn)了雙向端到端的image translation沉填,那ST-CGAN是否可以用來從原始圖片生成出逼真的含有陰影的圖片呢?這個可能要論文作者來解答了佑笋。
以上就是對ST-CGAN的大概解讀翼闹,下面聊一下博主對這篇論文的優(yōu)缺點評價:
優(yōu)點:
1.idea很不錯,用GAN來做Detection和Removal蒋纬,為大家打開了思路猎荠,現(xiàn)在有不少人都在思考怎么把GAN拓展到更加廣的應用場景里坚弱。
2.實驗效果不錯,與幾個Baseline相比效果有明顯提升关摇。
缺點:
1.正如文中所說荒叶,論文描述里一些地方指代不清,希望原作者后續(xù)能給出新的版本输虱。
2.相對于其它模型些楣,ST-CGAN所需要的先驗條件變多了,具體來講就是需要包含陰影的原始數(shù)據(jù)悼瓮,陰影圖戈毒,不包含陰影的原始數(shù)據(jù)這三類數(shù)據(jù),而其它的模型是在不具備第三類數(shù)據(jù)的情況下做的横堡,在這樣的情況下ST-CGAN表現(xiàn)更好可能跟它獲取的輸入條件更多有關埋市。
3.實驗中給出了陰影部分教深的情況下的實驗結果,并沒有給出在陰影部分較淺的情況下的結果命贴,其次如何給出一個深淺的標準也是一個值得討論的問題道宅,這可能直接影響到對模型評價標準。
以上是博主一些個人的想法胸蛛,也歡迎大熱烈討論~
原地址:知乎專欄