예제 #1
0
def get_validation_set(opt, spatial_transform, temporal_transform,
                       target_transform):
    assert opt.dataset in [
        'kinetics', 'mini-kinetics', 'activitynet', 'ucf101', 'hmdb51'
    ]

    if opt.dataset in ['kinetics', 'mini-kinetics']:
        validation_data = Kinetics(opt.video_path,
                                   opt.annotation_path,
                                   opt.n_frames_path,
                                   'validation',
                                   opt.n_val_samples,
                                   spatial_transform,
                                   temporal_transform,
                                   target_transform,
                                   sample_duration=opt.sample_duration)
    elif opt.dataset == 'activitynet':
        validation_data = ActivityNet(opt.video_path,
                                      opt.annotation_path,
                                      'validation',
                                      opt.n_val_samples,
                                      spatial_transform,
                                      temporal_transform,
                                      target_transform,
                                      sample_duration=opt.sample_duration)
    elif opt.dataset == 'ucf101':
        validation_data = UCF101(opt.video_path,
                                 opt.annotation_path,
                                 'validation',
                                 opt.n_val_samples,
                                 spatial_transform,
                                 temporal_transform,
                                 target_transform,
                                 sample_duration=opt.sample_duration)
    elif opt.dataset == 'hmdb51':
        validation_data = HMDB51(opt.video_path,
                                 opt.annotation_path,
                                 'validation',
                                 opt.n_val_samples,
                                 spatial_transform,
                                 temporal_transform,
                                 target_transform,
                                 sample_duration=opt.sample_duration)
    return validation_data
예제 #2
0
def get_training_set(opt, spatial_transform, temporal_transform,
                     target_transform):
    assert opt.dataset in [
        'kinetics', 'activitynet', 'ucf101', 'hmdb51', 'jester'
    ]

    if opt.dataset == 'kinetics':
        training_data = Kinetics(opt.video_path,
                                 opt.annotation_path,
                                 'training',
                                 spatial_transform=spatial_transform,
                                 temporal_transform=temporal_transform,
                                 target_transform=target_transform)
    elif opt.dataset == 'activitynet':
        training_data = ActivityNet(opt.video_path,
                                    opt.annotation_path,
                                    'training',
                                    False,
                                    spatial_transform=spatial_transform,
                                    temporal_transform=temporal_transform,
                                    target_transform=target_transform)
    elif opt.dataset == 'ucf101':
        training_data = UCF101(opt.video_path,
                               opt.annotation_path,
                               'train',
                               spatial_transform=spatial_transform,
                               temporal_transform=temporal_transform,
                               target_transform=target_transform)
    elif opt.dataset == 'hmdb51':
        training_data = HMDB51(opt.video_path,
                               opt.annotation_path,
                               'train',
                               spatial_transform=spatial_transform,
                               temporal_transform=temporal_transform,
                               target_transform=target_transform)
    elif opt.dataset == 'jester':
        training_data = Jester(opt.video_path,
                               opt.annotation_path,
                               'train',
                               spatial_transform=spatial_transform,
                               temporal_transform=temporal_transform,
                               target_transform=target_transform)

    return training_data
예제 #3
0
def get_validation_data(video_path,
                        annotation_path,
                        dataset_name,
                        file_type,
                        spatial_transform=None,
                        temporal_transform=None,
                        target_transform=None):
    assert dataset_name in [
        'kinetics', 'activitynet', 'ucf101', 'hmdb51', 'mit'
    ]
    assert file_type in ['jpg', 'hdf5']

    if file_type == 'jpg':
        loader = VideoLoader(lambda x: f'image_{x:05d}.jpg')
        video_path_formatter = (
            lambda root_path, label, video_id: root_path / label / video_id)
    else:
        loader = VideoLoaderHDF5()
        video_path_formatter = (lambda root_path, label, video_id: root_path /
                                label / f'{video_id}.hdf5')

    if dataset_name == 'activitynet':
        validation_data = ActivityNet(
            video_path,
            annotation_path,
            'validation',
            spatial_transform=spatial_transform,
            temporal_transform=temporal_transform,
            target_transform=target_transform,
            video_loader=loader,
            video_path_formatter=video_path_formatter)
    else:
        validation_data = VideoDatasetMultiClips(
            video_path,
            annotation_path,
            'validation',
            spatial_transform=spatial_transform,
            temporal_transform=temporal_transform,
            target_transform=target_transform,
            video_loader=loader,
            video_path_formatter=video_path_formatter)

    return validation_data, collate_fn
예제 #4
0
def get_validation_set(opt, spatial_transform, temporal_transform,
                       target_transform):
    assert opt.dataset in ['kinetics', 'activitynet', 'ucf101', 'hmdb51']

    if opt.dataset == 'kinetics':
        validation_data = Kinetics(
            opt.video_path,
            opt.annotation_path,
            'validation',
            spatial_transform=spatial_transform,
            temporal_transform=temporal_transform,
            target_transform=target_transform)
    elif opt.dataset == 'activitynet':
        validation_data = ActivityNet(
            opt.video_path,
            opt.annotation_path,
            'validation',
            False,
            spatial_transform=spatial_transform,
            temporal_transform=temporal_transform,
            target_transform=target_transform)
    elif opt.dataset == 'ucf101':
        validation_data = UCF101(
            opt.video_path,
            opt.annotation_path,
            'validation',
            spatial_transform=spatial_transform,
            temporal_transform=temporal_transform,
            target_transform=target_transform)
    elif opt.dataset == 'hmdb51':
        validation_data = HMDB51(
            opt.video_path,
            opt.annotation_path,
            'validation',
            spatial_transform=spatial_transform,
            temporal_transform=temporal_transform,
            target_transform=target_transform)
    return validation_data
예제 #5
0
파일: dataset.py 프로젝트: jinyh/detection
def get_validation_set(opt, spatial_transform, temporal_transform,
                       target_transform):
    assert opt.dataset in ['kinetics', 'activitynet', 'ucf101', 'hmdb51', 'pandakill', 'pandakill_lstm', 'court']
    if opt.dataset == 'kinetics':
        validation_data = Kinetics(
            opt.video_path,
            opt.annotation_path,
            'validation',
            opt.n_val_samples,
            spatial_transform,
            temporal_transform,
            target_transform,
            sample_duration=opt.sample_duration)
    elif opt.dataset == 'activitynet':
        validation_data = ActivityNet(
            opt.video_path,
            opt.annotation_path,
            'validation',
            False,
            opt.n_val_samples,
            spatial_transform,
            temporal_transform,
            target_transform,
            sample_duration=opt.sample_duration)
    elif opt.dataset == 'ucf101':
        validation_data = UCF101(
            opt.video_path,
            opt.annotation_path,
            'validation',
            opt.n_val_samples,
            spatial_transform,
            temporal_transform,
            target_transform,
            sample_duration=opt.sample_duration)
    elif opt.dataset == 'hmdb51':
        validation_data = HMDB51(
            opt.video_path,
            opt.annotation_path,
            'validation',
            opt.n_val_samples,
            spatial_transform,
            temporal_transform,
            target_transform,
            sample_duration=opt.sample_duration)
    elif opt.dataset == 'pandakill':
        validation_data = PANDAKILL(
            opt.video_path,
            opt.annotation_path,
            'validation',
            opt.n_val_samples,
            spatial_transform,
            temporal_transform,
            target_transform,
            sample_duration=opt.sample_duration)
    elif opt.dataset == 'court':
        validation_data = COURT(
            opt.video_path,
            opt.annotation_path,
            'validation',
            opt.n_val_samples,
            spatial_transform,
            temporal_transform,
            target_transform,
            sample_duration=opt.sample_duration)
    elif opt.dataset == 'pandakill_lstm':
        validation_data = PANDAKILL(
            opt.video_path,
            opt.annotation_path,
            'validation',
            opt.n_val_samples,
            spatial_transform,
            temporal_transform,
            target_transform,
            sample_duration=1)
    return validation_data
