ChrisWu1997 / PQ-NET

code for our CVPR 2020 paper "PQ-NET: A Generative Part Seq2Seq Network for 3D Shapes"
MIT License
118 stars 18 forks source link

Code for Recovering Part Order #20

Open absdnd opened 3 years ago

absdnd commented 3 years ago

Hi,

Thank you for releasing the code for your approach.

Could you also release the code for Part-Denoising (Fig 10 in the PQ-NET paper)?

ChrisWu1997 commented 3 years ago

Hi Abhinav,

Part order denoising is a simple future application that we demonstrated. I sort of lost the code for that experiment now, but it only needs several lines of code.

Before the following line, https://github.com/ChrisWu1997/PQ-NET/blob/50e3a953cfdb06e9e8fbe303093802106a882f41/agent/agent_seq2seq.py#L76 randomly shuffle part_feature_seq to create noisy part order. Note that each data in a single batch has different number of parts, so you need to may do this using a for loop. The model needs to be re-trained.

absdnd commented 3 years ago

Thanks for your reply.

Could you tell me if the part-denoising experiment would be accurate enough to be used in another application which needs canonical part orders?

ChrisWu1997 commented 3 years ago

It depends on the data. Since it's trained in a supervised manner, I think it cannot generalize well if using it on other data distribution that is much different from PartNet.

absdnd commented 3 years ago

Thanks.

Just one more question. In the code segment above, the network would generate novel 3D shapes in the canonical part order. However, is it possible only to generate a permutation of the input parts that yields the denoised order?

ChrisWu1997 commented 3 years ago

If I understand correctly, you are asking to generate only a permutation of the input parts, i.e. a sequence of index. Our model cannot do this, but I think you may look into this paper Pointer Network, which aims to solve a similar re-ordering problem.

absdnd commented 3 years ago

Sure, thanks. Is it possible to utilize your architecture and perform linear assignment on the generated shapes to learn the part order? I mean matching the generated shapes and the input shapes.

ChrisWu1997 commented 3 years ago

I think it is possible, by combining our framework with Pointer Network. But I'm not sure how it works in practice.