Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Confusion with IoU values #26

Open
yashbhalgat opened this issue Aug 26, 2022 · 8 comments
Open

Confusion with IoU values #26

yashbhalgat opened this issue Aug 26, 2022 · 8 comments

Comments

@yashbhalgat
Copy link

Hi @dazinovic , following your comment here: #1 (comment), I used the mesh_metrics.py script to compute the evaluation metrics.

I used the meshes provided by you here.

The numbers I get for Chamfer distance and Normal Correctness somewhat match the results in the paper, but the IoU I get from this script is much higher than the IoU reported in the paper.

For example,

  • For Morning apartment, I get IoU=0.9411, but in the paper IoU=0.716
  • For Green room, I get IoU=0.9855, but in the paper the IoU=921.

I am not sure if I am making a mistake here. Can you please advise? Thank you.

@dazinovic
Copy link
Owner

Did you change the voxel resolution to 5 cm?

@yashbhalgat
Copy link
Author

Hi @dazinovic, how do I change the voxel resolution? Do you mean the res variable in the compute_iou function in mesh_metrics.py?

Right now, the function looks like this:

def compute_iou(mesh_pred, mesh_target):
    res = 1.1875
    v_pred = mesh_pred.voxelized(pitch=res)
    v_target = mesh_target.voxelized(pitch=res)

    v_pred_filled = set(tuple(x) for x in v_pred.points)
    v_target_filled = set(tuple(x) for x in v_target.points)
    iou = len(v_pred_filled.intersection(v_target_filled)) / len(v_pred_filled.union(v_target_filled))
    return iou

@yashbhalgat
Copy link
Author

I tried modifying the res variable to res=5.0, but that doesn't seem to fix the issue. With res=5.0, I get an IoU of 1.0 (which is expected, I guess?).

@yashbhalgat
Copy link
Author

Hi @dazinovic, I was wondering if you had any comments/advice regarding my above comment(s). That would be very helpful. :)

@dazinovic
Copy link
Owner

I tried modifying the res variable to res=5.0

That would be 5 meters. I think I used a value of 0.1 there. Also don't forget to update the thresholds in the other function to get a correct F-score.

@yashbhalgat
Copy link
Author

Thanks for the reply. I tried both res=0.05 (i.e. 5cm) and res=0.1 (as you suggested), but unfortunately that still doesn't produce the IOU reported in the paper.

  • With res=0.1: I get IoU=0.4275
  • With res=0.05: I get IoU=0.1847
  • IOU reported in the paper is 0.716

Note that I am using the meshes provided by you here, so I was expecting that the results would match? Specifically, I am computing the IOU between the provided neural_rgbd.ply and gt_mesh_culled.ply.

Please advise. Thanks.

@dazinovic
Copy link
Owner

Are the meshes aligned? Have they been culled to just the observed areas?

@QuangHieu1704
Copy link

I faced the same problem with @yashbhalgat, that I cannot reproduce your results. Can you recheck again and help us?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants