OverlapPredator icon indicating copy to clipboard operation
OverlapPredator copied to clipboard

Ambiguous overlap ratio for Modelnet and ModelLoNet

Open Hui-design opened this issue 2 years ago • 3 comments

Hi! Thank you for the amazing work!

We have a question about the calculation of the overlap ratio. In your paper you say "ModelNet which has 73.5% pairwise overlap on average, and ModelLoNet which contains a lower 53.6% average overlap". However, when I wrote a piece of code to test the overlap ratio, I could only get 51.35% for ModelNet and 43.16% for ModelLoNet. What is the reason? The testing code is as follows, I put it under datasets/modelnet.py

if __name__ == "__main__":
    from lib.utils import setup_seed, load_config
    from easydict import EasyDict as edict
    import pdb
    import torch
    from tqdm import tqdm

    config_dir = 'configs/test/modelnet.yaml'
    config = load_config(config_dir)
    config = edict(config)
    test_dataset = get_test_datasets(config)

    overlap_list = []
    test_loader = torch.utils.data.DataLoader(test_dataset, batch_size=1, shuffle=False, num_workers=4)
    for i, data in tqdm(enumerate(test_loader)):
        # pdb.set_trace()
        correspondence = data[6]
        src_idx = list(set(correspondence[0][:,0].int().tolist()))
        overlap_list.append(len(src_idx)/717)
    print(np.mean(overlap_list)) 

Thank you and look forward to your reply!

Hui-design avatar Mar 30 '23 08:03 Hui-design

Hi there, I'm currently exploring the model and I've encountered an issue: the links to download the data and weights files seem to be unavailable. If you happen to have these files, could you please share them with me at [email protected]? I'd greatly appreciate your assistance. Thank you so much!!

jun3333333 avatar Mar 16 '25 11:03 jun3333333

