AutodeskAILab / Fusion360GalleryDataset

Data, tools, and documentation of the Fusion 360 Gallery Dataset
Other
408 stars 49 forks source link

How to get segmentation label for each face in brep data? #99

Open Achiga-wuhu opened 8 months ago

Achiga-wuhu commented 8 months ago

Thank you very much for making the dataset publicly available! We appreciate your great efforts and excellent work. I had a few questions regarding the FUSION 360 Gallery dataset-segmentation dataset. When I looking into the segmentation data, I find there is some data with meaningless label, for example, in figure 1, the quadratic plane is labeled with "cut end". But there is no "cut side" face around it. Same situation in figure 2. I understand that this kind of label is possible when the user cut the whole face with a distance, but this kind of data will bring ambiguity to my task. image figure 1 image figure 2

So I want to change the label, or generate some modeling sequence data and label the face by myself. May I ask the following questions? 1) How could you label the face with its corresponding modeling sequence? Could you please roughly clarify the process? 2) Is there any possible way to assign the face with its corresponding modeling sequence label with pyocc or occwl?

Thank you very much!!

JoeLambourne commented 8 months ago

Hi @Achiga-wuhu,

Thank you for your question. The labels are generated by the Fusion 360 application. If you open Fusion 360, create some simple modeling operations, then click on the features in the timeline at the bottom of the screen, the faces "created" or "modified" by that feature will turn blue. There are a few crazy cases which you need to be aware of.

  1. Truncation of a sold by a second operation. This looks to be the kind of thing happening in Figure 2. The entire green face may have been created by a feature which is not seen in the final geometry. Here is one way this could happen.

image

  1. Merging of faces. When faces are merged then it is very hard to know how to label the geometry. We basically assign the labels according to the faces which turn blue in Fusion. Here is an example of a merge which changes the geometry is a very unexpected way.

image

Sadly these corner cases can make it hard to interpret the labels with geometric reasoning. Hence there is a maximum accuracy which can be achieved on the dataset, depending on what information is fed to your algorithm.

While every care was taken to try to make the labels as sensible as possible, it was not feasible to arrive at anything better than what was published.

Achiga-wuhu commented 8 months ago

Thank you for your explanation!! I try the process in Fusion360, but I am still curious about how to distinguish between the extrude side and extrude end. When the feature are selected, the body will turn blue but there is no difference between extrude end face and extrude side face. Is there any automatic process to achieve this? Thank you!

JoeLambourne commented 8 months ago

Sorry for the confusion. Sadly we didn't have permission to release the original Fusion data. If you are loading just an smt file then you will not have the timeline information. If you have a Fusion file which contains a timeline then you can use the python API

https://help.autodesk.com/view/fusion360/ENU/?guid=GUID-62d132d3-2ae9-4d74-91d1-f2eee3d68f5d

The type of the operation is given by ExtrudeFeature.operation

Also see ExtrudeFeature.sideFaces and ExtrudeFeature.startFaces

Achiga-wuhu commented 8 months ago

Thank you very much for your quick reply; your reply is very helpful to me! :)

JoeLambourne commented 8 months ago

Sorry that better labels were not possible. The dataset reflects the real complexity of commercial CAD data