예제 #6
0
def get_training_data(video_path,
                      annotation_path,
                      dataset_name,
                      input_type,
                      file_type,
                      spatial_transform=None,
                      temporal_transform=None,
                      target_transform=None):
    assert dataset_name in [
        'kinetics', 'activitynet', 'ucf101', 'hmdb51', 'mit'
    ]
    assert input_type in ['rgb', 'flow']
    assert file_type in ['jpg', 'hdf5']

    if file_type == 'jpg':
        assert input_type == 'rgb', 'flow input is supported only when input type is hdf5.'

        if get_image_backend() == 'accimage':
            from datasets.loader import ImageLoaderAccImage
            loader = VideoLoader(image_name_formatter, ImageLoaderAccImage())
        else:
            loader = VideoLoader(image_name_formatter)

        video_path_formatter = (
            lambda root_path, label, video_id: root_path / label / video_id)
    else:
        if input_type == 'rgb':
            loader = VideoLoaderHDF5()
        else:
            loader = VideoLoaderFlowHDF5()
        video_path_formatter = (lambda root_path, label, video_id: root_path /
                                label / f'{video_id}.hdf5')

    if dataset_name == 'activitynet':
        training_data = ActivityNet(video_path,
                                    annotation_path,
                                    'training',
                                    spatial_transform=spatial_transform,
                                    temporal_transform=temporal_transform,
                                    target_transform=target_transform,
                                    video_loader=loader,
                                    video_path_formatter=video_path_formatter)
    else:
        # training_data = VideoDataset(video_path,
        #                              annotation_path,
        #                              'training',
        #                              spatial_transform=spatial_transform,
        #                              temporal_transform=temporal_transform,
        #                              target_transform=target_transform,
        #                              video_loader=loader,
        #                              video_path_formatter=video_path_formatter)
        training_data = BlackAIdataset_(
            video_path,
            annotation_path,
            'train',
            spatial_transform=spatial_transform,
            temporal_transform=temporal_transform,
            target_transform=target_transform,
            video_loader=loader,
            video_path_formatter=video_path_formatter)

    return training_data
예제 #7
0
def get_training_data(video_path,
                      annotation_path,
                      dataset_name,
                      input_type,
                      file_type,
                      spatial_transform=None,
                      temporal_transform=None,
                      target_transform=None,
                      sample_t_stride=1):
    assert dataset_name in [
        'kinetics', 'mini_kinetics', 'activitynet', 'ucf101', 'hmdb51', 'mit',
        'breakfast', 'mini_breakfast', 'movingmnist',
        'movingmnist_blackframes', 'movingmnist_longterm',
        'movingmnist_motiondiff', 'movingmnist_motionsame',
        'movingmnist_frequencies', 'movingmnist_frequencies_complex',
        'something', 'movingmnist_static'
    ]
    assert input_type in ['rgb', 'flow']
    assert file_type in ['jpg', 'hdf5', None]

    if file_type == 'jpg':
        assert input_type == 'rgb', 'flow input is supported only when input type is hdf5.'

        if 'movingmnist' in dataset_name:
            image_name_formatter = mnist_image_name_formatter
        elif 'something' in dataset_name:
            image_name_formatter = something_image_name_formatter
        else:
            image_name_formatter = usual_image_name_formatter

        if get_image_backend() == 'accimage':
            from datasets.loader import ImageLoaderAccImage
            loader = VideoLoader(image_name_formatter, ImageLoaderAccImage())
        else:
            loader = VideoLoader(image_name_formatter)

        video_path_formatter = (
            lambda root_path, label, video_id: root_path / label / video_id)

        if 'movingmnist' in dataset_name or 'something' in dataset_name:
            video_path_formatter = (
                lambda root_path, label, video_id: root_path / video_id)

    else:
        if input_type == 'rgb':
            loader = VideoLoaderHDF5()
        else:
            loader = VideoLoaderFlowHDF5()

        if dataset_name in ['kinetics', 'mini_kinetics']:
            video_path_formatter = (lambda root_path, label, video_id:
                                    root_path / label / f'{video_id}')
        else:
            video_path_formatter = (lambda root_path, label, video_id:
                                    root_path / label / f'{video_id}.hdf5')
    print("video_path_formatter", video_path_formatter)

    if dataset_name == 'activitynet':
        training_data = ActivityNet(video_path,
                                    annotation_path,
                                    'training',
                                    spatial_transform=spatial_transform,
                                    temporal_transform=temporal_transform,
                                    target_transform=target_transform,
                                    video_loader=loader,
                                    video_path_formatter=video_path_formatter)

    elif dataset_name in ['kinetics', 'mini_kinetics']:
        training_data = VideoDataset(Path(
            os.path.join(video_path, "h5_train_frames")),
                                     annotation_path,
                                     'training',
                                     spatial_transform=spatial_transform,
                                     temporal_transform=temporal_transform,
                                     target_transform=target_transform,
                                     video_loader=loader,
                                     video_path_formatter=video_path_formatter)

    else:
        print("Building VideoDataset for", dataset_name)
        #print(spatial_transform)
        #print(temporal_transform)
        #print(loader)
        training_data = VideoDataset(video_path,
                                     annotation_path,
                                     'training',
                                     spatial_transform=spatial_transform,
                                     temporal_transform=temporal_transform,
                                     target_transform=target_transform,
                                     video_loader=loader,
                                     video_path_formatter=video_path_formatter)

    return training_data
예제 #8
0
 def __init__(self, *args, **kwargs):
     ActivityNet.__init__(self, *args, **kwargs)
     DatasetTSN.__init__(self, *args, **kwargs)
예제 #9
0
파일: dataset.py 프로젝트: zzwei1/SDN
def get_validation_set(opt, spatial_transform, temporal_transform,
                       target_transform):
    assert opt.dataset in ['kinetics', 'kinetics_adv', 'kinetics_bkgmsk', 'kinetics_human_msk', 'kinetics_adv_msk', 'activitynet', 'ucf101', 'hmdb51', 'diving48']

    if opt.dataset == 'kinetics':
        validation_data = Kinetics(
            opt.video_path+'/val',
            opt.annotation_path,
            'validation',
            opt.n_val_samples,
            spatial_transform,
            temporal_transform,
            target_transform,
            sample_duration=opt.sample_duration)
    elif opt.dataset == 'kinetics_adv':
        validation_data = Kinetics_adv(
            opt.video_path+'/val',
            opt.annotation_path,
            'validation',
            opt.n_val_samples,
            spatial_transform,
            temporal_transform,
            target_transform,
            sample_duration=opt.sample_duration,
            place_pred_path=opt.place_pred_path,
            is_place_soft_label=opt.is_place_soft)      
    elif opt.dataset == 'kinetics_bkgmsk':
        validation_data = Kinetics_bkgmsk(
            opt.video_path+'/val',
            opt.annotation_path,
            'validation',
            opt.n_val_samples,
            spatial_transform,
            temporal_transform,
            target_transform,
            sample_duration=opt.sample_duration,
            detection_path=opt.human_dets_path,
            mask_ratio=opt.mask_ratio)                  
    elif opt.dataset == 'kinetics_adv_msk':
        validation_data_1 = Kinetics_adv(
            opt.video_path+'/val',
            opt.annotation_path,
            'validation',
            opt.n_val_samples,
            spatial_transform,
            temporal_transform,
            target_transform,
            sample_duration=opt.sample_duration,
            place_pred_path=opt.place_pred_path,
            is_place_soft_label=opt.is_place_soft)     
        validation_data_2 = Kinetics_human_msk(
            opt.video_path+'/val',
            opt.annotation_path,
            'validation',
            opt.n_val_samples,
            spatial_transform,
            temporal_transform,
            target_transform,
            sample_duration=opt.sample_duration,
            detection_path=opt.human_dets_path,
            mask_ratio=opt.mask_ratio)                   
        validation_data = [validation_data_1, validation_data_2]
    elif opt.dataset == 'activitynet':
        validation_data = ActivityNet(
            opt.video_path,
            opt.annotation_path,
            'validation',
            False,
            opt.n_val_samples,
            spatial_transform,
            temporal_transform,
            target_transform,
            sample_duration=opt.sample_duration)
    elif opt.dataset == 'ucf101':
        validation_data = UCF101(
            opt.video_path,
            opt.annotation_path,
            'validation',
            opt.n_val_samples,
            spatial_transform,
            temporal_transform,
            target_transform,
            sample_duration=opt.sample_duration,
            vis=opt.vis)
    elif opt.dataset == 'hmdb51':
        validation_data = HMDB51(
            opt.video_path,
            opt.annotation_path,
            'validation',
            opt.n_val_samples,
            spatial_transform,
            temporal_transform,
            target_transform,
            sample_duration=opt.sample_duration,
            vis=opt.vis)
    elif opt.dataset == 'diving48':
        validation_data = Diving48(
            opt.video_path,
            opt.annotation_path,
            'validation',
            opt.n_val_samples,
            spatial_transform,
            temporal_transform,
            target_transform,
            sample_duration=opt.sample_duration,
            vis=opt.vis)            
    return validation_data
