Beispiel #1
0
 def __init__(self):
     super(BaseResNet50, self).__init__()
     with self.init_scope():
         self.conv1 = L.Convolution2D(3, 64, 7, 2, 3)
         self.bn1 = L.BatchNormalization(64)
         self.res2 = R.BuildingBlock(3, 64, 64, 256, 1)
         self.res3 = R.BuildingBlock(4, 256, 128, 512, 2)
         self.res4 = R.BuildingBlock(6, 512, 256, 1024, 2)
         self.res5 = R.BuildingBlock(3, 1024, 512, 2048, 2)
Beispiel #2
0
    def __init__(self, n_class=36, pretrained_model=None, output_scale=1.0):
        if pretrained_model:
            # As a sampling process is time-consuming,
            # we employ a zero initializer for faster computation.
            kwargs = {'initialW': constant.Zero()}
        else:
            print "train resblock : True"
            # employ default initializers used in the original paper
            kwargs = {'initialW': normal.HeNormal(scale=1.0)}
        self.n_class = n_class
        self.output_scale = output_scale
        super(DualCenterProposalNetworkRes50FCN, self).__init__(
            # resnet50
            conv1=L.Convolution2D(3, 64, 7, 2, 3, **kwargs),
            bn1=L.BatchNormalization(64),
            res2=R.BuildingBlock(3, 64, 64, 256, 1, **kwargs),
            res3=R.BuildingBlock(4, 256, 128, 512, 2, **kwargs),
            res4=R.BuildingBlock(6, 512, 256, 1024, 2, **kwargs),
            res5=R.BuildingBlock(3, 1024, 512, 2048, 2, **kwargs),
            upscore32=L.Deconvolution2D(2048, 512, 8, stride=4, pad=2),
            bn_up32=L.BatchNormalization(512),
            upscore16=L.Deconvolution2D(1024, 512, 4, stride=2, pad=1),
            bn_up16=L.BatchNormalization(512),
            concat_conv=L.Convolution2D(512 * 3, 512 * 3, 3, stride=1, pad=1),
            bn_concat=L.BatchNormalization(512 * 3),
            score_pool=L.Convolution2D(512 * 3, n_class, 1, stride=1, pad=0),
            upscore_final=L.Deconvolution2D(self.n_class,
                                            self.n_class,
                                            16,
                                            stride=8,
                                            pad=4),
            conv_cp1=L.Convolution2D(512 * 3, 1024, 3, stride=1, pad=1),
            bn_cp1=L.BatchNormalization(1024),

            # center pose network
            conv_cp2=L.Convolution2D(1024, 512, 3, stride=1, pad=1),
            bn_cp2=L.BatchNormalization(512),
            upscore_cp1=L.Deconvolution2D(512, 16, 8, stride=4, pad=2),
            bn_cp3=L.BatchNormalization(16),
            upscore_cp2=L.Deconvolution2D(16, 3, 4, stride=2, pad=1),

            # origin center pose network
            conv_ocp2=L.Convolution2D(1024, 512, 3, stride=1, pad=1),
            bn_ocp2=L.BatchNormalization(512),
            upscore_ocp1=L.Deconvolution2D(512, 16, 8, stride=4, pad=2),
            bn_ocp3=L.BatchNormalization(16),
            upscore_ocp2=L.Deconvolution2D(16, 3, 4, stride=2, pad=1),
        )
Beispiel #3
0
 def __init__(self, n_class=36, pretrained_model=None):
     if pretrained_model:
         # As a sampling process is time-consuming,
         # we employ a zero initializer for faster computation.
         kwargs = {'initialW': constant.Zero()}
     else:
         # employ default initializers used in the original paper
         kwargs = {'initialW': normal.HeNormal(scale=1.0)}
     self.n_class = n_class
     super(DepthInvariantNetworkRes50FCN, self).__init__(
         # resnet50
         conv1=L.Convolution2D(3, 64, 7, 2, 3, **kwargs),
         bn1=L.BatchNormalization(64),
         res2=R.BuildingBlock(3, 64, 64, 256, 1,
                              **kwargs),  # resblock 1/2 -> 1/4
         res3=R.BuildingBlock(4, 256, 128, 512, 2,
                              **kwargs),  # resblock 1/4 ->1/8
         res4=R.BuildingBlock(6, 512, 256, 1024, 2,
                              **kwargs),  # resblock 1/8 -> 1/16
         res5=R.BuildingBlock(3, 1024, 512, 2048, 2,
                              **kwargs),  # resblock 1/16 -> 1/32
         upscore1=L.Deconvolution2D(2048, 512, 16, stride=8, pad=4),
         upscore2=L.Deconvolution2D(1024, 512, 8, stride=4, pad=2),
         upscore3=L.Deconvolution2D(512, 512, 4, stride=2, pad=1),
         bn_upscore=L.BatchNormalization(512 * 3),
         concat_conv=L.Convolution2D(512 * 3, 1024, 3, stride=1, pad=1),
         pool_roi_conv=L.Convolution2D(1024, 1024, 5, stride=5, pad=0),
         conv_after_croip=L.Convolution2D(1024, 512, 3, stride=1, pad=1),
         bn_croip1=L.BatchNormalization(1024),
         bn_croip2=L.BatchNormalization(512),
         score_pool=L.Convolution2D(512, n_class, 1, stride=1, pad=0),
         upscore_final=L.Deconvolution2D(self.n_class,
                                         self.n_class,
                                         8,
                                         stride=4,
                                         pad=2),
     )
