Code Monkey home page Code Monkey logo

objsdf's Introduction

Object-Compositional Neural Implicit Surfaces

teaser

This repository contains the official implementation of the ECCV2022 paper:
Object-Compositional Neural Implicit Surfaces.
Qianyi Wu, Xian Liu, Yuedong Chen, Kejie Li, Chuanxia Zheng, Jianfei Cai, Jianmin Zheng.
The paper introduces ObjectSDF: a volume rendering framework for object-compositional implicit neural surfaces, allowing learning high fidelity geometry of each object from a sparse set of input images and the corresponding semantic segmentation maps.

Setup

Installation Requirements

The code is compatible with Python 3.9 and Pytorch 1.10.1. In addition, the following packages are required: numpy, pyhocon, plotly, scikit-image, trimesh, imageio, opencv, torchvision.

You can create an anaconda environment called objsdf with the required dependencies by running:

conda env create -f environment.yml
conda activate objsdf

Data

We provide the installation guidance to use our code in the Toydesk dataset. First, you need to download Toydesk dataset and put it in the './data' folder. Then

cd data
bash process_toydesk.sh

We require the RGB images with the corresponding semantic segmentation map for model training. After running the above script, you will get the corresponding file for two desk scenes.

Usage

For example, if you would like to train ObjectSDF on Toydesk 2, please run:

cd ./code
python training/exp_runner.py --conf confs/toydesk2.conf --train_type objsdf

Citation

If you use this project for your research, please cite our paper.

@inproceedings{wu2022object,
  title={Object-compositional neural implicit surfaces},
  author={Wu, Qianyi and Liu, Xian and Chen, Yuedong and Li, Kejie and Zheng, Chuanxia and Cai, Jianfei and Zheng, Jianmin},
  booktitle={European Conference on Computer Vision},
  pages={197--213},
  year={2022},
  organization={Springer}
}

Related Links

If you are interested in NeRF / neural implicit representations + semantic map, we would also like to recommend you to check out our other related works:

  • Neural implicit generative model, Sem2NeRF.

  • Digital speaking portrait animation, SSPNeRF.

Acknowledgments

Our implementation was mainly inspired by VolSDF.

objsdf's People

Contributors

alvinliu0 avatar donydchen avatar qianyiwu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

objsdf's Issues

Question about center.txt

Hi, Thanks for your amazing work! I'm curious about the content in your center.txt. From your code, the content is related to scale_mat and pose_matrix. As my own understanding it can help generate the sample sphere, could you please describe it clearly? Thank you for your reply, best wishes!

The mesh evaluation

Hi Qianyi,

I didn't find the corresponding script of mesh evaluation on Toydesk dataset in your codebase, and also in the objnerf codebase. I wonder how did you get the Chamfer Distance provided in the paper?

Because in the toydesk dataset, it seems that the gt point cloud is with many outliers, I wonder if there is any other operations that need to be done in addition to aligning the output mesh and gt with center and scale.

About SDF bbox

Hi Qianyi, I wonder why you use "SDF bbox" to clamp SDFs. Could you explain this? I haven't find any description in paper.

''' Clamping the SDF with the scene bounding sphere, so that all rays are eventually occluded '''

Providing the chechpoints.

Thanks for the outstanding work!
I found that the training time is very long, It needs 120 hours for 10000 epochs training on 2080ti.
Can you provide the checkpoints, It would help me a lot.

My best wish.

Toydesk

Hi Qianyi,

The link of Toydesk is out of date. May I have new sharing link?
image

About Scannet datasets

Hi, thank you for sharing your wonderful work.
I've noticed that you've finished your test on ScanNet dataset, could you provide that data, code, and checkpoints?

How to get bbox.json in ObjectNeRF?

Hi,
我想请教一下如何生成ObjectNeRF场景编辑时,所需的bbox.json文件,或者能解释一下bbox.json里面各个数值的含义吗?
下面是bbox.json的内容
"labels": [ { "id": "1", "data": { "position": [ 2.2837844942793737, 0.6488003671313685, 6.001685665511459 ], "rotation": [ 1.8946632971215467, -0.1095624676165341, 0.553559251247026 ], "quaternion": [ 0.771054293372373, -0.2522670140662573, 0.11654286129474664, 0.5729348931312866 ], "scale": [ 3.9938567122761546, 1.853964693824193, 1.8692240780858735 ] } },

About Nerf++ processing

Hi~
Congrats on your excellent job! I wanna ask whether you have added some procesing on nerf++. In your code, I saw the word, inverse_sphere_bg. But i didn't find the related network for background.

Could u release this part of job?
Thanks!

About prepocess on ScanNet dataset

Hi!
Congratulations on your wonderful work!
I meet some problem with the experiment on scannet dataset. I see the code needs "label_mapping_instance.txt", and I get it from "scenexxxx_00.aggregation.json" as "0, 1, 2, .....,9 ", but there are still errors when running code, as "nll_loss_forward_reduce_cuda_kernel_2d: block: [0,0,0], thread: [28,0,0] Assertion t >= 0 && t < n_classes failed."
It seems that the semantic (ground truth) has something wrong.
I wonder what is wrong with it.
Thank you in advance!

Training cost, Eval file and Quality of mesh

Hi Qian Wu,

Thank you for your help in dataset and Sorry for that I still have problems in evaluation process.

  • I have trained a model with toydesk2, it takes 15 hours in training process (2000 epoch with 3080Ti), and I wonder how long it takes you to train the model for toydesk?
  • I find the ply files in the exp folder (default output folder), but their quality is not that good. I want to know how I can obtain the mesh on the quality that you displayed. Following is the color mesh I generate based on a training output in final epoch.
    image
  • when I execute the eval file, I find there are many attributions that the ToydeskDataset don't have such as get_scale_mat() function and scan_id. Moreover, I wonder what scan_id means? I defined it as -1, and it doesn't report any error but give me a 'killed' print.

Thank you for your taking time to going through my questions and wait for your reply.
Best Regards

Question about the semantic field

Hi Qianyi,

Thanks for your wonderful work.

I have some questions about the semantic field s in your paper. Why should the partial derivative ∂s/∂d meet the desired requirement (smooth inside but a rapid change at the boundary) rather than the function s? Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.