예제 #10
0
def get_validation_set(opt, spatial_transform, temporal_transform,
                       target_transform):
    assert opt.dataset in ['kinetics', 'activitynet', 'ucf101', 'hmdb51','something','fire']

    if opt.dataset == 'kinetics':
        validation_data = Kinetics(
            opt.video_path+"/val_256",
            opt.annotation_path,
            'validation',
            opt.n_val_samples,
            spatial_transform,
            temporal_transform,
            target_transform,
            sample_duration=opt.sample_duration)
    elif opt.dataset == 'activitynet':
        validation_data = ActivityNet(
            opt.video_path,
            opt.annotation_path,
            'validation',
            opt.n_val_samples,
            spatial_transform,
            temporal_transform,
            target_transform,
            sample_duration=opt.sample_duration)
    elif opt.dataset == 'ucf101':
        opt.annotation_path = opt.annotation_path.replace("train","test")
        #opt.annotation_path = opt.annotation_path + "/test_rgb_ucf101.txt"
        validation_data = UCF101(
            opt.video_path,
            opt.annotation_path,
            num_segments = opt.num_segments,
            modality = opt.modality,
            transform = spatial_transform,
            test_mode = True)
    elif opt.dataset == 'hmdb51':
        opt.annotation_path = opt.annotation_path.replace("train","val")
        validation_data = HMDB51(
            opt.video_path,
            opt.annotation_path,
            num_segments = opt.num_segments,
            modality = opt.modality,
            transform = spatial_transform)
    elif opt.dataset == 'fire':
        opt.annotation_path = opt.annotation_path.replace("train","test")
        validation_data = FIRE(
            opt.video_path,
            opt.annotation_path,
            num_segments = opt.num_segments,
            modality = opt.modality,
            transform = spatial_transform)
    elif opt.dataset == 'something':
        validation_data = Something(
            opt.video_path,
            opt.annotation_path,
            'validation',                                                                                                                            
            opt.n_val_samples,                                                                                                                       
            spatial_transform,                                                                                                                       
            temporal_transform,                                                                                                                      
            target_transform,                                                                                                                        
            sample_duration=opt.sample_duration)  
    return validation_data
예제 #11
0
def get_training_set(opt, spatial_transform, temporal_transform,
                     target_transform):
    assert opt.dataset in ['kinetics', 'activitynet', 'ucf101', 'hmdb51']

    if opt.dataset == 'kinetics':
        training_data = Kinetics(opt,
                                 opt.video_path,
                                 opt.annotation_path,
                                 'training',
                                 spatial_transform=spatial_transform,
                                 temporal_transform=temporal_transform,
                                 target_transform=target_transform)
    elif opt.dataset == 'activitynet':
        training_data = ActivityNet(opt.video_path,
                                    opt.annotation_path,
                                    'training',
                                    False,
                                    spatial_transform=spatial_transform,
                                    temporal_transform=temporal_transform,
                                    target_transform=target_transform)
    elif opt.dataset == 'ucf101':
        if opt.compressed:
            if opt.mult_loss:
                training_data = UCF101M(opt,
                                        opt.annotation_path,
                                        'training',
                                        spatial_transform=spatial_transform,
                                        temporal_transform=temporal_transform,
                                        target_transform=target_transform)
            else:
                training_data = UCF101R(opt,
                                        opt.annotation_path,
                                        'training',
                                        spatial_transform=spatial_transform,
                                        temporal_transform=temporal_transform,
                                        target_transform=target_transform)
        else:
            training_data = UCF101(opt,
                                   opt.jpeg_path,
                                   opt.annotation_path,
                                   'training',
                                   spatial_transform=spatial_transform,
                                   temporal_transform=temporal_transform,
                                   target_transform=target_transform)
    elif opt.dataset == 'hmdb51':
        if opt.compressed:
            if opt.mult_loss:
                training_data = HMDB51M(opt,
                                        opt.annotation_path,
                                        'training',
                                        spatial_transform=spatial_transform,
                                        temporal_transform=temporal_transform,
                                        target_transform=target_transform)
            else:
                training_data = HMDB51R(opt,
                                        opt.annotation_path,
                                        'training',
                                        0,
                                        spatial_transform=spatial_transform,
                                        temporal_transform=temporal_transform,
                                        target_transform=target_transform)
        else:
            training_data = HMDB51(opt,
                                   opt.jpeg_path,
                                   opt.annotation_path,
                                   'training',
                                   spatial_transform=spatial_transform,
                                   temporal_transform=temporal_transform,
                                   target_transform=target_transform)

    return training_data
예제 #12
0
def get_training_set(opt, spatial_transform, temporal_transform,
                     target_transform):
    assert opt.dataset in [
        'kinetics', 'activitynet', 'ucf101', 'hmdb51', 'pkummd', 'pkummd_sim',
        'pkummd_ed'
    ]

    if opt.dataset == 'kinetics':
        training_data = Kinetics(opt.video_path,
                                 opt.annotation_path,
                                 'training',
                                 spatial_transform=spatial_transform,
                                 temporal_transform=temporal_transform,
                                 target_transform=target_transform)
    elif opt.dataset == 'activitynet':
        training_data = ActivityNet(opt.video_path,
                                    opt.annotation_path,
                                    'training',
                                    False,
                                    spatial_transform=spatial_transform,
                                    temporal_transform=temporal_transform,
                                    target_transform=target_transform)
    elif opt.dataset == 'ucf101':
        training_data = UCF101(opt.video_path,
                               opt.annotation_path,
                               'training',
                               spatial_transform=spatial_transform,
                               temporal_transform=temporal_transform,
                               target_transform=target_transform)
    elif opt.dataset == 'hmdb51':
        training_data = HMDB51(opt.video_path,
                               opt.annotation_path,
                               'training',
                               spatial_transform=spatial_transform,
                               temporal_transform=temporal_transform,
                               target_transform=target_transform)
    elif opt.dataset == 'pkummd':
        training_data = PKUMMD(opt.video_path,
                               opt.annotation_path,
                               'training',
                               False,
                               spatial_transform=spatial_transform,
                               temporal_transform=temporal_transform,
                               target_transform=target_transform)
    elif opt.dataset == "pkummd_sim":
        training_data = PKUMMD_SIM(opt.video_path,
                                   opt.annotation_path,
                                   'training',
                                   False,
                                   spatial_transform=spatial_transform,
                                   temporal_transform=temporal_transform,
                                   target_transform=target_transform)
    elif opt.dataset == "pkummd_ed":
        training_data = PKUMMD_ED(opt.video_path,
                                  opt.annotation_path,
                                  'training',
                                  False,
                                  spatial_transform=spatial_transform,
                                  temporal_transform=temporal_transform,
                                  target_transform=target_transform)
    return training_data
