charlesq34 / pointnet-autoencoder Goto Github PK
View Code? Open in Web Editor NEWAutoencoder for Point Clouds
License: Other
Autoencoder for Point Clouds
License: Other
the input data and the output data is same,how to deal with the data to the unregular point cloud.
Does it run using CPU rather than GPU?
I see there are _cpu specific files in https://github.com/charlesq34/pointnet-autoencoder/tree/master/tf_ops/nn_distance. So I guess the GPU dependency is not really necessary. However, the approxmatch directory seems to be GPU only?
It would be great to quickly iterate over new algorithms on a machine that does not support CUDA and after that switch to a machine with a GPU.
I was wondering, if fine-tuning the encoder part on ModelNet40 would help increase the performance over the top of PointNet?
Hello
I am new to deep learning.
How can I calculate the accuracy of this autoencoder?
How can I improve this program to calculate the accuracy?
Please let me know.
I have tried everything there is . It doesn't stop giving me this error.
#/bin/bash
CUDA_ROOT=/usr/local/cuda-10.0
TF_INC=$(python -c 'import tensorflow as tf; print(tf.sysconfig.get_include())')
TF_LIB=$(python -c 'import tensorflow as tf; print(tf.sysconfig.get_lib())')
TF_CFLAGS=( $(python -c 'import tensorflow as tf; print(" ".join(tf.sysconfig.get_compile_flags()))') )
TF_LFLAGS=( $(python -c 'import tensorflow as tf; print(" ".join(tf.sysconfig.get_link_flags()))') )
${CUDA_ROOT}/bin/nvcc tf_nndistance_g.cu -o tf_nndistance_g.cu.o -c -O2 -DGOOGLE_CUDA=1 -x cu -Xcompiler -fPIC
g++ -std=c++11 tf_nndistance.cpp tf_nndistance_g.cu.o -o tf_nndistance_so.so -shared -fPIC
-I $TF_LIB/include -I $TF_INC/external/nsync/public -L$TF_LIB-ltensorflow_framework -I $CUDA_ROOT/include -lcudart -L $CUDA_ROOT/lib64/ -O2
I have CUDA 10.0
CuDNN 7.4
Python 3.5
Tensorflow 1.14
Please help me
Hi,
I am trying to implement this code for the generation of points from an aerial LiDAR system. I am able to reproduce the ModelNet results but when I try to predict points from my own dataset, after retraining, I am getting a very dense set of points in the middle. Do you have any guesses why this might be or suggestions for adjustments I could make?
Thanks
Hi @charlesq34
Is there a TF 1.15 version available for this?
Hi Charles. It's a wonderful work!
Have you ever trained AE on all categories? How about the result?
Thanks
If you are looking for EMD of dense point clouds (with over 10,000 points) and large batch size, please check our implementation: https://github.com/Colin97/MSN-Point-Cloud-Completion
I run into this issue when I'm trying to compile the customized nn_disstance operator.
The error message is:
tensorflow.python.framework.errors_impl.NotFoundError: /home/Autoencoder/pointnet-autoencoder-master/tf_ops/nn_distance/tf_nndistance_so.so: undefined symbol: _ZN10tensorflow8internal21CheckOpMessageBuilder9NewStringEv
Even though I try some solutions, the error still exist. I tried to set -D_GLIBCXX_USE_CXX11_ABI=1 or remove it completely (as suggested in charlesq34/pointnet2#48 (comment)).
Can anyone help me if you successfully trained this framework?
I'm using gcc 4.8.5, CUDA 9.8.15, and tensorflow 1.12.0
Hi @charlesq34,
I was curious to know, if we can train one neural network model to segment different classes like (chiar, knife, guitar..etc), or do we need to train seperate model for each of the classes.
I use
Ubuntu 18.04 / python 3.6 / Cuda 10.0 / tensorflow 1.9
(py36_gpu) sohee@IPIS-sohee:~/coding/pointnet-autoencoder$ python train.py --model model --log_dir log_chair_norotation --num_point 2048 --category Chair --no_rotation
Traceback (most recent call last):
File "train.py", line 48, in
MODEL = importlib.import_module(FLAGS.model) # import network module
File "/home/sohee/anaconda3/envs/py36_gpu/lib/python3.6/importlib/init.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 994, in _gcd_import
File "", line 971, in _find_and_load
File "", line 955, in _find_and_load_unlocked
File "", line 665, in _load_unlocked
File "", line 678, in exec_module
File "", line 219, in _call_with_frames_removed
File "/home/sohee/coding/pointnet-autoencoder/models/model.py", line 17, in
import tf_nndistance
File "/home/sohee/coding/pointnet-autoencoder/tf_ops/nn_distance/tf_nndistance.py", line 12, in
nn_distance_module=tf.load_op_library(os.path.join(BASE_DIR, 'tf_nndistance_so.so'))
File "/home/sohee/anaconda3/envs/py36_gpu/lib/python3.6/site-packages/tensorflow/python/framework/load_library.py", line 56, in load_op_library
lib_handle = py_tf.TF_LoadLibrary(library_filename)
tensorflow.python.framework.errors_impl.NotFoundError: /home/sohee/coding/pointnet-autoencoder/tf_ops/nn_distance/tf_nndistance_so.so: undefined symbol: _ZN10tensorflow8internal21CheckOpMessageBuilder9NewStringEv
tf_ops/nn_distance/tf_nn_distance_compile.sh
#/bin/bash
CUDA_ROOT=/usr/local/cuda-10.0
TF_ROOT=/home/user/.local/lib/python3.6/site-packages/tensorflowTF_INC=$(python -c 'import tensorflow as tf; print(tf.sysconfig.get_include())')
TF_LIB=$(python -c 'import tensorflow as tf; print(tf.sysconfig.get_lib())')/usr/local/cuda-10.0/bin/nvcc tf_nndistance_g.cu -o tf_nndistance_g.cu.o -c -O2 -DGOOGLE_CUDA=1 -x cu -Xcompiler -fPIC
g++ -std=c++11 tf_nndistance.cpp tf_nndistance_g.cu.o -o tf_nndistance_so.so -shared -fPIC -I$TF_INC/ -I$TF_INC/external/nsync/public -I$TF_INC/external/nsync/public -L$TF_LIB -ltensorflow_framework -L$TF_LIB -ltensorflow_framework -I$CUDA_ROOT/include -lcudart -L$CUDA_ROOT/lib64/ -O2 -D_GLIBCXX_USE_CXX11_ABI=0
/tf_ops/approxmatch/tf_approxmatch_compile.sh
#/bin/bash
CUDA_ROOT=/usr/local/cuda-10.0
TF_ROOT=/home/user/.local/lib/python3.6/site-packages/tensorflowTF_INC=$(python -c 'import tensorflow as tf; print(tf.sysconfig.get_include())')
TF_LIB=$(python -c 'import tensorflow as tf; print(tf.sysconfig.get_lib())')CUDA_ROOT/bin/nvcc tf_approxmatch_g.cu -o tf_approxmatch_g.cu.o -c -O2 -DGOOGLE_CUDA=1 -x cu -Xcompiler -fPIC
g++ -std=c++11 tf_approxmatch.cpp tf_approxmatch_g.cu.o -o tf_approxmatch_so.so -shared -fPIC -I$TF_INC/ -I$TF_INC/external/nsync/public -I$TF_INC/external/nsync/public -L$TF_LIB -ltensorflow_framework -L$TF_LIB -ltensorflow_framework -I$CUDA_ROOT/include -lcudart -L$CUDA_ROOT/lib64/ -O2 -D_GLIBCXX_USE_CXX11_ABI=0
Hi,
I am trying to implement autendoer in pytorch and I did write the model which I suppose is excatly what is present in this repo.
Model in pytorch
class PCAutoEncoder(nn.Module):
def __init__(self, point_dim, num_points):
super(PCAutoEncoder, self).__init__()
self.conv1 = nn.Conv1d(in_channels=point_dim, out_channels=64, kernel_size=1)
self.conv2 = nn.Conv1d(in_channels=64, out_channels=64, kernel_size=1)
self.conv3 = nn.Conv1d(in_channels=64, out_channels=64, kernel_size=1)
self.conv4 = nn.Conv1d(in_channels=64, out_channels=128, kernel_size=1)
self.conv5 = nn.Conv1d(in_channels=128, out_channels=1024, kernel_size=1)
self.fc1 = nn.Linear(in_features=1024, out_features=1024)
self.fc2 = nn.Linear(in_features=1024, out_features=1024)
self.fc3 = nn.Linear(in_features=1024, out_features=num_points*3)
#batch norm
self.bn1 = nn.BatchNorm1d(64)
self.bn2 = nn.BatchNorm1d(128)
self.bn3 = nn.BatchNorm1d(1024)
def forward(self, x):
batch_size = x.shape[0]
point_dim = x.shape[1]
num_points = x.shape[2]
#encoder
x = F.relu(self.bn1(self.conv1(x)))
x = F.relu(self.bn1(self.conv2(x)))
x = F.relu(self.bn1(self.conv3(x)))
x = F.relu(self.bn2(self.conv4(x)))
x = F.relu(self.bn3(self.conv5(x)))
# do max pooling
x = torch.max(x, 2, keepdim=True)[0]
x = x.view(-1, 1024)
# get the global embedding
global_feat = x
#decoder
x = F.relu(self.bn3(self.fc1(x)))
x = F.relu(self.bn3(self.fc2(x)))
reconstructed_points = self.fc3(x)
#do reshaping
reconstructed_points = reconstructed_points.reshape(batch_size, point_dim, num_points)
return reconstructed_points, global_feat
However, after training this model for 200 ephocs, when I try to generate the output point cloud all i can generate if scatterd points as shown below -
Any direction to figure out the problem would be helpful.
I run the program on the dataset given, but the result seems that validation error is less than training error. This is quite strange since there is no dropout in the model I used. I wonder if anyone knows why.
i want to ask one thing is this method could be used for scene segmentation?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.