Giter Site home page Giter Site logo

deep_cage's Introduction

Neural Cages for Detail-Preserving 3D Deformations

[project page][pdf][supplemental]

Installation

git clone --recursive https://github.com/yifita/deep_cage.git
# install dependency
cd pytorch_points
conda env create --name pytorch-all --file environment.yml
python setup.py develop
# install pymesh2
# if this step fails, try to install pymesh from source as instructed here
# https://pymesh.readthedocs.io/en/latest/installation.html
# make sure that the cmake 3.15+ is used
pip install pymesh/pymesh2-0.2.1-cp37-cp37m-linux_x86_64.whl
# install other dependecies
pip install -r requirements.txt

Trained model

Download trained models from https://igl.ethz.ch/projects/neural-cage/trained_models.zip.

Unzip under trained_models. You should get several subfolders under trained_models, e.g. trained_models/chair_ablation_full etc.

Optional

install Thea https://github.com/sidch/Thea to batch render outputs

Demo

  • download shapenet data
wget https://igl.ethz.ch/projects/neural-cage/processed_shapenetseg.zip
  • deform source shape to target shape

❗ To test your with your own chair models, please make sure that your data is axis-aligned in the same way as our provided examples.

# results will be saved in trained_models/chair_ablation_full/test
python cage_deformer_3d.py --dataset SHAPENET --full_net --bottleneck_size 256 --n_fold 2 --ckpt trained_models/chair_ablation_full/net_final.pth --target_model data/shapenet_target/**/*.obj  --source_model data/elaborated_chairs/throne_no_base.obj data/elaborated_chairs/Chaise_longue_noir_House_Doctor.ply --subdir fancy_chairs --phase test --is_poly

Example: input - target - output chair-example

  • deformation transfer
# download surreal data from 3DCoded
cd data && mkdir Surreal && cd Surreal
wget https://raw.githubusercontent.com/ThibaultGROUEIX/3D-CODED/master/data/download_dataset.sh
chmod a+'x' download_dataset.sh
./download_dataset.sh

# baseline deform the original training source
python deformer_3d.py --dataset SURREAL --nepochs 2 --data_dir data/Surreal --batch_size 1 --num_point 6890 --bottleneck_size 1024 --template data/cage_tpose.ply --source_model data/surreal_template_tpose.ply  --ckpt trained_models/tpose_atlas_b1024/net_final.pth --phase test

# deformation transfer to a skeleton
python optimize_cage.py --dataset SURREAL --nepochs 3000 --data_dir data/Surreal --num_point 6890 --bottleneck_size 1024 --clap_weight 0.05 --template data/cage_tpose.ply --model data/fancy_humanoid/Skeleton/skeleton_tpose.obj --subdir skeleton --source_model data/surreal_template_tpose.ply --ckpt trained_model/tpose_atlas_b1024/net_final.pth --lr 0.005 --is_poly

# deformation transfer to a robot (with another model, which is trained using resting pose instead of the tpose)
python optimize_cage.py --ckpt trained_models/rpose_mlp/net_final.pth --nepochs 8000 --mlp --num_point 6890 --phase test --dataset SURREAL --data_dir data/Surreal --model data/fancy_humanoid/robot.obj --subdir robot --source_model data/surreal_template.ply --clap_weight 0.1 --lr 0.0005 --template data/surreal_template_v77.ply

Training

ShapeNet deformations

A binary file storing preprocessed training data is provided data/train_Chair_-1_2500.pkl. This consists of the chair models from the PartSegv0 subset of ShapeNetCore.v1 dataset. The following command is what we ran to create our results in the paper.

python cage_deformer.py --data_cat Chair --dataset SHAPENET --data_dir {ROOT_POINT_DIR} \
  --batch_size 8 --nepochs 12 --num_point 1024 --bottleneck_size 256 --n_fold 2 --loss CD \
  --name shapenet_chairs --mvc_weight 0.1 --sym_weight 0.5 --p2f_weight 0.1 --snormal_weight 0.1 --full_net

Data generation