예제 #13
0
def get_validation_set(opt, spatial_transform, temporal_transform,
                       target_transform):
    assert opt.dataset in [
        'kinetics', 'activitynet', 'ucf101', 'hmdb51', 'pkummd', 'pkummd_sim',
        'pkummd_ed'
    ]

    if opt.dataset == 'kinetics':
        validation_data = Kinetics(opt.video_path,
                                   opt.annotation_path,
                                   'validation',
                                   opt.n_val_samples,
                                   spatial_transform,
                                   temporal_transform,
                                   target_transform,
                                   sample_duration=opt.sample_duration)
    elif opt.dataset == 'activitynet':
        validation_data = ActivityNet(opt.video_path,
                                      opt.annotation_path,
                                      'validation',
                                      False,
                                      opt.n_val_samples,
                                      spatial_transform,
                                      temporal_transform,
                                      target_transform,
                                      sample_duration=opt.sample_duration)
    elif opt.dataset == 'ucf101':
        validation_data = UCF101(opt.video_path,
                                 opt.annotation_path,
                                 'validation',
                                 opt.n_val_samples,
                                 spatial_transform,
                                 temporal_transform,
                                 target_transform,
                                 sample_duration=opt.sample_duration)
    elif opt.dataset == 'hmdb51':
        validation_data = HMDB51(opt.video_path,
                                 opt.annotation_path,
                                 'validation',
                                 opt.n_val_samples,
                                 spatial_transform,
                                 temporal_transform,
                                 target_transform,
                                 sample_duration=opt.sample_duration)
    elif opt.dataset == 'pkummd':
        validation_data = PKUMMD(opt.video_path,
                                 opt.annotation_path,
                                 'validation',
                                 False,
                                 opt.n_val_samples,
                                 spatial_transform=spatial_transform,
                                 temporal_transform=temporal_transform,
                                 target_transform=target_transform,
                                 sample_duration=opt.sample_duration)
    elif opt.dataset == 'pkummd_sim':
        validation_data = PKUMMD_SIM(opt.video_path,
                                     opt.annotation_path,
                                     'validation',
                                     False,
                                     opt.n_val_samples,
                                     spatial_transform=spatial_transform,
                                     temporal_transform=temporal_transform,
                                     target_transform=target_transform,
                                     sample_duration=opt.sample_duration)
    elif opt.dataset == 'pkummd_ed':
        validation_data = PKUMMD_ED(opt.video_path,
                                    opt.annotation_path,
                                    'validation',
                                    False,
                                    opt.n_val_samples,
                                    spatial_transform=spatial_transform,
                                    temporal_transform=temporal_transform,
                                    target_transform=target_transform,
                                    sample_duration=opt.sample_duration)
    return validation_data
예제 #14
0
def get_test_set(opt, spatial_transform, temporal_transform, target_transform):
    assert opt.dataset in [
        'kinetics', 'activitynet', 'ucf101', 'hmdb51', 'pkummd'
    ]
    assert opt.test_subset in ['val', 'test', 'train']

    if opt.test_subset == 'val':
        subset = 'validation'
    elif opt.test_subset == 'test':
        subset = 'testing'
    elif opt.test_subset == 'train':
        subset = "training"

    if opt.dataset == 'kinetics':
        test_data = Kinetics(opt.video_path,
                             opt.annotation_path,
                             subset,
                             0,
                             spatial_transform,
                             temporal_transform,
                             target_transform,
                             sample_duration=opt.sample_duration)
    elif opt.dataset == 'activitynet':
        test_data = ActivityNet(opt.video_path,
                                opt.annotation_path,
                                subset,
                                True,
                                0,
                                spatial_transform,
                                temporal_transform,
                                target_transform,
                                sample_duration=opt.sample_duration)
    elif opt.dataset == 'ucf101':
        test_data = UCF101(opt.video_path,
                           opt.annotation_path,
                           subset,
                           0,
                           spatial_transform,
                           temporal_transform,
                           target_transform,
                           sample_duration=opt.sample_duration)
    elif opt.dataset == 'hmdb51':
        test_data = HMDB51(opt.video_path,
                           opt.annotation_path,
                           subset,
                           0,
                           spatial_transform,
                           temporal_transform,
                           target_transform,
                           sample_duration=opt.sample_duration)
    elif opt.dataset == 'pkummd':
        test_data = PKUMMD(opt.video_path,
                           opt.annotation_path,
                           subset,
                           True,
                           0,
                           spatial_transform=spatial_transform,
                           temporal_transform=temporal_transform,
                           target_transform=target_transform,
                           sample_duration=opt.sample_duration,
                           window_size=opt.window_size,
                           window_stride=opt.window_stride,
                           scores_dump_path=(opt.root_path + "/" +
                                             opt.scores_dump_path))
    elif opt.dataset == "pkummd_sim":
        raise NotImplemented()
    elif opt.dataset == "pkummd_ed":
        raise NotImplemented()

    return test_data
예제 #15
0
파일: dataset.py 프로젝트: jinyh/detection
def get_training_set(opt, spatial_transform, temporal_transform,
                     target_transform):
    assert opt.dataset in ['kinetics', 'activitynet', 'ucf101', 'hmdb51', 'pandakill', 'pandakill_lstm','court']
    if opt.dataset == 'kinetics':
        training_data = Kinetics(
            opt.video_path,
            opt.annotation_path,
            'training',
            spatial_transform=spatial_transform,
            temporal_transform=temporal_transform,
            target_transform=target_transform)
    elif opt.dataset == 'activitynet':
        training_data = ActivityNet(
            opt.video_path,
            opt.annotation_path,
            'training',
            False,
            spatial_transform=spatial_transform,
            temporal_transform=temporal_transform,
            target_transform=target_transform)
    elif opt.dataset == 'ucf101':
        training_data = UCF101(
            opt.video_path,
            opt.annotation_path,
            'training',
            spatial_transform=spatial_transform,
            temporal_transform=temporal_transform,
            target_transform=target_transform)
    elif opt.dataset == 'hmdb51':
        training_data = HMDB51(
            opt.video_path,
            opt.annotation_path,
            'training',
            spatial_transform=spatial_transform,
            temporal_transform=temporal_transform,
            target_transform=target_transform)
    elif opt.dataset == 'pandakill':
        training_data = PANDAKILL(
            opt.video_path,
            opt.annotation_path,
            'training',
            n_samples_for_each_video=16,
            spatial_transform=spatial_transform,
            temporal_transform=temporal_transform,
            target_transform=target_transform)
    elif opt.dataset == 'court':
        training_data = COURT(
            opt.video_path,
            opt.annotation_path,
            'training',
            n_samples_for_each_video=16,
            spatial_transform=spatial_transform,
            temporal_transform=temporal_transform,
            target_transform=target_transform)
    elif opt.dataset == 'pandakill_lstm':
        training_data = PANDAKILL_LSTM(
            opt.video_path,
            opt.annotation_path,
            'training',
            n_samples_for_each_video=16,
            spatial_transform=spatial_transform,
            temporal_transform=temporal_transform,
            target_transform=target_transform)
    return training_data
