コード例 #1
0
ファイル: test_multibox.py プロジェクト: zhangxgu/chainercv
    def setUp(self):
        self.link = Multibox(self.n_class, self.aspect_ratios)

        xs = list()
        n_bbox = 0
        for ar in self.aspect_ratios:
            C, H, W = np.random.randint(1, 10, size=3)
            xs.append(
                np.random.uniform(size=(self.batchsize, C, H,
                                        W)).astype(np.float32))
            n_bbox += H * W * (len(ar) + 1) * 2

        self.xs = xs
        self.n_bbox = n_bbox
コード例 #2
0
ファイル: test_ssd.py プロジェクト: zutshianand/chainercv
 def __init__(self, n_fg_class):
     super(DummySSD,
           self).__init__(extractor=DummyExtractor(),
                          multibox=Multibox(n_class=n_fg_class + 1,
                                            aspect_ratios=((2, ), (2, 3),
                                                           (2, ))),
                          steps=(0.1, 0.25, 1),
                          sizes=(0.1, 0.25, 1, 1.2),
                          mean=np.array((0, 1, 2)).reshape((-1, 1, 1)))
コード例 #3
0
ファイル: test_multibox.py プロジェクト: zhangxgu/chainercv
class TestMultibox(unittest.TestCase):
    def setUp(self):
        self.link = Multibox(self.n_class, self.aspect_ratios)

        xs = list()
        n_bbox = 0
        for ar in self.aspect_ratios:
            C, H, W = np.random.randint(1, 10, size=3)
            xs.append(
                np.random.uniform(size=(self.batchsize, C, H,
                                        W)).astype(np.float32))
            n_bbox += H * W * (len(ar) + 1) * 2

        self.xs = xs
        self.n_bbox = n_bbox

    def _check_forward(self, xs):
        mb_locs, mb_confs = self.link(xs)

        self.assertIsInstance(mb_locs, chainer.Variable)
        self.assertIsInstance(mb_locs.data, type(xs[0]))
        self.assertEqual(mb_locs.shape, (self.batchsize, self.n_bbox, 4))
        self.assertEqual(mb_locs.dtype, xs[0].dtype)

        self.assertIsInstance(mb_confs, chainer.Variable)
        self.assertIsInstance(mb_confs.data, type(xs[0]))
        self.assertEqual(mb_confs.shape,
                         (self.batchsize, self.n_bbox, self.n_class))
        self.assertEqual(mb_confs.dtype, xs[0].dtype)

    def test_forward_cpu(self):
        self._check_forward(self.xs)

    @attr.gpu
    def test_forward_gpu(self):
        self.link.to_gpu()
        self._check_forward(list(map(chainer.cuda.to_gpu, self.xs)))
コード例 #4
0
    def __init__(self, n_fg_class=None,
                 pretrained_extractor='auto',
                 pretrained_model=None):

        super(SSD224, self).__init__(
            extractor=ResNet101Extractor(pretrained_extractor),
            multibox=Multibox(
                n_class=n_fg_class + 1,
                aspect_ratios=((2, 3), (2, 3), (2, 3), (2, 3))),
                steps=(4, 8, 16, 32),
                sizes=(15, 30, 60, 120, 244),
                mean=_imagenet_mean)

        if pretrained_model:
            _load_npz(pretrained_model, self)
コード例 #5
0
    def __init__(self, n_fg_class=None, pretrained_model=None):
        param, path = utils.prepare_pretrained_model(
            {'n_fg_class': n_fg_class}, pretrained_model, self._models)

        super(M2Det300, self).__init__(
            extractor=VGG16MLFPN300(),
            multibox=Multibox(
                n_class=param['n_fg_class'] + 1,
                aspect_ratios=((2,), (2, 3), (2, 3), (2, 3), (2,), (2,))),
            steps=(8, 16, 32, 64, 100, 300),
            sizes=(30, 60, 111, 162, 213, 264, 315),
            mean=_imagenet_mean)

        if path:
            chainer.serializers.load_npz(path, self, strict=False)
