Example #1
0
def gen_gmms(base_dir='/home/econser/research/irsg_psu_pdx/',
             train_file='personwearingglasses_fnames_train.txt',
             n_components=3):
    import irsg_utils as iu

    data_dir = base_dir + 'data/'
    image_dir = data_dir + 'PersonWearingGlasses/PersonWearingGlassesTrain/'

    tt_split_dict = get_training_data(data_dir, train_file)
    relationship_dict = get_pwg_annotations(image_dir, tt_split_dict)

    wearing = relationship_dict['train']['wearing']
    worn_by = relationship_dict['train']['worn_by']

    gmms = {}
    sk_gmm, platt = train_gmm(wearing, worn_by, n_components)
    gmms['wearing'] = iu.RelationshipParameters(platt[0], platt[1],
                                                sk_gmm.weights_, sk_gmm.means_,
                                                sk_gmm.covariances_, sk_gmm)

    sk_gmm, platt = train_gmm(worn_by, wearing, n_components)
    gmms['worn_by'] = iu.RelationshipParameters(platt[0], platt[1],
                                                sk_gmm.weights_, sk_gmm.means_,
                                                sk_gmm.covariances_, sk_gmm)

    return gmms
Example #2
0
def gen_gmms(base_dir = '/home/econser/School/research/', train_file = 'dogwalkingtest_fnames_train.txt', test_file = 'dogwalkingtest_fnames_test.txt', n_components=3):
    import irsg_utils as iu
    
    data_dir = base_dir + 'data/'
    image_dir = data_dir + 'dog_walking/'
    
    tt_split_dict = get_train_test_splits(data_dir, train_file, test_file)
    relationship_dict = get_dw_annotations(image_dir, tt_split_dict)
    
    holding = relationship_dict['train']['holding']
    attached_to = relationship_dict['train']['attached_to']
    is_walking = relationship_dict['train']['is_walking']
    walked_by = relationship_dict['train']['walked_by']
    
    gmms = {}
    sk_gmm, platt = train_gmm(holding, attached_to, n_components)
    gmms['holding'] = iu.RelationshipParameters(platt[0], platt[1], sk_gmm.weights_, sk_gmm.means_, sk_gmm.covariances_, sk_gmm)
    
    sk_gmm, platt = train_gmm(attached_to, holding, n_components)
    gmms['attached_to'] = iu.RelationshipParameters(platt[0], platt[1], sk_gmm.weights_, sk_gmm.means_, sk_gmm.covariances_, sk_gmm)
    
    sk_gmm, platt = train_gmm(is_walking, walked_by, n_components)
    gmms['is_walking'] = iu.RelationshipParameters(platt[0], platt[1], sk_gmm.weights_, sk_gmm.means_, sk_gmm.covariances_, sk_gmm)

    sk_gmm, platt = train_gmm(walked_by, is_walking, n_components)
    gmms['walked_by'] = iu.RelationshipParameters(platt[0], platt[1], sk_gmm.weights_, sk_gmm.means_, sk_gmm.covariances_, sk_gmm)
    
    return gmms
Example #3
0
def gen_gmms(base_dir='/home/econser/research/',
             train_file='pingpong_fnames_train.txt',
             test_file='pingpong_fnames_test.txt',
             n_components=3):
    import irsg_utils as iu

    data_dir = base_dir + 'data/'
    image_dir = data_dir + 'PingPong/'

    tt_split_dict = get_train_test_splits(data_dir, train_file, test_file)
    relationship_dict = get_annotations(image_dir, tt_split_dict)

    train_rel = []
    train_rel.append(relationship_dict['train'][rel_str[0]])
    train_rel.append(relationship_dict['train'][rel_str[1]])
    train_rel.append(relationship_dict['train'][rel_str[2]])

    neg_rel = []
    neg_rel.append(relationship_dict['neg_train'][rel_str[0]])
    neg_rel.append(relationship_dict['neg_train'][rel_str[1]])
    neg_rel.append(relationship_dict['neg_train'][rel_str[2]])

    gmms = {}
    sk_gmm, platt = train_gmm(train_rel[0], neg_rel[0], n_components)
    gmms[rel_str[0]] = iu.RelationshipParameters(platt[0], platt[1],
                                                 sk_gmm.weights_,
                                                 sk_gmm.means_,
                                                 sk_gmm.covariances_, sk_gmm)

    sk_gmm, platt = train_gmm(train_rel[1], neg_rel[1], n_components)
    gmms[rel_str[1]] = iu.RelationshipParameters(platt[0], platt[1],
                                                 sk_gmm.weights_,
                                                 sk_gmm.means_,
                                                 sk_gmm.covariances_, sk_gmm)

    sk_gmm, platt = train_gmm(train_rel[2], neg_rel[2], n_components)
    gmms[rel_str[2]] = iu.RelationshipParameters(platt[0], platt[1],
                                                 sk_gmm.weights_,
                                                 sk_gmm.means_,
                                                 sk_gmm.covariances_, sk_gmm)

    return gmms
def gen_gmms(situation_cfg, training_fnames, cal_method, n_components=3):
    # pull important info from the situation cfg
    f_cfg = open(situation_cfg, 'rb')
    j_cfg = j.load(f_cfg)
    f_cfg.close()
    situation_name = j_cfg['situation_name']

    gmms = {}
    relationships = j_cfg['relationships']
    for rel_data in relationships:
        rel_name = rel_data['name']
        annotation_dir = rel_data['annotation_dir']
        print('Creating model for "{}" relationship:'.format(rel_name))

        training_set = training_fnames[rel_name]
        relationship_dict = get_annotations(situation_name, annotation_dir,
                                            training_set, rel_data)
        pos_bboxes = relationship_dict['pos_bboxes']
        print('  Found {} positive annotations'.format(len(pos_bboxes)))

        gmm = train_gmm(pos_bboxes, n_components)

        if cal_method == 'sample':
            neg_bboxes = gen_neg_bboxes(gmm,
                                        pos_bboxes,
                                        neg_size=len(pos_bboxes))
        else:
            neg_bboxes = get_neg_bboxes(relationship_dict, rel_name)
        cal_params = calibrate(gmm, pos_bboxes, neg_bboxes, title=rel_name)

        gmms[rel_name] = iu.RelationshipParameters(cal_params[0],
                                                   cal_params[1], gmm.weights_,
                                                   gmm.means_,
                                                   gmm.covariances_, gmm)

    return gmms