def meta_script_saveNpzScorePerShot_normalized(params,out_dir_scores,out_dir_actual):

    mani=TubeHash_Manipulator(params['path_to_db']);
    mani.openSession();
    vals=mani.select((Tube.class_idx_pascal,Tube.video_id,Tube.shot_id),distinct=True);
    mani.closeSession()

    print len(vals)

    args=[];
    for idx,(class_idx,video_id,shot_id) in enumerate(vals):
        params_curr = copy.deepcopy(params);
        params_curr['class_idx'] = class_idx
        params_curr['video_id'] = video_id
        params_curr['shot_id'] = shot_id
        file_curr = str(params_curr['class_idx'])+'_'+str(params_curr['video_id'])+'_'+str(params_curr['shot_id'])+'.p';
        params_curr['out_file_scores'] = os.path.join(out_dir_scores,file_curr)
        params_curr['idx'] = idx;

        if os.path.exists(params_curr['out_file_scores']):
        #     continue;
        # else:
            params_curr['out_file_scores']=os.path.join(out_dir_actual,file_curr)
            args.append(params_curr);    

    print len(args)
    # args=args[3000:];
    print len(args)
    n_jobs=12
    p = multiprocessing.Pool(min(multiprocessing.cpu_count(),n_jobs))
    p.map(script_saveNpzScorePerShot_normalized,args);
Beispiel #2
0
def getScoreForIdx(table_idx,
                   path_to_db,
                   class_idx_pascal=None,
                   npz_path=None,
                   n_jobs=1,
                   total_counts=None):

    mani = Tube_Manipulator(path_to_db)
    mani.openSession()

    mani_hash = TubeHash_Manipulator(path_to_db)
    mani_hash.openSession()

    toSelect = (Tube.class_idx_pascal, Tube.video_id, Tube.img_path)
    criterion = (Tube.idx == table_idx, )
    [(class_idx_gt, video_idx, frame_path)] = mani.select(toSelect, criterion)

    if class_idx_pascal is not None:
        class_idx = class_idx_pascal
    else:
        class_idx = class_idx_gt

    toSelect = (TubeHash.hash_table, TubeHash.hash_val)
    criterion = (TubeHash.idx == table_idx, )
    hash_table_info = mani_hash.select(toSelect, criterion)
    print len(hash_table_info)
    mani_hash.closeSession()
    mani.closeSession()

    args = []

    for hash_table_no in range(len(hash_table_info)):
        hash_table = hash_table_info[hash_table_no][0]
        hash_val = hash_table_info[hash_table_no][1]
        if npz_path is not None:
            args.append((npz_path, hash_table, hash_val, class_idx, video_idx,
                         class_idx_gt, total_counts))
        else:
            args.append((path_to_db, hash_table, hash_val, class_idx,
                         video_idx, class_idx_gt))

    if n_jobs > 1:
        p = multiprocessing.Pool(min(multiprocessing.cpu_count(), n_jobs))
        if npz_path is not None:
            scores = p.map(getScoreForHashValFromNpz, args)
        else:
            scores = p.map(getScoreForHashVal, args)
    else:
        scores = []
        for arg in args:
            if npz_path is not None:
                scores.append(getScoreForHashValFromNpz(arg))
            else:
                scores.append(getScoreForHashVal(arg))

    return scores, class_idx_gt, frame_path
def getScoreForIdx(table_idx,path_to_db,class_idx_pascal=None,npz_path=None,n_jobs=1,total_counts=None):
    
    mani=Tube_Manipulator(path_to_db);
    mani.openSession();

    mani_hash=TubeHash_Manipulator(path_to_db);
    mani_hash.openSession();

    toSelect = (Tube.class_idx_pascal,Tube.video_id,Tube.img_path)
    criterion = (Tube.idx==table_idx,);
    [(class_idx_gt,video_idx,frame_path)] = mani.select(toSelect,criterion)

    if class_idx_pascal is not None:
        class_idx=class_idx_pascal;
    else:
        class_idx=class_idx_gt

    toSelect=(TubeHash.hash_table,TubeHash.hash_val);
    criterion=(TubeHash.idx==table_idx,)
    hash_table_info=mani_hash.select(toSelect,criterion);
    print len(hash_table_info);
    mani_hash.closeSession();
    mani.closeSession();

    args=[];
    
    for hash_table_no in range(len(hash_table_info)):
        hash_table=hash_table_info[hash_table_no][0];
        hash_val=hash_table_info[hash_table_no][1];
        if npz_path is not None:
            args.append((npz_path,hash_table,hash_val,class_idx,video_idx,class_idx_gt,total_counts));
        else:
            args.append((path_to_db,hash_table,hash_val,class_idx,video_idx,class_idx_gt));
            
    if n_jobs>1:
        p = multiprocessing.Pool(min(multiprocessing.cpu_count(),n_jobs))
        if npz_path is not None:
            scores=p.map(getScoreForHashValFromNpz,args)
        else:
            scores=p.map(getScoreForHashVal,args)
    else:
        scores=[];
        for arg in args:
            if npz_path is not None:
                scores.append(getScoreForHashValFromNpz(arg));
            else:
                scores.append(getScoreForHashVal(arg));
    
    return scores,class_idx_gt,frame_path
