kampta / DeepLayout

PyTorch implementation of "LayoutTransformer: Layout Generation and Completion with Self-attention" to appear in ICCV 2021
https://kampta.github.io/layout/
Apache License 2.0
151 stars 25 forks source link

How to generate the 3D Shape? #1

Open duzhenjiang113 opened 2 years ago

duzhenjiang113 commented 2 years ago

Thanks for releasing your code. And could you please tell me how to generate the 3D shape? I would be grateful!!! :-)

kampta commented 2 years ago

We use this repo for pre-processing the PartNet data. I'll try to release the generation code soon.

duzhenjiang113 commented 2 years ago

We use this repo for pre-processing the PartNet data. I'll try to release the generation code soon.

okay, thanks

CRISZJ commented 2 years ago

We use this repo for pre-processing the PartNet data. I'll try to release the generation code soon.

Hello, can we directly use your open-source code to process PartNet data, and then generate it as described in the paper?

duzhenjiang113 commented 2 years ago

I have another question, that is, during your training, did you not add any labels like PQ-NET?

suikei-wang commented 2 years ago

I am confusing how do you use the data from PQ-NET for 3D generation as the voxelized data does not have a bounding box like the layout elements. There're also hundreds of labels in PQ-NET's data. Another big problem is the alignment. In 2D layout generation, it'll be much more easier to align elements but in 3D, we need to consider the deformation issues. How did you do this?

duzhenjiang113 commented 2 years ago

I am confusing how do you use the data from PQ-NET for 3D generation as the voxelized data does not have a bounding box like the layout elements. There're also hundreds of labels in PQ-NET's data. Another big problem is the alignment. In 2D layout generation, it'll be much more easier to align elements but in 3D, we need to consider the deformation issues. How did you do this?

Hi, the data of the PQ-NET has been processed as alignment and it also provides the bounding box of each part. For me, my question is how to deal with label of each part, because each category of the shape has a lot of labels. In addition, how to restore the learned feature vector to shape is also a problem.

suikei-wang commented 2 years ago

I am confusing how do you use the data from PQ-NET for 3D generation as the voxelized data does not have a bounding box like the layout elements. There're also hundreds of labels in PQ-NET's data. Another big problem is the alignment. In 2D layout generation, it'll be much more easier to align elements but in 3D, we need to consider the deformation issues. How did you do this?

Hi, the data of the PQ-NET has been processed as alignment and it also provides the bounding box of each part. For me, my question is how to deal with label of each part, because each category of the shape has a lot of labels. In addition, how to restore the learned feature vector to shape is also a problem.

Thank you so much for your reply. You're right, there are A LOT of labels. I am stuck here and not sure how to deal with it appropriately. Did you come out with any solution? Thanks!

duzhenjiang113 commented 2 years ago

I am stuck here and not sure how to deal with it appropriately. Did you come out with any solution? Thanks!

I try to reduce the number of parts for each shape. And label the part. Such as a chair, I only split as back, seat, arm, and leg.

suikei-wang commented 2 years ago

I am stuck here and not sure how to deal with it appropriately. Did you come out with any solution? Thanks!

I try to reduce the number of parts for each shape. And label the part. Such as a chair, I only split as back, seat, arm, and leg.

Ah but not all chairs have an arm right? It may cause some issues when you generate some new chairs. It'll be great if the author can release the code of this part. According to the paper, they just mentioned this part in a small paragraph, so it may not be completed.

duzhenjiang113 commented 2 years ago

I am stuck here and not sure how to deal with it appropriately. Did you come out with any solution? Thanks!

I try to reduce the number of parts for each shape. And label the part. Such as a chair, I only split as back, seat, arm, and leg.

Ah but not all chairs have an arm right? It may cause some issues when you generate some new chairs. It'll be great if the author can release the code of this part. According to the paper, they just mentioned this part in a small paragraph, so it may not be completed.

yes, not all chairs have arms. So we can use the mask to do padding.

suikei-wang commented 2 years ago

I am stuck here and not sure how to deal with it appropriately. Did you come out with any solution? Thanks!

I try to reduce the number of parts for each shape. And label the part. Such as a chair, I only split as back, seat, arm, and leg.

Ah but not all chairs have an arm right? It may cause some issues when you generate some new chairs. It'll be great if the author can release the code of this part. According to the paper, they just mentioned this part in a small paragraph, so it may not be completed.

yes, not all chairs have arms. So we can use the mask to do padding.

So I end up removing those redundant and duplicate parts from the json file and getting the bounding box from another partnet dataset in .mat file. Hope it's helpful for you in your experiment. :)

duzhenjiang113 commented 2 years ago

I am stuck here and not sure how to deal with it appropriately. Did you come out with any solution? Thanks!

I try to reduce the number of parts for each shape. And label the part. Such as a chair, I only split as back, seat, arm, and leg.

Ah but not all chairs have an arm right? It may cause some issues when you generate some new chairs. It'll be great if the author can release the code of this part. According to the paper, they just mentioned this part in a small paragraph, so it may not be completed.

yes, not all chairs have arms. So we can use the mask to do padding.

So I end up removing those redundant and duplicate parts from the json file and getting the bounding box from another partnet dataset in .mat file. Hope it's helpful for you in your experiment. :)

Does this work well?

suikei-wang commented 2 years ago

I am stuck here and not sure how to deal with it appropriately. Did you come out with any solution? Thanks!

I try to reduce the number of parts for each shape. And label the part. Such as a chair, I only split as back, seat, arm, and leg.

Ah but not all chairs have an arm right? It may cause some issues when you generate some new chairs. It'll be great if the author can release the code of this part. According to the paper, they just mentioned this part in a small paragraph, so it may not be completed.

yes, not all chairs have arms. So we can use the mask to do padding.

So I end up removing those redundant and duplicate parts from the json file and getting the bounding box from another partnet dataset in .mat file. Hope it's helpful for you in your experiment. :)

Does this work well?

Nope :(( the loss cannot converge and we don't have enough time to retrain before the course deadline lol.

suikei-wang commented 2 years ago

I am stuck here and not sure how to deal with it appropriately. Did you come out with any solution? Thanks!

I try to reduce the number of parts for each shape. And label the part. Such as a chair, I only split as back, seat, arm, and leg.

Ah but not all chairs have an arm right? It may cause some issues when you generate some new chairs. It'll be great if the author can release the code of this part. According to the paper, they just mentioned this part in a small paragraph, so it may not be completed.

yes, not all chairs have arms. So we can use the mask to do padding.

So I end up removing those redundant and duplicate parts from the json file and getting the bounding box from another partnet dataset in .mat file. Hope it's helpful for you in your experiment. :)

Does this work well?

BTW tbh, I don't think this layout generation model has good generalization on other tasks. You can find in their paper, the results on the room layout are so bad (two ppl on the top of the fridge??). Their results on UI layout is good but not performing well on other applications. So it's reasonable it doesn't work on voxels.