chrischoy / DeepGlobalRegistration

[CVPR 2020 Oral] A differentiable framework for 3D registration
Other
470 stars 86 forks source link

Pre-trained models from examples can't be loaded #26

Open RerRayne opened 3 years ago

RerRayne commented 3 years ago

Hello.

I've tried to load 3DMatch pre-trained model from the demo section using train_3dmatch.py. Script failed. When I tried to debug the crux of the problem. I ended up that the script tried to load *.pth file and failed because the dictionary of weights doesn't have the field inlier_feature_type in network config here.

Is there any way to work around this issue?

zeroStrong commented 3 years ago

Hello.

I have the same problem. I got this error when I typed this command. python -m scripts.test_3dmatch --threed_match_dir /path/to/3dmatch_test/ --weights /path/to/dgr_3dmatch.pth but this error happend.

python -m scripts.test_3dmatch --threed_match_dir /home/oouedayo/DeepGlobalRegistration/input/ --weights /home/oouedayo/DeepGlobalRegistration/fcgf_3dmatch.pth Namespace(adam_beta1=0.9, adam_beta2=0.999, batch_size=4, best_val_metric='succ_rate', bn_momentum=0.05, clip_weight_thresh=0.05, dataset='ThreeDMatchPairDataset03', dist_type='L2', eval_registration=True, exp_gamma=0.99, fast_validation=False, feat_conv1_kernel_size=3, feat_model='SimpleNetBN2C', feat_model_n_out=16, hit_ratio_thresh=0.1, icp_cache_path='icp', inlier_conv1_kernel_size=3, inlier_direct_loss_weight=1.0, inlier_feature_type='ones', inlier_knn=1, inlier_model='ResUNetBN2C', inlier_use_direct_loss=True, iter_size=1, kitti_date='2011_09_26', kitti_dir=None, kitti_max_time_diff=3, knn_search_method='gpu', lr=0.1, max_epoch=100, max_scale=1.2, min_scale=0.8, momentum=0.8, nn_max_n=250, normalize_feature=True, num_train_iter=-1, optimizer='SGD', out_dir='outputs', pcd0='20210512_zemiroom.txt', pcd1='zemiroom_segment.txt', positive_pair_search_voxel_size_multiplier=1.5, procrustes_loss_weight=1.0, resume=None, resume_dir=None, rotation_range=360, save_epoch_freq=1, scheduler='ExpLR', sgd_dampening=0.1, sgd_momentum=0.9, stat_freq=40, success_rre_thresh=15, success_rte_thresh=0.3, test_num_workers=2, test_phase='test', test_random_crop=False, test_random_rotation=False, test_valid=True, threed_match_dir='/home/oouedayo/DeepGlobalRegistration/input/', train_num_workers=2, train_phase='train', trainer='WeightedProcrustesTrainer', trans_weight=1, use_balanced_loss=False, use_gpu=True, use_random_rotation=True, use_random_scale=False, use_xyz_feature=False, val_batch_size=1, val_epoch_freq=1, val_max_iter=400, val_num_workers=1, val_phase='val', voxel_size=0.025, weight_decay=0.0001, weights='/home/oouedayo/DeepGlobalRegistration/fcgf_3dmatch.pth', weights_dir=None) => loading checkpoint '/home/oouedayo/DeepGlobalRegistration/fcgf_3dmatch.pth' Traceback (most recent call last): File "/usr/lib/python3.6/runpy.py", line 193, in _run_module_as_main "main", mod_spec) File "/usr/lib/python3.6/runpy.py", line 85, in _run_code exec(code, run_globals) File "/home/oouedayo/DeepGlobalRegistration/scripts/test_3dmatch.py", line 163, in dgr = DeepGlobalRegistration(config) File "/home/oouedayo/DeepGlobalRegistration/core/deep_global_registration.py", line 87, in init self.config.inlier_feature_type = network_config.inlier_feature_type AttributeError: 'EasyDict' object has no attribute 'inlier_feature_type'

How can I solve this issue? Thanks.

Vaishali-Nimilan commented 2 years ago

Hello,

I am having the same issue as well. Was anyone able to solve it? Thank you.

guatavita commented 1 year ago

You need to download the model from here to run the demo.

http://node2.chrischoy.org/data/projects/DGR/ResUNetBN2C-feat32-3dmatch-v0.05.pth

VladimirYugay commented 1 year ago

@guatavita for me the link doesn't work

guatavita commented 1 year ago

@guatavita for me the link doesn't work

Yeah it seems that the permission access for the link changed... (cc @chrischoy)