This repository contains the implementation of the paper:
Siyu Zhang, Hui Cao, Yuqi Liu, Shen Cai∗, Yanting Zhang, Yuanzhan Li and Xiaoyu Chi. SN-Graph: a Minimalist 3D Object Representation for Classification. IEEE International Conference on Multimedia and Expo (ICME) 2021, oral presentation. Paper PDF
Using deep learning techniques to process 3D objects has achieved many successes. However, few methods focus on the representation of 3D objects, which could be more effective for specific tasks than traditional representations, such as point clouds, voxels, and multi-view images. In this paper, we propose a Sphere Node Graph (SN-Graph) to represent 3D objects. Specifically, we extract a certain number of internal spheres (as nodes) from the signed distance field (SDF), and then establish connections (as edges) among the sphere nodes to construct a graph, which is seamlessly suitable for 3D analysis using graph neural network (GNN). Experiments conducted on the ModelNet40 dataset show that when there are fewer nodes in the graph or the tested objects are rotated arbitrarily, the classification accuracy of SN-Graph is significantly higher than the state-of-the-art methods.
In order to represent 3D objects by skeleton-like graphs, each node of the graph that also refers to an internal sphere should be selected from voxels. We use furthest sphere sampling with special distance difinetion to select nodes. The distance between two nodes satisfies the following formula:
The following image display the comparison of different concise representations with the resolution of 32.
Inspired by the idea of human joint connection, we propose to construct SN-Graph according to four node connection rules.
- The edge between two nodes should be close enough to the object.
- The edge between two sphere nodes should not intersect another selected sphere.
- The maximum number of connections from each node to other nodes is limited to
$q$ - For an isolated sphere node, it needs to be connected to another nearest node.
This image shows the process of generate a SN-Graph
This image shows the SNG of airplane with different nodes.
And the following images shows the SNG of different objects.
Similar to most graph classification networks, our network follows the design of graph convolution => readout => classifier
.
We first use an MLP/EdgeConv layer to increase the input feature dimension
The usage of this part is to generate SN-Graph from voxel files.
The code has been tested on pytorch 1.7.1 + PyG 1.6.3 + CUDA 11.0
This project is licensed under the terms of the LGPL License (see LICENSE
for details).