图像风格迁移_【论文解读】图像风格迁移中的Contextual Loss
【08/04更新】在前幾天的Commit中,Contextual Loss已經(jīng)支持多GPU訓(xùn)練
1.Background
對于圖像風(fēng)格遷移,最常用的做法就是通過GAN網(wǎng)絡(luò)實現(xiàn),然而,如果你沒有很強(qiáng)大的算力,訓(xùn)練GAN網(wǎng)絡(luò)就是比較困難的一件事兒了?;趥鹘y(tǒng)的前向CNN網(wǎng)絡(luò),有相關(guān)學(xué)者提出了一些感知loss,使用該loss也可以完成圖像風(fēng)格遷移,比較常見的就是Contextual Loss。
首先給出論文作者開源出的源碼,基于Tensorflow實現(xiàn)
roimehrez/contextualLoss?www.github.com代碼中包含了風(fēng)格遷移的幾個樣例,但我沒去測試。我的重點在于將Contextual Loss應(yīng)用于其他圖像增強(qiáng)的領(lǐng)域,來盡可能多地保留圖像細(xì)節(jié),下面是我用PyTorch對Contextual Loss的實現(xiàn),現(xiàn)已支持多GPU運(yùn)行~
z-bingo/Contextual-Loss-PyTorch?github.com2.Introduction
在計算機(jī)視覺中,傳統(tǒng)的一些Loss的前提都是已經(jīng)對齊的數(shù)據(jù),如L1 Loss和L2 Loss,對于沒有對齊的圖像而言是沒有意義的。Contextual Loss則是一種可用于非對齊(non-aligned)數(shù)據(jù)的Loss,其特性在于可以較好地保留ground truth的特征??梢栽诩幢悴皇褂肎AN網(wǎng)絡(luò)的情況下,較好地完成圖像風(fēng)格轉(zhuǎn)換等任務(wù),而對于生成的圖像,大多時候也是很難判斷真假的。如下圖所示,Contextual Loss可以有效地完成多種圖像風(fēng)格轉(zhuǎn)換任務(wù)。
Contextual Loss對于多個圖像風(fēng)格轉(zhuǎn)換任務(wù)都是有效的非對齊數(shù)據(jù)可以通過下圖來說明,簡言之,對于對齊數(shù)據(jù)而言,source和target兩幅圖像在相對應(yīng)的像素點上,有相同的含義,即,都是背景、都是圖片中的一個人....非對齊數(shù)據(jù)則有更多種可能。
非對齊數(shù)據(jù)3.Methods
為了能適應(yīng)非對齊數(shù)據(jù),那么該Loss需要通過特征之間的相似度來衡量。Contextual Loss通過特征之間的余弦相似度確定特征之間的差距。
兩個特征之間的相似度圖示如上圖所示,不同特征之間的相似度可通過其余弦距離來間接反映,當(dāng)其余弦距離較小時,可認(rèn)為兩者是相似的,相反,認(rèn)為其不相似。因此,兩個特征是否相似的問題就逐步轉(zhuǎn)化為了最小化特征圖之間的余弦相似度問題。
從數(shù)學(xué)角度分析,兩個特征有著自己獨特的分布,當(dāng)兩者趨于相似時,兩者的分布也趨于一致,此時,兩個特征之間的相對熵(KL散度)將會趨近于一個極小值。不妨將兩個特征的分布表示為
和 ,其KL散度可表示為:進(jìn)一步,
對上式進(jìn)行進(jìn)一步化簡就可作為最終的Loss使用了。重要就是對
進(jìn)行求解,文中假設(shè)了特征的采樣點是足夠大的,可以將其認(rèn)為是一個delta函數(shù)(沖激函數(shù)),近似為為了簡單,將
表示為 ,Loss函數(shù)就可以進(jìn)一步簡化為其實,
就是最重要的需要求解出的相似度。關(guān)于
的計算,文章中給出了詳細(xì)的計算公式,在此不進(jìn)行贅述。簡單來說,就是計算每個特征(channel維度)與其他特征之間的預(yù)先相似度,特征源自VGG中的某一層或幾層。實現(xiàn)方式詳見源碼。Reference
[1] The Contextual Loss for Image Transformation with Non-Aligned Data
[2] Maintaining Natural Image Statistics with the Contextual Loss
總結(jié)
以上是生活随笔為你收集整理的图像风格迁移_【论文解读】图像风格迁移中的Contextual Loss的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 全球地区资料json 含中英文 经纬度_
- 下一篇: python字典的特点是什么_Pytho