예제 #16
0
def get_test_set(opt, spatial_transform, temporal_transform, target_transform):
    assert opt.dataset in ['kinetics', 'activitynet', 'ucf101', 'hmdb51','something','fire']
    assert opt.test_subset in ['val', 'test']

    if opt.test_subset == 'val':
        subset = 'validation'
    elif opt.test_subset == 'test':
        subset = 'testing'
    if opt.dataset == 'kinetics':
        test_data = Kinetics(
            opt.video_path,
            opt.annotation_path,
            subset,
            0,
            spatial_transform,
            temporal_transform,
            target_transform,
            sample_duration=opt.sample_duration,
            sample_stride=opt.sample_stride)
    elif opt.dataset == 'activitynet':
        test_data = ActivityNet(
            opt.video_path,
            opt.annotation_path,
            subset,
            0,
            spatial_transform,
            temporal_transform,
            target_transform,
            sample_duration=opt.sample_duration)
    elif opt.dataset == 'ucf101':
        opt.annotation_path = opt.annotation_path + "/test_rgb_ucf101.txt"
        test_data = UCF101(
            opt.video_path,
            opt.annotation_path,
            num_segments = opt.num_segments,
            modality = opt.modality,
            transform = spatial_transform,
            test_mode = True)
    elif opt.dataset == 'hmdb51':
        test_data = HMDB51(
            opt.video_path,
            opt.annotation_path,
            subset,
            0,
            spatial_transform,
            temporal_transform,
            target_transform,
            sample_duration=opt.sample_duration)
    elif opt.dataset == 'something':                                                                                                                    
        test_data = Something(                                                                                                                          
            opt.video_path,                                                                                                                          
            opt.annotation_path,                                                                                                                     
            subset,                                                                                                                                  
            0,                                                                                                                                       
            spatial_transform,                                                                                                                       
            temporal_transform,                                                                                                                      
            target_transform,                                                                                                                        
            sample_duration=opt.sample_duration)
    elif opt.dataset == 'fire':
        opt.annotation_path = "/DATACENTER2/wxy/workspace/senet-3d/datasets/txt/test_fire.txt"
        test_data = FIRE(
            opt.video_path,
            opt.annotation_path,
            num_segments = opt.num_segments,
            modality = opt.modality,
            transform = spatial_transform,
            test_mode=True,
            test_idx=opt.test_idx)

    return test_data
예제 #17
0
def get_validation_set(opt,
                       spatial_transform,
                       temporal_transform,
                       target_transform=None):
    assert opt.dataset in ['kinetics', 'activitynet', 'ucf101', 'hmdb51']
    if opt.video_level_accuracy:
        val_or_test = 'test'
        if opt.dataset == 'kinetics' or opt.dataset == 'ucf101':
            val_or_test = 'validation'

        n_val_samples = 0
    else:
        val_or_test = 'validation'
        n_val_samples = opt.n_val_samples

    if opt.dataset == 'kinetics':
        validation_data = Kinetics(opt,
                                   opt.video_path,
                                   opt.annotation_path,
                                   val_or_test,
                                   n_val_samples,
                                   spatial_transform,
                                   temporal_transform,
                                   target_transform,
                                   frames_sequence=opt.sample_duration)
    elif opt.dataset == 'activitynet':
        validation_data = ActivityNet(opt.jpeg_path,
                                      opt.annotation_path,
                                      val_or_test,
                                      False,
                                      opt.n_val_samples,
                                      spatial_transform,
                                      temporal_transform,
                                      target_transform,
                                      sample_duration=opt.sample_duration)
    elif opt.dataset == 'ucf101':
        if opt.compressed:
            validation_data = UCF101R(opt,
                                      opt.annotation_path,
                                      val_or_test,
                                      n_val_samples,
                                      spatial_transform=spatial_transform,
                                      temporal_transform=temporal_transform,
                                      target_transform=target_transform)

        else:
            validation_data = UCF101(opt,
                                     opt.jpeg_path,
                                     opt.annotation_path,
                                     val_or_test,
                                     n_val_samples,
                                     spatial_transform=spatial_transform,
                                     temporal_transform=temporal_transform,
                                     target_transform=target_transform,
                                     sample_duration=opt.sample_duration)

    elif opt.dataset == 'hmdb51':
        if opt.compressed:
            validation_data = HMDB51R(opt,
                                      opt.annotation_path,
                                      val_or_test,
                                      n_val_samples,
                                      spatial_transform=spatial_transform,
                                      temporal_transform=temporal_transform,
                                      target_transform=target_transform,
                                      sample_duration=opt.sample_duration)

        else:
            validation_data = HMDB51(opt,
                                     opt.jpeg_path,
                                     opt.annotation_path,
                                     val_or_test,
                                     n_val_samples,
                                     spatial_transform,
                                     temporal_transform,
                                     target_transform,
                                     sample_duration=opt.sample_duration)
    return validation_data
예제 #18
0
파일: dataset.py 프로젝트: zzwei1/SDN
def get_training_set(opt, spatial_transform, temporal_transform,
                     target_transform):
    assert opt.dataset in ['kinetics', 'kinetics_adv', 'kinetics_bkgmsk', 'kinetics_adv_msk', 'activitynet', 'ucf101', 'hmdb51', 'diving48']

    if opt.dataset == 'kinetics':
        training_data = Kinetics(
            opt.video_path+'/train',
            opt.annotation_path,
            'training',
            spatial_transform=spatial_transform,
            temporal_transform=temporal_transform,
            target_transform=target_transform)
    elif opt.dataset == 'kinetics_adv':
        training_data = Kinetics_adv(
            opt.video_path+'/train',
            opt.annotation_path,
            'training',
            spatial_transform=spatial_transform,
            temporal_transform=temporal_transform,
            target_transform=target_transform,
            place_pred_path=opt.place_pred_path,
            is_place_soft_label=opt.is_place_soft)      
    elif opt.dataset == 'kinetics_bkgmsk':
        training_data = Kinetics_bkgmsk(
            opt.video_path+'/train',
            opt.annotation_path,
            'training',
            spatial_transform=spatial_transform,
            temporal_transform=temporal_transform,
            target_transform=target_transform,
            detection_path=opt.human_dets_path,
            mask_ratio=opt.mask_ratio)            
    elif opt.dataset == 'kinetics_adv_msk':    
        training_data_1 = Kinetics_adv(
            opt.video_path+'/train',
            opt.annotation_path,
            'training',
            spatial_transform=spatial_transform,
            temporal_transform=temporal_transform,
            target_transform=target_transform,
            place_pred_path=opt.place_pred_path,
            is_place_soft_label=opt.is_place_soft)   
        training_data_2 = Kinetics_human_msk(
            opt.video_path+'/train',
            opt.annotation_path,
            'training',
            spatial_transform=spatial_transform,
            temporal_transform=temporal_transform,
            target_transform=target_transform,
            detection_path=opt.human_dets_path,
            mask_ratio=opt.mask_ratio)         
        training_data = [training_data_1, training_data_2]
    elif opt.dataset == 'activitynet':
        training_data = ActivityNet(
            opt.video_path,
            opt.annotation_path,
            'training',
            False,
            spatial_transform=spatial_transform,
            temporal_transform=temporal_transform,
            target_transform=target_transform)
    elif opt.dataset == 'ucf101':
        training_data = UCF101(
            opt.video_path,
            opt.annotation_path,
            'training',
            spatial_transform=spatial_transform,
            temporal_transform=temporal_transform,
            target_transform=target_transform)
    elif opt.dataset == 'hmdb51':
        training_data = HMDB51(
            opt.video_path,
            opt.annotation_path,
            'training',
            spatial_transform=spatial_transform,
            temporal_transform=temporal_transform,
            target_transform=target_transform)
    elif opt.dataset == 'diving48':
        training_data = Diving48(
            opt.video_path,
            opt.annotation_path,
            'training',
            spatial_transform=spatial_transform,
            temporal_transform=temporal_transform,
            target_transform=target_transform)

    return training_data
