Esempio n. 1
0
    def forward(self, lrinput, refinput, showmode=True):
        lr_feature = self.relu(self.lrfeature_ext1(lrinput))
        lr_feature = self.relu(self.lrfeature_ext2(lr_feature))
        lr_feature = self.feature_extraction_network(lr_feature)

        ref_feature = self.downsample_module(refinput)
        ref_feature = self.relu(ref_feature)
        ref_feature = self.feature_extraction_network(ref_feature)

        if showmode:
            showpatch(lr_feature,
                      foldername="extracted_features_lr_image",
                      modelname="EDSR")
            showpatch(ref_feature,
                      foldername="extracted_features_ref_image",
                      modelname="EDSR")

        deform_feature = self.ssen_show(lr_batch=lr_feature,
                                        init_hr_batch=ref_feature,
                                        showmode=showmode,
                                        modelname="EDST")

        concated_feature = torch.cat((lr_feature, deform_feature), dim=1)
        reconstruct_image = self.EDSR_show(x=concated_feature,
                                           lr_feature=lr_feature)

        return reconstruct_image
Esempio n. 2
0
 def forward(self, x, lr_feature):
     x = self.mhead(x)
     res = self.body(x)
     res = torch.add(res, lr_feature)
     showpatch(res,
               foldername="features_after_reconstruction_blocks",
               modelname="EDSR")
     x = self.tail(res)
     return x
Esempio n. 3
0
    def forward(self, lr_features, hr_features, modelname, showmode=False, num_block=None):
        input_offset = torch.cat((lr_features, hr_features), dim=1)

        estimated_offset = self.offset_estimator(input_offset)

        if showmode:
            showpatch(estimated_offset, foldername="DOE_output{}".format(num_block), modelname=modelname)
            showpatch(input_offset, foldername="offsetinput{}".format(num_block), modelname=modelname)

        estimated_offset = self.offset_conv(estimated_offset)

        if showmode:
            # showpatch(estimated_offset,foldername="extracted_offset_deformconv{}".format(num_block))
            saveoffset(estimated_offset, modelname=modelname, foldername="resultoffset_deformconv{}".format(num_block),
                       istensor=True)
        output = self.deformconv(x=hr_features, offset=estimated_offset)

        return output
Esempio n. 4
0
    def forward(self, input_lr, ref_input, showmode=False):

        ref_input = self.downsampling_network(ref_input)
        input_lr = self.lrfeature_scaler1(input_lr)
        input_lr = self.lrfeature_scaler2(input_lr)

        lr_feature_out = self.feature_extractor(input_lr)
        ref_feature_out = self.feature_extractor(ref_input)
        SSEN_out = self.SSEN_Network(lr_batch=lr_feature_out,
                                     init_hr_batch=ref_feature_out,
                                     showmode=showmode)
        residual_input = torch.cat((lr_feature_out, SSEN_out), dim=1)
        residual_input_scaled = self.preprocessing_residual_block(
            residual_input)
        out = self.residual_blocks(residual_input_scaled)
        out = torch.add(out, lr_feature_out)

        if showmode:
            showpatch(lr_feature_out, foldername="extracted_features_lr_image")
            showpatch(ref_feature_out,
                      foldername="extracted_features_ref_image")
            showpatch(out, foldername="features_after_reconstruction_blocks")

        out = self.upscaling_4x(out)
        out = self.outconv(out)
        return out
Esempio n. 5
0
    def forward(self, lr_batch, init_hr_batch, modelname, showmode=False):

        hr_out1 = self.deformblock1(lr_batch,
                                    init_hr_batch,
                                    showmode=showmode,
                                    num_block=1,
                                    modelname=modelname)
        hr_out2 = self.deformblock2(lr_batch,
                                    hr_out1,
                                    showmode=showmode,
                                    num_block=2,
                                    modelname=modelname)
        hr_out3 = self.deformblock3(lr_batch,
                                    hr_out2,
                                    showmode=showmode,
                                    num_block=3,
                                    modelname=modelname)

        if showmode:
            showpatch(hr_out1,
                      foldername="extracted_features_by_deformconv1",
                      modelname=modelname)
            showpatch(hr_out2,
                      foldername="extracted_features_by_deformconv2",
                      modelname=modelname)
            showpatch(hr_out3,
                      foldername="extracted_features_by_deformconv3",
                      modelname=modelname)

        return hr_out3