Code for "OctField: Hierarchical Implicit Functions for 3D Modeling (NeurIPS 2021)"

Overview

OctField(Jittor): Hierarchical Implicit Functions for 3D Modeling

Introduction

This repository is code release for OctField: Hierarchical Implicit Functions for 3D Modeling (arXiv pdf here).

OctField utilizes an octree structure to achieve a hierarchical implicit representation, where part geometry enclosed by an octant is reperesented by a local implicit function. In this repository, we provide OctField model implementation (with Jittor) as well as data preparation, training and testing scripts on ShapeNet.

Installation

The code is tested with Ubuntu 18.04, Python 3.7, Jittor 1.3.1.22, CUDA 10.1 and cuDNN v7.5.

Install the following Python dependencies (with pip install): h5py trimesh scipy scikit-learn scikit-image pybind11 tensorboardX

For the jittor installation, please refer to this link.

Data preprocessing

1. Compile imp_sampling according to the steps in the imp_sampling/ReadMe.txt and copy the .so file into preproces/
2. Using normal_tool.py, sample_tool.py, and voxelize_tool.py to compute the voxels and sampled points.
3. Using pkg_part.py to get the input .h5 file

Training

Run train.sh to train the model.

Testing

Run eval_recon.py to achieve the reconstruction result.

Citation

If you find our work useful in your research, please consider citing:

@inproceedings{tang2021octfield,
    author = {Jia-Heng Tang and Weikai Chen and Jie Yang and Bo Wang and Songrun Liu and Bo Yang and Lin Gao},
    title = {OctField: Hierarchical Implicit Functions for 3D Modeling},
    booktitle = {The Thirty-Fifth Annual Conference on Neural Information Processing Systems (NeurIPS)},
    year = {2021}
}
Comments
  • bug

    bug

    pkg_part.py里生成.h5文件代码中又有点问题,这里的data_path是存放什么数据的 image 这里的npz文件是之前的哪一步生成的,之前的sample_tool生成的npz文件键值对应不上 image

    Originally posted by @zouwenqin in https://github.com/IGLICT/OctField/issues/5#issuecomment-1004479083

    opened by zouwenqin 2
  • Did you do a fair comparison with other methods in Table 2?

    Did you do a fair comparison with other methods in Table 2?

    The OccNet and ConvOccNet are all trained on 13 categories of ShapeNet. According to your code, your network is trained on each category separately. For the results of ConvOccNet as shown in Table 2, why are the Chamfer Distances of ConvONet even worse than the results trained on 13 categories as reported in the paper of ConvOccNet? And ConvOccNet is trained using sparse and noisy point clouds (3000 points) as input. However, your network is trained with clean point clouds as shown in Figure 4-(a). How can you do the comparison like this? Is it a fair comparison?

    opened by abc-def-g 1
  • Target file not found after compilation

    Target file not found after compilation

    Hi, Thank you for releasing the code! :) I'm trying to run the code and I've successfully compiled imp_sampling. However, I cannot find the file "generateSamplesWind" after compilation and I cannot find any code related to generateSamplesWind in imp_sampling/build/Makefile. https://github.com/IGLICT/OctField/blob/e776b3bc8a0abcf5c8d875cb679647fcaef33c36/imp_sampling/ReadMe.txt#L6 Would you please check this part? Another question is: may I transform the .sdf file to a mesh directly? Would you please release the code if you have it? Thank you!

    opened by xmeng525 1
  • Code of model missing

    Code of model missing

    Hi, authors, thanks for your great work. I found that the implementation of models.RecursiveEncoder is missing. It looks like the models.py file is missing.

    opened by walsvid 1
  • [requests] Do you have an implement of IMNet using jittor?

    [requests] Do you have an implement of IMNet using jittor?

    opened by Bailey-24 0
  • CUDA issues

    CUDA issues

    Thank you for your work and for open-sourcing the code! I am trying to run your pipeline, but I am running into a couple of issues. I have followed the instructions from the repo to set up the code as well as the jittor instructions to enable CUDA support.

    First, it seems like train_part.py isn't using CUDA, and it's running very slowly on my machine (1% in ~8 hours). If I add jt.flags.use_cuda = 1 I get the follwoing error:

    python3.7: symbol lookup error: /home/ubuntu/.cache/jittor/jt1.3.4/g++7.5.0/py3.7.13/Linux-5.4.0-10xfe/IntelRCoreTMi9x9f/default/cu11.2.152_sm_86/jit/cudnn_conv3d_Tx_bool__Ty_float32__Tw_float32__JIT_1__JIT_cuda_1__index_t_int32__hash_b2c2838050d33db1_op.so: undefined symbol: _ZN6jittor11getDataTypeIbEE15cudnnDataType_tv
    

    On the other hand, I can run python3.7 -m jittor.test.test_cudnn_op and python3.7 -m jittor.test.test_resnet without any errors.

    Any ideas? Thanks for the help!

    opened by RaresAmbrus 0
  • Metrics

    Metrics

    Hi, Thanks for your great work. I want to know how you compute metrics in the Shape Reconstruction experiment? Spercifically, to compute CD or EMD, how many points do you sample from reconstructed and gt mesh? Do you use L1 or L2 distance? "CD = one_direction + another_direction" or "CD = 0.5 * (one_direction + another_direction)"?

    opened by random649 0
