Coder Social home page Coder Social logo

point2skeleton's Introduction

Point2Skeleton

This repository contains the source code for the CVPR 2021 oral paper Point2Skeleton: Learning Skeletal Representations from Point Clouds, where we introduce an unsupervised method to generate skeletal meshes from point clouds.

Skeletal Mesh

We introduce a generalized skeletal representation, called skeletal mesh. Several good properties of the skeletal mesh make it a useful representation for shape analysis:

  • Recoverability The skeletal mesh can be considered as a complete shape descriptor, which means it can reconstruct the shape of the original domain.

  • Abstraction The skeletal mesh captures the fundamental geometry of a 3D shape and extracts its global topology; the tubular parts are abstracted by simple 1D curve segments and the planar or bulky parts by 2D surface triangles.

  • Structure awareness The 1D curve segments and 2D surface sheets as well as the non-manifold branches on the skeletal mesh give a structural differentiation of a shape.

  • Volume-based closure The interpolation of the skeletal spheres gives solid cone-like or slab-like primitives; then a local geometry is represented by volumetric parts, which provides better integrity of shape context. The interpolation also forms a closed watertight surface.

Code

Installation

You need to install PyTorch, NumPy, and TensorboardX (for visualization of training). This code is tested under Python 3.7.3, PyTorch 1.1.0, NumPy 1.16.4 on Ubuntu 18.04.

To setup PointNet++, please use:

pip install -r requirements.txt
cd src/pointnet2
python setup.py build_ext --inplace

Training

  • Example command with required parameters:
cd src
python train.py --pc_list_file ../data/data-split/all-train.txt --data_root ../data/pointclouds/ --point_num 2000 --skelpoint_num 100 --gpu 0
  • Can simply call python train.py once the data folder data/ is prepared.
  • See python train.py --help for all the training options. Can change the setting by modifying the parameters in src/config.py

Testing

  • Example command with required parameters:
cd src
python test.py --pc_list_file ../data/data-split/all-test.txt --data_root ../data/pointclouds/ --point_num 2000 --skelpoint_num 100 --gpu 0 --load_skelnet_path ../weights/weights-skelpoint.pth --load_gae_path ../weights/weights-gae.pth --save_result_path ../results/
  • Can also simply call python test.py once the data folder data/ and network weight folder weights/ are prepared.
  • See python test.py --help for all the testing options.

Download

  • Train/test data data.zip.
  • Pre-trained model weights.zip.
  • Unzip the downloaded files to replace the data/ and weights/ folders; then you can run the code by simply calling python train.py and python test.py.
  • Dense point cloud data_dense.zip and simplified MAT MAT.zip for evaluation.

Acknowledgement

We would like to acknowledge the following projects:

Unsupervised Learning of Intrinsic Structural Representation Points

Pointnet++ PyTorch

Graph Convolution

Citation

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

@InProceedings{Lin_2021_CVPR,
    author    = {Lin, Cheng and Li, Changjian and Liu, Yuan and Chen, Nenglun and Choi, Yi-King and Wang, Wenping},
    title     = {Point2Skeleton: Learning Skeletal Representations from Point Clouds},
    booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
    month     = {June},
    year      = {2021},
    pages     = {4277-4286}
}

Contact

If you have any questions, please email Cheng Lin at [email protected].

point2skeleton's People

Contributors

clinplayer 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

point2skeleton's Issues

Questions about evaluation

Hello, I'm sorry to bother you again. I used the method you mentioned above to evaluate the pre-trained model you gave, but the effect is worse than that in your paper. Could you please elaborate on the evaluation method?

A new question about installing the Pointnet++

When I run the command:sudo python setup.py build_ext --inplace

feedback is as follows:

running build_ext
building '_ext-src' extension
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -I/home/zhang/.local/lib/python3.7/site-packages/torch/include -I/home/zhang/.local/lib/python3.7/site-packages/torch/include/torch/csrc/api/include -I/home/zhang/.local/lib/python3.7/site-packages/torch/include/TH -I/home/zhang/.local/lib/python3.7/site-packages/torch/include/THC -I/usr/local/cuda/include -I/usr/include/python3.7m -c _ext-src/src/ball_query.cpp -o build/temp.linux-x86_64-3.7/_ext-src/src/ball_query.o -O2 -I_ext-src/include -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=_ext-src -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++11
In file included from _ext-src/src/ball_query.cpp:2:0:
_ext-src/include/utils.h:21:56: warning: backslash-newline at end of file
#define CHECK_IS_FLOAT(x) \

