def _init_layers(self):
        self.relu = nn.ReLU(inplace=True)
        self.cls_convs = nn.ModuleList()
        self.reg_convs = nn.ModuleList()
        for i in range(self.stacked_convs):
            chn = self.in_channels if i == 0 else self.feat_channels
            self.cls_convs.append(
                ConvModule(chn,
                           self.feat_channels,
                           3,
                           stride=1,
                           padding=1,
                           conv_cfg=self.conv_cfg,
                           norm_cfg=self.norm_cfg))
            self.reg_convs.append(
                ConvModule(chn,
                           self.feat_channels,
                           3,
                           stride=1,
                           padding=1,
                           conv_cfg=self.conv_cfg,
                           norm_cfg=self.norm_cfg))

        self.conv_loc = nn.Conv2d(self.feat_channels, 1, 1)
        self.conv_shape = nn.Conv2d(self.feat_channels, self.num_anchors * 2,
                                    1)
        self.feature_adaption_cls = FeatureAdaption(
            self.feat_channels,
            self.feat_channels,
            kernel_size=3,
            deformable_groups=self.deformable_groups)
        self.feature_adaption_reg = FeatureAdaption(
            self.feat_channels,
            self.feat_channels,
            kernel_size=3,
            deformable_groups=self.deformable_groups)

        # adding two more 3*3 conv
        self.conv_feat_cls = nn.Conv2d(self.feat_channels,
                                       self.feat_channels,
                                       kernel_size=3,
                                       stride=1,
                                       padding=1)
        self.conv_feat_reg = nn.Conv2d(self.feat_channels,
                                       self.feat_channels,
                                       kernel_size=3,
                                       stride=1,
                                       padding=1)

        self.retina_cls = MaskedConv2d(self.feat_channels,
                                       self.num_anchors *
                                       self.cls_out_channels,
                                       3,
                                       padding=1)
        self.retina_reg = MaskedConv2d(self.feat_channels,
                                       self.num_anchors * 4,
                                       3,
                                       padding=1)
 def _init_layers(self):
     self.relu = nn.ReLU(inplace=True)
     self.conv_loc = nn.Conv2d(self.in_channels, 1, 1)
     self.conv_shape = nn.Conv2d(self.in_channels, self.num_anchors * 2, 1)
     self.feature_adaption = FeatureAdaption(
         self.in_channels,
         self.feat_channels,
         kernel_size=3,
         deformable_groups=self.deformable_groups)
     self.conv_cls = MaskedConv2d(self.feat_channels,
                                  self.num_anchors * self.cls_out_channels,
                                  1)
     self.conv_reg = MaskedConv2d(self.feat_channels, self.num_anchors * 4,
                                  1)
示例#3
0
 def _init_layers(self):
     self.relu = nn.ReLU(inplace=True)  #激活层
     self.conv_loc = nn.Conv2d(self.in_channels, 1,
                               1)  #中心预测1*1卷积,输出位置中心,只有1个通道
     self.conv_shape = nn.Conv2d(self.in_channels, self.num_anchors * 2,
                                 1)  #形状预测,还是有anchor个数,因为不知道是哪一个匹配最好
     self.feature_adaption = FeatureAdaption(
         self.in_channels,
         self.feat_channels,
         kernel_size=3,
         deformable_groups=self.deformable_groups)  #DCN卷积
     self.conv_cls = MaskedConv2d(self.feat_channels,
                                  self.num_anchors * self.cls_out_channels,
                                  1)  #这个是分类预测层的卷积,如果是推断还需要用到mask
     self.conv_reg = MaskedConv2d(self.feat_channels, self.num_anchors * 4,
                                  1)  #这个是回归预测层的卷积,如果是推断还需要用到mask
示例#4
0
    def _init_layers(self):
        self.relu = nn.ReLU(inplace=True)
        self.cls_convs = nn.ModuleList()
        self.reg_convs = nn.ModuleList()
        for i in range(self.stacked_convs):
            chn = self.in_channels if i == 0 else self.feat_channels
            self.cls_convs.append(
                nn.Conv2d(chn, self.feat_channels, 3, stride=1, padding=1))
            self.reg_convs.append(
                nn.Conv2d(chn, self.feat_channels, 3, stride=1, padding=1))

        self.conv_loc = nn.Conv2d(self.feat_channels, 1, 1)
        self.conv_shape = nn.Conv2d(self.feat_channels, self.num_anchors * 2,
                                    1)
        deformable_groups = 4
        offset_channels = 3 * 3 * 2
        self.conv_offset_cls = nn.Conv2d(self.num_anchors * 2,
                                         deformable_groups * offset_channels,
                                         1,
                                         bias=False)
        self.conv_adaption_cls = DeformConv(
            self.feat_channels,
            self.feat_channels,
            kernel_size=3,
            padding=1,
            deformable_groups=deformable_groups)
        self.conv_offset_reg = nn.Conv2d(self.num_anchors * 2,
                                         deformable_groups * offset_channels,
                                         1,
                                         bias=False)
        self.conv_adaption_reg = DeformConv(
            self.feat_channels,
            self.feat_channels,
            kernel_size=3,
            padding=1,
            deformable_groups=deformable_groups)
        self.retina_cls = MaskedConv2d(self.feat_channels,
                                       self.num_anchors *
                                       self.cls_out_channels,
                                       3,
                                       padding=1)
        self.retina_reg = MaskedConv2d(self.feat_channels,
                                       self.num_anchors * 4,
                                       3,
                                       padding=1)
 def _init_layers(self):
     self.relu = nn.ReLU(inplace=True)
     self.rpn_conv = nn.Conv2d(self.in_channels,
                               self.feat_channels,
                               3,
                               padding=1)
     self.conv_loc = nn.Conv2d(self.in_channels, 1, 1)
     self.conv_reg_first = nn.Conv2d(self.in_channels, self.num_anchors * 4,
                                     1)
     self.conv_cls = MaskedConv2d(self.feat_channels,
                                  self.num_anchors * self.cls_out_channels,
                                  1)
     self.conv_reg = MaskedConv2d(self.feat_channels, self.num_anchors * 4,
                                  1)
     self.feature_adaptation = nn.ModuleList()
     for i in range(self.num_conv):
         self.feature_adaptation.append(
             ConvModule(self.in_channels, self.in_channels, 3, padding=1))
示例#6
0
 def _init_layers(self):
     self.relu = nn.ReLU(inplace=True)
     self.conv_loc = nn.Conv2d(self.feat_channels, 1, 1)
     self.conv_shape = nn.Conv2d(self.feat_channels, self.num_anchors * 2,
                                 1)
     deformable_groups = 4
     offset_channels = 3 * 3 * 2
     self.conv_offset = nn.Conv2d(self.num_anchors * 2,
                                  deformable_groups * offset_channels,
                                  1,
                                  bias=False)
     self.conv_adaption = DeformConv(self.feat_channels,
                                     self.feat_channels,
                                     kernel_size=3,
                                     padding=1,
                                     deformable_groups=deformable_groups)
     self.conv_cls = MaskedConv2d(self.feat_channels,
                                  self.num_anchors * self.cls_out_channels,
                                  1)
     self.conv_reg = MaskedConv2d(self.feat_channels, self.num_anchors * 4,
                                  1)