Python Help solving a geometrical matching issue with Graph Neural Networks

AI Thread Summary
The discussion focuses on identifying corresponding lines and vertices in 2D orthographic views of a 3D object to facilitate 3D model construction. The use of a graph neural network (GNN) is proposed as a solution, with vertices represented as nodes and lines as edges in the graph. Key features for nodes include x-y coordinates, while edges would have attributes such as edge type (straight, circular, arc), length, and dimension text relevance. Suggestions are sought for suitable network architectures, including the potential use of hierarchical graph structures and hypernodes to capture relationships between different views. The task is framed as a complex problem that may involve link prediction, node classification, or graph matching. The relevance of isometric views in the context of engineering drawings is also considered, noting that while they may not universally apply, they could enhance accuracy in certain cases. The discussion invites further input on additional features, task definitions, and overall approach to the problem.
lauripro56
Messages
1
Reaction score
0
TL;DR Summary
I wish to understand which lines and vertices in different 2D orthographic views of a 3D object correspond to each other. This information would also later be used to construct a 3D model from the 2D orthographic views. I wish to utilize graphs and graph neural networks.
Hello!

I wish to understand which lines and vertices in different 2D orthographic views of a 3D object correspond to each other. This information would also later be used to construct a 3D model from the 2D orthographic views.
Screenshot 2024-07-14 132856.jpg

Blue shows matched edges/lines. Orange shows matched nodes/vertices.
Screenshot 2024-07-14 133107.jpg

Circular objects seem especially difficult.
So far it seems like it would be sensible to use a graph neural network to solve this task. Initial ideas, structure, features are as follows (general, more certain):
  • Each vertex is a node in the graph
    • Node feature vector would include the x-y coordinates relative to the view
  • Each line on the drawing is an edge between nodes in the graph
    • Edge feature vector would include:
      • Edge type (in addition to straight lines there are are also circles and arcs)
      • Edge length
      • If dimension text is defined next to the edge (this is a mechanical engineering drawing related property, with the importance being that equivalent edges in a mechanical engineering drawings should have the length defined for them only once)
Do you have any suggestions for the following:
  • What network architecture(s) would be worth a try?
  • Should a hierarchical graph structure (and GNN) be used?
    • A hypernode representing the entire view, which is connected to all other nodes in the view
    • A global node connected to all hypernodes, in order to capture the relation between different views
graph_hypernodes.png

Schematic of more complex graphs. (https://distill.pub/2021/gnn-intro/)
  • Any thoughts about other relevant edge, node and potentially global features?
  • How would You define this task? Is it link prediction, node classification, graph matching, etc.?
    • This task can probably be approached in many different ways, what seems logical to You?
  • Engineering drawings often also contain an isometric view, could this be relevant somehow?
    • Notice that an entirely isometric view dependent solution does not work for all drawings then, however it could be still relevant if works with high accuracy or does not require too much “side-tracking”.
Feel free to ask any additional questions or engage in discussion (some more uncertain ideas left out to not cause unnecessary confusion / make the post too long).

Thanks for any help!
 
Technology news on Phys.org
It would seem that a graph neural net would be the way to go.

https://en.wikipedia.org/wiki/Graph_neural_network

You have connecting edges for each node, and the edges have length. From the isometric diagrams, adjacent edges have angles that must be preserved, too.

Any 3D engineering drawing would also be applicable, although the angles are likely incorrect.

Is this for a school project?
 
Dear Peeps I have posted a few questions about programing on this sectio of the PF forum. I want to ask you veterans how you folks learn program in assembly and about computer architecture for the x86 family. In addition to finish learning C, I am also reading the book From bits to Gates to C and Beyond. In the book, it uses the mini LC3 assembly language. I also have books on assembly programming and computer architecture. The few famous ones i have are Computer Organization and...
I have a quick questions. I am going through a book on C programming on my own. Afterwards, I plan to go through something call data structures and algorithms on my own also in C. I also need to learn C++, Matlab and for personal interest Haskell. For the two topic of data structures and algorithms, I understand there are standard ones across all programming languages. After learning it through C, what would be the biggest issue when trying to implement the same data...
Back
Top