예제 #1
0
                        continue
                    for k in xrange(dets.shape[0]):
                        f.write('{:f} {:f} {:f} {:f} {:.32f}\n'.format(\
                                 dets[k, 0], dets[k, 1], dets[k, 2], dets[k, 3], dets[k, 4]))

    def evaluate_proposals_msr(self, all_boxes, output_dir):
        # for each image
        for im_ind, index in enumerate(self.image_index):
            filename = os.path.join(output_dir, index + '.txt')
            print 'Writing PASCAL results to file ' + filename
            with open(filename, 'wt') as f:
                dets = all_boxes[im_ind]
                if dets == []:
                    continue
                for k in xrange(dets.shape[0]):
                    f.write('{:f} {:f} {:f} {:f} {:.32f}\n'.format(dets[k, 0], dets[k, 1], dets[k, 2], dets[k, 3], dets[k, 4]))


    def competition_mode(self, on):
        if on:
            self.config['use_salt'] = False
            self.config['cleanup'] = False
        else:
            self.config['use_salt'] = True
            self.config['cleanup'] = True

if __name__ == '__main__':
    d = datasets.pascal3d('train')
    res = d.roidb
    from IPython import embed; embed()
예제 #2
0
                                 dets[k, 0], dets[k, 1], dets[k, 2], dets[k, 3], dets[k, 4]))

    def evaluate_proposals_msr(self, all_boxes, output_dir):
        # for each image
        for im_ind, index in enumerate(self.image_index):
            filename = os.path.join(output_dir, index + '.txt')
            print 'Writing PASCAL results to file ' + filename
            with open(filename, 'wt') as f:
                dets = all_boxes[im_ind]
                if dets == []:
                    continue
                for k in xrange(dets.shape[0]):
                    f.write('{:f} {:f} {:f} {:f} {:.32f}\n'.format(
                        dets[k, 0], dets[k, 1], dets[k, 2], dets[k, 3],
                        dets[k, 4]))

    def competition_mode(self, on):
        if on:
            self.config['use_salt'] = False
            self.config['cleanup'] = False
        else:
            self.config['use_salt'] = True
            self.config['cleanup'] = True


if __name__ == '__main__':
    d = datasets.pascal3d('train')
    res = d.roidb
    from IPython import embed
    embed()
예제 #3
0
def get_data_loaders(dataset, batch_size, num_workers, model, num_classes=12):
    image_size = 227
    train_transform = transforms.Compose([transforms.ToTensor(),
                                          transforms.Normalize(mean=(0., 0., 0.),
                                                               std=(1. / 255., 1. / 255., 1. / 255.)
                                                               ),
                                          transforms.Normalize(mean=(104, 116.668, 122.678),
                                                               std=(1., 1., 1.)
                                                               )
                                          ])

    test_transform = transforms.Compose([transforms.ToTensor(),
                                         transforms.Normalize(mean=(0., 0., 0.),
                                                              std=(1. / 255., 1. / 255., 1. / 255.)
                                                              ),
                                         transforms.Normalize(mean=(104, 116.668, 122.678),
                                                              std=(1., 1., 1.)
                                                              )
                                         ])

    # # The New transform for ImageNet Stuff
    # new_transform   = transforms.Compose([
    #                                     transforms.ToTensor(),
    #                                     transforms.Normalize(mean=(0.485, 0.456, 0.406),
    #                                     std=(0.229, 0.224, 0.225))])

    if dataset == "pascal":
        csv_train = os.path.join(root_dir, 'data/pascal3d_train.csv')
        csv_test = os.path.join(root_dir, 'data/pascal3d_valid.csv')
        # 生成训练数据集,测试数据集
        train_set = pascal3d(csv_train, dataset_root=dataset_root, transform=train_transform, im_size=image_size)
        test_set = pascal3d(csv_test, dataset_root=dataset_root, transform=test_transform, im_size=image_size)
    elif dataset == "pascalEasy":
        csv_train = os.path.join(root_dir, 'data/pascal3d_train_easy.csv')
        csv_test = os.path.join(root_dir, 'data/pascal3d_valid_easy.csv')

        train_set = pascal3d(csv_train, dataset_root=dataset_root,
                             transform=train_transform, im_size=image_size)
        test_set = pascal3d(csv_test, dataset_root=dataset_root,
                            transform=test_transform, im_size=image_size)

    elif dataset == "pascalFull":
        csv_train = os.path.join(root_dir, 'data/train.csv')
        csv_test = os.path.join(root_dir, 'data/val.csv')
        train_set = pascal3d(csv_train, dataset_root=dataset_root, transform=train_transform, im_size=image_size)
        test_set = pascal3d(csv_test, dataset_root=dataset_root, transform=test_transform, im_size=image_size)

    else:
        print("Error in load_datasets: Dataset name not defined.")

    # Generate data loaders
    train_loader = torch.utils.data.DataLoader(dataset=train_set,
                                               batch_size=batch_size,
                                               shuffle=True,
                                               num_workers=num_workers,
                                               drop_last=True)

    test_loader = torch.utils.data.DataLoader(dataset=test_set,
                                              batch_size=batch_size,
                                              shuffle=False,
                                              num_workers=num_workers,
                                              drop_last=False)

    return train_loader, test_loader