Giter Site home page Giter Site logo

pivotmesh's Introduction

PivotMesh: Generic 3D Mesh Generation via Pivot Vertices Guidance

Preparation

Install the packages in requirements.txt. The code is tested under CUDA version 12.1.

conda create -n pivotmesh python=3.9
conda activate pivotmesh
pip install -r requirements.txt

Training

# train AE
accelerate launch --mixed_precision=fp16 train_AE.py 

# train PivotMesh
accelerate launch --mixed_precision=fp16 train_pivotmesh.py

Inference

python pivot_infer.py \
    --model_path checkpoints/PivotMesh-objaversexl/mesh-transformer.ckpt.ft.50.pt \
    --AE_path checkpoints/AE-objaversexl/mesh-autoencoder.ckpt.72.pt \
    --output_path output/PivotMesh \
    --dataset_name objaverse \
    --batch_size 16 \
    --sample_num 1 \
    --temperature 0.5 \
    --pivot_rate 0.1 \
    --condition no   # 'no' for unconditional, 'pivot' for conditional 

Evaluation

# evaluate the performance on PivotMesh
python evaluate.py

Acknowledgement

Citation

@misc{weng2024pivotmesh,
    title={PivotMesh: Generic 3D Mesh Generation via Pivot Vertices Guidance}, 
    author={Haohan Weng and Yikai Wang and Tong Zhang and C. L. Philip Chen and Jun Zhu},
    year={2024},
    eprint={2405.16890},
    archivePrefix={arXiv},
    primaryClass={cs.CV}
}

pivotmesh's People

Contributors

whaohan avatar

Stargazers

Jian Liu avatar  avatar Minseong Kim avatar Yuxuan Wang avatar  avatar xuheny avatar Qi Sun 孙启 avatar Stefan Lionar avatar wuzhi avatar Jie Wang avatar Daoyi Gao avatar Hyojun Go avatar Ryan Huang avatar Mingtao Fu avatar Benjamin Noah Beal avatar Zibo avatar ShuaibZyx avatar Adeer Khan avatar Yuqing Zhang avatar  avatar Ruowen Zhao avatar Kailu Wu avatar Jiabao Lei avatar  avatar David avatar  avatar Jonathan Clark avatar Jie Yang avatar Wang Shuheng avatar WuKe avatar pkl avatar  avatar Shareef Ifthekhar avatar Lu Ming avatar Zhiqi Li avatar Jionghao Wang avatar lan avatar Jiale Xu avatar Zhengyi Wang avatar WZY99 avatar Dongyu Yan avatar Zilong Chen avatar Yikai Wang avatar Tong Wu avatar Zhaiyu Chen avatar Snow avatar David Marx avatar Zhuoyang Pan avatar kiui avatar Tianle Cai avatar Hongcheng Guo avatar  avatar  avatar

Watchers

Snow avatar  avatar Stefan Lionar avatar Keep Growing And Moving Forward avatar  avatar ShuaibZyx avatar

Forkers

shuaibzyx

pivotmesh's Issues

RuntimeError: Error(s) in loading state_dict for MeshAutoencoder

Thank you for the great work. Could you please check the following error that occurred while loading the pre-trained weights?

    autoencoder = MeshAutoencoder.init_and_load(args.AE_path)
  File "/root/anaconda3/envs/pivotmesh/lib/python3.9/site-packages/pytorch_custom_utils/save_load.py", line 75, in _init_and_load_from
    _load(model, path, strict = strict)
  File "/root/anaconda3/envs/pivotmesh/lib/python3.9/site-packages/pytorch_custom_utils/save_load.py", line 58, in _load
    self.load_state_dict(pkg['model'], strict = strict)
  File "/root/anaconda3/envs/pivotmesh/lib/python3.9/site-packages/torch/nn/modules/module.py", line 2189, in load_state_dict
    raise RuntimeError('Error(s) in loading state_dict for {}:\n\t{}'.format(
RuntimeError: Error(s) in loading state_dict for MeshAutoencoder:
	Unexpected key(s) in state_dict: "encoder.layers.0.0.0.bias", "encoder.layers.1.0.0.bias", "encoder.layers.2.0.0.bias", "encoder.layers.3.0.0.bias", "encoder.layers.4.0.0.bias", "encoder.layers.5.0.0.bias", "encoder.layers.6.0.0.bias", "encoder.layers.7.0.0.bias", "encoder.layers.8.0.0.bias", "encoder.layers.9.0.0.bias", "encoder.layers.10.0.0.bias", "encoder.layers.11.0.0.bias", "encoder.layers.12.0.0.bias", "encoder.layers.13.0.0.bias", "encoder.layers.14.0.0.bias", "encoder.layers.15.0.0.bias", "encoder.layers.16.0.0.bias", "encoder.layers.17.0.0.bias", "encoder.layers.18.0.0.bias", "encoder.layers.19.0.0.bias", "encoder.layers.20.0.0.bias", "encoder.layers.21.0.0.bias", "encoder.layers.22.0.0.bias", "encoder.layers.23.0.0.bias", "encoder.final_norm.bias", "decoder_coarse.layers.0.0.0.bias", "decoder_coarse.layers.1.0.0.bias", "decoder_coarse.layers.2.0.0.bias", "decoder_coarse.layers.3.0.0.bias", "decoder_coarse.layers.4.0.0.bias", "decoder_coarse.layers.5.0.0.bias", "decoder_coarse.layers.6.0.0.bias", "decoder_coarse.layers.7.0.0.bias", "decoder_coarse.layers.8.0.0.bias", "decoder_coarse.layers.9.0.0.bias", "decoder_coarse.layers.10.0.0.bias", "decoder_coarse.layers.11.0.0.bias", "decoder_coarse.final_norm.bias", "decoder_fine.layers.0.0.0.bias", "decoder_fine.layers.1.0.0.bias", "decoder_fine.layers.2.0.0.bias", "decoder_fine.layers.3.0.0.bias", "decoder_fine.layers.4.0.0.bias", "decoder_fine.layers.5.0.0.bias", "decoder_fine.layers.6.0.0.bias", "decoder_fine.layers.7.0.0.bias", "decoder_fine.layers.8.0.0.bias", "decoder_fine.layers.9.0.0.bias", "decoder_fine.layers.10.0.0.bias", "decoder_fine.layers.11.0.0.bias", "decoder_fine.final_norm.bias".

Preparation of Training Data and Missing File Issue

Thank you for sharing the code; it has been very inspiring!

Could you please advise on how I should prepare the training data? Is there a corresponding script for this purpose?

FileNotFoundError: [Errno 2] No such file or directory: './data/objaverse-lp-500/train-500'

Generate imcomplete meshes

Hi, I'm using the released weight provided in the repository for inferencing new laptop meshes, but it generated with incomplete meshed.
2ee43c3978ea8e719ffcf1d71f72457
The above image is a screenshot taken under blender, and the middle one is the ground truth I founded at https://sketchfab.com/3d-models/gaming-laptop-computer-391952ba56ee4a4f8effdaf78afc67cb. This mesh should be included by Objaverse-XL, so I'm using the inference command provide in the repository directly.

I am not sure why I got those poor results, any suggestions on that?

Thanks for your help in advance.

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.