Example #1
0
    def __init__(self, cfg):
        super(MGNBackbone, self).__init__()
        resnet = create_backbone(cfg)

        self.backbone = nn.Sequential(
            resnet.conv1,
            resnet.bn1,
            resnet.relu,
            resnet.maxpool,
            resnet.layer1,
            resnet.layer2,
            resnet.layer3[0],
        )

        res_conv4 = nn.Sequential(*resnet.layer3[1:])

        res_g_conv5 = resnet.layer4

        res_p_conv5 = nn.Sequential(
            Bottleneck(1024,
                       512,
                       downsample=nn.Sequential(
                           nn.Conv2d(1024, 2048, 1, bias=False),
                           nn.BatchNorm2d(2048))), Bottleneck(2048, 512),
            Bottleneck(2048, 512))
        # res_p_conv5.load_state_dict(resnet.layer4.state_dict())
        load_state_dict(res_p_conv5, resnet.layer4.state_dict())

        self.p0 = nn.Sequential(copy.deepcopy(res_conv4),
                                copy.deepcopy(res_g_conv5))
        self.p1 = nn.Sequential(copy.deepcopy(res_conv4),
                                copy.deepcopy(res_p_conv5))
        self.p2 = nn.Sequential(copy.deepcopy(res_conv4),
                                copy.deepcopy(res_p_conv5))
Example #2
0
    def __init__(self, cfg):
        super(PyramidalBackbone, self).__init__()

        resnet = create_backbone(cfg)

        self.backbone = nn.Sequential(resnet.conv1, resnet.bn1, resnet.relu,
                                      resnet.maxpool, resnet.layer1,
                                      resnet.layer2, resnet.layer3,
                                      resnet.layer4)
Example #3
0
    def __init__(self, cfg):
        super(PGFABackbone, self).__init__()
        # cfg.model.backbone.last_conv_stride = 1
        resnet = create_backbone(cfg)

        # resnet.layer4[0].downsample[0].stride = (1,1)
        # resnet.layer4[0].conv2.stride = (1,1)
        self.backbone = nn.Sequential(resnet.conv1, resnet.bn1, resnet.relu,
                                      resnet.maxpool, resnet.layer1,
                                      resnet.layer2, resnet.layer3,
                                      resnet.layer4)
Example #4
0
    def __init__(self, cfg):
        super(MDRSBackbone, self).__init__()
        resnet = create_backbone(cfg)
        self.cfg = cfg
        self.backbone = nn.Sequential(
            resnet.conv1,
            resnet.bn1,
            resnet.relu,
            resnet.maxpool,
            resnet.layer1,
            resnet.layer2,
            resnet.layer3[0],
        )
        self.out_c = resnet.out_c
        res_conv4 = nn.Sequential(*resnet.layer3[1:])

        global_conv5 = resnet.layer4

        # Option 1
        # local_conv5_1 = nn.Sequential(
        #     Bottleneck(1024, 512, stride=2, downsample=nn.Sequential(nn.Conv2d(1024, 2048, 1, 2, bias=False), nn.BatchNorm2d(2048))),
        #     Bottleneck(2048, 512),
        #     Bottleneck(2048, 512))
        #
        # load_state_dict(local_conv5_1, resnet.layer4.state_dict())
        #
        # local_conv5_2 = nn.Sequential(
        #     Bottleneck(1024, 512, downsample=nn.Sequential(nn.Conv2d(1024, 2048, 1, bias=False), nn.BatchNorm2d(2048))),
        #     Bottleneck(2048, 512),
        #     Bottleneck(2048, 512))
        #
        # load_state_dict(res_p_conv5_2, resnet.layer4.state_dict())
        #
        # self.p0 = nn.Sequential(copy.deepcopy(res_conv4), copy.deepcopy(global_conv5))
        # self.p1 = nn.Sequential(copy.deepcopy(res_conv4), copy.deepcopy(local_conv5_1))
        # self.p2 = nn.Sequential(copy.deepcopy(res_conv4), copy.deepcopy(local_conv5_2))

        # Option 2
        local_conv5 = nn.Sequential(
            Bottleneck(1024,
                       512,
                       downsample=nn.Sequential(
                           nn.Conv2d(1024, 2048, 1, bias=False),
                           nn.BatchNorm2d(2048))), Bottleneck(2048, 512),
            Bottleneck(2048, 512))
        local_conv5.load_state_dict(resnet.layer4.state_dict())
        self.p0 = nn.Sequential(copy.deepcopy(res_conv4),
                                copy.deepcopy(global_conv5))
        self.p1 = nn.Sequential(copy.deepcopy(res_conv4),
                                copy.deepcopy(local_conv5))
        self.p2 = nn.Sequential(copy.deepcopy(res_conv4),
                                copy.deepcopy(local_conv5))
Example #5
0
    def __init__(self, cfg):
        super(HOReIDEncoder, self).__init__()
        self.cfg = cfg

        # backbone and optimize its architecture
        # cfg.model.backbone.last_conv_stride = 1
        resnet = create_backbone(cfg)

        # resnet.layer4[0].downsample[0].stride = (1,1)
        # resnet.layer4[0].conv2.stride = (1,1)

        # cnn backbone
        self.resnet_conv = nn.Sequential(
            resnet.conv1,
            resnet.bn1,
            resnet.maxpool,  # no relu
            resnet.layer1,
            resnet.layer2,
            resnet.layer3,
            resnet.layer4)