[実験]SRにCannyを入れたらどうなりますか?

9467 ワード

新しいSRモデルを開発するにあたって,種々の実験が行われている.今回はその一つの実験を紹介します.

開発モデル

  • の名称はFACNN、FASTER、AWESOME CNNによって命名された.
  • 酒場がいくつかあります.
  • ポイント


  • 軽量モデル
  • この部分はJetson Xavierのような小型の映像装置にアップロードするため、ネットワークやパラメータの少ないモデルでなければならない.

  • 個性的なモデルです.
  • は軽量なモデルなので、SRのすべてのメリットを持ち去ることができないので、個性的なモデルに限定されています.
  • 試す


  • 最近見たBSRGANdegradationを見て、わざとinputにノイズを加えたり、SRの後に多くの分解過程が良好な性能を示したりしました.この部分を借りることにしました.

  • 先の考えにわざとエッジを検出するモデルを入れると、エッジがうまく表現されるのではないでしょうか.という考えで、Cannyを利用して、検出した部分をInputに加えることにしました.

  • モデルネットワーク構造

    import torch
    import torch.nn as nn
    import torch.nn.functional as F
    
    class FACNN(nn.Module):
        """Some Information about FACNN"""
        def __init__(self,scale):
            super(FACNN, self).__init__()
            self.scale = scale
            self.conv1 = nn.Sequential(
                    nn.Conv2d(3,32,kernel_size=5, stride=1, padding=2, bias=True),
                    nn.ReLU()
            )
            self.conv2 = nn.Sequential(
                nn.Conv2d(32,64,kernel_size=1, stride=1, padding=0),
                nn.Conv2d(64,12,kernel_size=1, stride=1, padding=0),
                nn.ReLU()
            )
            self.conv3 = nn.Sequential(
                nn.Conv2d(12,12,kernel_size=3, stride=1, padding=1),
                nn.Conv2d(12,3,kernel_size=3, stride=1, padding=1),
                nn.ReLU()
                
            )
        def forward(self, x):
            x = F.interpolate(x,scale_factor=(self.scale, self.scale), mode='bicubic',align_corners=True)
            out = self.conv1(x)
            out = self.conv2(out)
            out = self.conv3(out)
            #out = out.squeeze(0).permute(1,2,0).mul(255.0).clamp(0,255.0).type(torch.ByteTensor)
            return out
    
  • ページを登ると、本当に最低限のボリュームネットワークしか使われていません.
  • Deコンボリューション演算子は他の環境では使用できない場合があるため,補間後学習を行った.
  • 勉強する


    ラーニングコードハブ
  • OptimizerはAdam、LossはL 1を使用します.
  • とOptimizer戦略(?)このうちSAMが使用されています.
  • じっけんけっか

  • 実験の前にそれぞれDegradeとCanny Degrade法を行った.

  • Degradation
  • JPEGノイズと一般ISOをランダムに加えた.
  • の結果はモデルが深くないためか,Bicubicに比べてより悪いまたは類似の結果しか得られなかった.

  • Canny Degradation
  • で事実上良くなるという期待でスタート.
  • ですが、予想とは違います...
  • はかえってイメージを破壊する惨劇をもたらした.字幕部分を見るとほぼ消えた感じでシルエットが消えていました.
  • n/a.結論

  • 今回の実験は失敗した.
  • しかし、次の実験の考えがまた現れた.comming soon..