예제 #19
0
def get_validation_set(opt,
                       spatial_transform,
                       temporal_transform,
                       target_transform,
                       spatio_temporal_transform=None):
    assert opt.dataset in [
        'kinetics',
        'activitynet',
        'ucf101',
        'hmdb51',
        'kth',
        'kth2',
        'sth',
        'sth_init',
        'gtea',
        'jester',
        'ucf50',
        'ucf50_color',
    ]

    if opt.dataset == 'kinetics':
        validation_data = Kinetics(opt.video_path,
                                   opt.annotation_path,
                                   'validation',
                                   opt.n_val_samples,
                                   spatial_transform,
                                   temporal_transform,
                                   target_transform,
                                   sample_duration=opt.sample_duration)
    elif opt.dataset == 'activitynet':
        validation_data = ActivityNet(opt.video_path,
                                      opt.annotation_path,
                                      'validation',
                                      False,
                                      opt.n_val_samples,
                                      spatial_transform,
                                      temporal_transform,
                                      target_transform,
                                      sample_duration=opt.sample_duration)
    elif opt.dataset == 'ucf101':
        validation_data = UCF101(
            opt.video_path,
            opt.annotation_path,
            'validation',
            opt.n_val_samples,
            spatial_transform=spatial_transform,
            temporal_transform=temporal_transform,
            spatio_temporal_transform=spatio_temporal_transform,
            target_transform=target_transform,
            sample_duration=opt.sample_duration)
    elif opt.dataset == 'hmdb51':
        validation_data = HMDB51(
            opt.video_path,
            opt.annotation_path,
            'validation',
            opt.n_val_samples,
            spatial_transform=spatial_transform,
            temporal_transform=temporal_transform,
            spatio_temporal_transform=spatio_temporal_transform,
            target_transform=target_transform,
            sample_duration=opt.sample_duration)
    elif opt.dataset == 'kth':
        validation_data = KTH(
            opt.video_path,
            opt.annotation_path,
            'validation',
            opt.n_val_samples,
            spatial_transform=spatial_transform,
            temporal_transform=temporal_transform,
            spatio_temporal_transform=spatio_temporal_transform,
            target_transform=target_transform,
            sample_duration=opt.sample_duration)
    elif opt.dataset == 'kth2':
        validation_data = KTH2(
            opt.video_path,
            opt.annotation_path,
            'validation',
            opt.n_val_samples,
            spatial_transform=spatial_transform,
            temporal_transform=temporal_transform,
            spatio_temporal_transform=spatio_temporal_transform,
            target_transform=target_transform,
            sample_duration=opt.sample_duration)
    elif opt.dataset == 'sth':
        validation_data = Something2(
            opt.video_path,
            opt.annotation_path,
            'validation',
            spatial_transform=spatial_transform,
            temporal_transform=temporal_transform,
            spatio_temporal_transform=spatio_temporal_transform,
            target_transform=target_transform)
    elif opt.dataset == 'jester':
        validation_data = Jester(
            opt.video_path,
            opt.annotation_path,
            'validation',
            spatial_transform=spatial_transform,
            temporal_transform=temporal_transform,
            spatio_temporal_transform=spatio_temporal_transform,
            target_transform=target_transform)
    elif opt.dataset == 'sth_init':
        validation_data = Something2Init(
            opt.video_path,
            opt.annotation_path,
            'validation',
            spatial_transform=spatial_transform,
            temporal_transform=temporal_transform,
            spatio_temporal_transform=spatio_temporal_transform,
            target_transform=target_transform)
    elif opt.dataset == 'gtea':
        validation_data = GTEA(
            opt.video_path,
            opt.annotation_path,
            'validation',
            spatial_transform=spatial_transform,
            temporal_transform=temporal_transform,
            spatio_temporal_transform=spatio_temporal_transform,
            target_transform=target_transform,
            test_split=opt.test_split)
    elif opt.dataset == 'ucf50':
        validation_data = UCF50(
            opt.video_path,
            opt.annotation_path,
            'validation',
            spatial_transform=spatial_transform,
            temporal_transform=temporal_transform,
            spatio_temporal_transform=spatio_temporal_transform,
            target_transform=target_transform,
            test_split=opt.test_split)
    elif opt.dataset == 'ucf50_color':
        validation_data = UCF50(
            opt.video_path,
            opt.annotation_path,
            'validation',
            spatial_transform=spatial_transform,
            temporal_transform=temporal_transform,
            spatio_temporal_transform=spatio_temporal_transform,
            target_transform=target_transform,
            test_split=opt.test_split)
    return validation_data
예제 #20
0
def get_validation_data(video_path,
                        annotation_path,
                        dataset_name,
                        input_type,
                        file_type,
                        spatial_transform=None,
                        temporal_transform=None,
                        target_transform=None):
    assert dataset_name in [
        'kinetics', 'activitynet', 'ucf101', 'hmdb51', 'mit', 'somethingv2',
        'somethingv1'
    ]
    assert input_type in ['rgb', 'flow']
    assert file_type in ['jpg', 'hdf5']

    if 'somethingv1' in dataset_name:
        formatter = sthv1_image_name_formatter
    elif 'somethingv2' in dataset_name:
        formatter = sthv2_image_name_formatter
    else:
        formatter = image_name_formatter

    if file_type == 'jpg':
        assert input_type == 'rgb', 'flow input is supported only when input type is hdf5.'
        if get_image_backend() == 'accimage':
            from datasets.loader import ImageLoaderAccImage
            loader = VideoLoader(formatter, ImageLoaderAccImage())
        else:
            loader = VideoLoader(formatter)

        video_path_formatter = (
            lambda root_path, label, video_id: root_path / label / video_id)
    else:
        if input_type == 'rgb':
            loader = VideoLoaderHDF5()
        else:
            loader = VideoLoaderFlowHDF5()
        video_path_formatter = (lambda root_path, label, video_id: root_path /
                                label / '{}.hdf5'.format(video_id))

    if dataset_name == 'activitynet':
        validation_data = ActivityNet(
            video_path,
            annotation_path,
            'validation',
            spatial_transform=spatial_transform,
            temporal_transform=temporal_transform,
            target_transform=target_transform,
            video_loader=loader,
            video_path_formatter=video_path_formatter)
    else:
        validation_data = VideoDatasetMultiClips(
            video_path,
            annotation_path,
            'validation',
            spatial_transform=spatial_transform,
            temporal_transform=temporal_transform,
            target_transform=target_transform,
            video_loader=loader,
            video_path_formatter=video_path_formatter)

    return validation_data, collate_fn