Beispiel #4
0
    def __init__(self, n_class=36, pretrained_model=None):
        if pretrained_model:
            # As a sampling process is time-consuming,
            # we employ a zero initializer for faster computation.
            kwargs = {'initialW': constant.Zero()}
        else:
            # employ default initializers used in the original paper
            kwargs = {'initialW': normal.HeNormal(scale=1.0)}
        self.n_class = n_class
        super(CenterProposalNetworkRes50FCN, self).__init__(
            # resnet50
            conv1=L.Convolution2D(3, 64, 7, 2, 3, **kwargs),
            bn1=L.BatchNormalization(64),
            res2=R.BuildingBlock(3, 64, 64, 256, 1, **kwargs),
            res3=R.BuildingBlock(4, 256, 128, 512, 2, **kwargs),
            res4=R.BuildingBlock(6, 512, 256, 1024, 2, **kwargs),
            res5=R.BuildingBlock(3, 1024, 512, 2048, 2, **kwargs),
            upscore32=L.Deconvolution2D(2048,
                                        512,
                                        8,
                                        stride=4,
                                        pad=2,
                                        use_cudnn=False),
            upscore16=L.Deconvolution2D(1024,
                                        512,
                                        4,
                                        stride=2,
                                        pad=1,
                                        use_cudnn=False),
            concat_conv=L.Convolution2D(512 * 3, 512 * 3, 3, stride=1, pad=1),
            score_pool=L.Convolution2D(512 * 3, n_class, 1, stride=1, pad=0),
            cls_pool=L.Convolution2D(512 * 3, 128, 1, stride=1, pad=0),
            upscore_final=L.Deconvolution2D(self.n_class,
                                            self.n_class,
                                            16,
                                            stride=8,
                                            pad=4,
                                            use_cudnn=False),

            # depth network
            conv_d1_1=L.Convolution2D(1, 64, 3, stride=1, pad=1),
            bn_d1_1=L.BatchNormalization(64),
            conv_d1_2=L.Convolution2D(64, 64, 3, stride=1, pad=1),
            bn_d1_2=L.BatchNormalization(64),
            conv_d2=L.Convolution2D(64, 128, 3, stride=1, pad=1),
            bn_d2=L.BatchNormalization(128),
            conv_d3=L.Convolution2D(128, 256, 3, stride=1, pad=1),
            bn_d3=L.BatchNormalization(256),

            # center pose network
            conv_cp_1=L.Convolution2D(256 + 512 + 128,
                                      1024,
                                      3,
                                      stride=1,
                                      pad=1),
            bn_cp_1=L.BatchNormalization(1024),
            conv_cp_2=L.Convolution2D(1024, 1024, 3, stride=1, pad=1),
            bn_cp_2=L.BatchNormalization(1024),
            upscore_cp1=L.Deconvolution2D(1024,
                                          512,
                                          8,
                                          stride=4,
                                          pad=2,
                                          use_cudnn=False),
            bn_cp_3=L.BatchNormalization(512),
            upscore_cp2=L.Deconvolution2D(512,
                                          3,
                                          4,
                                          stride=2,
                                          pad=1,
                                          use_cudnn=False),

            # rotation network
            conv_rot_1=L.Convolution2D(256 + 512 + 128,
                                       1024,
                                       3,
                                       stride=1,
                                       pad=1),
            bn_rot_1=L.BatchNormalization(1024),
            conv_rot_2=L.Convolution2D(1024, 1024, 3, stride=1, pad=1),
            bn_rot_2=L.BatchNormalization(1024),
            upscore_rot1=L.Deconvolution2D(1024,
                                           512,
                                           8,
                                           stride=4,
                                           pad=2,
                                           use_cudnn=False),
            bn_rot_3=L.BatchNormalization(512),
            upscore_rot2=L.Deconvolution2D(512,
                                           5,
                                           4,
                                           stride=2,
                                           pad=1,
                                           use_cudnn=False),
        )