コード例 #6
0
    def __init__(self, n_fg_class=None, pretrained_model=None):
        param, path = utils.prepare_pretrained_model(
            {'n_fg_class': n_fg_class}, pretrained_model, self._models)

        super(M2Det512, self).__init__(
            extractor=VGG16MLFPN512(),
            multibox=Multibox(
                n_class=param['n_fg_class'] + 1,
                aspect_ratios=((2,), (2, 3), (2, 3), (2, 3), (2,), (2,))),
            steps=(8, 16, 32, 64, 128, 256),
            sizes=(30.72, 76.8, 168.96, 261.12, 353.28, 445.44, 537.6),
            mean=_imagenet_mean)

        if path:
            chainer.serializers.load_npz(path, self, strict=False)
コード例 #7
0
    def __init__(self, n_fg_class=None, pretrained_model=None):
        param, path = utils.prepare_pretrained_model(
            {'n_fg_class': n_fg_class}, pretrained_model, self._models)

        super(M2Det320, self).__init__(
            extractor=VGG16MLFPN320(),
            multibox=Multibox(
                n_class=param['n_fg_class'] + 1,
                aspect_ratios=((2,), (2, 3), (2, 3), (2, 3), (2,), (2,))),
            steps=(8, 16, 32, 64, 107, 320),
            sizes=(25.6, 48, 105.6, 163.2, 220.8, 278.4, 336),
            mean=_imagenet_mean)

        if path:
            chainer.serializers.load_npz(path, self, strict=False)
コード例 #8
0
    def __init__(self, n_fg_class=None, pretrained_model=None):
        param, path = utils.prepare_pretrained_model(
            {'n_fg_class': n_fg_class}, pretrained_model, self._models)

        super(SSD512, self).__init__(
            extractor=VGG16Extractor512(),
            multibox=Multibox(n_class=param['n_fg_class'] + 1,
                              aspect_ratios=((2, ), (2, 3), (2, 3), (2, 3),
                                             (2, 3), (2, ), (2, ))),
            steps=(8, 16, 32, 64, 128, 256, 512),
            sizes=(35.84, 76.8, 153.6, 230.4, 307.2, 384.0, 460.8, 537.6),
            mean=_imagenet_mean)

        if path:
            chainer.serializers.load_npz(path, self, strict=False)
コード例 #9
0
    def __init__(self, n_fg_class=None, pretrained_model=None):
        n_fg_class, path = _check_pretrained_model(
            n_fg_class, pretrained_model, self._models)

        super(SSD300, self).__init__(
            extractor=VGG16Extractor300(),
            multibox=Multibox(
                n_class=n_fg_class + 1,
                aspect_ratios=((2,), (2, 3), (2, 3), (2, 3), (2,), (2,))),
            steps=[s / 300 for s in (8, 16, 32, 64, 100, 300)],
            sizes=[s / 300 for s in (30, 60, 111, 162, 213, 264, 315)],
            mean=_imagenet_mean)

        if path:
            chainer.serializers.load_npz(path, self)
コード例 #10
0
    def __init__(self, n_fg_class=None, pretrained_model=None):
        n_fg_class, path = _check_pretrained_model(n_fg_class,
                                                   pretrained_model,
                                                   self._models)

        super(SSD512, self).__init__(
            extractor=VGG16Extractor512(),
            multibox=Multibox(n_class=n_fg_class + 1,
                              aspect_ratios=((2, ), (2, 3), (2, 3), (2, 3),
                                             (2, 3), (2, ), (2, ))),
            steps=(8, 16, 32, 64, 128, 256, 512),
            sizes=(35.84, 76.8, 153.6, 230.4, 307.2, 384.0, 460.8, 537.6),
            mean=_imagenet_mean)

        if path:
            _load_npz(path, self)
コード例 #11
0
    def __init__(self,
                 n_fg_class=None,
                 pretrained_model=None,
                 init_scale=0.0001):
        # うまくいったらpretrained model配布しますね
        #        n_fg_class, path = _check_pretrained_model(
        #            n_fg_class, pretrained_model, self._models)

        print('initializing with scale={}'.format(init_scale))
        initializer = initializers.Normal(init_scale)
        super(FPNSSD, self).__init__(
            extractor=FeaturePyramidNetwork(initialW=initializer),
            multibox=Multibox(n_class=n_fg_class + 1,
                              aspect_ratios=((2, ), (2, 3), (2, 3), (2, 3),
                                             (2, ), (2, )),
                              initialW=initializer),
            steps=(8, 16, 32, 64, 100, 300),
            sizes=(30, 60, 111, 162, 213, 264, 315),
            mean=_imagenet_mean)