예제 #21
0
def get_test_set(opt,
                 spatial_transform,
                 temporal_transform,
                 target_transform,
                 spatio_temporal_transform=None):
    assert opt.dataset in [
        'kinetics',
        'activitynet',
        'ucf101',
        'hmdb51',
        'kth',
        'kth2',
        'sth',
        'sth_init',
        'gtea',
        'jester',
        'ucf50',
        'ucf50_color',
        'real',
    ]
    assert opt.test_subset in ['val', 'test']

    if opt.test_subset == 'val':
        subset = 'validation'
    elif opt.test_subset == 'test':
        subset = 'testing'
    if opt.dataset == 'kinetics':
        test_data = Kinetics(opt.video_path,
                             opt.annotation_path,
                             subset,
                             0,
                             spatial_transform,
                             temporal_transform,
                             target_transform,
                             sample_duration=opt.sample_duration)
    elif opt.dataset == 'activitynet':
        test_data = ActivityNet(opt.video_path,
                                opt.annotation_path,
                                subset,
                                True,
                                0,
                                spatial_transform,
                                temporal_transform,
                                target_transform,
                                sample_duration=opt.sample_duration)
    elif opt.dataset == 'ucf101':
        test_data = UCF101(opt.video_path,
                           opt.annotation_path,
                           subset,
                           10,
                           spatial_transform=spatial_transform,
                           temporal_transform=temporal_transform,
                           spatio_temporal_transform=spatio_temporal_transform,
                           target_transform=target_transform,
                           sample_duration=opt.sample_duration)
    elif opt.dataset == 'hmdb51':
        test_data = HMDB51(opt.video_path,
                           opt.annotation_path,
                           subset,
                           0,
                           spatial_transform=spatial_transform,
                           temporal_transform=temporal_transform,
                           spatio_temporal_transform=spatio_temporal_transform,
                           target_transform=target_transform,
                           sample_duration=opt.sample_duration)
    elif opt.dataset == 'kth':
        test_data = KTH(opt.video_path,
                        opt.annotation_path,
                        subset,
                        0,
                        spatial_transform=spatial_transform,
                        temporal_transform=temporal_transform,
                        spatio_temporal_transform=spatio_temporal_transform,
                        target_transform=target_transform,
                        sample_duration=opt.sample_duration)
    elif opt.dataset == 'kth2':
        test_data = KTH2(opt.video_path,
                         opt.annotation_path,
                         subset,
                         0,
                         spatial_transform=spatial_transform,
                         temporal_transform=temporal_transform,
                         spatio_temporal_transform=spatio_temporal_transform,
                         target_transform=target_transform,
                         sample_duration=opt.sample_duration)
    elif opt.dataset == 'sth':
        test_data = Something2(
            opt.video_path,
            opt.annotation_path,
            subset,
            0,
            spatial_transform=spatial_transform,
            temporal_transform=temporal_transform,
            spatio_temporal_transform=spatio_temporal_transform,
            target_transform=target_transform,
            sample_duration=opt.sample_duration)
    elif opt.dataset == 'jester':
        test_data = Jester(opt.video_path,
                           opt.annotation_path,
                           subset,
                           0,
                           spatial_transform=spatial_transform,
                           temporal_transform=temporal_transform,
                           spatio_temporal_transform=spatio_temporal_transform,
                           target_transform=target_transform,
                           sample_duration=opt.sample_duration)
    elif opt.dataset == 'sth_init':
        test_data = Something2Init(
            opt.video_path,
            opt.annotation_path,
            subset,
            0,
            spatial_transform=spatial_transform,
            temporal_transform=temporal_transform,
            spatio_temporal_transform=spatio_temporal_transform,
            target_transform=target_transform,
            sample_duration=opt.sample_duration)
    elif opt.dataset == 'gtea':
        test_data = GTEA(opt.video_path,
                         opt.annotation_path,
                         subset,
                         0,
                         spatial_transform=spatial_transform,
                         temporal_transform=temporal_transform,
                         spatio_temporal_transform=spatio_temporal_transform,
                         target_transform=target_transform,
                         sample_duration=opt.sample_duration,
                         test_split=opt.test_split)
    elif opt.dataset == 'ucf50':
        test_data = UCF50(opt.video_path,
                          opt.annotation_path,
                          subset,
                          0,
                          spatial_transform=spatial_transform,
                          temporal_transform=temporal_transform,
                          spatio_temporal_transform=spatio_temporal_transform,
                          target_transform=target_transform,
                          sample_duration=opt.sample_duration,
                          test_split=opt.test_split)
    elif opt.dataset == 'ucf50_color':
        test_data = UCF50(opt.video_path,
                          opt.annotation_path,
                          subset,
                          0,
                          spatial_transform=spatial_transform,
                          temporal_transform=temporal_transform,
                          spatio_temporal_transform=spatio_temporal_transform,
                          target_transform=target_transform,
                          sample_duration=opt.sample_duration,
                          test_split=opt.test_split)
    elif opt.dataset == 'real':
        test_data = REAL(opt.video_path,
                         opt.annotation_path,
                         subset,
                         0,
                         spatial_transform=spatial_transform,
                         temporal_transform=temporal_transform,
                         spatio_temporal_transform=spatio_temporal_transform,
                         target_transform=target_transform,
                         sample_duration=opt.sample_duration)

    return test_data
예제 #22
0
def get_inference_data(video_path,
                       annotation_path,
                       dataset_name,
                       input_type,
                       file_type,
                       inference_subset,
                       spatial_transform=None,
                       temporal_transform=None,
                       target_transform=None,
                       sample_t_stride=1):
    assert dataset_name in [
        'kinetics', 'mini_kinetics', 'activitynet', 'ucf101', 'hmdb51', 'mit',
        'breakfast', 'mini_breakfast', 'movingmnist',
        'movingmnist_blackframes', 'movingmnist_longterm',
        'movingmnist_motiondiff', 'movingmnist_motionsame',
        'movingmnist_frequencies', 'movingmnist_frequencies_complex',
        'something', 'movingmnist_static'
    ]
    assert input_type in ['rgb', 'flow']
    assert file_type in ['jpg', 'hdf5', None]
    assert inference_subset in ['train', 'val', 'test']

    if file_type == 'jpg':
        assert input_type == 'rgb', 'flow input is supported only when input type is hdf5.'

        if 'movingmnist' in dataset_name:
            image_name_formatter = mnist_image_name_formatter
        elif 'something' in dataset_name:
            image_name_formatter = something_image_name_formatter
        else:
            image_name_formatter = usual_image_name_formatter

        if get_image_backend() == 'accimage':
            from datasets.loader import ImageLoaderAccImage
            loader = VideoLoader(image_name_formatter, ImageLoaderAccImage())
        else:
            loader = VideoLoader(image_name_formatter)

        video_path_formatter = (
            lambda root_path, label, video_id: root_path / label / video_id)

        if dataset_name in [
                'movingmnist', 'movingmnist_blackframes',
                'movingmnist_longterm', 'something'
        ]:
            video_path_formatter = (
                lambda root_path, label, video_id: root_path / video_id)
    else:
        if input_type == 'rgb':
            loader = VideoLoaderHDF5()
        else:
            loader = VideoLoaderFlowHDF5()
        video_path_formatter = (lambda root_path, label, video_id: root_path /
                                label / f'{video_id}.hdf5')

    if inference_subset == 'train':
        subset = 'training'
    elif inference_subset == 'val':
        subset = 'validation'
    elif inference_subset == 'test':
        subset = 'testing'
    if dataset_name == 'activitynet':
        inference_data = ActivityNet(video_path,
                                     annotation_path,
                                     subset,
                                     spatial_transform=spatial_transform,
                                     temporal_transform=temporal_transform,
                                     target_transform=target_transform,
                                     video_loader=loader,
                                     video_path_formatter=video_path_formatter,
                                     is_untrimmed_setting=True)

    else:
        inference_data = VideoDatasetMultiClips(
            video_path,
            annotation_path,
            subset,
            spatial_transform=spatial_transform,
            temporal_transform=temporal_transform,
            target_transform=target_transform,
            video_loader=loader,
            video_path_formatter=video_path_formatter,
            target_type=['label', 'video_id', 'segment'])

    return inference_data, collate_fn
예제 #23
0
def get_test_set(opt,
                 spatial_transform,
                 temporal_transform,
                 target_transform,
                 score_sens_mode=False,
                 score_inf_mode=False,
                 inner_temp_transform=None):
    assert opt.dataset in [
        'kinetics', 'activitynet', 'ucf101', 'hmdb51', 'something'
    ]
    assert opt.test_subset in ['val', 'test']

    if opt.test_subset == 'val':
        subset = 'validation'
    elif opt.test_subset == 'test':
        subset = 'testing'
    if opt.dataset == 'kinetics':
        test_data = Kinetics(opt.video_path,
                             opt.annotation_path,
                             subset,
                             0,
                             spatial_transform,
                             temporal_transform,
                             target_transform,
                             sample_duration=opt.sample_duration,
                             sample_stride=opt.sample_stride)
    elif opt.dataset == 'activitynet':
        test_data = ActivityNet(opt.video_path,
                                opt.annotation_path,
                                subset,
                                0,
                                spatial_transform,
                                temporal_transform,
                                target_transform,
                                sample_duration=opt.sample_duration)
    elif opt.dataset == 'ucf101':
        test_data = UCF101(
            opt.video_path,
            opt.annotation_path,
            subset,
            # 0,
            1,  # sample 1 clip each video
            spatial_transform,
            temporal_transform,
            target_transform,
            sample_duration=opt.sample_duration,
            score_sens_mode=score_sens_mode,
            score_inf_mode=score_inf_mode)
    elif opt.dataset == 'hmdb51':
        test_data = HMDB51(opt.video_path,
                           opt.annotation_path,
                           subset,
                           0,
                           spatial_transform,
                           temporal_transform,
                           target_transform,
                           sample_duration=opt.sample_duration)
    elif opt.dataset == 'something':
        test_data = Something(
            opt.video_path,
            opt.annotation_path,
            subset,
            # 0,
            1,  # sample 1 clip each video
            spatial_transform,
            temporal_transform,
            target_transform,
            sample_duration=opt.sample_duration,
            score_sens_mode=score_sens_mode,
            score_inf_mode=score_inf_mode,
            inner_temp_transform=inner_temp_transform)

    return test_data
