6
$\begingroup$

I am trying to develop a machine learning algorithm to identify topological features within 3D CAD models (i.e. slots, pockets, holes, bosses etc)

For the input data I have decided to use the adjacency of the faces to identify the features within the model. I have developed a pre-processing algorithm which computes the adjacency between every face in the model and also whether the relationship is concave or convex in nature.

Below is an example of a 3D model and the relationships between each faces represented in a graph format.

Example of face adjacency within a part

I was thinking of using some sort of supervised learning training method where the training data would include all of the adjacency info for the model with labels defining the features that exist within the model such as:

Slot - made up of faces F7, F8, F9

Hole - made up of faces F15

Pocket - made up of faces F10, F11, F12, F13

And eventually once the model is sufficiently trained it would be able to identify the features in an un-seen model and determine which faces make up those features.

I am not sure how I would go about pre-processing the input data (i.e. it would be of variable length since the number of faces may not be the same from model to model). I am also struggling to understand which type of machine learning algorithm would be best suited to this application

Any help on this problem or even pointing to some resources to help understand would be appreciated

$\endgroup$
  • $\begingroup$ very interesting topic $\endgroup$ – pcko1 Jun 28 '18 at 17:34
4
$\begingroup$

This is a classification problem. Look at some common classification methods. This article by Microsoft gives some pretty good guidance.

https://docs.microsoft.com/en-us/azure/machine-learning/studio/algorithm-choice

$\endgroup$
  • 1
    $\begingroup$ Hi Zakk. I had an idea that it was a classification problem, my main issue is figuring out the best way to represent the adjacency data to the machine learning algorithm in a way it can understand (I am quite interested in using a Neural Network for its customisation capability) $\endgroup$ – Darren Taggart Jan 15 '18 at 18:37
  • 1
    $\begingroup$ I don't know the best way to represent the adjacency data. I imagine you could use deep learning. It may be a bit of effort but you could pass in the entire state model. Make a model with enough parameters to account for max_faces^2. Then pass in the relation from face_a -> face_b, face_a -> face_c etc. If possible, try to find a way to generate valid models with definitions that can be used to train the model. This will give you a much larger dataset to learn desired features from. $\endgroup$ – Zakk Diaz Jan 15 '18 at 19:33
0
$\begingroup$

you should use multiple view convolutional networks , check https://www.cv-foundation.org/openaccess/content_iccv_2015/papers/Su_Multi-View_Convolutional_Neural_ICCV_2015_paper.pdf

$\endgroup$
0
$\begingroup$

I am working on the same problem but in another way. I want to recognise only certain slots so that I can use them for further processing. I found this thesis "CAD feature recognition" to be helpful.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.