SYMBOL INDEX (249 symbols across 28 files) FILE: config.py function add_argument_group (line 13) | def add_argument_group(name): function str2bool (line 19) | def str2bool(v): function get_config (line 139) | def get_config(): FILE: core/correspondence.py function _hash (line 14) | def _hash(arr, M=None): function find_correct_correspondence (line 29) | def find_correct_correspondence(pos_pairs, pred_pairs, hash_seed=None, l... FILE: core/deep_global_registration.py function registration_ransac_based_on_feature_matching (line 29) | def registration_ransac_based_on_feature_matching(pcd0, pcd1, feats0, fe... function registration_ransac_based_on_correspondence (line 50) | def registration_ransac_based_on_correspondence(pcd0, pcd1, idx0, idx1, class DeepGlobalRegistration (line 67) | class DeepGlobalRegistration: method __init__ (line 68) | def __init__(self, config, device=torch.device('cuda')): method preprocess (line 134) | def preprocess(self, pcd): method fcgf_feature_extraction (line 163) | def fcgf_feature_extraction(self, feats, coords): method fcgf_feature_matching (line 171) | def fcgf_feature_matching(self, feats0, feats1): method inlier_feature_generation (line 185) | def inlier_feature_generation(self, xyz0, xyz1, coords0, coords1, fcgf... method inlier_prediction (line 210) | def inlier_prediction(self, inlier_feats, coords): method safeguard_registration (line 219) | def safeguard_registration(self, pcd0, pcd1, idx0, idx1, feats0, feats1, method register (line 238) | def register(self, xyz0, xyz1, inlier_thr=0.00): FILE: core/knn.py function find_knn_cpu (line 14) | def find_knn_cpu(feat0, feat1, knn=1, return_distance=False): function find_knn_gpu (line 23) | def find_knn_gpu(F0, F1, nn_max_n=-1, knn=1, return_distance=False): function find_knn_batch (line 77) | def find_knn_batch(F0, function find_knn_gpu_batch (line 106) | def find_knn_gpu_batch(F0, function find_knn_cpu_batch (line 143) | def find_knn_cpu_batch(F0, FILE: core/loss.py class UnbalancedLoss (line 13) | class UnbalancedLoss(nn.Module): method __init__ (line 16) | def __init__(self): method forward (line 20) | def forward(self, logits, label): class BalancedLoss (line 24) | class BalancedLoss(nn.Module): method __init__ (line 27) | def __init__(self): method forward (line 31) | def forward(self, logits, label): class HighDimSmoothL1Loss (line 42) | class HighDimSmoothL1Loss: method __init__ (line 44) | def __init__(self, weights, quantization_size=1, eps=np.finfo(np.float... method __call__ (line 51) | def __call__(self, X, Y): FILE: core/metrics.py function rotation_mat2angle (line 11) | def rotation_mat2angle(R): function rotation_error (line 15) | def rotation_error(R1, R2): function translation_error (line 20) | def translation_error(t1, t2): function batch_rotation_error (line 25) | def batch_rotation_error(rots1, rots2): function batch_translation_error (line 37) | def batch_translation_error(trans1, trans2): function eval_metrics (line 47) | def eval_metrics(output, target): function corr_dist (line 53) | def corr_dist(est, gth, xyz0, xyz1, weight=None, max_dist=1): function pdist (line 62) | def pdist(A, B, dist_type='L2'): function get_loss_fn (line 72) | def get_loss_fn(loss): FILE: core/registration.py function ortho2rotation (line 16) | def ortho2rotation(poses): function argmin_se3_squared_dist (line 67) | def argmin_se3_squared_dist(X, Y): function weighted_procrustes (line 91) | def weighted_procrustes(X, Y, w, eps): class Transformation (line 116) | class Transformation(torch.nn.Module): method __init__ (line 117) | def __init__(self, R_init=None, t_init=None): method forward (line 130) | def forward(self, points): function GlobalRegistration (line 135) | def GlobalRegistration(points, FILE: core/trainer.py class WeightedProcrustesTrainer (line 38) | class WeightedProcrustesTrainer: method __init__ (line 39) | def __init__(self, config, data_loader, val_data_loader=None): method train (line 120) | def train(self): method _train_epoch (line 157) | def _train_epoch(self, epoch): method _valid_epoch (line 353) | def _valid_epoch(self): method _load_weights (line 491) | def _load_weights(self, config): method _save_checkpoint (line 527) | def _save_checkpoint(self, epoch, filename='checkpoint'): method get_data (line 551) | def get_data(self, iterator): method decompose_by_length (line 561) | def decompose_by_length(self, tensor, reference_tensors): method decompose_rotation_translation (line 570) | def decompose_rotation_translation(self, Ts): method weighted_procrustes (line 580) | def weighted_procrustes(self, xyz0s, xyz1s, pred_pairs, weights): method generate_inlier_features (line 602) | def generate_inlier_features(self, xyz0, xyz1, C0, C1, F0, F1, pair_in... method generate_inlier_input (line 630) | def generate_inlier_input(self, xyz0, xyz1, iC0, iC1, iF0, iF1, len_ba... method find_pairs (line 660) | def find_pairs(self, F0, F1, len_batch): FILE: dataloader/base_loader.py class CollationFunctionFactory (line 24) | class CollationFunctionFactory: method __init__ (line 25) | def __init__(self, concat_correspondences=True, collation_type='defaul... method __call__ (line 34) | def __call__(self, list_data): method collate_default (line 37) | def collate_default(self, list_data): method collate_pair_fn (line 40) | def collate_pair_fn(self, list_data): class PairDataset (line 101) | class PairDataset(torch.utils.data.Dataset): method __init__ (line 104) | def __init__(self, method reset_seed (line 128) | def reset_seed(self, seed=0): method apply_transform (line 132) | def apply_transform(self, pts, trans): method __len__ (line 138) | def __len__(self): FILE: dataloader/data_loaders.py function make_data_loader (line 17) | def make_data_loader(config, phase, batch_size, num_workers=0, shuffle=N... FILE: dataloader/inf_sampler.py class InfSampler (line 11) | class InfSampler(Sampler): method __init__ (line 18) | def __init__(self, data_source, shuffle=False): method reset_permutation (line 23) | def reset_permutation(self): method __iter__ (line 29) | def __iter__(self): method __next__ (line 32) | def __next__(self): method __len__ (line 37) | def __len__(self): FILE: dataloader/kitti_loader.py class KITTIPairDataset (line 17) | class KITTIPairDataset(PairDataset): method __init__ (line 27) | def __init__(self, method get_all_scan_ids (line 59) | def get_all_scan_ids(self, drive_id): method velo2cam (line 67) | def velo2cam(self): method get_video_odometry (line 80) | def get_video_odometry(self, drive, indices=None, ext='.txt', return_a... method odometry_to_positions (line 89) | def odometry_to_positions(self, odometry): method rot3d (line 94) | def rot3d(self, axis, angle): method pos_transform (line 106) | def pos_transform(self, pos): method get_position_transform (line 113) | def get_position_transform(self, pos0, pos1, invert=False): method _get_velodyne_fn (line 119) | def _get_velodyne_fn(self, drive, t): method __getitem__ (line 123) | def __getitem__(self, idx): class KITTINMPairDataset (line 229) | class KITTINMPairDataset(KITTIPairDataset): method __init__ (line 235) | def __init__(self, FILE: dataloader/threedmatch_loader.py class IndoorPairDataset (line 16) | class IndoorPairDataset(PairDataset): method __init__ (line 23) | def __init__(self, method __getitem__ (line 48) | def __getitem__(self, idx): class ThreeDMatchPairDataset03 (line 127) | class ThreeDMatchPairDataset03(IndoorPairDataset): class ThreeDMatchPairDataset05 (line 136) | class ThreeDMatchPairDataset05(ThreeDMatchPairDataset03): class ThreeDMatchPairDataset07 (line 140) | class ThreeDMatchPairDataset07(ThreeDMatchPairDataset03): class ThreeDMatchTrajectoryDataset (line 144) | class ThreeDMatchTrajectoryDataset(PairDataset): method __init__ (line 154) | def __init__(self, method __getitem__ (line 184) | def __getitem__(self, pair_index): FILE: dataloader/transforms.py function M (line 14) | def M(axis, theta): function sample_random_trans (line 18) | def sample_random_trans(pcd, randg, rotation_range=360): class Compose (line 26) | class Compose: method __init__ (line 27) | def __init__(self, transforms): method __call__ (line 30) | def __call__(self, coords, feats): class Jitter (line 36) | class Jitter: method __init__ (line 37) | def __init__(self, mu=0, sigma=0.01): method __call__ (line 41) | def __call__(self, coords, feats): class ChromaticShift (line 49) | class ChromaticShift: method __init__ (line 50) | def __init__(self, mu=0, sigma=0.1): method __call__ (line 54) | def __call__(self, coords, feats): FILE: model/__init__.py function add_models (line 15) | def add_models(module): function load_model (line 24) | def load_model(name): FILE: model/common.py function get_norm (line 11) | def get_norm(norm_type, num_feats, bn_momentum=0.05, dimension=-1): function get_nonlinearity (line 24) | def get_nonlinearity(non_type): FILE: model/pyramidnet.py class PyramidModule (line 15) | class PyramidModule(ME.MinkowskiNetwork): method __init__ (line 20) | def __init__(self, method forward (line 74) | def forward(self, x): class PyramidModuleINBN (line 83) | class PyramidModuleINBN(PyramidModule): class PyramidNet (line 87) | class PyramidNet(ME.MinkowskiNetwork): method __init__ (line 100) | def __init__(self, method initialize_network (line 113) | def initialize_network(self, in_channels, out_channels, bn_momentum, d... method forward (line 152) | def forward(self, x): class PyramidNet6 (line 166) | class PyramidNet6(PyramidNet): class PyramidNet6NoBlock (line 172) | class PyramidNet6NoBlock(PyramidNet6): class PyramidNet6INBN (line 176) | class PyramidNet6INBN(PyramidNet6): class PyramidNet6INBNNoBlock (line 181) | class PyramidNet6INBNNoBlock(PyramidNet6INBN): class PyramidNet8 (line 185) | class PyramidNet8(PyramidNet): class PyramidNet8INBN (line 191) | class PyramidNet8INBN(PyramidNet8): FILE: model/residual_block.py function conv (line 15) | def conv(in_channels, function conv_tr (line 47) | def conv_tr(in_channels, class BasicBlockBase (line 83) | class BasicBlockBase(nn.Module): method __init__ (line 87) | def __init__(self, method forward (line 118) | def forward(self, x): class BasicBlockBN (line 137) | class BasicBlockBN(BasicBlockBase): class BasicBlockIN (line 141) | class BasicBlockIN(BasicBlockBase): class BasicBlockINBN (line 145) | class BasicBlockINBN(BasicBlockBase): function get_block (line 149) | def get_block(norm_type, function conv_norm_non (line 171) | def conv_norm_non(inc, FILE: model/resunet.py class ResUNet (line 16) | class ResUNet(ME.MinkowskiNetwork): method __init__ (line 25) | def __init__(self, method forward (line 152) | def forward(self, x): class ResUNetBN (line 194) | class ResUNetBN(ResUNet): class ResUNetBNF (line 198) | class ResUNetBNF(ResUNet): class ResUNetBNFX (line 204) | class ResUNetBNFX(ResUNetBNF): class ResUNetSP (line 208) | class ResUNetSP(ME.MinkowskiNetwork): method __init__ (line 220) | def __init__(self, method forward (line 364) | def forward(self, x): class ResUNetBNSPC (line 411) | class ResUNetBNSPC(ResUNetSP): class ResUNetINBNSPC (line 415) | class ResUNetINBNSPC(ResUNetBNSPC): class ResUNet2 (line 419) | class ResUNet2(ME.MinkowskiNetwork): method __init__ (line 428) | def __init__(self, method forward (line 598) | def forward(self, x): class ResUNetBN2 (line 652) | class ResUNetBN2(ResUNet2): class ResUNetBN2B (line 656) | class ResUNetBN2B(ResUNet2): class ResUNetBN2C (line 662) | class ResUNetBN2C(ResUNet2): class ResUNetBN2CX (line 668) | class ResUNetBN2CX(ResUNetBN2C): class ResUNetBN2D (line 672) | class ResUNetBN2D(ResUNet2): class ResUNetBN2E (line 678) | class ResUNetBN2E(ResUNet2): class ResUNetBN2F (line 684) | class ResUNetBN2F(ResUNet2): class ResUNetBN2FX (line 690) | class ResUNetBN2FX(ResUNetBN2F): class ResUNet2v2 (line 694) | class ResUNet2v2(ME.MinkowskiNetwork): method __init__ (line 706) | def __init__(self, method weight_initialization (line 878) | def weight_initialization(self): method forward (line 887) | def forward(self, x): # Receptive field size class ResUNetBN2v2 (line 941) | class ResUNetBN2v2(ResUNet2v2): class ResUNetBN2Bv2 (line 945) | class ResUNetBN2Bv2(ResUNet2v2): class ResUNetBN2Cv2 (line 951) | class ResUNetBN2Cv2(ResUNet2v2): class ResUNetBN2Dv2 (line 957) | class ResUNetBN2Dv2(ResUNet2v2): class ResUNetBN2Ev2 (line 963) | class ResUNetBN2Ev2(ResUNet2v2): class ResUNetBN2Fv2 (line 969) | class ResUNetBN2Fv2(ResUNet2v2): class ResUNet2SP (line 975) | class ResUNet2SP(ME.MinkowskiNetwork): method __init__ (line 984) | def __init__(self, method forward (line 1157) | def forward(self, x): class ResUNetBN2SPC (line 1214) | class ResUNetBN2SPC(ResUNet2SP): class ResUNetBN2SPCX (line 1220) | class ResUNetBN2SPCX(ResUNetBN2SPC): FILE: model/simpleunet.py class SimpleNet (line 13) | class SimpleNet(ME.MinkowskiNetwork): method __init__ (line 20) | def __init__(self, method forward (line 101) | def forward(self, x): class SimpleNetIN (line 140) | class SimpleNetIN(SimpleNet): class SimpleNetBN (line 144) | class SimpleNetBN(SimpleNet): class SimpleNetBNE (line 148) | class SimpleNetBNE(SimpleNetBN): class SimpleNetINE (line 153) | class SimpleNetINE(SimpleNetBNE): class SimpleNet2 (line 157) | class SimpleNet2(ME.MinkowskiNetwork): method __init__ (line 164) | def __init__(self, method forward (line 269) | def forward(self, x): class SimpleNetIN2 (line 318) | class SimpleNetIN2(SimpleNet2): class SimpleNetBN2 (line 322) | class SimpleNetBN2(SimpleNet2): class SimpleNetBN2B (line 326) | class SimpleNetBN2B(SimpleNet2): class SimpleNetBN2C (line 332) | class SimpleNetBN2C(SimpleNet2): class SimpleNetBN2D (line 338) | class SimpleNetBN2D(SimpleNet2): class SimpleNetBN2E (line 344) | class SimpleNetBN2E(SimpleNet2): class SimpleNetIN2E (line 350) | class SimpleNetIN2E(SimpleNetBN2E): class SimpleNet3 (line 354) | class SimpleNet3(ME.MinkowskiNetwork): method __init__ (line 361) | def __init__(self, method forward (line 476) | def forward(self, x): class SimpleNetIN3 (line 531) | class SimpleNetIN3(SimpleNet3): class SimpleNetBN3 (line 535) | class SimpleNetBN3(SimpleNet3): class SimpleNetBN3B (line 539) | class SimpleNetBN3B(SimpleNet3): class SimpleNetBN3C (line 545) | class SimpleNetBN3C(SimpleNet3): class SimpleNetBN3D (line 551) | class SimpleNetBN3D(SimpleNet3): class SimpleNetBN3E (line 557) | class SimpleNetBN3E(SimpleNet3): class SimpleNetIN3E (line 563) | class SimpleNetIN3E(SimpleNetBN3E): FILE: scripts/analyze_stats.py function analyze_by_pair (line 21) | def analyze_by_pair(stats, rte_thresh, rre_thresh): function analyze_by_scene (line 45) | def analyze_by_scene(stats, scene_id_list, rte_thresh=0.3, rre_thresh=15): function plot_precision_recall_curves (line 78) | def plot_precision_recall_curves(stats, method_names, rte_precisions, rr... function plot_scene_wise_stats (line 122) | def plot_scene_wise_stats(scene_wise_stats, method_names, scene_names, p... function plot_pareto_frontier (line 163) | def plot_pareto_frontier(pairwise_stats, method_names, cmap): FILE: scripts/test_3dmatch.py function rte_rre (line 38) | def rte_rre(T_pred, T_gt, rte_thresh, rre_thresh, eps=1e-16): function analyze_stats (line 49) | def analyze_stats(stats, mask, method_names): function create_pcd (line 66) | def create_pcd(xyz, color): function draw_geometries_flip (line 77) | def draw_geometries_flip(pcds): function evaluate (line 87) | def evaluate(methods, method_names, data_loader, config, debug=False): FILE: scripts/test_kitti.py function visualize_pair (line 38) | def visualize_pair(xyz0, xyz1, T, voxel_size): function analyze_stats (line 51) | def analyze_stats(stats): function evaluate (line 59) | def evaluate(config, data_loader, method): FILE: train.py function main (line 33) | def main(config, resume=False): FILE: util/file.py function read_txt (line 15) | def read_txt(path): function ensure_dir (line 24) | def ensure_dir(path): function sorted_alphanum (line 29) | def sorted_alphanum(file_list_ordered): function get_file_list (line 39) | def get_file_list(path, extension=None): function get_file_list_specific (line 51) | def get_file_list_specific(path, color_depth, extension=None): function get_folder_list (line 63) | def get_folder_list(path): function read_trajectory (line 69) | def read_trajectory(filename, dim=4): FILE: util/integration.py function read_rgbd_image (line 13) | def read_rgbd_image(color_file, depth_file, max_depth=4.5): function read_pose (line 26) | def read_pose(pose_file): function read_intrinsics (line 35) | def read_intrinsics(intrinsic_file): function integrate_rgb_frames_for_fragment (line 44) | def integrate_rgb_frames_for_fragment(color_files, function process_seq (line 74) | def process_seq(seq_path, output_path, n_frames_per_fragment, display=Fa... FILE: util/pointcloud.py function make_open3d_point_cloud (line 15) | def make_open3d_point_cloud(xyz, color=None): function make_open3d_feature (line 25) | def make_open3d_feature(data, dim, npts): function make_open3d_feature_from_numpy (line 32) | def make_open3d_feature_from_numpy(data): function pointcloud_to_spheres (line 42) | def pointcloud_to_spheres(pcd, voxel_size, color, sphere_size=0.6): function prepare_single_pointcloud (line 59) | def prepare_single_pointcloud(pcd, voxel_size): function prepare_pointcloud (line 64) | def prepare_pointcloud(filename, voxel_size): function compute_overlap_ratio (line 72) | def compute_overlap_ratio(pcd0, pcd1, trans, voxel_size): function get_matching_indices (line 83) | def get_matching_indices(source, target, trans, search_voxel_size, K=None): function evaluate_feature (line 99) | def evaluate_feature(pcd0, pcd1, feat0, feat1, trans_gth, search_voxel_s... function valid_feat_ratio (line 112) | def valid_feat_ratio(pcd0, pcd1, feat0, feat1, trans_gth, thresh=0.1): function evaluate_feature_3dmatch (line 120) | def evaluate_feature_3dmatch(pcd0, pcd1, feat0, feat1, trans_gth, inlier... function get_matching_matrix (line 133) | def get_matching_matrix(source, target, trans, voxel_size, debug_mode): function get_random_transformation (line 148) | def get_random_transformation(pcd_input): function draw_registration_result (line 193) | def draw_registration_result(source, target, transformation): FILE: util/timer.py class AverageMeter (line 12) | class AverageMeter(object): method __init__ (line 15) | def __init__(self): method reset (line 18) | def reset(self): method update (line 25) | def update(self, val, n=1): class Timer (line 40) | class Timer(AverageMeter): method tic (line 43) | def tic(self): method toc (line 48) | def toc(self, average=True):