成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

PULSE:一種基于隱式空間的圖像超分辨率算法

人工智能 算法
PULSE: Self-Supervised Photo Upsampling via Latent Space Exploration of Generative Models,作者提出了一種新的圖像超分辨率方法,區別于有監督的PSNR-based和GANs-based方法,該方法是一種無監督的方法,即只需要低分辨率的圖片就可以恢復高質量、高分辨率的圖片。

分享一篇 CVPR 2020 錄用論文:PULSE: Self-Supervised Photo Upsampling via Latent Space Exploration of Generative Models,作者提出了一種新的圖像超分辨率方法,區別于有監督的PSNR-based和GANs-based方法,該方法是一種無監督的方法,即只需要低分辨率的圖片就可以恢復高質量、高分辨率的圖片。 

目前代碼已經開源:

https://github.com/adamian98/pulse 

論文信息:

 

1. Motivation

圖像超分辨率任務的基本目標就是把一張低分辨率的圖像超分成其對應的高分辨率圖像。無論是基于PNSR還是GAN的監督學習方法,或多或少都會用到pixel-wise誤差損失函數,而這往往會導致生成的圖像比較平滑,一些細節效果不是很好。于是作者換了一個思路:**以往的方法都是從LR,逐漸恢復和生成HR;如果能找到一個高分辨率圖像HR的Manifold,并從該Manifold中搜尋到一張高分辨率的圖像使其下采樣能恢復到LR,那么搜尋到的那張圖像就是LR超分辨率后的結果。**所以本篇文章主要解決了以下的兩個問題:

如何找到一個高分辨率圖像的Manifold?
如何在高分辨率圖像的Manifold上搜尋到一張圖片使其下采樣能恢復LR?

2. Method

假設高分辨率圖像的Manifold是,是M上的一個高分辨率圖片,給定一個低分辨率圖像,如果可以通過下采樣操作DS恢復LR,那么就可以認為是LR的超分辨率結果,該問題定義如下:

即當兩者的差值小于某個閾值時。令,那么本文任務其實就是找到一個如下圖所示:

以上就是本篇文章的核心內容,下面我們結合代碼來看一下具體是怎么實現的。

首先我們需要一個生成模型來近似高分辨率的Manifold,在本文中,作者采用的是StyleGAN的預訓練模型:

StyleGAN的生成器網絡中有兩個部分,一個是Mapping Network用于將latent code映射為style code,一個Synthesis Network用于將映射后得到的style code用于指導圖像的生成。這里需要注意的是,本篇文章只是使用了StyleGAN的預訓練模型,并不訓練更新其參數。加載兩個部分的參數之后,隨機構造100000個隨機latent code,經過Mapping Network,用得到新的latent code計算均值與方差:

  1. latent = torch.randn((1000000,512),dtype=torch.float32, device="cuda"
  2. latent_out = torch.nn.LeakyReLU(5)(mapping(latent)) 
  3. self.gaussian_fit = {"mean": latent_out.mean(0), "std": latent_out.std(0)} 

這個均值與方差就可以用來映射新的latent code。接下就是隨機初始化latent code和noise(StyleGAN需要):

  1. # 初始化latent code 
  2. latent = torch.randn((batch_size, 18512), dtype=torch.float, requires_grad=True, device='cuda'
  3. # 初始化noise 
  4. for i in range(18): # [?, 144] -> [?, 110241024
  5.     res = (batch_size, 12**(i//2+2), 2**(i//2+2)) 
  6.     new_noise = torch.randn(res, dtype=torch.float, device='cuda'
  7.     if (i < num_trainable_noise_layers):  # num_trainable_noise_layers 
  8.         new_noise.requires_grad = True 
  9.     noise_vars.append(new_noise) 
  10.                     
  11. noise.append(new_noise) 

**從這里我們可以看出,模型優化的其實是latent code與noise的前5層,而不是模型參數。**初始化完成了之后就可以執行前向了:

  1. # 根據之前的求得的均值和方差,映射latent code 
  2. latent_in = self.lrelu(latent_in*self.gaussian_fit["std"] + self.gaussian_fit["mean"]) 
  3. # 加載Synthesis Network用于生產圖像 
  4. # 把圖像結果從[-11]修改到[01
  5. gen_im = (self.synthesis(latent_in, noise)+1)/2 

根據原始的低分辨率圖像和生成的高分辨率圖像計算loss。在代碼中,loss由兩個部分組成:

其中L2損失是將生成的高分辨率圖像gen_im通過bicubic下采樣恢復LR,并與輸入的LR計算pixel-wise誤差,GEOCROSS是測地線距離。

最后優化器選擇的是球面優化器:

  1. # opt = SphericalOptimizer(torch.optim.Adam, [x], lr=0.01
  2.  
  3. class SphericalOptimizer(Optimizer): 
  4.     def __init__(self, optimizer, params, **kwargs): 
  5.         self.opt = optimizer(params, **kwargs) 
  6.         self.params = params 
  7.         with torch.no_grad(): 
  8.             self.radii = {param: (param.pow(2).sum(tuple(range(2,param.ndim)),keepdim=True)+1e-9).sqrt() for param in params} 
  9.  
  10.     @torch.no_grad() 
  11.     def step(self, closure=None): 
  12.         loss = self.opt.step(closure) 
  13.         for param in self.params: 
  14.             param.data.div_((param.pow(2).sum(tuple(range(2,param.ndim)),keepdim=True)+1e-9).sqrt()) 
  15.             param.mul_(self.radii[param]) 
  16.  
  17.         return loss 

3. Result

從結果可以看出,PULSE生成的圖像細節更豐富,包括頭發絲、眼睛和牙齒這些比較細微的地方都能生成的很好。而且對于有噪聲的LR,也能生成的很好,說明該算法有很強的魯棒性:

最終的比較指標采用的是MOS:

4. Questions

PULSE是一個無監督的圖像超分辨率模型,其圖像的質量其實很大程度上取決于所選取的生成模型的好壞。另一方面,由于PULSE的基礎原理就是找到一個高分辨率的圖像,使其下采樣之后能恢復LR,那么意味著結果不唯一,可能生成的圖像很清楚,但是已經失去了身份信息:

5. Resource

PaperPULSE:https://arxiv.org/pdf/2003.03808.pdfStyleGAN: https://arxiv.org/abs/1812.04948Random Vectors in High Dimen- sions: https://www.sci-hub.ren/10.1017/9781108231596.006
Github: https://github.com/adamian98/pulse.git

 

責任編輯:梁菲 來源: 今日頭條
相關推薦

2022-01-17 17:01:23

深度學習圖像人工智能

2021-01-20 11:14:47

人工智能算法技術

2018-07-12 10:08:31

圖像超分辨率重建技術原理

2017-04-10 09:17:08

神經網絡分辨率像素遞歸

2021-09-10 16:24:00

框架AI開發

2018-07-24 17:00:57

人工智能機器學習深度學習

2017-11-10 11:02:36

2024-07-05 10:41:30

目標檢測算法

2022-07-12 14:50:03

模型研究

2024-06-05 09:26:50

2014-08-07 15:06:45

Android設備分辨率

2021-06-02 10:01:20

開源技術 軟件

2013-03-11 13:48:24

投影

2011-07-09 17:00:13

愛普生掃描儀

2014-10-15 14:58:50

iPhone6iOS 8分辨率

2017-05-04 21:15:30

Android分辨率

2025-05-19 08:30:00

2021-08-08 07:56:19

游戲神器應用Reso

2021-03-02 09:06:20

安全API授權

2023-08-28 13:45:21

DNA編碼
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲在线 | 欧美黑人一区二区三区 | 成人妇女免费播放久久久 | 成人小视频在线观看 | 二区av| 亚洲免费在线 | 国产日韩精品一区二区 | av一区二区在线观看 | 亚洲精品视频一区 | 国产成人精品一区二三区在线观看 | 国产精品久久久久久52avav | 欧美精品在线播放 | 日韩免费网站 | 成人18亚洲xxoo | 久久精品视频网站 | 综合欧美亚洲 | 伊人狠狠干 | www国产亚洲精品 | a黄毛片| 国产精品毛片av | 日韩a视频 | 久久久久久久久99 | 亚洲欧美精品在线观看 | 九色网址 | 国产小视频在线观看 | 久久久久亚洲 | 国产精品特级片 | 综合色久 | 青青草社区 | 久久久www成人免费精品 | 久久91精品国产一区二区三区 | 激情一区二区三区 | 亚洲欧美男人天堂 | 欧美亚州综合 | 中文字幕欧美日韩一区 | 国产欧美日韩精品一区二区三区 | 欧美激情一区 | 免费在线看黄 | 成人深夜福利 | 天天玩天天干天天操 | 欧美一级片在线播放 |