The inherent non-uniformity, irregular connectivity, and complex topological structures of 3D mesh data present fundamental challenges for deep learning approaches. Existing methods predominantly rely on specialized mesh convolutional algorithms or graph-structured modeling, often requiring the design of complex operators. Given that point cloud models are insensitive to input order, can efficient mesh learning be achieved by treating mesh faces as points and feeding them into a point cloud model, with local relationships constructed via KNN? First, this paper theoretically analyzes the commonalities between point clouds and meshes, as well as the effectiveness of KNN in capturing local topological relationships in meshes. Second, to address the non-uniformity of meshes, a graph farthest point sampling method is proposed to optimize the sampling strategy. Finally, based on the Mamba3D model, MeshMamba3D is developed. To address the limitation of single-scale local geometric features in Mamba3D, a Multi-Scale Local Norm Pooling block is introduced to balance feature attention across different scales. Experimental validation demonstrates that MeshMamba3D attains a state-of-the-art accuracy of 94.81% on the Manifold40 dataset, confirming the viability and efficacy of adapting point cloud approaches to mesh learning.
Here, we provide the download links of the datasets for pre-train, classification and segmentation.
- ModelNet40 (ManiFold40)
- SHREC11 (spilt10, spilt16)
- Cube Engraving
- COSEG (Tele-aliens, Chairs, Vases)
- ShapeNet(we also provide the processed ShapeNet dataset as here)
| Task | Dataset | Accuracy | Download |
|---|---|---|---|
| Pre-training | ShapeNet | - | ckpt |
| Classification | ModelNet40 (ManiFlod40) | 94.81% | ckpt |
| Classification | Cube Engraving | 96.21% | ckpt |
| Classification | SHREC11-Split10 | 99.00% | ckpt |
| Classification | SHREC11-Split16 | 100.00% | ckpt |
| Segmentation | COSEG-Tele-aliens | 91.42% | ckpt |
| Segmentation | COSEG-Chairs | 95.96% | ckpt |
| Segmentation | COSEG-Vases | 92.62% | ckpt |
Tested on: PyTorch == 2.0.1; python == 3.8.17; CUDA == 11.7
pip install -r requirements.txt
# Chamfer Distance
cd ./model/chamfer_dist
python setup.py install --user
# GFFS
cd ./extension/ffs_cuda
python setup.py install --user
# PointNet++
pip install "git+https://github.com/erikwijmans/Pointnet2_PyTorch.git#egg=pointnet2_ops&subdirectory=pointnet2_ops_lib"
# GPU kNN
pip install --upgrade https://github.com/unlimblue/KNN_CUDA/releases/download/0.2/KNN_CUDA-0.2-py3-none-any.whl
# Mamba install
pip install causal-conv1d==1.1.1
pip install mamba-ssm==1.1.1
Pretaining:
python pretrain.py cfg/pretrain.yaml
Classification Task:
python train_cls.py cfg/***.yaml
Segmentation Task:
python train_seg.py cfg/***.yaml
MeshMamba3D is built with reference to the code of the following projects: (Mamba3D, MeshMAE). Thanks for their awesome work!