/usr/local/cuda/bin/nvcc -I/home/zhang/.local/lib/python3.7/site-packages/torch/include -I/home/zhang/.local/lib/python3.7/site-packages/torch/include/torch/csrc/api/include -I/home/zhang/.local/lib/python3.7/site-packages/torch/include/TH -I/home/zhang/.local/lib/python3.7/site-packages/torch/include/THC -I/usr/local/cuda/include -I/usr/include/python3.7m -c ext-src/src/ball_query_gpu.cu -o build/temp.linux-x86_64-3.7/ext-src/src/ball_query_gpu.o -D__CUDA_NO_HALF_OPERATORS -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --compiler-options '-fPIC' -O2 -I_ext-src/include -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=_ext-src -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++11
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -I/home/zhang/.local/lib/python3.7/site-packages/torch/include -I/home/zhang/.local/lib/python3.7/site-packages/torch/include/torch/csrc/api/include -I/home/zhang/.local/lib/python3.7/site-packages/torch/include/TH -I/home/zhang/.local/lib/python3.7/site-packages/torch/include/THC -I/usr/local/cuda/include -I/usr/include/python3.7m -c _ext-src/src/bindings.cpp -o build/temp.linux-x86_64-3.7/_ext-src/src/bindings.o -O2 -I_ext-src/include -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=_ext-src -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++11
In file included from /home/zhang/.local/lib/python3.7/site-packages/torch/include/pybind11/pytypes.h:12:0,
from /home/zhang/.local/lib/python3.7/site-packages/torch/include/pybind11/cast.h:13,
from /home/zhang/.local/lib/python3.7/site-packages/torch/include/pybind11/attr.h:13,
from /home/zhang/.local/lib/python3.7/site-packages/torch/include/pybind11/pybind11.h:44,
from /home/zhang/.local/lib/python3.7/site-packages/torch/include/torch/csrc/utils/pybind.h:6,
from /home/zhang/.local/lib/python3.7/site-packages/torch/include/torch/csrc/api/include/torch/python.h:12,
from /home/zhang/.local/lib/python3.7/site-packages/torch/include/torch/extension.h:6,
from _ext-src/include/ball_query.h:2,
from _ext-src/src/bindings.cpp:1:
:0:26: error: expected initializer before ‘-’ token
/home/zhang/.local/lib/python3.7/site-packages/torch/include/pybind11/detail/common.h:213:47: note: in definition of macro ‘PYBIND11_CONCAT’
#define PYBIND11_CONCAT(first, second) first##second
^~~~~~
_ext-src/src/bindings.cpp:6:1: note: in expansion of macro ‘PYBIND11_MODULE’
PYBIND11_MODULE(TORCH_EXTENSION_NAME, m) {
^~~~~~~~~~~~~~~
ext-src/src/bindings.cpp:6:17: note: in expansion of macro ‘TORCH_EXTENSION_NAME’
PYBIND11_MODULE(TORCH_EXTENSION_NAME, m) {
^~~~~~~~~~~~~~~~~~~~
:0:26: error: expected initializer before ‘-’ token
/home/zhang/.local/lib/python3.7/site-packages/torch/include/pybind11/detail/common.h:172:51: note: in definition of macro ‘PYBIND11_PLUGIN_IMPL’
extern "C" PYBIND11_EXPORT PyObject *PyInit
##name()
^~~~
_ext-src/src/bindings.cpp:6:1: note: in expansion of macro ‘PYBIND11_MODULE’
PYBIND11_MODULE(TORCH_EXTENSION_NAME, m) {
^~~~~~~~~~~~~~~
_ext-src/src/bindings.cpp:6:17: note: in expansion of macro ‘TORCH_EXTENSION_NAME’
PYBIND11_MODULE(TORCH_EXTENSION_NAME, m) {
^~~~~~~~~~~~~~~~~~~~
:0:26: error: expected initializer before ‘-’ token
/home/zhang/.local/lib/python3.7/site-packages/torch/include/pybind11/detail/common.h:213:47: note: in definition of macro ‘PYBIND11_CONCAT’
#define PYBIND11_CONCAT(first, second) first##second
^~~~~~
_ext-src/src/bindings.cpp:6:1: note: in expansion of macro ‘PYBIND11_MODULE’
PYBIND11_MODULE(TORCH_EXTENSION_NAME, m) {
^~~~~~~~~~~~~~~
_ext-src/src/bindings.cpp:6:17: note: in expansion of macro ‘TORCH_EXTENSION_NAME’
PYBIND11_MODULE(TORCH_EXTENSION_NAME, m) {
^~~~~~~~~~~~~~~~~~~~
error: command '/usr/bin/x86_64-linux-gnu-gcc' failed with exit code 1

May i have your suggestions to fix this problem?
Any help is much appreciated:)

Training on custom Data

Hi nice paper!

I have PCD + Skeleton + Mesh. Do you think it's possible for me to implement your model with my data? I want to learn the skeleton from the PCD.

image

Thanks, Sam

Questions about simplified MAT

Thank you very much for your work! I have a question: can you provide the reference code or some details for calculating the standard MAT 。

About Volume-based closure

Hello, after training and testing, I haven't found the volume-based closure. Could you please tell me where this file is or what ELSE I need to do to get it?

TypeError: 'str' object cannot be interpreted as an integer

When I run python test.py... I met:
GPU Number: 1 GPUs!
Traceback (most recent call last):
File "test.py", line 103, in
for iter, batch_data in enumerate(data_loader):
File "/home/dodo/.local/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 517, in next
data = self._next_data()
File "/home/dodo/.local/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 557, in _next_data
data = self._dataset_fetcher.fetch(index) # may raise StopIteration
File "/home/dodo/.local/lib/python3.6/site-packages/torch/utils/data/_utils/fetch.py", line 44, in fetch
data = [self.dataset[idx] for idx in possibly_batched_index]
File "/home/dodo/.local/lib/python3.6/site-packages/torch/utils/data/_utils/fetch.py", line 44, in
data = [self.dataset[idx] for idx in possibly_batched_index]
File "/home/dodo/Point2Skeleton/code/DataUtil.py", line 17, in getitem
data_pc = rw.load_ply_points(self.data_folder + self.data_id[index] + '.ply', expected_point=self.point_num)
File "/home/dodo/Point2Skeleton/code/FileRW.py", line 167, in load_ply_points
pts = np.zeros((expected_point, 3), np.float64)
TypeError: 'str' object cannot be interpreted as an integer

May i have your suggestions to fix this problem?

Best wishes,
Yicheng

Segmentation fault (core dumped)

14957 segmentation fault (core dumped) python train.py --pc_list_file ../data/data-split/all-train.txt --data_root

Process finished with exit code 139 (interrupted by signal 11: SIGSEGV)

Watertight surface extraction (Fig.10 in the paper)

Hello!

Thanks for releasing your code and data -- great work. I can't find in your code the part that does unsupervised watertight surface reconstruction from point clouds (Fig. 10).

As I see, your test code outputs spheres (XX_sphere.obj) but not the watertight meshes itself. Would you kindly share this part of the code or point it out the repo in case I have missed it?

Thank you!

Python Build problem

I'm using 3.10.12 Python
And there is errors related to build package dependencies...
How can I run Point2Skeleton with 3.10.12 python?

UnicodeDecodeError: 'utf-8' codec can't decode byte 0x91 in position 648: invalid start byte

Hi, Thank you for the awesome work.

I reproduce your work successfully and I want to use it to test my data. My data are human .pcd files, I transform the data to .ply format by using pcl_pcd2ply command. But when I run python test.py, the terminal has the following error: UnicodeDecodeError: 'utf-8' codec can't decode byte 0x91 in position 648: invalid start byte.
error information

May I have your suggestions to fix this problem? Any help is much appreciated:)

Best wishes,

YdSyd

When I run the program on Win10, I met 'forkserver' error

Traceback (most recent call last):
File "run_skeleton.py", line 6, in
from SkelPointNet import SkelPointNet
File "E:\project\DongLuanProfessor\3D point Cloud\code\point2skeleton\Point2Skeleton-master\code\SkelPointNet.py", line 4, in
from pointnet2.utils.pointnet2_modules import PointnetSAModuleMSG
File "E:\project\DongLuanProfessor\3D point Cloud\code\point2skeleton\Point2Skeleton-master\code\pointnet2_init_.py", line 11, in
from pointnet2 import utils
File "E:\project\DongLuanProfessor\3D point Cloud\code\point2skeleton\Point2Skeleton-master\code\pointnet2\utils_init_.py", line 8, in
from . import pointnet2_utils
File "E:\project\DongLuanProfessor\3D point Cloud\code\point2skeleton\Point2Skeleton-master\code\pointnet2\utils\pointnet2_utils.py", line 11, in
from . import etw_pytorch_utils as pt_utils
File "E:\project\DongLuanProfessor\3D point Cloud\code\point2skeleton\Point2Skeleton-master\code\pointnet2\utils\etw_pytorch_utils_init_.py", line 13, in
from .persistent_dataloader import DataLoader
File "E:\project\DongLuanProfessor\3D point Cloud\code\point2skeleton\Point2Skeleton-master\code\pointnet2\utils\etw_pytorch_utils\persistent_dataloader.py", line 27, in
_mp_ctx = multiprocessing.get_context("forkserver")
File "E:\software\Anaconda\envs\pytorch18\lib\multiprocessing\context.py", line 238, in get_context
return super().get_context(method)
File "E:\software\Anaconda\envs\pytorch18\lib\multiprocessing\context.py", line 192, in get_context
raise ValueError('cannot find context for %r' % method)
ValueError: cannot find context for 'forkserver'

How to use the distance metrics set in the paper

Hello, I've just recently started learning about point clouds, and now I'm learning about similarity metrics between point clouds, and in your paper you mention the following distances CD-Recon HD-Recon CD-MAT HD-MAT, and I'm trying to try to implement it in code with a result of failing, and I'm wondering if you guys have any relevant code for this. For example, if I have a set of points Points1, Points2, and I want to measure the distance between them, how can I implement it with your code?

Deprecation of torch._six.int_classes and suggested replacement

Description: The import statement from torch._six import int_classes is currently deprecated. After investigating, it was found that the suggested replacement for this is int_classes = (bool, int).
Steps to reproduce:

  1. Attempt to import int_classes using from torch._six import int_classes
  2. Observe the error.
    Suggested Solution: Use int_classes = (bool, int) instead of importing int_classes from torch._six.

Expected Outcome: The code that previously used from torch._six import int_classes should be updated to use int_classes = (bool, int) to avoid the deprecation error.

Additional Information: This change was introduced in the newer release of PyTorch and can be found in the documentation.

How to show/displace the testing result files?

I was able to generate 6 output files for each point cloud input file when executing test.py.
But how can I show or display the 6 output files (2 .off files and 4 .obj files)?

thanks

IndexError: list index out of range

When I run the command:python setup.py build_ext --inplace
I face some problems:
Traceback (most recent call last):
File "setup.py", line 37, in
cmdclass={"build_ext": BuildExtension},
File "/usr/lib/python3/dist-packages/setuptools/init.py", line 129, in setup
return distutils.core.setup(**attrs)
File "/usr/lib/python3.6/distutils/core.py", line 148, in setup
dist.run_commands()
File "/usr/lib/python3.6/distutils/dist.py", line 955, in run_commands
self.run_command(cmd)
File "/usr/lib/python3.6/distutils/dist.py", line 974, in run_command
cmd_obj.run()
File "/usr/lib/python3/dist-packages/setuptools/command/build_ext.py", line 78, in run
_build_ext.run(self)
File "/home/dodo/.local/lib/python3.6/site-packages/Cython/Distutils/old_build_ext.py", line 186, in run
_build_ext.build_ext.run(self)
File "/usr/lib/python3.6/distutils/command/build_ext.py", line 339, in run
self.build_extensions()
File "/home/dodo/.local/lib/python3.6/site-packages/torch/utils/cpp_extension.py", line 708, in build_extensions
build_ext.build_extensions(self)
File "/home/dodo/.local/lib/python3.6/site-packages/Cython/Distutils/old_build_ext.py", line 195, in build_extensions
_build_ext.build_ext.build_extensions(self)
File "/usr/lib/python3.6/distutils/command/build_ext.py", line 448, in build_extensions
self._build_extensions_serial()
File "/usr/lib/python3.6/distutils/command/build_ext.py", line 473, in _build_extensions_serial
self.build_extension(ext)
File "/usr/lib/python3/dist-packages/setuptools/command/build_ext.py", line 199, in build_extension
_build_ext.build_extension(self, ext)
File "/usr/lib/python3.6/distutils/command/build_ext.py", line 533, in build_extension
depends=ext.depends)
File "/usr/lib/python3.6/distutils/ccompiler.py", line 574, in compile
self._compile(obj, src, ext, cc_args, extra_postargs, pp_opts)
File "/home/dodo/.local/lib/python3.6/site-packages/torch/utils/cpp_extension.py", line 456, in unix_wrap_single_compile
cflags = unix_cuda_flags(cflags)
File "/home/dodo/.local/lib/python3.6/site-packages/torch/utils/cpp_extension.py", line 423, in unix_cuda_flags
cflags + _get_cuda_arch_flags(cflags))
File "/home/dodo/.local/lib/python3.6/site-packages/torch/utils/cpp_extension.py", line 1561, in _get_cuda_arch_flags
arch_list[-1] += '+PTX'
IndexError: list index out of range

May i have your suggestions to fix this problem?
Any help is much appreciated:)

when will you release the full code?

Hello, I am a student in Shanghai Tech University . I am very interested in your article and would like to refer to some content. Could you please tell me when you will release the full code. Thank you

test failure

Hi author,
I used my own dataset to train the data and the output in the log folder had better results for the skeleton points.

Unfortunately, when I test the data using the weights 'weights-skeletonpoint.pth' obtained from the training, I find the results are very bad.

"How to resolve CUDA error: device-side assert triggered"

Issue Description:
I encountered the following error while attempting GAE training, and I'm unsure how to resolve it. I've tried multiple approaches, but none have been successful. Please help me find a solution.
Error Message:# Copy and paste the complete error message here
C:/w/1/s/windows/pytorch/aten/src/ATen/native/cuda/IndexKernel.cu:53: block: [10,0,0], thread: [32,0,0] Assertion index >= -sizes[i] && index < sizes[i] && "index out of bounds" failed.
Traceback (most recent call last):
File "train.py", line 181, in
batch_pc, compute_graph=True)
File "C:\Users\YourUsername\AppData\Local\Programs\Python\Python37\lib\site-packages\torch\nn\modules\module.py", line 493, in call
result = self.forward(*input, **kwargs)
File "D:\Point2Skeleton\Point2Skeleton\src\SkelPointNet.py", line 238, in forward
A, valid_Mask, known_Mask = self.init_graph(input_pc[..., 0:3], skel_xyz)
File "D:\Point2Skeleton\Point2Skeleton\src\SkelPointNet.py", line 188, in init_graph
A[torch.arange(bn)[:, None], knn_sp2sk[:, :, 1], knn_sp2sk[:, :, 0]] = 1
RuntimeError: CUDA error: device-side assert triggered

