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
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
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