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

Question about Primitive Loss #6

Open
haoala opened this issue Jan 21, 2022 · 10 comments
Open

Question about Primitive Loss #6

haoala opened this issue Jan 21, 2022 · 10 comments

Comments

@haoala
Copy link
Contributor

haoala commented Jan 21, 2022

Hi, thank you for this interesting work and congrats on publishing at ICCV.

I have a question about the implementation of the primitive loss term. In the paper, it is

But in the implementation it is:

primitive_loss = torch.mean((primitive_sdf.min(dim=1)[0])**2) * self.scale

Which seems like it is this expression instead:

I suppose this is equivalent to the first equation when all testing points are outside the primitive, but once there are testing points inside this loss term seems to pull the surface so that no testing points are too far inside (since it pushes the most negative value toward 0). Is this intentional?

Might the correct implementation be as follows?

primitive_loss = torch.mean((primitive_sdf**2).min(dim=1)[0]) * self.scale
@kimren227
Copy link
Owner

Hi Adriel,

Thank you for going through the code in detail and I really appreciate that.

This is a bug. And I believe fixing it can increase the performance of the model.

Do you want to make a PR for this?

Best Regards,

Daxuan

@haoala
Copy link
Contributor Author

haoala commented Jan 27, 2022

Hi Daxuan,

If this new loss function is untested, and the model that was trained on the existing loss function works fine, then I would be more leaving it as is until it is tested, in case of unintended side effects. So I am happy to leave this as an open issue.

@Farewell-ME
Copy link
Contributor

Farewell-ME commented Feb 20, 2022

Hi, I'd like to ask about figure 1 and 3 in your paper. Because these 3 demo in two figures are all about mechanical parts, which may meet the demand of my research interest. However, the training data in your code is modified from ShapeNet, which is composed of complex assemblies.
I myself have made several types of mechanical parts point cloud to train CSGstumpNet. But the performance is not good. Could you kindly publish the mechnical parts point cloud data used for Figure 1 and 3?

@kimren227
Copy link
Owner

Hi Frank,

Thanks for your interest.

Figure 1 and 3 are not trained using the end2end pipeline(the code in this repo). Instead, they are used for the optimization method as described in Sec.5.1. Currently, I'm hesitant to release the code for the optimization method as it was implemented in a hurry and the code is quite messy. But if you really want to give it a shot, please PM me, I can send you a copy of the code.

Best Regards.

Daxuan

@Farewell-ME
Copy link
Contributor

Oh, thank you so much! I'm new to Github and it seems not to have a PM button. Is the education email address left on your paper OK to contact you?

@kimren227
Copy link
Owner

Yes, that will work

@kimren227
Copy link
Owner

I'll email you with the code. Do let me know if you need further assistance.

@rucha97
Copy link

rucha97 commented Oct 12, 2022

Hi Daxuan
I found your work quite interesting. Kudos!

I would like to know how I should visualize the results on OpenSCAD, I have never worked on that. Perhaps if you had any steps, that would be quite helpful. TIA!

Cheers,
Rucha

@kimren227
Copy link
Owner

You may follow #11 to export the network result into an OpenSCAD file. After that, you can directly open it using the software.

@rucha97
Copy link

rucha97 commented Oct 13, 2022

You may follow #11 to export the network result into an OpenSCAD file. After that, you can directly open it using the software.

Oh I see, I did not check the closed issues. Thank you!

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

4 participants