Environment Information:
Operating System: Windows 11
Python Version: Python 3.7.8
PyTorch Version: (1.1.0)
CUDA Version: (10.0.13)
Issue Background:
I'm attempting to perform GAE training (please provide the relevant project or library name, if applicable). My objective is (briefly describe your goal or task).

Download Links

Hi, would you please update the download links for the models?
Much appreciated!

Test error

Hello,
I was trying to produce some skeletons from your test example, but it seems like I receive no information through skel_xyz. All 100 points of the skeleton are similar to each other and the program crashes when attempting to compute the mesh.
I was using -
python test.py --pc_list_file ../data/data-split/all-test.txt --data_root ../data/pointclouds/ --point_num 2000 --skelpoint_num 100 --gpu 0 --load_skelnet_path ../weights/weights-skelpoint.pth --load_gae_path ../weights/weights-gae.pth --save_result_path ../results/

While having the dataset, the splits, and the pre-trained weights as instructed.

Also, when I try to train from scratch (following your instructions) I get:
NaN or Inf found in input tensor.
Any idea what could cause these issues?

Thanks!

Question about installing the Pointnet++

When I run the command:python setup.py build_ext --inplace
Something occures:
=0 -std=c++14
FAILED: /mnt/f/Ubuntu_win/Project/Point2Skeleton/code/pointnet2/build/temp.linux-x86_64-3.6/_ext-src/src/bindings.o
c++ -MMD -MF /mnt/f/Ubuntu_win/Project/Point2Skeleton/code/pointnet2/build/temp.linux-x86_64-3.6/_ext-src/src/bindings.o.d -pthread -B /mnt/f/Ubuntu_win/Anaconda/envs/dl/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/mnt/f/Ubuntu_win/Anaconda/envs/dl/lib/python3.6/site-packages/torch/include -I/mnt/f/Ubuntu_win/Anaconda/envs/dl/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/mnt/f/Ubuntu_win/Anaconda/envs/dl/lib/python3.6/site-packages/torch/include/TH -I/mnt/f/Ubuntu_win/Anaconda/envs/dl/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.2/include -I/mnt/f/Ubuntu_win/Anaconda/envs/dl/include/python3.6m -c -c /mnt/f/Ubuntu_win/Project/Point2Skeleton/code/pointnet2/_ext-src/src/bindings.cpp -o /mnt/f/Ubuntu_win/Project/Point2Skeleton/code/pointnet2/build/temp.linux-x86_64-3.6/_ext-src/src/bindings.o -O2 -I./_ext-src/include -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=_ext -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
/mnt/f/Ubuntu_win/Project/Point2Skeleton/code/pointnet2/_ext-src/src/bindings.cpp:1:10: fatal error: ball_query.h: No such file or directory
#include "ball_query.h"
^~~~~~~~~~~~~~
compilation terminated.
[4/5] c++ -MMD -MF /mnt/f/Ubuntu_win/Project/Point2Skeleton/code/pointnet2/build/temp.linux-x86_64-3.6/_ext-src/src/group_points.o.d -pthread -B /mnt/f/Ubuntu_win/Anaconda/envs/dl/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/mnt/f/Ubuntu_win/Anaconda/envs/dl/lib/python3.6/site-packages/torch/include -I/mnt/f/Ubuntu_win/Anaconda/envs/dl/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/mnt/f/Ubuntu_win/Anaconda/envs/dl/lib/python3.6/site-packages/torch/include/TH -I/mnt/f/Ubuntu_win/Anaconda/envs/dl/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.2/include -I/mnt/f/Ubuntu_win/Anaconda/envs/dl/include/python3.6m -c -c /mnt/f/Ubuntu_win/Project/Point2Skeleton/code/pointnet2/_ext-src/src/group_points.cpp -o /mnt/f/Ubuntu_win/Project/Point2Skeleton/code/pointnet2/build/temp.linux-x86_64-3.6/_ext-src/src/group_points.o -O2 -I./_ext-src/include -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=_ext -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
FAILED: /mnt/f/Ubuntu_win/Project/Point2Skeleton/code/pointnet2/build/temp.linux-x86_64-3.6/_ext-src/src/group_points.o
c++ -MMD -MF /mnt/f/Ubuntu_win/Project/Point2Skeleton/code/pointnet2/build/temp.linux-x86_64-3.6/_ext-src/src/group_points.o.d -pthread -B /mnt/f/Ubuntu_win/Anaconda/envs/dl/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/mnt/f/Ubuntu_win/Anaconda/envs/dl/lib/python3.6/site-packages/torch/include -I/mnt/f/Ubuntu_win/Anaconda/envs/dl/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/mnt/f/Ubuntu_win/Anaconda/envs/dl/lib/python3.6/site-packages/torch/include/TH -I/mnt/f/Ubuntu_win/Anaconda/envs/dl/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.2/include -I/mnt/f/Ubuntu_win/Anaconda/envs/dl/include/python3.6m -c -c /mnt/f/Ubuntu_win/Project/Point2Skeleton/code/pointnet2/_ext-src/src/group_points.cpp -o /mnt/f/Ubuntu_win/Project/Point2Skeleton/code/pointnet2/build/temp.linux-x86_64-3.6/_ext-src/src/group_points.o -O2 -I./_ext-src/include -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=_ext -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
/mnt/f/Ubuntu_win/Project/Point2Skeleton/code/pointnet2/_ext-src/src/group_points.cpp:1:10: fatal error: group_points.h: No such file or directory
#include "group_points.h"
^~~~~~~~~~~~~~~~
compilation terminated.
[5/5] c++ -MMD -MF /mnt/f/Ubuntu_win/Project/Point2Skeleton/code/pointnet2/build/temp.linux-x86_64-3.6/_ext-src/src/sampling.o.d -pthread -B /mnt/f/Ubuntu_win/Anaconda/envs/dl/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/mnt/f/Ubuntu_win/Anaconda/envs/dl/lib/python3.6/site-packages/torch/include -I/mnt/f/Ubuntu_win/Anaconda/envs/dl/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/mnt/f/Ubuntu_win/Anaconda/envs/dl/lib/python3.6/site-packages/torch/include/TH -I/mnt/f/Ubuntu_win/Anaconda/envs/dl/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.2/include -I/mnt/f/Ubuntu_win/Anaconda/envs/dl/include/python3.6m -c -c /mnt/f/Ubuntu_win/Project/Point2Skeleton/code/pointnet2/_ext-src/src/sampling.cpp -o /mnt/f/Ubuntu_win/Project/Point2Skeleton/code/pointnet2/build/temp.linux-x86_64-3.6/_ext-src/src/sampling.o -O2 -I./_ext-src/include -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=_ext -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
FAILED: /mnt/f/Ubuntu_win/Project/Point2Skeleton/code/pointnet2/build/temp.linux-x86_64-3.6/_ext-src/src/sampling.o
c++ -MMD -MF /mnt/f/Ubuntu_win/Project/Point2Skeleton/code/pointnet2/build/temp.linux-x86_64-3.6/_ext-src/src/sampling.o.d -pthread -B /mnt/f/Ubuntu_win/Anaconda/envs/dl/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/mnt/f/Ubuntu_win/Anaconda/envs/dl/lib/python3.6/site-packages/torch/include -I/mnt/f/Ubuntu_win/Anaconda/envs/dl/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/mnt/f/Ubuntu_win/Anaconda/envs/dl/lib/python3.6/site-packages/torch/include/TH -I/mnt/f/Ubuntu_win/Anaconda/envs/dl/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.2/include -I/mnt/f/Ubuntu_win/Anaconda/envs/dl/include/python3.6m -c -c /mnt/f/Ubuntu_win/Project/Point2Skeleton/code/pointnet2/_ext-src/src/sampling.cpp -o /mnt/f/Ubuntu_win/Project/Point2Skeleton/code/pointnet2/build/temp.linux-x86_64-3.6/_ext-src/src/sampling.o -O2 -I./_ext-src/include -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=_ext -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
/mnt/f/Ubuntu_win/Project/Point2Skeleton/code/pointnet2/_ext-src/src/sampling.cpp:1:10: fatal error: sampling.h: No such file or directory
#include "sampling.h"
^~~~~~~~~~~~
compilation terminated.
ninja: build stopped: subcommand failed.
Traceback (most recent call last):
File "/mnt/f/Ubuntu_win/Anaconda/envs/dl/lib/python3.6/site-packages/torch/utils/cpp_extension.py", line 1522, in _run_ninja_build
env=env)
File "/mnt/f/Ubuntu_win/Anaconda/envs/dl/lib/python3.6/subprocess.py", line 438, in run
output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '['ninja', '-v']' returned non-zero exit status 1.

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "setup.py", line 37, in
cmdclass={"build_ext": BuildExtension},
File "/mnt/f/Ubuntu_win/Anaconda/envs/dl/lib/python3.6/site-packages/setuptools/init.py", line 153, in setup
return distutils.core.setup(**attrs)
File "/mnt/f/Ubuntu_win/Anaconda/envs/dl/lib/python3.6/distutils/core.py", line 148, in setup
dist.run_commands()
File "/mnt/f/Ubuntu_win/Anaconda/envs/dl/lib/python3.6/distutils/dist.py", line 955, in run_commands
self.run_command(cmd)
File "/mnt/f/Ubuntu_win/Anaconda/envs/dl/lib/python3.6/distutils/dist.py", line 974, in run_command
cmd_obj.run()
File "/mnt/f/Ubuntu_win/Anaconda/envs/dl/lib/python3.6/site-packages/setuptools/command/build_ext.py", line 79, in run
_build_ext.run(self)
File "/mnt/f/Ubuntu_win/Anaconda/envs/dl/lib/python3.6/distutils/command/build_ext.py", line 339, in run
self.build_extensions()
File "/mnt/f/Ubuntu_win/Anaconda/envs/dl/lib/python3.6/site-packages/torch/utils/cpp_extension.py", line 653, in build_extensions build_ext.build_extensions(self)
File "/mnt/f/Ubuntu_win/Anaconda/envs/dl/lib/python3.6/distutils/command/build_ext.py", line 448, in build_extensions
self._build_extensions_serial()
File "/mnt/f/Ubuntu_win/Anaconda/envs/dl/lib/python3.6/distutils/command/build_ext.py", line 473, in _build_extensions_serial
self.build_extension(ext)
File "/mnt/f/Ubuntu_win/Anaconda/envs/dl/lib/python3.6/site-packages/setuptools/command/build_ext.py", line 196, in build_extension
_build_ext.build_extension(self, ext)
File "/mnt/f/Ubuntu_win/Anaconda/envs/dl/lib/python3.6/distutils/command/build_ext.py", line 533, in build_extension
depends=ext.depends)
File "/mnt/f/Ubuntu_win/Anaconda/envs/dl/lib/python3.6/site-packages/torch/utils/cpp_extension.py", line 482, in unix_wrap_ninja_compile
with_cuda=with_cuda)
File "/mnt/f/Ubuntu_win/Anaconda/envs/dl/lib/python3.6/site-packages/torch/utils/cpp_extension.py", line 1238, in _write_ninja_file_and_compile_objects
error_prefix='Error compiling objects for extension')
File "/mnt/f/Ubuntu_win/Anaconda/envs/dl/lib/python3.6/site-packages/torch/utils/cpp_extension.py", line 1538, in _run_ninja_build
raise RuntimeError(message) from e
RuntimeError: Error compiling objects for extension
It seems that the code do not read the .h file. How to sovle this problem?

