Spaces:
Running
Running
# -*- coding: UTF-8 -*- | |
from pathlib import Path | |
import logging | |
import numpy as np | |
from collections import defaultdict | |
def parse_image_lists_with_intrinsics(paths): | |
results = [] | |
files = list(Path(paths.parent).glob(paths.name)) | |
assert len(files) > 0 | |
for lfile in files: | |
with open(lfile, 'r') as f: | |
raw_data = f.readlines() | |
logging.info(f'Importing {len(raw_data)} queries in {lfile.name}') | |
for data in raw_data: | |
data = data.strip('\n').split(' ') | |
name, camera_model, width, height = data[:4] | |
params = np.array(data[4:], float) | |
info = (camera_model, int(width), int(height), params) | |
results.append((name, info)) | |
assert len(results) > 0 | |
return results | |
def parse_img_lists_for_extended_cmu_seaons(paths): | |
Ks = { | |
"c0": "OPENCV 1024 768 868.993378 866.063001 525.942323 420.042529 -0.399431 0.188924 0.000153 0.000571", | |
"c1": "OPENCV 1024 768 868.993378 866.063001 525.942323 420.042529 -0.399431 0.188924 0.000153 0.000571" | |
} | |
results = [] | |
files = list(Path(paths.parent).glob(paths.name)) | |
assert len(files) > 0 | |
for lfile in files: | |
with open(lfile, 'r') as f: | |
raw_data = f.readlines() | |
logging.info(f'Importing {len(raw_data)} queries in {lfile.name}') | |
for name in raw_data: | |
name = name.strip('\n') | |
camera = name.split('_')[2] | |
K = Ks[camera].split(' ') | |
camera_model, width, height = K[:3] | |
params = np.array(K[3:], float) | |
# print("camera: ", camera_model, width, height, params) | |
info = (camera_model, int(width), int(height), params) | |
results.append((name, info)) | |
assert len(results) > 0 | |
return results | |
def parse_retrieval(path): | |
retrieval = defaultdict(list) | |
with open(path, 'r') as f: | |
for p in f.read().rstrip('\n').split('\n'): | |
q, r = p.split(' ') | |
retrieval[q].append(r) | |
return dict(retrieval) | |
def names_to_pair_old(name0, name1): | |
return '_'.join((name0.replace('/', '-'), name1.replace('/', '-'))) | |
def names_to_pair(name0, name1, separator="/"): | |
return separator.join((name0.replace("/", "-"), name1.replace("/", "-"))) | |