HI-SLAM2 icon indicating copy to clipboard operation
HI-SLAM2 copied to clipboard

Scannet ATE result

Open 7yzx opened this issue 6 months ago • 2 comments

Hi, I evaluate on scannet , but I found all ate result is bad but psnr is well. By the way, the Replica dataset is work well ! I'm sorry I'm not familiar with scannet datasets. If it's convenient, could you give me some help on evaluation? My scannet result

scene0000_00
- full ATE: 186.1781
- psnr: 28.750, ssim: 0.847, lpips: 0.273

scene0059_00
- full ATE: 91.8943
- psnr: 26.273, ssim: 0.852, lpips: 0.253

this is my scene0000_00 traj.txt, traj_full.txt

and I use the code to clean the scene0000_00 gt but i don't find invaild lines , clean invaild gt is mentioned in https://github.com/Willyzw/HI-SLAM2/issues/22

def is_valid_line(line, expected_count=8):
    try:
        parts = line.strip().split()
        if len(parts) != expected_count:
            return False
        floats = [float(p) for p in parts]
        if any(math.isnan(x) or math.isinf(x) for x in floats):
            return False
        if all(x == 0.0 for x in floats):
            return False
        return True
    except ValueError:
        return False

7yzx avatar Jun 03 '25 16:06 7yzx

Hi, please check the name of img in the color dir and the pose in the pose dir, they should be: color/000123.jpg and pose/000123.txt rather than: color/123.jpg and pose/123.txt

Heibaiii avatar Aug 23 '25 05:08 Heibaiii

Hi, I evaluate on scannet , but I found all ate result is bad but psnr is well. By the way, the Replica dataset is work well ! I'm sorry I'm not familiar with scannet datasets. If it's convenient, could you give me some help on evaluation? My scannet result

scene0000_00
- full ATE: 186.1781
- psnr: 28.750, ssim: 0.847, lpips: 0.273

scene0059_00
- full ATE: 91.8943
- psnr: 26.273, ssim: 0.852, lpips: 0.253

this is my scene0000_00 traj.txt, traj_full.txt

and I use the code to clean the scene0000_00 gt but i don't find invaild lines , clean invaild gt is mentioned in #22

def is_valid_line(line, expected_count=8):
    try:
        parts = line.strip().split()
        if len(parts) != expected_count:
            return False
        floats = [float(p) for p in parts]
        if any(math.isnan(x) or math.isinf(x) for x in floats):
            return False
        if all(x == 0.0 for x in floats):
            return False
        return True
    except ValueError:
        return False

Heibaiii avatar Aug 23 '25 05:08 Heibaiii