hoho / utils.py
jskvrna's picture
Adds inference script and utils
c22c8c5
import pycolmap
import tempfile,zipfile
import io
import numpy as np
from typing import Dict
def read_colmap_rec(colmap_data):
with tempfile.TemporaryDirectory() as tmpdir:
with zipfile.ZipFile(io.BytesIO(colmap_data), "r") as zf:
zf.extractall(tmpdir) # unpacks cameras.txt, images.txt, etc. to tmpdir
# Now parse with pycolmap
rec = pycolmap.Reconstruction(tmpdir)
return rec
def empty_solution():
'''Return a minimal valid solution, i.e. 2 vertices and 1 edge.'''
return np.zeros((2,3)), [(0, 1)]
class Sample(Dict):
def pick_repr_data(self, x):
if hasattr(x, 'shape'):
return x.shape
if isinstance(x, (str, float, int)):
return x
if isinstance(x, list):
return [type(x[0])] if len(x) > 0 else []
return type(x)
def __repr__(self):
# return str({k: v.shape if hasattr(v, 'shape') else [type(v[0])] if isinstance(v, list) else type(v) for k,v in self.items()})
return str({k: self.pick_repr_data(v) for k,v in self.items()})