All Projects → Gaozhongpai → PaiConvMesh

Gaozhongpai / PaiConvMesh

Licence: other
Official repository for the paper "Learning Local Neighboring Structure for Robust 3D Shape Representation"

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to PaiConvMesh

void-dataset
Visual Odometry with Inertial and Depth (VOID) dataset
Stars: ✭ 74 (+289.47%)
Mutual labels:  3d-reconstruction, 3d-vision
object nerf
Code for "Learning Object-Compositional Neural Radiance Field for Editable Scene Rendering", ICCV 2021
Stars: ✭ 135 (+610.53%)
Mutual labels:  3d-reconstruction, 3d-vision
dynamic plane convolutional onet
[WACV 2021] Dynamic Plane Convolutional Occupancy Networks
Stars: ✭ 25 (+31.58%)
Mutual labels:  3d-reconstruction, 3d-vision
adareg-monodispnet
Repository for Bilateral Cyclic Constraint and Adaptive Regularization for Unsupervised Monocular Depth Prediction (CVPR2019)
Stars: ✭ 22 (+15.79%)
Mutual labels:  3d-reconstruction, 3d-vision
SkeletonBridgeRecon
The code for CVPR2019 Oral paper "A Skeleton-bridged Deep Learning Approach for Generating Meshes of Complex Topologies from Single RGB Images"
Stars: ✭ 72 (+278.95%)
Mutual labels:  mesh-generation, 3d-reconstruction
NeuralRecon
Code for "NeuralRecon: Real-Time Coherent 3D Reconstruction from Monocular Video", CVPR 2021 oral
Stars: ✭ 812 (+4173.68%)
Mutual labels:  3d-reconstruction, 3d-vision
learning-topology-synthetic-data
Tensorflow implementation of Learning Topology from Synthetic Data for Unsupervised Depth Completion (RAL 2021 & ICRA 2021)
Stars: ✭ 22 (+15.79%)
Mutual labels:  3d-reconstruction, 3d-vision
Meshlab
The open source mesh processing system
Stars: ✭ 2,619 (+13684.21%)
Mutual labels:  mesh-generation, 3d-reconstruction
Point2Mesh
Meshing Point Clouds with Predicted Intrinsic-Extrinsic Ratio Guidance (ECCV2020)
Stars: ✭ 61 (+221.05%)
Mutual labels:  mesh-generation, 3d-reconstruction
DmifNet
This repository contains the source codes for the paper "DmifNet: 3D Shape Reconstruction based on Dynamic Multi–Branch Information Fusion (ICPR 2020 Oral)"
Stars: ✭ 20 (+5.26%)
Mutual labels:  3d-reconstruction
adaptive-surface-reconstruction
Adaptive Surface Reconstruction for 3D Data Processing
Stars: ✭ 39 (+105.26%)
Mutual labels:  3d-reconstruction
jigsaw-matlab
MATLAB bindings for JIGSAW: a Delaunay-based unstructured mesh generator.
Stars: ✭ 57 (+200%)
Mutual labels:  mesh-generation
naive-surface-nets
Implements a simple, readable naive surface nets algorithm
Stars: ✭ 31 (+63.16%)
Mutual labels:  mesh-generation
cv-arxiv-daily
🎓Automatically Update CV Papers Daily using Github Actions (Update Every 12th hours)
Stars: ✭ 216 (+1036.84%)
Mutual labels:  3d-reconstruction
platonicgan
Escaping Plato’s Cave: 3D Shape from Adversarial Rendering [ICCV 2019]
Stars: ✭ 40 (+110.53%)
Mutual labels:  3d-reconstruction
semantic-tsdf
Semantic-TSDF for Self-driving Static Scene Reconstruction
Stars: ✭ 14 (-26.32%)
Mutual labels:  3d-reconstruction
Triangulations
An implementation and presentation of selected mesh generation algorithms
Stars: ✭ 72 (+278.95%)
Mutual labels:  mesh-generation
MicroStructPy
Microstructure modeling, mesh generation, analysis, and visualization.
Stars: ✭ 42 (+121.05%)
Mutual labels:  mesh-generation
Spatio-Temporal-papers
This project is a collection of recent research in areas such as new infrastructure and urban computing, including white papers, academic papers, AI lab and dataset etc.
Stars: ✭ 180 (+847.37%)
Mutual labels:  graph-convolutional-networks
chainer-graph-cnn
Chainer implementation of 'Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering' (https://arxiv.org/abs/1606.09375)
Stars: ✭ 67 (+252.63%)
Mutual labels:  graph-convolutional-networks

Learning Local Neighboring Structure for Robust 3D Shape Representation

PaiNeural3DMM architecture This repository is the official implementation of my paper: "Learning Local Neighboring Structure for Robust 3D Shape Representation"

Project Abstract

Mesh is a powerful data structure for 3D shapes. Representation learning for 3D meshes is important in many computer vision and graphics applications. The recent success of convolutional neural networks (CNNs) for structured data (e.g., images) suggests the value of adapting insight from CNN for 3D shapes. However, 3D shape data are irregular since each node's neighbors are unordered. Various graph neural networks for 3D shapes have been developed with isotropic filters or predefined local coordinate systems to overcome the node inconsistency on graphs. However, isotropic filters or predefined local coordinate systems limit the representation power. In this paper, we propose a local structure-aware anisotropic convolutional operation (LSA-Conv) that learns adaptive weighting matrices for each node according to the local neighboring structure and performs shared anisotropic filters. In fact, the learnable weighting matrix is similar to the attention matrix in random synthesizer -- a new Transformer model for natural language processing (NLP). Comprehensive experiments demonstrate that our model produces significant improvement in 3D shape reconstruction compared to state-of-the-art methods.

AAAI link

Pai-Conv

Results

Repository Requirements

This code was written in Pytorch 1.4. We use tensorboardX for the visualisation of the training metrics. We recommend setting up a virtual environment using Miniconda. To install Pytorch in a conda environment, simply run

$ conda install pytorch torchvision -c pytorch

Then the rest of the requirements can be installed with

$ pip install -r requirements.txt

Mesh Decimation

For the mesh decimation code we use a function from the COMA repository (the files mesh_sampling.py and shape_data.py - previously facemesh.py - were taken from the COMA repo and adapted to our needs). In order to decimate your template mesh, you will need the MPI-Mesh package (a mesh library similar to Trimesh or Open3D).

Data Organization

The following is the organization of the dataset directories expected by the code:

  • data root_dir/
    • dataset name/ (eg DFAUST)
      • template
        • template.obj
        • downsample_method/
          • downsampling_matrices.pkl (created by the code the first time you run it)
      • preprocessed/
        • sliced
          • train.npy (number_meshes, number_vertices, 3) (no Faces because they all share topology)
          • test.npy
          • points_train/ (created by data_generation.py)
          • points_val/ (created by data_generation.py)
          • points_test/ (created by data_generation.py)
          • paths_train.npy (created by data_generation.py)
          • paths_val.npy (created by data_generation.py)
          • paths_test.npy (created by data_generation.py)

Usage

Data preprocessing

In order to use a pytorch dataloader for training and testing, we split the data into seperate files by:

$ python data_generation.py --root_dir=/path/to/data_root_dir --dataset=DFAUST --num_valid=100

Training and Testing

args['mode'] = 'train' or 'test'

python pai3DMM.py

Some important notes:

  • The code has compatibility with both mpi-mesh and trimesh packages (it can be chosen by setting the meshpackage variable pai3DMM.py).

Acknowlegements:

The structure of this codebase is borrowed from Neural3DMM.

Cite

Please consider citing our work if you find it useful:

@article{GaoAAAI21, 
title={Learning Local Neighboring Structure for Robust {3D} Shape Representation}, 
volume={35}, 
number={2}, 
journal={Proceedings of the AAAI Conference on Artificial Intelligence (AAAI)}, 
author={Gao, Zhongpai and Yan, Junchi and Zhai, Guangtao and Zhang, Juyong and Yang, Yiyan and Yang, Xiaokang}, year={2021}, 
month={May}, 
pages={1397-1405}}

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].