Exemple #1
0
    def __init__(self, vcoco_set, coco_root, vcoco_root):
        super(RoiVCocoBoxes, self).__init__(vcoco_set, coco_root)

        # TODO this sets a global config, which I prefer not to do. But the
        # faster_rcnn code depends on it.
        cf.cfg_from_list(["DATA_DIR", vcoco_root])

        if vcoco_set == "vcoco_train":
            coco_split = "train"
        elif vcoco_set == "vcoco_val":
            coco_split = "val"
        else:
            raise ValueError("Invalid vcoco_set '%s'" % vcoco_set)
        imdb_name = "coco_2014_" + coco_split
        self._imdb = get_imdb(imdb_name)
        rdl_roidb.prepare_roidb(self._imdb)
        self._roidb = self._imdb.roidb

        self.cocoimgid_2_roidbindex = {
            index: i
            for i, index in enumerate(self._imdb._image_index)
        }
Exemple #2
0
# ------------

if rand_seed is not None:
    np.random.seed(rand_seed)

# load config
cfg_from_file(cfg_file)
lr = cfg.TRAIN.LEARNING_RATE
momentum = cfg.TRAIN.MOMENTUM
weight_decay = cfg.TRAIN.WEIGHT_DECAY
disp_interval = cfg.TRAIN.DISPLAY
log_interval = cfg.TRAIN.LOG_IMAGE_ITERS

# load data
imdb = get_imdb(imdb_name)
rdl_roidb.prepare_roidb(imdb)
roidb = imdb.roidb
data_layer = RoIDataLayer(roidb, imdb.num_classes)

# load net
net = RFCN(classes=imdb.classes, debug=_DEBUG)
#init_modules = [net.rpn.conv1, net.rpn.score_conv, net.rpn.bbox_conv, net.fc6, net.fc7, net.score_fc, net.bbox_fc]
#network.weights_normal_init(init_modules, dev=0.01)
network.weights_normal_init(net, dev=0.01)
network.load_pretrained_npy(net, pretrained_model)
if resume:
    pretrained_model_file = 'models/saved_model3/faster_rcnn_resnet101_20000.h5'
    network.load_net(pretrained_model_file, net)
    start_step = 20000
    print 'Resume training...'
if rand_seed is not None:
    np.random.seed(rand_seed)

# load config
cfg_from_file(cfg_file)
lr = cfg.TRAIN.LEARNING_RATE
momentum = cfg.TRAIN.MOMENTUM
weight_decay = cfg.TRAIN.WEIGHT_DECAY
disp_interval = cfg.TRAIN.DISPLAY
log_interval = cfg.TRAIN.LOG_IMAGE_ITERS

# load data
imdb_0 = get_imdb(imdb_name_0)
imdb_1 = get_imdb(imdb_name_1)
rdl_roidb.prepare_roidb(imdb_0)
rdl_roidb.prepare_roidb(imdb_1)
roidb_0 = imdb_0.roidb
roidb_1 = imdb_1.roidb
data_layer = RoIDataLayer(roidb_0, roidb_1, imdb_0.num_classes)

# In[5]:

# load net
net = FasterRCNN_y(classes=imdb_0.classes, debug=_DEBUG)
network.weights_normal_init(net, dev=0.01)
network.load_pretrained_npy_y(net, pretrained_model)
# model_file = '/media/longc/Data/models/VGGnet_fast_rcnn_iter_70000.h5'
# model_file = 'models/saved_model3/faster_rcnn_60000.h5'
# network.load_net(model_file, net)
# exp_name = 'vgg16_02-19_13-24'
Exemple #4
0
if __name__ == '__main__':
    # hyper-parameters
    # ------------
    imdb_name = 'CaltechPedestrians_test'
    db_only = imdb_name.split('_')[0]
    model_dir = 'data/test_phase/'
    models = os.listdir(model_dir)
    pretrained_model = [
        os.path.join(model_dir, model) for model in models
        if db_only in model.split('_')
    ]
    pretrained_model.sort()

    imdb = get_imdb(imdb_name)
    prepare_roidb(imdb)
    roidb = imdb.roidb
    f = open(os.path.join(model_dir, 'performance.txt'), 'a')

    for model in pretrained_model:
        is_resnet = True if 'res' in model.split('/') else False
        if model.endswith('txt'):
            continue
        if not is_resnet:
            detector = FasterRCNN_VGG(classes=imdb.classes, debug=False)
        else:
            detector = FasterRCNN_RES(classes=imdb.classes, debug=False)
        network.load_net(model, detector)
        match = id_match_test(model, detector, imdb,
                              roidb) if cfg.TRIPLET.IS_TRUE else 0.
        prec, rec = test(model, detector, imdb, roidb)