You can also create your own data from shapenet.

  1. Download data from ShapeNet.org. Make sure that a synsetoffset2category.txt file is located in the root directory. If it doesn't, you can copy data/processed_shapenetseg/synsetoffset2category.txt to the root directory.
  2. Sample points from ShapeNet using the scripts/resample_shapenet.py
python resample_shapenet.py {INPUT_DIR} {OUTPUT_DIR}
# example
python resample_shapenet.py /home/mnt/points/data/ShapeNet/ShapeNetCore.v2/04530566 /home/mnt/points/data/ShapeNet/ShapeNetCore.v2.5000p/

Alternatively, you can use the presampled point data provided by Thibault (https://github.com/ThibaultGROUEIX/AtlasNet/blob/master/dataset/download_shapenet_pointclouds.sh).

Humanoid deformations

surreal_deform_test Train a deformation only model with a fixed source shape and cage. The comman below will use the rest pose source shape and the a handcreated source cage One can also use --template data/surreal_template_v77.ply, which is a cage created by edge collapsing.

python deformer_3d.py --dataset SURREAL --nepochs 3 --data_dir data/Surreal --batch_size 4 --warmup_epoch 0.5 \
--num_point 2048 --bottleneck_size 512 --template data/cage_rpose.obj --source_model data/surreal_template.ply \
--mvc_weight 1.0 --loss MSE --mlp --name surreal_rpose

For deformation transfer, we use Thea to mark correspondences. An example of the landmarks is shown below. This creates a landmark file such as data/surreal_template.picked, which will be used by optimize_cage.py to adapt the source cage to a novel target shape. deformation_transfer_corres

cite

@inproceedings{Yifan:NeuralCage:2020,
  author={Wang Yifan and Noam Aigerman and Vladimir G. Kim and Siddhartha Chaudhuri and Olga Sorkine-Hornung},
  title={Neural Cages for Detail-Preserving 3D Deformations},
  booktitle = {CVPR},
  year = {2020},
}

deep_cage's People

Contributors

yifita 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

deep_cage's Issues

Which version of pytorch

Hi, thanks for sharing the code. What's the version of Pytorch you are using? There is no PyTorch in environment.yml or requirements.txt.

setup.py problem

Hi, thanks for sharing the code. When I run setup.py I met some errors,can you help me ?

pytorch_points/_ext/torch_batch_svd.cpp:65:63: error: ‘cusolverDnDestroyGesvdjInfo’ was not declared in this scope
auto params = unique_allocate(cusolverDnCreateGesvdjInfo, cusolverDnDestroyGesvdjInfo);
^
pytorch_points/_ext/torch_batch_svd.cpp:66:66: error: ‘cusolverDnXgesvdjSetTolerance’ was not declared in this scope
auto status = cusolverDnXgesvdjSetTolerance(params.get(), tol);
^
pytorch_points/_ext/torch_batch_svd.cpp:68:68: error: ‘cusolverDnXgesvdjSetMaxSweeps’ was not declared in this scope
status = cusolverDnXgesvdjSetMaxSweeps(params.get(), max_sweeps);
^
pytorch_points/_ext/torch_batch_svd.cpp:70:63: error: ‘cusolverDnXgesvdjSetSortEig’ was not declared in this scope
status = cusolverDnXgesvdjSetSortEig(params.get(), is_sort);

error about shuffled_train_file_list.json

Hi, thanks for your code, and i want to ask what I should use to replace the {ROOT_POINT_DIR} in the training command. When I use 'data/processed_shapenetseg', it have errors:FileNotFoundError: [Errno 2] No such file or directory: 'data/processed_shapenetseg/train_test_split/shuffled_train_file_list.json'
And where is the train_test_split/shuffled_train_file_list.json?
Thank you very much!

missing faiss and libboost

I believe these libraries are not automatically included in the setup.

For libboost, I can specifically install with conda and address the issue.

For faiss, I tried pip install faiss but got the error:

AttributeError: module 'faiss' has no attribute 'StandardGpuResources'.

multifold gen

Hi,

Thanks for the great work! I was wondering the meaning of "MultiFoldPointGen", since you only use the last fold. Could you please explain that?

Thanks,

pytorch version

I followed the instructions for installation.

It seems that environment.yml does not automatically help me install pytorch -- so after I activate the pytorch-all environment, I install manually with pip install pytorch (which is 1.4).

Then I got this error "pytorch_points/_ext/torch_batch_svd.cpp:18:75: error: ‘THCState_getCurrentBlasHandle’ was not declared in this scope".

I believe this could be caused by wrong version of pytorch. Any suggestions for solving this issue?

Thanks.

Why use weights = weights.detach() on line 137 of the file common.py?

Hi, thanks for your excellent results on this paper and the published code. I try to do some experiment with your code. I successfully train the network, but I have a little doubt.

On line 137 of the file common.py , you used: weights = weights.detach().
And in file losses.py, you used: *self.loss["WREG"]+=self.mvc_reg_loss(all_outputs["weight"])self.opt.mvc_weight
While all_outputs[“weight”].requires_grad == False here, I am confused about whether loss WREG affects the final result.
From my experiment , I find that no matter how big the value of mvc_weight is, the result has not changed. 

Looking forward to your reply, thank you.

Compiling error

when i run "python setup.py develop", got following errors
I replace "THCState_getCudaHostAllocator" with "at::cuda::getCurrentCUDAStream", still not work


/data2/wanglei/3D_mesh/deep_cage/pytorch_points/pytorch_points/_ext/sampling.cpp:28:63: error: invalid conversion from ‘THCState*’ to ‘c10::DeviceIndex {aka short int}’ [-fpermissive]
cudaStream_t stream = at::cuda::getCurrentCUDAStream(state);
^
In file included from /home/wanglei/anaconda3/envs/pytorch-all/lib/python3.7/site-packages/torch/include/ATen/cuda/CUDAContext.h:11:0,
from /data2/wanglei/3D_mesh/deep_cage/pytorch_points/pytorch_points/_ext/utils.h:2,
from /data2/wanglei/3D_mesh/deep_cage/pytorch_points/pytorch_points/_ext/sampling.cpp:1:
/home/wanglei/anaconda3/envs/pytorch-all/lib/python3.7/site-packages/torch/include/c10/cuda/CUDAStream.h:202:23: note: initializing argument 1 of ‘c10::cuda::CUDAStream c10::cuda::getCurrentCUDAStream(c10::DeviceIndex)’
CAFFE2_API CUDAStream getCurrentCUDAStream(DeviceIndex device_index = -1);
^~~~~~~~~~~~~~~~~~~~
/data2/wanglei/3D_mesh/deep_cage/pytorch_points/pytorch_points/_ext/sampling.cpp: In function ‘int gather_points_grad_wrapper_fast(int, int, int, int, at::Tensor&, at::Tensor&, at::Tensor&)’:
/data2/wanglei/3D_mesh/deep_cage/pytorch_points/pytorch_points/_ext/sampling.cpp:41:63: error: invalid conversion from ‘THCState*’ to ‘c10::DeviceIndex {aka short int}’ [-fpermissive]
cudaStream_t stream = at::cuda::getCurrentCUDAStream(state);

/data2/wanglei/3D_mesh/deep_cage/pytorch_points/pytorch_points/_ext/sampling.cpp: In function ‘void three_nn_wrapper_fast(int, int, int, at::Tensor, at::Tensor, at::Tensor, at::Tensor)’:
/data2/wanglei/3D_mesh/deep_cage/pytorch_points/pytorch_points/_ext/sampling.cpp:196:59: error: cannot convert ‘c10::Allocator*’ to ‘cudaStream_t {aka CUstream_st*}’ in initialization
cudaStream_t stream = THCState_getCudaHostAllocator(state);
^
/data2/wanglei/3D_mesh/deep_cage/pytorch_points/pytorch_points/_ext/sampling.cpp: In function ‘void three_interpolate_wrapper_fast(int, int, int, int, at::Tensor, at::Tensor, at::Tensor, at::Tensor)’:
/data2/wanglei/3D_mesh/deep_cage/pytorch_points/pytorch_points/_ext/sampling.cpp:212:59: error: cannot convert ‘c10::Allocator*’ to ‘cudaStream_t {aka CUstream_st*}’ in initialization
cudaStream_t stream = THCState_getCudaHostAllocator(state);
^
/data2/wanglei/3D_mesh/deep_cage/pytorch_points/pytorch_points/_ext/sampling.cpp: In function ‘void three_interpolate_grad_wrapper_fast(int, int, int, int, at::Tensor, at::Tensor, at::Tensor, at::Tensor)’:
/data2/wanglei/3D_mesh/deep_cage/pytorch_points/pytorch_points/_ext/sampling.cpp:227:59: error: cannot convert ‘c10::Allocator*’ to ‘cudaStream_t {aka CUstream_st*}’ in initialization
cudaStream_t stream = THCState_getCudaHostAllocator(state);

I am not sure how to compile objects for extension.
looking forward to your reply, thanks!!!

Training setting

Hi, thank you for making the code public. It seems that you provided the training code but didn't provide the default training options.

For example, in the paper, there are losses like symmetry loss but the default weight for the loss in option.py is 0.

Could you please the default arguments you used for training?

Training settings about SURREAL

Now I get the training data of 3D-coded, and make a training experiment with 1000 data. But I got a bad result. Could you tell me how to set the parameters related to SURREAL?

In the process of training, I also found that in dataset.py, the values of source_normals and target_normals were set to none, which led to the two lines of code could not run.

data["source_normals"] = torch.cat([_source_normals, _target_normals, _source_normals], dim=0).contiguous()
data["target_normals"] = torch.cat([_target_normals, _source_normals, _source_normals], dim=0).contiguous()

I think if the value passed in is none, then these two lines of code will not work, so I annotated them. What negative impact will this have on the training process?

Looking forward to your help, thx!

Problem with pymesh

It seems that the released pymesh is depending on some specific compiler with glibc 2.27. It does not work on my machine.

ImportError: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.27' not found

Does it work if I directly pip install pymesh instead of using the given one?

ShapeNetV2 bug in generating splits?

Hi there,
Thanks for your interesting work and sharing your code.

I ran into a small issue into train/test split generation in ShapeNetV2. You might want to be aware, in case you're reusing the code in the future

When a shuffled train-test split for a shape category does not exist, the code seems to iterate over all categories listed in synsetoffset2category.txt(they get loaded into self.numbercat2namecat). It then creates a train/test split out of a concatenation of all these categories.

for k in self.numbercat2namecat:

I suspect the intended behaviour was to create a train/test split for only a single category for each non-existing split-file? (As the filename contains the id of the category it's supposed to contain the split for).

libtorch_cpu.so

Dear yifita,
when I run the cage_deformer_3d.py, the following Error arises.

from .._ext import sampling, linalg

ImportError: libtorch_cpu.so: cannot open shared object file: No such file or directory

I searched for solutions and found that pytorch1.4.0 has no libtorch_cpu.so or libtorch_cuda.so, and it only has libtorch.so.
While this code only works with pytorch1.4.0, I don't know how to solve this problem.
I appreciate your help, thanks a lot!

============================================================================
(pytorch-all2) wanglei@hmc46:/data2/wanglei/CG/deep_cage$ python cage_deformer_3d.py --dataset SHAPENET --full_net --bottleneck_size 256 --n_fold 2 --ckpt trained_models/chair_ablation_full/net_final.pth --target_model data/shapenet_target/**/*.obj --source_model data/elaborated_chairs/throne_no_base.obj data/elaborated_chairs/Chaise_longue_noir_House_Doctor.ply --subdir fancy_chairs --phase test --is_poly
Traceback (most recent call last):
File "cage_deformer_3d.py", line 14, in
from pytorch_points.network.geo_operations import mean_value_coordinates_3D, edge_vertex_indices
File "/data2/wanglei/CG/deep_cage/pytorch_points/pytorch_points/network/geo_operations.py", line 4, in
from .operations import batch_svd, normalize, dot_product, scatter_add, faiss_knn, cross_product_2D, group_knn, gather_points
File "/data2/wanglei/CG/deep_cage/pytorch_points/pytorch_points/network/operations.py", line 11, in
from .._ext import sampling, linalg
ImportError: libtorch_cpu.so: cannot open shared object file: No such file or directory

undefined symbol: state

Hello,first thanks for your codes,and when I run the test code I get an error like this.I don't know where is wrong
deep_cage$ python cage_deformer_3d.py --dataset SHAPENET --full_net --bottleneck_size 256 --n_fold 2 --ckpt trained_models/chair_ablation_full/net_final.pth --target_model data/shapenet_target/**/*.obj --source_model data/elaborated_chairs/throne_no_base.obj data/elaborated_chairs/Chaise_longue_noir_House_Doctor.ply --subdir fancy_chairs --phase test --is_poly
Traceback (most recent call last):
File "cage_deformer_3d.py", line 14, in
from pytorch_points.network.geo_operations import mean_value_coordinates_3D, edge_vertex_indices
File "/home/djq19/deep_cage/pytorch_points/pytorch_points/network/geo_operations.py", line 2, in
from .._ext import sampling
ImportError: /home/djq19/deep_cage/pytorch_points/pytorch_points/_ext/sampling.cpython-37m-x86_64-linux-gnu.so: undefined symbol: state

Error when run python setup.py develop

When I run 'python setup.py develop', I got this error:
g++ -pthread -shared -B /home/yxr/anaconda2/envs/pytorch-all/compiler_compat -L/home/yxr/anaconda2/envs/pytorch-all/lib -Wl,-rpath=/home/yxr/anaconda2/envs/pytorch-all/lib -Wl,--no-as-needed -Wl,--sysroot=/ /home/yxr/Documents/deep_cage/pytorch_points/build/temp.linux-x86_64-3.7/pytorch_points/_ext/sampling.o /home/yxr/Documents/deep_cage/pytorch_points/build/temp.linux-x86_64-3.7/pytorch_points/_ext/sampling_cuda.o /home/yxr/Documents/deep_cage/pytorch_points/build/temp.linux-x86_64-3.7/pytorch_points/_ext/interpolate_gpu.o -L/home/yxr/anaconda2/envs/pytorch-all/lib/python3.7/site-packages/torch/lib -L/usr/local/cuda/lib64 -lc10 -ltorch -ltorch_cpu -ltorch_python -lcudart -lc10_cuda -ltorch_cuda -o build/lib.linux-x86_64-3.7/pytorch_points/_ext/sampling.cpython-37m-x86_64-linux-gnu.so

g++: error: /home/yxr/Documents/deep_cage/pytorch_points/build/temp.linux-x86_64-3.7/pytorch_points/_ext/sampling.o: No such file or directory

Looking forward to your reply, thanks!!!

Does any one encounter this compile question? Please show your solution. Thanks!

['pytorch_points', 'pytorch_points.network', 'pytorch_points.misc', 'pytorch_points.utils']
running develop
running egg_info
writing pytorch_points.egg-info/PKG-INFO
writing dependency_links to pytorch_points.egg-info/dependency_links.txt
writing requirements to pytorch_points.egg-info/requires.txt
writing top-level names to pytorch_points.egg-info/top_level.txt
reading manifest file 'pytorch_points.egg-info/SOURCES.txt'
writing manifest file 'pytorch_points.egg-info/SOURCES.txt'
running build_ext
building 'linalg' extension
/home/zhonggan/miniconda3/envs/pytorch-all/lib/python3.7/site-packages/torch/utils/cpp_extension.py:287: UserWarning:

                           !! WARNING !!

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Your compiler (c++) is not compatible with the compiler Pytorch was
built with for this platform, which is g++ on linux. Please
use g++ to to compile your extension. Alternatively, you may
compile PyTorch from source using c++, and then you can also use
c++ to compile your extension.

See https://github.com/pytorch/pytorch/blob/master/CONTRIBUTING.md for help
with compiling PyTorch from source.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

                          !! WARNING !!

platform=sys.platform))
Emitting ninja build file /home/zhonggan/workspace/face3D/deep_cage/pytorch_points/build/temp.linux-x86_64-3.7/build.ninja...
Compiling objects...
Allowing ninja to set a default number of workers... (overridable by setting the environment variable MAX_JOBS=N)
[1/1] c++ -MMD -MF /home/zhonggan/workspace/face3D/deep_cage/pytorch_points/build/temp.linux-x86_64-3.7/pytorch_points/_ext/torch_batch_svd.o.d -pthread -B /home/zhonggan/miniconda3/envs/pytorch-all/compiler_compat -Wl,--sysroot=/ -Wsign-compare -D$DEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/zhonggan/miniconda3/envs/pytorch-all/lib/python3.7/site-packages/torch/include -I/home/zhonggan/miniconda3/envs/pytorch-all/lib/python3.7/site-packages/torch/include/torch/csrc/api/includ$ -I/home/zhonggan/miniconda3/envs/pytorch-all/lib/python3.7/site-packages/torch/include/TH -I/home/zhonggan/miniconda3/envs/pytorch-all/lib/python3.7/site-packages/torch/include/THC -I/usr/local/cuda-11.0/include -I/home/zhonggan/miniconda3/envs/py$orch-all/include/python3.7m -c -c /home/zhonggan/workspace/face3D/deep_cage/pytorch_points/pytorch_points/_ext/torch_batch_svd.cpp -o /home/zhonggan/workspace/face3D/deep_cage/pytorch_points/build/temp.linux-x86_64-3.7/pytorch_points/_ext/torch_bat$h_svd.o -g -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=linalg -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
FAILED: /home/zhonggan/workspace/face3D/deep_cage/pytorch_points/build/temp.linux-x86_64-3.7/pytorch_points/_ext/torch_batch_svd.o
c++ -MMD -MF /home/zhonggan/workspace/face3D/deep_cage/pytorch_points/build/temp.linux-x86_64-3.7/pytorch_points/_ext/torch_batch_svd.o.d -pthread -B /home/zhonggan/miniconda3/envs/pytorch-all/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/zhonggan/miniconda3/envs/pytorch-all/lib/python3.7/site-packages/torch/include -I/home/zhonggan/miniconda3/envs/pytorch-all/lib/python3.7/site-packages/torch/include/torch/csrc/api/include -I/h$me/zhonggan/miniconda3/envs/pytorch-all/lib/python3.7/site-packages/torch/include/TH -I/home/zhonggan/miniconda3/envs/pytorch-all/lib/python3.7/site-packages/torch/include/THC -I/usr/local/cuda-11.0/include -I/home/zhonggan/miniconda3/envs/pytorch-$ll/include/python3.7m -c -c /home/zhonggan/workspace/face3D/deep_cage/pytorch_points/pytorch_points/_ext/torch_batch_svd.cpp -o /home/zhonggan/workspace/face3D/deep_cage/pytorch_points/build/temp.linux-x86_64-3.7/pytorch_points/_ext/torch_batch_svd$o -g -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=linalg -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
c++: error: unrecognized command line option ‘-std=c++14’
ninja: build stopped: subcommand failed.
Traceback (most recent call last):
File "/home/zhonggan/miniconda3/envs/pytorch-all/lib/python3.7/site-packages/torch/utils/cpp_extension.py", line 1672, in _run_ninja_build
env=env)
File "/home/zhonggan/miniconda3/envs/pytorch-all/lib/python3.7/subprocess.py", line 512, in run
output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '['ninja', '-v']' returned non-zero exit status 1.

links on weight files broken

Hi, it looks like a very nice work.
Recently I clone the repo via git lfs and got some errors like:

batch response: This repository is over its data quota. Account responsible for LFS bandwidth should purchase more data packs to restore access.

It seems that the lfs links to some files broken.
Maybe using Google Drive or some free storage could help?

Also, could you please offer the training script?

Thanks!

denormalize the deform

Currently, the output of the cage_deform is the deformation that fits the normalized target shape. I think it might be a good idea to instead provide a denormalization :)

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.