Exemple #1
0
    def __init__(self,
                 in_channels,
                 num_levels,
                 refine_level=2,
                 refine_type=None,
                 conv_cfg=None,
                 norm_cfg=None):
        super(BFP, self).__init__()
        assert refine_type in [None, 'conv', 'non_local']

        self.in_channels = in_channels
        self.num_levels = num_levels
        self.conv_cfg = conv_cfg
        self.norm_cfg = norm_cfg

        self.refine_level = refine_level
        self.refine_type = refine_type
        assert 0 <= self.refine_level < self.num_levels

        if self.refine_type == 'conv':
            self.refine = ConvModule(self.in_channels,
                                     self.in_channels,
                                     3,
                                     padding=1,
                                     conv_cfg=self.conv_cfg,
                                     norm_cfg=self.norm_cfg)
        elif self.refine_type == 'non_local':
            self.refine = NonLocal2d(self.in_channels,
                                     reduction=1,
                                     use_scale=False,
                                     conv_cfg=self.conv_cfg,
                                     norm_cfg=self.norm_cfg)
Exemple #2
0
    def __init__(self,
                 in_channels,
                 num_levels,
                 refine_level=2,
                 refine_type=None,
                 conv_cfg=None,
                 norm_cfg=None,
                 init_cfg=dict(type='Xavier',
                               layer='Conv2d',
                               distribution='uniform')):
        super(BFP, self).__init__(init_cfg)
        assert refine_type in [None, 'conv', 'non_local']

        self.in_channels = in_channels
        self.num_levels = num_levels
        self.conv_cfg = conv_cfg
        self.norm_cfg = norm_cfg

        self.refine_level = refine_level
        self.refine_type = refine_type
        assert 0 <= self.refine_level < self.num_levels

        if self.refine_type == 'conv':
            self.refine = ConvModule(self.in_channels,
                                     self.in_channels,
                                     3,
                                     padding=1,
                                     conv_cfg=self.conv_cfg,
                                     norm_cfg=self.norm_cfg)
        elif self.refine_type == 'non_local':
            self.refine = NonLocal2d(self.in_channels,
                                     reduction=1,
                                     use_scale=False,
                                     conv_cfg=self.conv_cfg,
                                     norm_cfg=self.norm_cfg)
Exemple #3
0
    def __init__(self,
                 in_channels,
                 num_levels,
                 refine_level=2,
                 refine_type=None,
                 conv_cfg=None,
                 norm_cfg=None):
        super(n_l_nfpn, self).__init__()
        assert refine_type in [None, 'conv', 'non_local']

        self.in_channels = in_channels
        self.num_levels = num_levels
        self.conv_cfg = conv_cfg
        self.norm_cfg = norm_cfg

        self.refine_level = refine_level
        self.refine_type = refine_type
        assert 0 <= self.refine_level < self.num_levels
        self.refine3 = ConvModule(
                self.in_channels,
                self.in_channels,
                3,
                padding=1,
                conv_cfg=self.conv_cfg,
                norm_cfg=self.norm_cfg)
        self.refine1 = nn.ModuleList()
        for i in range(self.num_levels):
            self.refine = NonLocal2d(
                self.in_channels,
                reduction=1,
                use_scale=False,
                conv_cfg=self.conv_cfg,
                norm_cfg=self.norm_cfg)
            self.refine1.append(refine)    
Exemple #4
0
    def __init__(self,
                 in_channels,
                 num_levels,
                 refine_type=None,
                 conv_cfg=None,
                 norm_cfg=None,
                 num_outs=5,
                 relu_before_extra_convs=False,
                 add_extra_convs=False):
        super(DFPN, self).__init__()
        assert refine_type in [None, 'conv', 'non_local']

        self.in_channels = in_channels
        self.num_levels = num_levels
        self.conv_cfg = conv_cfg
        self.norm_cfg = norm_cfg

        self.refine_type = refine_type
        if self.refine_type == 'conv':
            self.refine = ConvModule(self.in_channels,
                                     self.in_channels,
                                     3,
                                     padding=1,
                                     conv_cfg=self.conv_cfg,
                                     norm_cfg=self.norm_cfg)
        elif self.refine_type == 'non_local':
            self.refine = NonLocal2d(self.in_channels,
                                     reduction=1,
                                     use_scale=False,
                                     conv_cfg=self.conv_cfg,
                                     norm_cfg=self.norm_cfg)

        self.num_outs = num_outs
        self.add_extra_convs = add_extra_convs
        self.extra_convs = nn.ModuleList()
        extra_levels = num_outs - num_levels
        if self.add_extra_convs and extra_levels >= 1:
            for i in range(extra_levels):
                extra_conv = ConvModule(in_channels,
                                        in_channels,
                                        3,
                                        stride=2,
                                        padding=1,
                                        conv_cfg=conv_cfg,
                                        norm_cfg=norm_cfg,
                                        act_cfg=act_cfg,
                                        inplace=False)
                self.extra_convs.append(extra_conv)