Skip to content

Instantly share code, notes, and snippets.

View mihaidusmanu's full-sized avatar

Mihai Dusmanu mihaidusmanu

View GitHub Profile
# python venv
VENV_PATH=/home/dusmanum/.venvs
function create_venv () {
if [[ $# -ne 1 ]]; then
echo "Error: Expected env name as parameter"
return
fi
echo "Creating env $1 in $VENV_PATH/$1"
python -m venv $VENV_PATH/$1
}
from pathlib import Path
from scantools.capture import Capture
path = Path('/media/SSD2/ms_eth_dataset/datasets/release_public/v2.0')
for location in ['LIN', 'CAB', 'HGE']:
print(location)
capture = Capture.load(path / location)
for session_id in ['map', 'query_hololens', 'query_phone', 'query_val_hololens', 'query_val_phone']:
\RequirePackage[%
style = alphabetic,
autocite = inline,
backend = biber,
doi = false,
url = true,
giveninits = true,
hyperref = true,
sortcites = true,
minalphanames = 1,
import torch
import torch.nn as nn
import torch.nn.functional as F
class GeM(nn.Module):
def __init__(self, p=3, eps=1e-6):
# Based on https://arxiv.org/abs/1711.02512.
super().__init__()
self.p = torch.nn.parameter.Parameter(torch.ones(1) * p)
@mihaidusmanu
mihaidusmanu / rec_stats.py
Created October 24, 2020 14:48
COLMAP covisibility
def compute_reconstruction_statistics(reference_model_path):
# Images w. intrinsics and extrinsics.
with open(os.path.join(reference_model_path, 'cameras.txt'), 'r') as f:
raw_cameras = f.readlines()[3 :]
cameras = {}
for raw_line in raw_cameras:
split_line = raw_line.strip('\n').split(' ')
cameras[int(split_line[0])] = split_line[1 :]
@mihaidusmanu
mihaidusmanu / COLMAP_Leonhard.md
Last active April 19, 2022 15:44
COLMAP on Leonhard

Compiling COLMAP on Leonhard

This is a short tutorial for compiling COLMAP on Leonhard with GCC 6.3.0. Qt installation is quite large so COLMAP cannot be compiled in the home directories.

Modules and Paths

Create a file called colmap_startup.sh in your home directory containing the following:

export DATA=/cluster/project/infk/cvg/$USER
@mihaidusmanu
mihaidusmanu / mutual_nn_matcher.py
Created July 22, 2019 14:41
Mutual NN Matcher (numpy)
import numpy as np
def mutual_nn_matcher(descriptors1, descriptors2):
descriptors1 = descriptors1 / np.linalg.norm(descriptors1, axis=1)[:, np.newaxis]
descriptors2 = descriptors2 / np.linalg.norm(descriptors2, axis=1)[:, np.newaxis]
similarity = descriptors1 @ descriptors2.transpose()
nn12 = np.argmax(similarity, axis=1)
nn21 = np.argmax(similarity, axis=0)
ids1 = np.arange(similarity.shape[0])
valid_matches = (ids1 == nn21[nn12])
@mihaidusmanu
mihaidusmanu / lightgbm_kfold.ipynb
Last active July 6, 2022 14:45
LightGBM with Stratified K-Fold CV
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@mihaidusmanu
mihaidusmanu / visualize_vgg.ipynb
Last active April 17, 2019 12:45
VGG16 deconv
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@mihaidusmanu
mihaidusmanu / pool_unpool.py
Last active December 6, 2018 09:46
Keras layers for Pooling and Unpooling (Zeiler and Fergus' paper).
from keras.engine.topology import Layer
import numpy as np
import tensorflow as tf
class MaxPooling2D(Layer):
def __init__(self, pool_size = 2, stride = None, padding = 'VALID', **kwargs):
self.pool_size = pool_size
assert(isinstance(self.pool_size, int))