예제 #24
0
def get_inference_data(video_path,
                       annotation_path,
                       dataset_name,
                       input_type,
                       file_type,
                       inference_subset,
                       spatial_transform=None,
                       temporal_transform=None,
                       target_transform=None):
    assert dataset_name in [
        'kinetics', 'activitynet', 'ucf101', 'hmdb51', 'mit'
    ]
    assert input_type in ['rgb', 'flow']
    assert file_type in ['jpg', 'hdf5']
    assert inference_subset in ['train', 'val', 'test']

    if file_type == 'jpg':
        assert input_type == 'rgb', 'flow input is supported only when input type is hdf5.'

        if get_image_backend() == 'accimage':
            from datasets.loader import ImageLoaderAccImage
            loader = VideoLoader(image_name_formatter, ImageLoaderAccImage())
        else:
            loader = VideoLoader(image_name_formatter)

        video_path_formatter = (
            lambda root_path, label, video_id: root_path / label / video_id)
    else:
        if input_type == 'rgb':
            loader = VideoLoaderHDF5()
        else:
            loader = VideoLoaderFlowHDF5()
        video_path_formatter = (lambda root_path, label, video_id: root_path /
                                label / f'{video_id}.hdf5')

    if inference_subset == 'train':
        subset = 'training'
    elif inference_subset == 'val':
        subset = 'validation'
    elif inference_subset == 'test':
        subset = 'testing'
    if dataset_name == 'activitynet':
        inference_data = ActivityNet(video_path,
                                     annotation_path,
                                     subset,
                                     spatial_transform=spatial_transform,
                                     temporal_transform=temporal_transform,
                                     target_transform=target_transform,
                                     video_loader=loader,
                                     video_path_formatter=video_path_formatter,
                                     is_untrimmed_setting=True)
    else:
        inference_data = VideoDatasetMultiClips(
            video_path,
            annotation_path,
            subset,
            spatial_transform=spatial_transform,
            temporal_transform=temporal_transform,
            target_transform=target_transform,
            video_loader=loader,
            video_path_formatter=video_path_formatter,
            target_type=['video_id', 'segment'])

    return inference_data, collate_fn
예제 #25
0
def get_test_set(opt, spatial_transform, temporal_transform, target_transform,
                 image_type):
    assert opt.dataset in [
        'kinetics', 'activitynet', 'ucf101', 'hmdb51', 'synthetic', 'vlog'
    ]
    assert opt.test_subset in ['val', 'test']

    if opt.test_subset == 'val':
        subset = 'validation'
    elif opt.test_subset == 'test':
        subset = 'testing'

    if opt.dataset == 'kinetics':
        test_data = Kinetics(opt.video_path,
                             opt.annotation_path,
                             subset,
                             0,
                             spatial_transform,
                             temporal_transform,
                             target_transform,
                             sample_duration=opt.sample_duration)
    elif opt.dataset == 'activitynet':
        test_data = ActivityNet(opt.video_path,
                                opt.annotation_path,
                                subset,
                                True,
                                0,
                                spatial_transform,
                                temporal_transform,
                                target_transform,
                                sample_duration=opt.sample_duration)
    elif opt.dataset == 'ucf101':
        test_data = UCF101(opt.video_path,
                           opt.annotation_path,
                           subset,
                           0,
                           spatial_transform,
                           temporal_transform,
                           target_transform,
                           sample_duration=opt.sample_duration)
    elif opt.dataset == 'hmdb51':
        test_data = HMDB51(opt.video_path,
                           opt.annotation_path,
                           subset,
                           0,
                           spatial_transform,
                           temporal_transform,
                           target_transform,
                           sample_duration=opt.sample_duration)
    elif opt.dataset == 'synthetic':
        test_data = Synthetic(opt.video_path,
                              opt.annotation_path,
                              subset,
                              1,
                              spatial_transform,
                              temporal_transform,
                              target_transform,
                              sample_duration=opt.sample_duration,
                              channel_fuse_step=opt.channel_fuse,
                              image_type=image_type)
    elif opt.dataset == 'vlog':
        test_data = Vlog(opt.video_path,
                         opt.annotation_path,
                         subset,
                         1,
                         spatial_transform,
                         temporal_transform,
                         target_transform,
                         sample_duration=opt.sample_duration,
                         image_type=image_type)

    return test_data
예제 #26
0
def get_test_set(opt, spatial_transform, temporal_transform, target_transform):
    assert opt.dataset in ['kinetics', 'activitynet', 'ucf101', 'hmdb51', 'grit']
    assert opt.test_subset in ['val', 'test']

    if opt.test_subset == 'val':
        subset = 'validation'
    elif opt.test_subset == 'test':
        subset = 'testing'
    if opt.dataset == 'kinetics':
        test_data = Kinetics(
            opt.video_path,
            opt.annotation_path,
            subset,
            0,
            spatial_transform,
            temporal_transform,
            target_transform,
            sample_duration=opt.sample_duration)
    elif opt.dataset == 'activitynet':
        test_data = ActivityNet(
            opt.video_path,
            opt.annotation_path,
            subset,
            True,
            0,
            spatial_transform,
            temporal_transform,
            target_transform,
            sample_duration=opt.sample_duration)
    elif opt.dataset == 'ucf101':
        test_data = UCF101(
            opt.video_path,
            opt.annotation_path,
            subset,
            0,
            spatial_transform,
            temporal_transform,
            target_transform,
            sample_duration=opt.sample_duration)
    elif opt.dataset == 'hmdb51':
        test_data = HMDB51(
            opt.video_path,
            opt.annotation_path,
            subset,
            0,
            spatial_transform,
            temporal_transform,
            target_transform,
            sample_duration=opt.sample_duration)
    elif opt.dataset == 'grit':
        test_data = GRIT(
            opt.video_path,
            opt.annotation_path,
            subset,
            0,
            spatial_transform,
            temporal_transform,
            target_transform,
            sample_duration=opt.sample_duration)

    return test_data
예제 #27
0
파일: dataset.py 프로젝트: jinyh/detection
def get_test_set(opt, spatial_transform, temporal_transform, target_transform):
    assert opt.dataset in ['kinetics', 'activitynet', 'ucf101', 'hmdb51', 'pandakill', 'court']
    assert opt.test_subset in ['val', 'test']

    if opt.test_subset == 'val':
        subset = 'validation'
    elif opt.test_subset == 'test':
        subset = 'validation'
    if opt.dataset == 'kinetics':
        test_data = Kinetics(
            opt.video_path,
            opt.annotation_path,
            subset,
            0,
            spatial_transform,
            temporal_transform,
            target_transform,
            sample_duration=opt.sample_duration)
    elif opt.dataset == 'activitynet':
        test_data = ActivityNet(
            opt.video_path,
            opt.annotation_path,
            subset,
            True,
            0,
            spatial_transform,
            temporal_transform,
            target_transform,
            sample_duration=opt.sample_duration)
    elif opt.dataset == 'ucf101':
        test_data = UCF101(
            opt.video_path,
            opt.annotation_path,
            subset,
            0,
            spatial_transform,
            temporal_transform,
            target_transform,
            sample_duration=opt.sample_duration)
    elif opt.dataset == 'hmdb51':
        test_data = HMDB51(
            opt.video_path,
            opt.annotation_path,
            subset,
            0,
            spatial_transform,
            temporal_transform,
            target_transform,
            sample_duration=opt.sample_duration)
    elif opt.dataset == 'pandakill':
        test_data = PANDAKILL(
            opt.video_path,
            opt.annotation_path,
            'validation',
            opt.n_val_samples,
            spatial_transform,
            temporal_transform,
            target_transform,
            sample_duration=opt.sample_duration)
    elif opt.dataset == 'court':
        test_data = COURT(
            opt.video_path,
            opt.annotation_path,
            'validation',
            opt.n_val_samples,
            spatial_transform,
            temporal_transform,
            target_transform,
            sample_duration=1)
    

    return test_data