questions

I am really appreciate about your work, I have a few questions

  1. Is there an special correlation between the final skeleton mesh and point cloud? how can I get the original point cloud from the skeleton mesh ?
  2. how do you get skeleton meshs from a sequence in Skeleonization with consistent correspondence of More Applications? predict skeleton mesh per frame or other ways?

Question about the ninja version

While, When I build the pointnet++, I get the ninja -version wrong:UserWarning: Attempted to use ninja as the BuildExtension backend but we could not find ninja.. Falling back to using the slow distutils backend.
warnings.warn(msg.format('we could not find ninja.'))
copying build/lib.linux-x86_64-3.6/_ext.cpython-36m-x86_64-linux-gnu.so ->
My ninja --version output is :1.10.2

Could you help me solve this problem?

Download data.zip,No permission

Issue Description:
When I download data.zip and weights.zip.
error:Can't access item
The organization that owns this item doesn't allow you to access it
So, Can the download permission be granted? or tell me how to download it in other ways.
Thanks. look forward to your answer.

Output Files

***center.off file is the skeleton points coordinates? ***input.off file is the raw input point cloud coordinates? What is the difference between ***mesh_graph.obj and ***skel_face.obj (I think both are skeleton mesh surface?)

Code Or Idea For Structural Decomposition

As you mentioned in Sec6 More Applications::Structural Decomposition, we can detect the dimenional changes and segment different parts of a point cloud. Can you offer the code about this part? Or can you give some detailed insights? I speculate that dimensional change means line -> triangle but I don't understand what non-manifold branch means

About the Reproducibility

Thank you for your nice work!

I have some concern about the reproducibility
I train with the provided config and compare the results on the test-set against your pretrained model (shown as belows, the left is the model I trained and the right is the model provided by you. (I only use the first stage skel model)
Also, I note that the training strategies in your two versions on arxiv differ from each other. I uncomment the code of joint training in train.py and it comes to NaN easily. Can you provide some idea about this? Thanks in advance
50

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.