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)
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
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))
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)