示例#1
0
    def __init__(self, args, conv=common.default_conv):
        super(DOANet, self).__init__()

        n_resblocks = args.n_resblocks
        n_feats = args.n_feats
        kernel_size = 3
        scale = args.scale[0]
        self.scale = scale
        act = nn.ReLU(True)
        self.sub_mean = common.MeanShift(args.rgb_range)
        self.add_mean = common.MeanShift(args.rgb_range, sign=1)

        # define body module
        self.body_down = nn.Sequential(
            common.Shuffle_d(scale=scale),
            conv(args.n_colors * scale * scale, n_feats, kernel_size))

        m_body = [
            common.WOAModule(n_feats, kernel_size, use_wider_kernel_size=True)
            for i in range(n_resblocks)
        ]
        m_body.append(conv(n_feats, n_feats, kernel_size))

        # define tail module
        body_tail = [
            conv(n_feats, 288, kernel_size),
            nn.PixelShuffle(scale),
            conv(int(288 // scale // scale), 64, kernel_size),
            nn.ReLU(True),
            conv(64, args.n_colors, kernel_size)
        ]

        self.body = nn.Sequential(*m_body)
        self.body_tail = nn.Sequential(*body_tail)

        self.upsampler = common.bicubic()
    def __init__(self, args, conv=common.default_conv):
        super(DWAN, self).__init__()

        n_resblocks = args.n_resblocks
        n_feats = args.n_feats
        kernel_size = 3 
        scale = args.scale[0]
        self.scale = scale
        act = nn.ReLU(True)
        self.sub_mean = common.MeanShift(args.rgb_range)
        self.add_mean = common.MeanShift(args.rgb_range, sign=1)

        # define head module
        m_head = [conv(args.n_colors, n_feats, kernel_size), act,
                    conv(n_feats, n_feats, kernel_size), act,
                        conv(n_feats, n_feats, kernel_size), act, 
                            conv(n_feats, args.n_colors, kernel_size)]

        # define body module
        self.body_down = nn.Sequential(common.Shuffle_d(scale=scale),
                                    conv(args.n_colors*scale*scale, n_feats, kernel_size))

        m_body = [
            common.ResBlock(
                conv, n_feats, kernel_size, act=act, res_scale=args.res_scale
            ) for _ in range(n_resblocks)
        ]
        m_body.append(conv(n_feats, n_feats, kernel_size))

        # define tail module
        body_tail = [
            nn.PixelShuffle(scale),
            conv(int(n_feats/scale/scale), n_feats, kernel_size),
            # common.CBAM(n_feats),
            nn.ReLU(False),
            conv(n_feats, n_feats, kernel_size),
            # common.CBAM(n_feats),
            nn.ReLU(False)
        ]

        m_tail = [
            conv(args.n_colors*3, n_feats, kernel_size),
            # common.CBAM(n_feats),
            nn.ReLU(False),
            conv(n_feats, n_feats, kernel_size),
            # common.CBAM(n_feats),
            nn.ReLU(False),
            conv(n_feats, args.n_colors, kernel_size)
        ]

        self.head = nn.Sequential(*m_head)
        self.body = nn.Sequential(*m_body)
        self.body_tail = nn.Sequential(*body_tail)

        self.tail = nn.Sequential(*m_tail)

        # self.dynamic_kernel0 = conv(n_feats, args.n_colors, 7) # common.pixelConv(n_feats, 32, 25, 5, 3)
        # self.dynamic_kernel1 = conv(n_feats, args.n_colors, 5)
        # self.dynamic_kernel2 = conv(n_feats, args.n_colors, 3)

        self.dynamic_kernel0 = common.pixelConv(n_feats, 32, 25, 5, 3)
        self.dynamic_kernel1 = common.pixelConv(n_feats, 49, 49, 7, 3)
        self.dynamic_kernel2 = common.pixelConv(n_feats, 0, 9, 3, 3)
示例#3
0
    def __init__(self, args, conv=common.default_conv):
        super(DDet, self).__init__()

        n_resblocks = args.n_resblocks
        n_feats = args.n_feats
        kernel_size = 3
        scale = args.scale[0]
        self.scale = scale
        act = nn.LeakyReLU(0.2, True)
        self.sub_mean = common.MeanShift(args.rgb_range)
        self.add_mean = common.MeanShift(args.rgb_range, sign=1)

        # define head module

        # m_head = [conv(args.n_colors, n_feats, 5), act,
        #             conv(n_feats, n_feats, kernel_size), act,
        #                 conv(n_feats, n_feats, kernel_size), act,
        #                     conv(n_feats, n_feats, kernel_size), act,
        #                         conv(n_feats, n_feats, kernel_size), act,
        #                             conv(n_feats, n_feats, kernel_size), act,
        #                                 conv(n_feats, n_feats, kernel_size), act,
        #                                     conv(n_feats, args.n_colors, 1)]

        m_head = [
            conv(args.n_colors, n_feats, 5), act,
            common.FExtractModule(n_feats,
                                  kernel_size,
                                  bias=True,
                                  use_wider_kernel_size=True), act,
            common.FExtractModule(n_feats,
                                  kernel_size,
                                  bias=True,
                                  use_wider_kernel_size=True), act,
            common.FExtractModule(n_feats,
                                  kernel_size,
                                  bias=True,
                                  use_wider_kernel_size=True),
            common.CBAM(n_feats), act,
            conv(n_feats, args.n_colors, 1)
        ]

        # define body module
        self.body_down = nn.Sequential(
            common.Shuffle_d(scale=scale),
            conv(args.n_colors * scale * scale, n_feats, kernel_size))

        m_body = [
            common.OAModule(n_feats,
                            kernel_size,
                            use_att=i >= n_resblocks // 4 * 3)
            for i in range(n_resblocks)
        ]
        m_body.append(conv(n_feats, 288, kernel_size))

        # define tail module
        body_tail = [
            nn.PixelShuffle(scale),
            conv(int(288 // scale // scale), n_feats, kernel_size),
            nn.ReLU(True),
            conv(n_feats, n_feats, kernel_size),
            nn.ReLU(True)
        ]

        m_tail = [
            conv(args.n_colors * 3, n_feats, kernel_size),
            # common.CBAM(n_feats),
            nn.ReLU(True),
            conv(n_feats, args.n_colors, kernel_size),
            # common.CBAM(n_feats),
            # nn.ReLU(False),
            # conv(n_feats, args.n_colors, kernel_size)
        ]

        self.head = nn.Sequential(*m_head)
        self.body = nn.Sequential(*m_body)
        self.body_tail = nn.Sequential(*body_tail)

        self.tail = nn.Sequential(*m_tail)

        # self.dynamic_kernel0 = conv(n_feats, 64, 7) # common.pixelConv(n_feats, 32, 25, 5, 3)
        # self.dynamic_kernel1 = conv(n_feats, 64, 5)
        # self.dynamic_kernel2 = conv(n_feats, 64, 3)

        self.dynamic_kernel0 = common.pixelConv(n_feats, 64, 25, 5, 3)
        self.dynamic_kernel1 = common.pixelConv(n_feats, 64, 49, 7, 3)
        self.dynamic_kernel2 = common.pixelConv(n_feats, 64, 9, 3, 3)

        self.upsampler = common.bicubic()