Search⌘ K

Graph Convolution

Learn how graph convolution generalizes convolutional layers to process 3D mesh data as graphs. Discover how to apply graph convolution to classify and segment 3D meshes, leveraging PyTorch3D's GraphConv operation for neural network modeling of mesh structures.

Overview

While we have many options for data representations in 3D, it would often be ideal to work with meshes directly. Much of the 3D art world depends on 3D meshes, so AI techniques that can manipulate them directly will be simpler and more efficient. By treating 3D meshes as graph data, we can use some of the concepts from graph neural networks on 3D data.

Graph convolution

Graph convolution is a concept drawn from graph theory. For a graph consisting of nodes NN and edges EE, it defines a convolution operator f(N,E)f(N, E) that combines vertex position and optional features from a vertex ii and its set of neighbors N(i)N(i). It essentially is a generalization of convolutional layers where connections can be irregular and/or asymmetric. We can think of the convolutional layers seen in computer vision, for example, as a special case of graph convolution, where nodes are densely and bidirectionally connected to adjacent nodes.

The graph convolution operation is defined over a vertex and its neighbors
The graph convolution operation is defined over a vertex and its neighbors

Graph convolutions have been used repeatedly for analyzing 3D data in techniques such as Pixel2Mesh, MeshCNN, and Mesh R-CNN. Various techniques utilize graph convolutions to classify 3D meshes, segment 3D meshes into ...