def getHashInfoForImg(path_to_db,img_path):
    mani=Tube_Manipulator(path_to_db);
    mani.openSession();
    
    #get patch id
    patch_id=mani.select((Tube.idx,),(Tube.img_path==img_path,));
    assert len(patch_id)==1;
    patch_id=patch_id[0][0];
    mani.closeSession();

    #get hash vals
    mani_hash=TubeHash_Manipulator(path_to_db);
    mani_hash.openSession();
    toSelect=(TubeHash.hash_table,TubeHash.hash_val)
    criterion=(TubeHash.idx==patch_id,);
    hash_info_patch=mani_hash.select(toSelect,criterion);
    mani_hash.closeSession();
    return hash_info_patch
Beispiel #5
0
def getHashInfoForImg(path_to_db, img_path):
    mani = Tube_Manipulator(path_to_db)
    mani.openSession()

    #get patch id
    patch_id = mani.select((Tube.idx, ), (Tube.img_path == img_path, ))
    assert len(patch_id) == 1
    patch_id = patch_id[0][0]
    mani.closeSession()

    #get hash vals
    mani_hash = TubeHash_Manipulator(path_to_db)
    mani_hash.openSession()
    toSelect = (TubeHash.hash_table, TubeHash.hash_val)
    criterion = (TubeHash.idx == patch_id, )
    hash_info_patch = mani_hash.select(toSelect, criterion)
    mani_hash.closeSession()
    return hash_info_patch
def script_saveHashTableDensities(hash_table, path_to_db, out_file):

    mani_hash = TubeHash_Manipulator(path_to_db)
    mani_hash.openSession()

    toSelect = (TubeHash.hash_val, )
    criterion = (TubeHash.hash_table == hash_table, )
    hash_vals = mani_hash.select(toSelect, criterion)

    mani_hash.closeSession()

    hash_vals = [hash_val[0] for hash_val in hash_vals]
    hash_vals = np.array(hash_vals, dtype=np.uint8)
    hash_dict = {}
    for val_curr in np.unique(hash_vals):
        hash_dict[val_curr] = (hash_vals == val_curr).sum()

    pickle.dump(hash_dict, open(out_file, 'wb'))
def script_saveHashTableDensities(hash_table,path_to_db,out_file):
    
    mani_hash=TubeHash_Manipulator(path_to_db);
    mani_hash.openSession();

    toSelect=(TubeHash.hash_val,);
    criterion=(TubeHash.hash_table==hash_table,);
    hash_vals=mani_hash.select(toSelect,criterion);
    
    mani_hash.closeSession();

    hash_vals=[hash_val[0] for hash_val in hash_vals];
    hash_vals=np.array(hash_vals,dtype=np.uint8);
    hash_dict={};
    for val_curr in np.unique(hash_vals):
        hash_dict[val_curr]=(hash_vals==val_curr).sum();

    pickle.dump(hash_dict,open(out_file,'wb'));
Beispiel #8
0
def meta_script_saveNpzScorePerShot_normalized(params, out_dir_scores,
                                               out_dir_actual):

    mani = TubeHash_Manipulator(params['path_to_db'])
    mani.openSession()
    vals = mani.select((Tube.class_idx_pascal, Tube.video_id, Tube.shot_id),
                       distinct=True)
    mani.closeSession()

    print len(vals)

    args = []
    for idx, (class_idx, video_id, shot_id) in enumerate(vals):
        params_curr = copy.deepcopy(params)
        params_curr['class_idx'] = class_idx
        params_curr['video_id'] = video_id
        params_curr['shot_id'] = shot_id
        file_curr = str(params_curr['class_idx']) + '_' + str(
            params_curr['video_id']) + '_' + str(params_curr['shot_id']) + '.p'
        params_curr['out_file_scores'] = os.path.join(out_dir_scores,
                                                      file_curr)
        params_curr['idx'] = idx

        if os.path.exists(params_curr['out_file_scores']):
            #     continue;
            # else:
            params_curr['out_file_scores'] = os.path.join(
                out_dir_actual, file_curr)
            args.append(params_curr)

    print len(args)
    # args=args[3000:];
    print len(args)
    n_jobs = 12
    p = multiprocessing.Pool(min(multiprocessing.cpu_count(), n_jobs))
    p.map(script_saveNpzScorePerShot_normalized, args)