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

Why is test_scene_as_chunks running on input instead of target and what is the definition of Valid Pixels and 3D reconstruction loss? #16

Open
ferbrjan opened this issue Aug 16, 2022 · 4 comments

Comments

@ferbrjan
Copy link

Good afternoon,

After successfully running the testing of SPSG on our data, I was studying the code of test_scene_as_chunks.py and came across a weird part of the code. When running the trained model spsg.pth using the model() function, one of the arguments is chunk_input. From what I understand, this chunk_input variable refers to the incomplete version of the scan, while the testing part should run on the complete scan (I assume that is chunk_target_sdf variable). See screenshot below: (line 138 in test_scene_as_chunks.py

Snímek obrazovky 2022-08-16 v 16 56 01

)

To find more information about this, I was rereading your paper to understand the process entirely, and I came across two more things that are somewhat unclear to me. Can you please specify what is meant by valid pixels in section 4.2?

Snímek obrazovky 2022-08-16 v 17 08 23

Another unclear thing is the 3D geometric reconstruction loss. Can you please define what is meant by this term?

Snímek obrazovky 2022-08-16 v 17 10 11

Thank you very much for your help,

Regards,

Jan

@wtiandong
Copy link

wtiandong commented Aug 17, 2022

Good afternoon,

After successfully running the testing of SPSG on our data, I was studying the code of test_scene_as_chunks.py and came across a weird part of the code. When running the trained model spsg.pth using the model() function, one of the arguments is chunk_input. From what I understand, this chunk_input variable refers to the incomplete version of the scan, while the testing part should run on the complete scan (I assume that is chunk_target_sdf variable). See screenshot below: (line 138 in test_scene_as_chunks.py

Snímek obrazovky 2022-08-16 v 16 56 01

)
To find more information about this, I was rereading your paper to understand the process entirely, and I came across two more things that are somewhat unclear to me. Can you please specify what is meant by valid pixels in section 4.2?

Snímek obrazovky 2022-08-16 v 17 08 23

Another unclear thing is the 3D geometric reconstruction loss. Can you please define what is meant by this term?

Snímek obrazovky 2022-08-16 v 17 10 11

Thank you very much for your help,

Regards,

Jan

Since the authors seldom reply to issues on Github, I would like to try to answer your questions.

First, "valid pixels". When you render a TSDF volume at a specific camera pose, not all pixels on the rendered image are filled. At some locations, there isn't "mesh" (i.e, empty), but the camera "sees" these locations. So the empty locations rendered on the image are invalid pixels. See here

Second, "3D geometric reconstruction loss". This is just loss = |TSDF_pred - TSDF_target|.
See here

@ferbrjan
Copy link
Author

Good afternoon,
After successfully running the testing of SPSG on our data, I was studying the code of test_scene_as_chunks.py and came across a weird part of the code. When running the trained model spsg.pth using the model() function, one of the arguments is chunk_input. From what I understand, this chunk_input variable refers to the incomplete version of the scan, while the testing part should run on the complete scan (I assume that is chunk_target_sdf variable). See screenshot below: (line 138 in test_scene_as_chunks.py
Snímek obrazovky 2022-08-16 v 16 56 01
)
To find more information about this, I was rereading your paper to understand the process entirely, and I came across two more things that are somewhat unclear to me. Can you please specify what is meant by valid pixels in section 4.2?
Snímek obrazovky 2022-08-16 v 17 08 23
Another unclear thing is the 3D geometric reconstruction loss. Can you please define what is meant by this term?
Snímek obrazovky 2022-08-16 v 17 10 11
Thank you very much for your help,
Regards,
Jan

Since the authors seldom reply to issues on Github, I would like to try to answer your questions.

First, "valid pixels". When you render a TSDF volume at a specific camera pose, not all pixels on the rendered image are filled. At some locations, there isn't "mesh" (i.e, empty), but the camera "sees" these locations. So the empty locations rendered on the image are invalid pixels. See here

Second, "3D geometric reconstruction loss". This is just loss = |TSDF_pred - TSDF_target|. See here

Perfect! This helps a lot!

Now the only missing part is the usage of chunk_input. Hopefully, someone will clarify that.

@wtiandong
Copy link

wtiandong commented Aug 17, 2022

BTW, may I ask what gan loss you use and how many epochs you train the network when reproducing SPSG code? I notice that training is very slow when using vanilla gan loss.

Good afternoon,
After successfully running the testing of SPSG on our data, I was studying the code of test_scene_as_chunks.py and came across a weird part of the code. When running the trained model spsg.pth using the model() function, one of the arguments is chunk_input. From what I understand, this chunk_input variable refers to the incomplete version of the scan, while the testing part should run on the complete scan (I assume that is chunk_target_sdf variable). See screenshot below: (line 138 in test_scene_as_chunks.py
Snímek obrazovky 2022-08-16 v 16 56 01
)
To find more information about this, I was rereading your paper to understand the process entirely, and I came across two more things that are somewhat unclear to me. Can you please specify what is meant by valid pixels in section 4.2?
Snímek obrazovky 2022-08-16 v 17 08 23
Another unclear thing is the 3D geometric reconstruction loss. Can you please define what is meant by this term?
Snímek obrazovky 2022-08-16 v 17 10 11
Thank you very much for your help,
Regards,
Jan

Since the authors seldom reply to issues on Github, I would like to try to answer your questions.
First, "valid pixels". When you render a TSDF volume at a specific camera pose, not all pixels on the rendered image are filled. At some locations, there isn't "mesh" (i.e, empty), but the camera "sees" these locations. So the empty locations rendered on the image are invalid pixels. See here
Second, "3D geometric reconstruction loss". This is just loss = |TSDF_pred - TSDF_target|. See here

Perfect! This helps a lot!

Now the only missing part is the usage of chunk_input. Hopefully, someone will clarify that.

@ferbrjan
Copy link
Author

I used the default setting from the example command. It was slow but the trained model was working faster than the one provided by the authors.

sorry but I have not experimented with the training too much. :-(

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

2 participants