AutodeskAILab / JoinABLe

JoinABLe: Learning Bottom-up Assembly of Parametric CAD Joints
71 stars 14 forks source link

Labeling and loss function problems for joint axis prediction #5

Closed CodingNovice7 closed 1 year ago

CodingNovice7 commented 1 year ago

Hi, I would like to ask why the label in the joint axis prediction task is an mn all-1 matrix. Shouldn't the labels provided in the dataset be the entities of the interconnected fits in the two parts. My understanding is that since the joint axis prediction is to predict the paired BRep entities (face or edge) of a pair of parts, if a BRep entity i (face or edge) of part 1 and a BRep entity j (face or edge) of part 2 are paired to form a target component, shouldn't the mn joint axis prediction matrix label be set to a prominent value? How is the all-1 matrix optimized for joint axis prediction? Why are the joint entities of two parts not distinguished from other paired entities in the label?

karldd commented 1 year ago

why the label in the joint axis prediction task is an mn all-1 matrix

I'm not sure I follow. Do you mean to say the matrix contains only 1's?

The matrix cell [n][m] will be 1 when the user selected brep entity n on part 1 and brep entity m on part 2. All other matrix cells will be 0.

However, if you use a different train_scheme or test_scheme then various other augmented labels can be used. Relevant code is here. Here is an illustration of what those other label augmentations mean.

image
CodingNovice7 commented 1 year ago

Thank you, I do mean that this matrix contains only 1. So far, it seems that such a matrix exists, so does there exist a matrix where all the elements of the matrix are zero?

karldd commented 1 year ago

The content of the matrix will depend on the train_scheme / test_scheme arguments used. If set to Joint this will not have any augmented labels (so fewer 1s).

One thing we do is sort the data by easy to hard examples (for legacy reasons), meaning at the start the data loader will return samples with more 1s and fewer 0s. So when you are inspecting the data, sample randomly and you will find samples with 0s.

No samples will be all 0s.

CodingNovice7 commented 1 year ago

I understand, thank you!