Owner
Intelligent Graphics Laboratory, Institute of Computing Technology
null
Inference code for "StylePeople: A Generative Model of Fullbody Human Avatars" paper. This code is for the part of the paper describing video-based avatars.

NeuralTextures This is repository with inference code for paper "StylePeople: A Generative Model of Fullbody Human Avatars" (CVPR21). This code is for

Visual Understanding Lab @ Samsung AI Center Moscow 18 Oct 6, 2022
A code generator from ONNX to PyTorch code

onnx-pytorch Generating pytorch code from ONNX. Currently support onnx==1.9.0 and torch==1.8.1. Installation From PyPI pip install onnx-pytorch From

Wenhao Hu 94 Jan 6, 2023
This is the code for our KILT leaderboard submission to the T-REx and zsRE tasks. It includes code for training a DPR model then continuing training with RAG.

KGI (Knowledge Graph Induction) for slot filling This is the code for our KILT leaderboard submission to the T-REx and zsRE tasks. It includes code fo

International Business Machines 72 Jan 6, 2023
Convert Python 3 code to CUDA code.

Py2CUDA Convert python code to CUDA. Usage To convert a python file say named py_file.py to CUDA, run python generate_cuda.py --file py_file.py --arch

Yuval Rosen 3 Jul 14, 2021
Empirical Study of Transformers for Source Code & A Simple Approach for Handling Out-of-Vocabulary Identifiers in Deep Learning for Source Code

Transformers for variable misuse, function naming and code completion tasks The official PyTorch implementation of: Empirical Study of Transformers fo

Bayesian Methods Research Group 56 Nov 15, 2022
Reference implementation of code generation projects from Facebook AI Research. General toolkit to apply machine learning to code, from dataset creation to model training and evaluation. Comes with pretrained models.

This repository is a toolkit to do machine learning for programming languages. It implements tokenization, dataset preprocessing, model training and m

Facebook Research 408 Jan 1, 2023
Code for the prototype tool in our paper "CoProtector: Protect Open-Source Code against Unauthorized Training Usage with Data Poisoning".

CoProtector Code for the prototype tool in our paper "CoProtector: Protect Open-Source Code against Unauthorized Training Usage with Data Poisoning".

Zhensu Sun 1 Oct 26, 2021
Low-code/No-code approach for deep learning inference on devices

EzEdgeAI A concept project that uses a low-code/no-code approach to implement deep learning inference on devices. It provides a componentized framewor

On-Device AI Co., Ltd. 7 Apr 5, 2022
Code for all the Advent of Code'21 challenges mostly written in python

Advent of Code 21 Code for all the Advent of Code'21 challenges mostly written in python. They are not necessarily the best or fastest solutions but j

null 4 May 26, 2022
Code to use Augmented Shapiro Wilks Stopping, as well as code for the paper "Statistically Signifigant Stopping of Neural Network Training"

This codebase is being actively maintained, please create and issue if you have issues using it Basics All data files are included under losses and ea

J K Terry 32 Nov 9, 2021
Opinionated code formatter, just like Python's black code formatter but for Beancount

beancount-black Opinionated code formatter, just like Python's black code formatter but for Beancount Try it out online here Features MIT licensed - b

Launch Platform 16 Oct 11, 2022
a delightful machine learning tool that allows you to train, test and use models without writing code

igel A delightful machine learning tool that allows you to train/fit, test and use models without writing code Note I'm also working on a GUI desktop

Nidhal Baccouri 3k Jan 5, 2023
Pytorch Lightning code guideline for conferences

Deep learning project seed Use this seed to start new deep learning / ML projects. Built in setup.py Built in requirements Examples with MNIST Badges

Pytorch Lightning 1k Jan 2, 2023
Automatically Build Multiple ML Models with a Single Line of Code. Created by Ram Seshadri. Collaborators Welcome. Permission Granted upon Request.

Auto-ViML Automatically Build Variant Interpretable ML models fast! Auto_ViML is pronounced "auto vimal" (autovimal logo created by Sanket Ghanmare) N

AutoViz and Auto_ViML 397 Dec 30, 2022
Code samples for my book "Neural Networks and Deep Learning"

Code samples for "Neural Networks and Deep Learning" This repository contains code samples for my book on "Neural Networks and Deep Learning". The cod

Michael Nielsen 13.9k Dec 26, 2022
Code for: https://berkeleyautomation.github.io/bags/

DeformableRavens Code for the paper Learning to Rearrange Deformable Cables, Fabrics, and Bags with Goal-Conditioned Transporter Networks. Here is the

Daniel Seita 121 Dec 30, 2022
Code for our method RePRI for Few-Shot Segmentation. Paper at http://arxiv.org/abs/2012.06166

Region Proportion Regularized Inference (RePRI) for Few-Shot Segmentation In this repo, we provide the code for our paper : "Few-Shot Segmentation Wit

Malik Boudiaf 138 Dec 12, 2022
Applications using the GTN library and code to reproduce experiments in "Differentiable Weighted Finite-State Transducers"

gtn_applications An applications library using GTN. Current examples include: Offline handwriting recognition Automatic speech recognition Installing

Facebook Research 68 Dec 29, 2022
Code for "Contextual Non-Local Alignment over Full-Scale Representation for Text-Based Person Search"

Contextual Non-Local Alignment over Full-Scale Representation for Text-Based Person Search This is an implementation for our paper Contextual Non-Loca

Tencent YouTu Research 50 Dec 3, 2022