Exemplo n.º 1
0
 def set_model(self, model_name):
     model = FasterRCNN(self.gpu)
     model.train = False
     serializers.load_npz(model_name, model)
     self.model = model
     if chainer.cuda.available and self.gpu >= 0:
         self.model.to_gpu(self.gpu)
Exemplo n.º 2
0
    def test_backward_cpu_VGG16(self):
        gpu = -1
        trunk = VGG16
        rpn_in_ch = 512
        rpn_out_ch = 512
        n_anchors = 9
        feat_stride = 16
        anchor_scales = [8, 16, 32]
        num_classes = 21
        spatial_scale = 0.0625
        model = FasterRCNN(
            gpu, trunk, rpn_in_ch, rpn_out_ch, n_anchors, feat_stride,
            anchor_scales, num_classes, spatial_scale)
        opt = optimizers.Adam()
        opt.setup(model)

        model.train = True

        rpn_cls_loss, rpn_loss_bbox, loss_bbox, loss_cls = \
            model(chainer.Variable(self.x, volatile=False),
                  self.im_info, self.gt_boxes)
        model.zerograds()
        rpn_cls_loss.backward()
        opt.update()

        rpn_cls_loss, rpn_loss_bbox, loss_bbox, loss_cls = \
            model(chainer.Variable(self.x, volatile=False),
                  self.im_info, self.gt_boxes)
        model.zerograds()
        rpn_loss_bbox.backward()
        opt.update()

        rpn_cls_loss, rpn_loss_bbox, loss_bbox, loss_cls = \
            model(chainer.Variable(self.x, volatile=False),
                  self.im_info, self.gt_boxes)
        model.zerograds()
        loss_bbox.backward()
        opt.update()

        rpn_cls_loss, rpn_loss_bbox, loss_bbox, loss_cls = \
            model(chainer.Variable(self.x, volatile=False),
                  self.im_info, self.gt_boxes)
        model.zerograds()
        loss_cls.backward()
        opt.update()
    def test_forward_cpu_VGG16(self):
        print('test_forward_cpu_VGG16')
        gpu = -1
        trunk = VGG16
        rpn_in_ch = 512
        rpn_out_ch = 512
        n_anchors = 9
        feat_stride = 16
        anchor_scales = [8, 16, 32]
        num_classes = 21
        spatial_scale = 0.0625
        model = FasterRCNN(gpu, trunk, rpn_in_ch, rpn_out_ch, n_anchors,
                           feat_stride, anchor_scales, num_classes,
                           spatial_scale)

        model.train = False
        ret = model(chainer.Variable(self.x, volatile=True), self.im_info)
        assert (len(ret) == 2)
        assert (isinstance(ret[0], chainer.Variable))
        assert (isinstance(ret[1], np.ndarray))
Exemplo n.º 4
0
    def test_forward_cpu_VGG16(self):
        print('test_forward_cpu_VGG16')
        gpu = -1
        trunk = VGG16
        rpn_in_ch = 512
        rpn_out_ch = 512
        n_anchors = 9
        feat_stride = 16
        anchor_scales = [8, 16, 32]
        num_classes = 21
        spatial_scale = 0.0625
        model = FasterRCNN(
            gpu, trunk, rpn_in_ch, rpn_out_ch, n_anchors, feat_stride,
            anchor_scales, num_classes, spatial_scale)

        model.train = False
        ret = model(chainer.Variable(self.x, volatile=True), self.im_info)
        assert(len(ret) == 2)
        assert(isinstance(ret[0], chainer.Variable))
        assert(isinstance(ret[1], np.ndarray))
Exemplo n.º 5
0
def get_model(gpu):
    model = FasterRCNN(gpu)
    model.train = False
    serializers.load_npz('VGG16_faster_rcnn_final.model', model)

    return model
Exemplo n.º 6
0
def get_model(gpu):
    model = FasterRCNN(gpu)
    model.train = False
    serializers.load_npz('./VGG16.model', model)

    return model
Exemplo n.º 7
0
def get_model(gpu):
    model = FasterRCNN(gpu)
    model.train = False
    serializers.load_npz('data/VGG16_faster_rcnn_final.model', model)

    return model
Exemplo n.º 8
0
import sys
sys.path.insert(0, './lib/models')
sys.path.insert(0, '/media/haria/data/py-faster-rcnn/lib')
sys.path.insert(0, '/media/haria/data/py-faster-rcnn/caffe-fast-rcnn/python')
import caffe
from lib.models.faster_rcnn import FasterRCNN
import cPickle as pickle
from lib.models.npz import load_npz

from chainer import serializers

param_fn = './VGG16_faster_rcnn_final.caffemodel'
model_fn = './test.prototxt'

vgg = FasterRCNN()
net = caffe.Net(model_fn, param_fn, caffe.TEST)

for name, param in net.params.iteritems():
    name = name.replace("/", "_")
    if name not in [
            "rpn_cls_score", "rpn_bbox_pred", "fc6", "fc7", "cls_score",
            "bbox_pred"
    ]:
        trunk = vgg.trunk
        layer = getattr(trunk, name)
        layer.W = param[0].data
        layer.b = param[1].data
        setattr(trunk, name, layer)
    else:
        layer = getattr(vgg, name)
    def test_backward_cpu_VGG16(self):
        gpu = -1
        trunk = VGG16
        rpn_in_ch = 512
        rpn_out_ch = 512
        n_anchors = 9
        feat_stride = 16
        anchor_scales = [8, 16, 32]
        num_classes = 21
        spatial_scale = 0.0625
        model = FasterRCNN(gpu, trunk, rpn_in_ch, rpn_out_ch, n_anchors,
                           feat_stride, anchor_scales, num_classes,
                           spatial_scale)
        opt = optimizers.Adam()
        opt.setup(model)

        model.train = True

        rpn_cls_loss, rpn_loss_bbox, loss_bbox, loss_cls = \
            model(chainer.Variable(self.x, volatile=False),
                  self.im_info, self.gt_boxes)
        model.zerograds()
        rpn_cls_loss.backward()
        opt.update()

        rpn_cls_loss, rpn_loss_bbox, loss_bbox, loss_cls = \
            model(chainer.Variable(self.x, volatile=False),
                  self.im_info, self.gt_boxes)
        model.zerograds()
        rpn_loss_bbox.backward()
        opt.update()

        rpn_cls_loss, rpn_loss_bbox, loss_bbox, loss_cls = \
            model(chainer.Variable(self.x, volatile=False),
                  self.im_info, self.gt_boxes)
        model.zerograds()
        loss_bbox.backward()
        opt.update()

        rpn_cls_loss, rpn_loss_bbox, loss_bbox, loss_cls = \
            model(chainer.Variable(self.x, volatile=False),
                  self.im_info, self.gt_boxes)
        model.zerograds()
        loss_cls.backward()
        opt.update()