snapshot/indoor/est_traj/3DMatch/250 0it [00:00, ?it/s] gt_folder: configs/benchmarks/3DMatch exp_dir: snapshot/indoor/est_traj/3DMatch/250 tsfm_est shape: (0,) tsfm_est: [] Scene names: ['7-scenes-redkitchen', 'sun3d-home_at-home_at_scan1_2013_jan_1', 'sun3d-home_md-home_md_scan9_2012_sep_30', 'sun3d-hotel_uc-scan3', 'sun3d-hotel_umd-maryland_hotel1', 'sun3d-hotel_umd-maryland_hotel3', 'sun3d-mit_76_studyroom-76-1studyroom2', 'sun3d-mit_lab_hj-lab_hj_tea_nov_2_2012_scan1_erika'] Scene: 7-scenes-redkitchen, GT pairs: 506 Warning: count 0 exceeds tsfm_est length 0. Skipping remaining pairs. Scene: sun3d-home_at-home_at_scan1_2013_jan_1, GT pairs: 156 Warning: count 0 exceeds tsfm_est length 0. Skipping remaining pairs. Scene: sun3d-home_md-home_md_scan9_2012_sep_30, GT pairs: 208 Warning: count 0 exceeds tsfm_est length 0. Skipping remaining pairs. Scene: sun3d-hotel_uc-scan3, GT pairs: 226 Warning: count 0 exceeds tsfm_est length 0. Skipping remaining pairs. Scene: sun3d-hotel_umd-maryland_hotel1, GT pairs: 104 Warning: count 0 exceeds tsfm_est length 0. Skipping remaining pairs. Scene: sun3d-hotel_umd-maryland_hotel3, GT pairs: 54 Warning: count 0 exceeds tsfm_est length 0. Skipping remaining pairs. Scene: sun3d-mit_76_studyroom-76-1studyroom2, GT pairs: 292 Warning: count 0 exceeds tsfm_est length 0. Skipping remaining pairs. Scene: sun3d-mit_lab_hj-lab_hj_tea_nov_2_2012_scan1_erika, GT pairs: 77 Warning: count 0 exceeds tsfm_est length 0. Skipping remaining pairs. Traceback (most recent call last): File "/home/user/OverlapPredator.Mink-master/scripts/evaluate_predator.py", line 124, in benchmark_predator(feats_scores, args.n_points, args.exp_dir, args.benchmark) File "/home/user/OverlapPredator.Mink-master/scripts/evaluate_predator.py", line 85, in benchmark_predator benchmark(exp_dir, gt_folder) File "/home/user/OverlapPredator.Mink-master/lib/benchmark.py", line 304, in benchmark re = rotation_error(torch.from_numpy(ext_gt_traj[:,0:3,0:3]), torch.from_numpy(est_traj[:,0:3,0:3])).cpu().numpy()[np.array(c_flag)==0] File "/home/user/OverlapPredator.Mink-master/lib/benchmark.py", line 27, in rotation_error e = torch.stack([(torch.trace(R_[, :, :]) - 1) / 2 for _ in range(R.shape[0])], dim=0).unsqueeze(1) RuntimeError: stack expects a non-empty TensorList snapshot/indoor/est_traj/3DMatch/500 0it [00:00, ?it/s] gt_folder: configs/benchmarks/3DMatch exp_dir: snapshot/indoor/est_traj/3DMatch/500 tsfm_est shape: (0,) tsfm_est: [] Scene names: ['7-scenes-redkitchen', 'sun3d-home_at-home_at_scan1_2013_jan_1', 'sun3d-home_md-home_md_scan9_2012_sep_30', 'sun3d-hotel_uc-scan3', 'sun3d-hotel_umd-maryland_hotel1', 'sun3d-hotel_umd-maryland_hotel3', 'sun3d-mit_76_studyroom-76-1studyroom2', 'sun3d-mit_lab_hj-lab_hj_tea_nov_2_2012_scan1_erika'] Scene: 7-scenes-redkitchen, GT pairs: 506 Warning: count 0 exceeds tsfm_est length 0. Skipping remaining pairs. Scene: sun3d-home_at-home_at_scan1_2013_jan_1, GT pairs: 156 Warning: count 0 exceeds tsfm_est length 0. Skipping remaining pairs. Scene: sun3d-home_md-home_md_scan9_2012_sep_30, GT pairs: 208 Warning: count 0 exceeds tsfm_est length 0. Skipping remaining pairs. Scene: sun3d-hotel_uc-scan3, GT pairs: 226 Warning: count 0 exceeds tsfm_est length 0. Skipping remaining pairs. Scene: sun3d-hotel_umd-maryland_hotel1, GT pairs: 104 Warning: count 0 exceeds tsfm_est length 0. Skipping remaining pairs. Scene: sun3d-hotel_umd-maryland_hotel3, GT pairs: 54 Warning: count 0 exceeds tsfm_est length 0. Skipping remaining pairs. Scene: sun3d-mit_76_studyroom-76-1studyroom2, GT pairs: 292 Warning: count 0 exceeds tsfm_est length 0. Skipping remaining pairs. Scene: sun3d-mit_lab_hj-lab_hj_tea_nov_2_2012_scan1_erika, GT pairs: 77 Warning: count 0 exceeds tsfm_est length 0. Skipping remaining pairs. Traceback (most recent call last): File "/home/user/OverlapPredator.Mink-master/scripts/evaluate_predator.py", line 124, in benchmark_predator(feats_scores, args.n_points, args.exp_dir, args.benchmark) File "/home/user/OverlapPredator.Mink-master/scripts/evaluate_predator.py", line 85, in benchmark_predator benchmark(exp_dir, gt_folder) File "/home/user/OverlapPredator.Mink-master/lib/benchmark.py", line 304, in benchmark re = rotation_error(torch.from_numpy(ext_gt_traj[:,0:3,0:3]), torch.from_numpy(est_traj[:,0:3,0:3])).cpu().numpy()[np.array(c_flag)==0] File "/home/user/OverlapPredator.Mink-master/lib/benchmark.py", line 27, in rotation_error e = torch.stack([(torch.trace(R_[, :, :]) - 1) / 2 for _ in range(R.shape[0])], dim=0).unsqueeze(1) RuntimeError: stack expects a non-empty TensorList snapshot/indoor/est_traj/3DMatch/1000 0it [00:00, ?it/s] gt_folder: configs/benchmarks/3DMatch exp_dir: snapshot/indoor/est_traj/3DMatch/1000 tsfm_est shape: (0,) tsfm_est: [] Scene names: ['7-scenes-redkitchen', 'sun3d-home_at-home_at_scan1_2013_jan_1', 'sun3d-home_md-home_md_scan9_2012_sep_30', 'sun3d-hotel_uc-scan3', 'sun3d-hotel_umd-maryland_hotel1', 'sun3d-hotel_umd-maryland_hotel3', 'sun3d-mit_76_studyroom-76-1studyroom2', 'sun3d-mit_lab_hj-lab_hj_tea_nov_2_2012_scan1_erika'] Scene: 7-scenes-redkitchen, GT pairs: 506 Warning: count 0 exceeds tsfm_est length 0. Skipping remaining pairs. Scene: sun3d-home_at-home_at_scan1_2013_jan_1, GT pairs: 156 Warning: count 0 exceeds tsfm_est length 0. Skipping remaining pairs. Scene: sun3d-home_md-home_md_scan9_2012_sep_30, GT pairs: 208 Warning: count 0 exceeds tsfm_est length 0. Skipping remaining pairs. Scene: sun3d-hotel_uc-scan3, GT pairs: 226 Warning: count 0 exceeds tsfm_est length 0. Skipping remaining pairs. Scene: sun3d-hotel_umd-maryland_hotel1, GT pairs: 104 Warning: count 0 exceeds tsfm_est length 0. Skipping remaining pairs. Scene: sun3d-hotel_umd-maryland_hotel3, GT pairs: 54 Warning: count 0 exceeds tsfm_est length 0. Skipping remaining pairs. Scene: sun3d-mit_76_studyroom-76-1studyroom2, GT pairs: 292 Warning: count 0 exceeds tsfm_est length 0. Skipping remaining pairs. Scene: sun3d-mit_lab_hj-lab_hj_tea_nov_2_2012_scan1_erika, GT pairs: 77 Warning: count 0 exceeds tsfm_est length 0. Skipping remaining pairs. Traceback (most recent call last): File "/home/user/OverlapPredator.Mink-master/scripts/evaluate_predator.py", line 124, in benchmark_predator(feats_scores, args.n_points, args.exp_dir, args.benchmark) File "/home/user/OverlapPredator.Mink-master/scripts/evaluate_predator.py", line 85, in benchmark_predator benchmark(exp_dir, gt_folder) File "/home/user/OverlapPredator.Mink-master/lib/benchmark.py", line 304, in benchmark re = rotation_error(torch.from_numpy(ext_gt_traj[:,0:3,0:3]), torch.from_numpy(est_traj[:,0:3,0:3])).cpu().numpy()[np.array(c_flag)==0] File "/home/user/OverlapPredator.Mink-master/lib/benchmark.py", line 27, in rotation_error e = torch.stack([(torch.trace(R_[, :, :]) - 1) / 2 for _ in range(R.shape[0])], dim=0).unsqueeze(1) RuntimeError: stack expects a non-empty TensorList snapshot/indoor/est_traj/3DMatch/2500 0it [00:00, ?it/s] gt_folder: configs/benchmarks/3DMatch exp_dir: snapshot/indoor/est_traj/3DMatch/2500 tsfm_est shape: (0,) tsfm_est: [] Scene names: ['7-scenes-redkitchen', 'sun3d-home_at-home_at_scan1_2013_jan_1', 'sun3d-home_md-home_md_scan9_2012_sep_30', 'sun3d-hotel_uc-scan3', 'sun3d-hotel_umd-maryland_hotel1', 'sun3d-hotel_umd-maryland_hotel3', 'sun3d-mit_76_studyroom-76-1studyroom2', 'sun3d-mit_lab_hj-lab_hj_tea_nov_2_2012_scan1_erika'] Scene: 7-scenes-redkitchen, GT pairs: 506 Warning: count 0 exceeds tsfm_est length 0. Skipping remaining pairs. Scene: sun3d-home_at-home_at_scan1_2013_jan_1, GT pairs: 156 Warning: count 0 exceeds tsfm_est length 0. Skipping remaining pairs. Scene: sun3d-home_md-home_md_scan9_2012_sep_30, GT pairs: 208 Warning: count 0 exceeds tsfm_est length 0. Skipping remaining pairs. Scene: sun3d-hotel_uc-scan3, GT pairs: 226 Warning: count 0 exceeds tsfm_est length 0. Skipping remaining pairs. Scene: sun3d-hotel_umd-maryland_hotel1, GT pairs: 104 Warning: count 0 exceeds tsfm_est length 0. Skipping remaining pairs. Scene: sun3d-hotel_umd-maryland_hotel3, GT pairs: 54 Warning: count 0 exceeds tsfm_est length 0. Skipping remaining pairs. Scene: sun3d-mit_76_studyroom-76-1studyroom2, GT pairs: 292 Warning: count 0 exceeds tsfm_est length 0. Skipping remaining pairs. Scene: sun3d-mit_lab_hj-lab_hj_tea_nov_2_2012_scan1_erika, GT pairs: 77 Warning: count 0 exceeds tsfm_est length 0. Skipping remaining pairs. Traceback (most recent call last): File "/home/user/OverlapPredator.Mink-master/scripts/evaluate_predator.py", line 124, in benchmark_predator(feats_scores, args.n_points, args.exp_dir, args.benchmark) File "/home/user/OverlapPredator.Mink-master/scripts/evaluate_predator.py", line 85, in benchmark_predator benchmark(exp_dir, gt_folder) File "/home/user/OverlapPredator.Mink-master/lib/benchmark.py", line 304, in benchmark re = rotation_error(torch.from_numpy(ext_gt_traj[:,0:3,0:3]), torch.from_numpy(est_traj[:,0:3,0:3])).cpu().numpy()[np.array(c_flag)==0] File "/home/user/OverlapPredator.Mink-master/lib/benchmark.py", line 27, in rotation_error e = torch.stack([(torch.trace(R_[, :, :]) - 1) / 2 for _ in range(R.shape[0])], dim=0).unsqueeze(1) RuntimeError: stack expects a non-empty TensorList snapshot/indoor/est_traj/3DMatch/5000 0it [00:00, ?it/s] gt_folder: configs/benchmarks/3DMatch exp_dir: snapshot/indoor/est_traj/3DMatch/5000 tsfm_est shape: (0,) tsfm_est: [] Scene names: ['7-scenes-redkitchen', 'sun3d-home_at-home_at_scan1_2013_jan_1', 'sun3d-home_md-home_md_scan9_2012_sep_30', 'sun3d-hotel_uc-scan3', 'sun3d-hotel_umd-maryland_hotel1', 'sun3d-hotel_umd-maryland_hotel3', 'sun3d-mit_76_studyroom-76-1studyroom2', 'sun3d-mit_lab_hj-lab_hj_tea_nov_2_2012_scan1_erika'] Scene: 7-scenes-redkitchen, GT pairs: 506 Warning: count 0 exceeds tsfm_est length 0. Skipping remaining pairs. Scene: sun3d-home_at-home_at_scan1_2013_jan_1, GT pairs: 156 Warning: count 0 exceeds tsfm_est length 0. Skipping remaining pairs. Scene: sun3d-home_md-home_md_scan9_2012_sep_30, GT pairs: 208 Warning: count 0 exceeds tsfm_est length 0. Skipping remaining pairs. Scene: sun3d-hotel_uc-scan3, GT pairs: 226 Warning: count 0 exceeds tsfm_est length 0. Skipping remaining pairs. Scene: sun3d-hotel_umd-maryland_hotel1, GT pairs: 104 Warning: count 0 exceeds tsfm_est length 0. Skipping remaining pairs. Scene: sun3d-hotel_umd-maryland_hotel3, GT pairs: 54 Warning: count 0 exceeds tsfm_est length 0. Skipping remaining pairs. Scene: sun3d-mit_76_studyroom-76-1studyroom2, GT pairs: 292 Warning: count 0 exceeds tsfm_est length 0. Skipping remaining pairs. Scene: sun3d-mit_lab_hj-lab_hj_tea_nov_2_2012_scan1_erika, GT pairs: 77 Warning: count 0 exceeds tsfm_est length 0. Skipping remaining pairs. Traceback (most recent call last): File "/home/user/OverlapPredator.Mink-master/scripts/evaluate_predator.py", line 124, in benchmark_predator(feats_scores, args.n_points, args.exp_dir, args.benchmark) File "/home/user/OverlapPredator.Mink-master/scripts/evaluate_predator.py", line 85, in benchmark_predator benchmark(exp_dir, gt_folder) File "/home/user/OverlapPredator.Mink-master/lib/benchmark.py", line 304, in benchmark re = rotation_error(torch.from_numpy(ext_gt_traj[:,0:3,0:3]), torch.from_numpy(est_traj[:,0:3,0:3])).cpu().numpy()[np.array(c_flag)==0] File "/home/user/OverlapPredator.Mink-master/lib/benchmark.py", line 27, in rotation_error e = torch.stack([(torch.trace(R_[, :, :]) - 1) / 2 for _ in range(R.shape[0])], dim=0).unsqueeze(1) RuntimeError: stack expects a non-empty TensorList (pytorch1) user@user-System-Product-Name:~/OverlapPredator.Mink-master$ for N_POINTS in 250 500 1000 2500 5000 do python scripts/evaluate_predator.py --source_path snapshot/indoor/3DMatch --n_points $N_POINTS --benchmark 3DMatch --exp_dir snapshot/indoor/est_traj --sampling prob done snapshot/indoor/est_traj/3DMatch/250 0it [00:00, ?it/s] Traceback (most recent call last): File "/home/user/OverlapPredator.Mink-master/scripts/evaluate_predator.py", line 124, in benchmark_predator(feats_scores, args.n_points, args.exp_dir, args.benchmark) File "/home/user/OverlapPredator.Mink-master/scripts/evaluate_predator.py", line 81, in benchmark_predator write_est_trajectory(gt_folder, exp_dir, tsfm_est) File "/home/user/OverlapPredator.Mink-master/lib/benchmark_utils.py", line 67, in write_est_trajectory est_traj.append(tsfm_est[count]) IndexError: index 0 is out of bounds for axis 0 with size 0 snapshot/indoor/est_traj/3DMatch/500 0it [00:00, ?it/s] Traceback (most recent call last): File "/home/user/OverlapPredator.Mink-master/scripts/evaluate_predator.py", line 124, in benchmark_predator(feats_scores, args.n_points, args.exp_dir, args.benchmark) File "/home/user/OverlapPredator.Mink-master/scripts/evaluate_predator.py", line 81, in benchmark_predator write_est_trajectory(gt_folder, exp_dir, tsfm_est) File "/home/user/OverlapPredator.Mink-master/lib/benchmark_utils.py", line 67, in write_est_trajectory est_traj.append(tsfm_est[count]) IndexError: index 0 is out of bounds for axis 0 with size 0 snapshot/indoor/est_traj/3DMatch/1000 0it [00:00, ?it/s] Traceback (most recent call last): File "/home/user/OverlapPredator.Mink-master/scripts/evaluate_predator.py", line 124, in benchmark_predator(feats_scores, args.n_points, args.exp_dir, args.benchmark) File "/home/user/OverlapPredator.Mink-master/scripts/evaluate_predator.py", line 81, in benchmark_predator write_est_trajectory(gt_folder, exp_dir, tsfm_est) File "/home/user/OverlapPredator.Mink-master/lib/benchmark_utils.py", line 67, in write_est_trajectory est_traj.append(tsfm_est[count]) IndexError: index 0 is out of bounds for axis 0 with size 0 snapshot/indoor/est_traj/3DMatch/2500 0it [00:00, ?it/s] Traceback (most recent call last): File "/home/user/OverlapPredator.Mink-master/scripts/evaluate_predator.py", line 124, in benchmark_predator(feats_scores, args.n_points, args.exp_dir, args.benchmark) File "/home/user/OverlapPredator.Mink-master/scripts/evaluate_predator.py", line 81, in benchmark_predator write_est_trajectory(gt_folder, exp_dir, tsfm_est) File "/home/user/OverlapPredator.Mink-master/lib/benchmark_utils.py", line 67, in write_est_trajectory est_traj.append(tsfm_est[count]) IndexError: index 0 is out of bounds for axis 0 with size 0 snapshot/indoor/est_traj/3DMatch/5000 0it [00:00, ?it/s] Traceback (most recent call last): File "/home/user/OverlapPredator.Mink-master/scripts/evaluate_predator.py", line 124, in benchmark_predator(feats_scores, args.n_points, args.exp_dir, args.benchmark) File "/home/user/OverlapPredator.Mink-master/scripts/evaluate_predator.py", line 81, in benchmark_predator write_est_trajectory(gt_folder, exp_dir, tsfm_est) File "/home/user/OverlapPredator.Mink-master/lib/benchmark_utils.py", line 67, in write_est_trajectory est_traj.append(tsfm_est[count]) IndexError: index 0 is out of bounds for axis 0 with size 0

jun3333333 avatar Mar 21 '25 13:03 jun3333333

作者您好,我用自己的源云和目标云文件运行 demo.py 进行注册,效果不是很好,请问如何提高我的注册效果,请发到我的邮箱:[email protected]

jun3333333 avatar May 16 '25 01:05 jun3333333