Giter VIP home page Giter VIP logo

pointmamba's Introduction

pointmamba's People

Contributors

lmd0311 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

pointmamba's Issues

Visualization

Thank you for your great work.
I would like to ask how to visualize this result, such as Figure 3 in the paper? Can you provide this visualization code?

Testing

Thank you for your great work. I have two questions.

(1) I would like to ask what is the startup script and code for the test ?
Is that so?
CUDA_VISIBLE_DEVICES=<GPU> python main.py --test --config cfgs/finetune_modelnet.yaml --ckpts <path/to/model> --exp_name <name>

(2) The second question is about pre-training.

image
After the pre-training is completed, several models will be saved. Which one is the best? Is the one named ckpt-last.pth the best?

Hilbert space-filling curves

Hello, I can't find the space-filling curves in the code. Can you tell me where the Hilbert is in the code? Thank you.

Pretraining

Thank you for your great work.
In the pertaining phase, you don't use traversing? because I can not see traversing in the pretraining phase.
I would be grateful if you could answer my question.

Problems when installing pointnet2_ops

When I tried to install pointnet2_ops, it met some problems below:

Building wheels for collected packages: pointnet2_ops
Building wheel for pointnet2_ops (setup.py) ... error
error: subprocess-exited-with-error

× python setup.py bdist_wheel did not run successfully.
│ exit code: 1
╰─> [59 lines of output]
running bdist_wheel
running build
running build_py
creating build
creating build/lib.linux-x86_64-cpython-39
creating build/lib.linux-x86_64-cpython-39/pointnet2_ops
copying pointnet2_ops/pointnet2_utils.py -> build/lib.linux-x86_64-cpython-39/pointnet2_ops
copying pointnet2_ops/_version.py -> build/lib.linux-x86_64-cpython-39/pointnet2_ops
copying pointnet2_ops/pointnet2_modules.py -> build/lib.linux-x86_64-cpython-39/pointnet2_ops
copying pointnet2_ops/init.py -> build/lib.linux-x86_64-cpython-39/pointnet2_ops
running egg_info
creating pointnet2_ops.egg-info
writing pointnet2_ops.egg-info/PKG-INFO
writing dependency_links to pointnet2_ops.egg-info/dependency_links.txt
writing requirements to pointnet2_ops.egg-info/requires.txt
writing top-level names to pointnet2_ops.egg-info/top_level.txt
writing manifest file 'pointnet2_ops.egg-info/SOURCES.txt'
reading manifest file 'pointnet2_ops.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'pointnet2_ops.egg-info/SOURCES.txt'
creating build/lib.linux-x86_64-cpython-39/pointnet2_ops/_ext-src
creating build/lib.linux-x86_64-cpython-39/pointnet2_ops/_ext-src/include
copying pointnet2_ops/_ext-src/include/ball_query.h -> build/lib.linux-x86_64-cpython-39/pointnet2_ops/_ext-src/include
copying pointnet2_ops/_ext-src/include/cuda_utils.h -> build/lib.linux-x86_64-cpython-39/pointnet2_ops/_ext-src/include
copying pointnet2_ops/_ext-src/include/group_points.h -> build/lib.linux-x86_64-cpython-39/pointnet2_ops/_ext-src/include
copying pointnet2_ops/_ext-src/include/interpolate.h -> build/lib.linux-x86_64-cpython-39/pointnet2_ops/_ext-src/include
copying pointnet2_ops/_ext-src/include/sampling.h -> build/lib.linux-x86_64-cpython-39/pointnet2_ops/_ext-src/include
copying pointnet2_ops/_ext-src/include/utils.h -> build/lib.linux-x86_64-cpython-39/pointnet2_ops/_ext-src/include
creating build/lib.linux-x86_64-cpython-39/pointnet2_ops/_ext-src/src
copying pointnet2_ops/_ext-src/src/ball_query.cpp -> build/lib.linux-x86_64-cpython-39/pointnet2_ops/_ext-src/src
copying pointnet2_ops/_ext-src/src/ball_query_gpu.cu -> build/lib.linux-x86_64-cpython-39/pointnet2_ops/_ext-src/src
copying pointnet2_ops/_ext-src/src/bindings.cpp -> build/lib.linux-x86_64-cpython-39/pointnet2_ops/_ext-src/src
copying pointnet2_ops/_ext-src/src/group_points.cpp -> build/lib.linux-x86_64-cpython-39/pointnet2_ops/_ext-src/src
copying pointnet2_ops/_ext-src/src/group_points_gpu.cu -> build/lib.linux-x86_64-cpython-39/pointnet2_ops/_ext-src/src
copying pointnet2_ops/_ext-src/src/interpolate.cpp -> build/lib.linux-x86_64-cpython-39/pointnet2_ops/_ext-src/src
copying pointnet2_ops/_ext-src/src/interpolate_gpu.cu -> build/lib.linux-x86_64-cpython-39/pointnet2_ops/_ext-src/src
copying pointnet2_ops/_ext-src/src/sampling.cpp -> build/lib.linux-x86_64-cpython-39/pointnet2_ops/_ext-src/src
copying pointnet2_ops/_ext-src/src/sampling_gpu.cu -> build/lib.linux-x86_64-cpython-39/pointnet2_ops/_ext-src/src
running build_ext
building 'pointnet2_ops._ext' extension
creating /tmp/pip-install-4cxg772c/pointnet2-ops_88c1d8c48d974f3fbab744197ca37a19/pointnet2_ops_lib/build/temp.linux-x86_64-cpython-39
creating /tmp/pip-install-4cxg772c/pointnet2-ops_88c1d8c48d974f3fbab744197ca37a19/pointnet2_ops_lib/build/temp.linux-x86_64-cpython-39/pointnet2_ops
creating /tmp/pip-install-4cxg772c/pointnet2-ops_88c1d8c48d974f3fbab744197ca37a19/pointnet2_ops_lib/build/temp.linux-x86_64-cpython-39/pointnet2_ops/
_ext-src
creating /tmp/pip-install-4cxg772c/pointnet2-ops_88c1d8c48d974f3fbab744197ca37a19/pointnet2_ops_lib/build/temp.linux-x86_64-cpython-39/pointnet2_ops/
_ext-src/src
Emitting ninja build file /tmp/pip-install-4cxg772c/pointnet2-ops_88c1d8c48d974f3fbab744197ca37a19/pointnet2_ops_lib/build/temp.linux-x86_64-cpython-
39/build.ninja...
Compiling objects...
Allowing ninja to set a default number of workers... (overridable by setting the environment variable MAX_JOBS=N)
1.11.1.git.kitware.jobserver-1
g++ -pthread -B /home/lxy/miniconda3/envs/pointmamba/compiler_compat -shared -Wl,--allow-shlib-undefined -Wl,-rpath,/home/lxy/miniconda3/envs/pointma
mba/lib -Wl,-rpath-link,/home/lxy/miniconda3/envs/pointmamba/lib -L/home/lxy/miniconda3/envs/pointmamba/lib -Wl,--allow-shlib-undefined -Wl,-rpath,/home/lx
y/miniconda3/envs/pointmamba/lib -Wl,-rpath-link,/home/lxy/miniconda3/envs/pointmamba/lib -L/home/lxy/miniconda3/envs/pointmamba/lib /tmp/pip-install-4cxg7
72c/pointnet2-ops_88c1d8c48d974f3fbab744197ca37a19/pointnet2_ops_lib/build/temp.linux-x86_64-cpython-39/pointnet2_ops/_ext-src/src/ball_query.o /tmp/pip-in
stall-4cxg772c/pointnet2-ops_88c1d8c48d974f3fbab744197ca37a19/pointnet2_ops_lib/build/temp.linux-x86_64-cpython-39/pointnet2_ops/_ext-src/src/ball_query_gp
u.o /tmp/pip-install-4cxg772c/pointnet2-ops_88c1d8c48d974f3fbab744197ca37a19/pointnet2_ops_lib/build/temp.linux-x86_64-cpython-39/pointnet2_ops/_ext-src/sr
c/bindings.o /tmp/pip-install-4cxg772c/pointnet2-ops_88c1d8c48d974f3fbab744197ca37a19/pointnet2_ops_lib/build/temp.linux-x86_64-cpython-39/pointnet2_ops/_e
xt-src/src/group_points.o /tmp/pip-install-4cxg772c/pointnet2-ops_88c1d8c48d974f3fbab744197ca37a19/pointnet2_ops_lib/build/temp.linux-x86_64-cpython-39/poi
ntnet2_ops/ext-src/src/group_points_gpu.o /tmp/pip-install-4cxg772c/pointnet2-ops_88c1d8c48d974f3fbab744197ca37a19/pointnet2_ops_lib/build/temp.linux-x86
64-cpython-39/pointnet2_ops/_ext-src/src/interpolate.o /tmp/pip-install-4cxg772c/pointnet2-ops_88c1d8c48d974f3fbab744197ca37a19/pointnet2_ops_lib/build/tem
p.linux-x86_64-cpython-39/pointnet2_ops/_ext-src/src/interpolate_gpu.o /tmp/pip-install-4cxg772c/pointnet2-ops_88c1d8c48d974f3fbab744197ca37a19/pointnet2_o
ps_lib/build/temp.linux-x86_64-cpython-39/pointnet2_ops/_ext-src/src/sampling.o /tmp/pip-install-4cxg772c/pointnet2-ops_88c1d8c48d974f3fbab744197ca37a19/po
intnet2_ops_lib/build/temp.linux-x86_64-cpython-39/pointnet2_ops/_ext-src/src/sampling_gpu.o -L/home/lxy/miniconda3/envs/pointmamba/lib/python3.9/site-pack
ages/torch/lib -L/usr/local/cuda-11.7/lib64 -lc10 -ltorch -ltorch_cpu -ltorch_python -lcudart -lc10_cuda -ltorch_cuda_cu -ltorch_cuda_cpp -o build/lib.linu
x-x86_64-cpython-39/pointnet2_ops/_ext.cpython-39-x86_64-linux-gnu.so
g++: error: /tmp/pip-install-4cxg772c/pointnet2-ops_88c1d8c48d974f3fbab744197ca37a19/pointnet2_ops_lib/build/temp.linux-x86_64-cpython-39/pointnet2_o
ps/_ext-src/src/ball_query.o: 没有那个文件或目录
g++: error: /tmp/pip-install-4cxg772c/pointnet2-ops_88c1d8c48d974f3fbab744197ca37a19/pointnet2_ops_lib/build/temp.linux-x86_64-cpython-39/pointnet2_o
ps/_ext-src/src/ball_query_gpu.o: 没有那个文件或目录
g++: error: /tmp/pip-install-4cxg772c/pointnet2-ops_88c1d8c48d974f3fbab744197ca37a19/pointnet2_ops_lib/build/temp.linux-x86_64-cpython-39/pointnet2_o
ps/_ext-src/src/bindings.o: 没有那个文件或目录
g++: error: /tmp/pip-install-4cxg772c/pointnet2-ops_88c1d8c48d974f3fbab744197ca37a19/pointnet2_ops_lib/build/temp.linux-x86_64-cpython-39/pointnet2_o
ps/_ext-src/src/group_points.o: 没有那个文件或目录
g++: error: /tmp/pip-install-4cxg772c/pointnet2-ops_88c1d8c48d974f3fbab744197ca37a19/pointnet2_ops_lib/build/temp.linux-x86_64-cpython-39/pointnet2_o
ps/_ext-src/src/group_points_gpu.o: 没有那个文件或目录
g++: error: /tmp/pip-install-4cxg772c/pointnet2-ops_88c1d8c48d974f3fbab744197ca37a19/pointnet2_ops_lib/build/temp.linux-x86_64-cpython-39/pointnet2_o
ps/_ext-src/src/interpolate.o: 没有那个文件或目录
g++: error: /tmp/pip-install-4cxg772c/pointnet2-ops_88c1d8c48d974f3fbab744197ca37a19/pointnet2_ops_lib/build/temp.linux-x86_64-cpython-39/pointnet2_o
ps/_ext-src/src/interpolate_gpu.o: 没有那个文件或目录
g++: error: /tmp/pip-install-4cxg772c/pointnet2-ops_88c1d8c48d974f3fbab744197ca37a19/pointnet2_ops_lib/build/temp.linux-x86_64-cpython-39/pointnet2_o
ps/_ext-src/src/sampling.o: 没有那个文件或目录
g++: error: /tmp/pip-install-4cxg772c/pointnet2-ops_88c1d8c48d974f3fbab744197ca37a19/pointnet2_ops_lib/build/temp.linux-x86_64-cpython-39/pointnet2_o
ps/_ext-src/src/sampling_gpu.o: 没有那个文件或目录
error: command '/usr/bin/g++' failed with exit code 1
[end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for pointnet2_ops
Running setup.py clean for pointnet2_ops
error: subprocess-exited-with-error

× python setup.py clean did not run successfully.
│ exit code: 1
╰─> [6 lines of output]
Traceback (most recent call last):
File "", line 2, in
File "", line 34, in
File "/tmp/pip-install-4cxg772c/pointnet2-ops_88c1d8c48d974f3fbab744197ca37a19/pointnet2_ops_lib/setup.py", line 17, in
exec(open(osp.join("pointnet2_ops", "_version.py")).read())
FileNotFoundError: [Errno 2] No such file or directory: 'pointnet2_ops/_version.py'
[end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed cleaning build dir for pointnet2_ops
Failed to build pointnet2_ops
ERROR: Could not build wheels for pointnet2_ops, which is required to install pyproject.toml-based projects

How can I figure out this problem, I will be very grateful for your reply.

Some questions about FLOPs calculation

Hi, I am very interested in your outstanding work, thank you for sharing!
I have some questions I'd like to consult with you while I was reproducing this work. In the process of calculating FLOPs, I noticed that you seemed to have used the 'calculate_flops' method from the 'calflops' library, but then you commented it out. The FLOPs calculated using this part of the code are abnormally large (which seems to be incorrect, and this error is likely due to my oversight). I would like to ask how you calculate FLOPs, especially the FLOPs for the segmentation part.

GPU not being utilized

Hello:

Thank you for your research and assistance.
Why is my GPU not being fully utilized and only used at 8%?

The question of pre-training accuracy

I first ran the classification task of ModelNet40 training-from-scratch in pointmamba on four 3080Ti, and selected the your pretrain.pth file to run the train from pre-trained classification of ModelNet40. All these are implemented in accordance with the parameters and steps described in the paper, but the final classification accuracy is only 93.0713%, while the best classification accuracy mentioned in the paper is 93.6%.We ran it many times(pic 1 with voting and pic 2,3,4 without voting) I have tested other classification and segmentation tasks, and the results obtained in accordance with the parameters in the paper have decreased by about 1-4 percentage points compared with those in the paper. I wonder if this is a problem or if the model parameters in the article are not updated in real time?
1
2
3
4

update of the code

It seems that the current repository maintains the old codes. Any plans for releasing the codes of the new updates? Very appreciate it!

windows reproduce

Do you conduct experiments on Windows? If I need to reproduce the experiments on Windows, what modifications are necessary?

A question about reported experimental results

Hi, your work is excellent, but I have a question about the reported experimental results.
In the item "Training from scratch" in the Table 2 in your paper, according to my understanding, the architecture of "Transformer" and "Point-MAE" should be consistent, but why are there two different experimental results?

Trying to backward through the graph a second time

"Why does it give the error 'Trying to backward through the graph a second time' at the position xyz1, xyz2, idx1, idx2 = ctx.saved_tensors after running? Is there something wrong with my setup? Could this be related to the versions of Chamfer Distance and EMD installed?"

A problem with open3d version

A problem occurs when installing requirements.txt

ERROR: Could not find a version that satisfies the requirement open3d==1.10.0 (from versions: 0.14.1, 0.15.2, 0.16.0, 0.17.0, 0.18.0)
ERROR: No matching distribution found for open3d==1.10.0

OS: Ubuntu 18.04
python version: 3.9 (as required)
torch and cuda toolkit version also satisfy requirements.

So where can I get open3d 1.10.0? I only found version 0.18.0 on its official website.

about the ModelNet40 Dataset

Thank you for your great work.
When I prepare the ModelNet40 Dataset, I follow the instructions to download the processed data from Point-BERT repo, nut only the modelnet40_train_8192pts_fps.dat、 modelnet40_test_8192pts_fps.dat are included, where to download the txt files in the instructions :

image

关于部件分割和分类任务中的特征最大值池化问题

作者您好,感谢你们开源的好工作。
对于下面的代码我有点疑问,面对经过多层mamba之后的特征矩阵(B,N,C),分类是对N进行了最大值池化,变成了(B,1,C)这个我可以理解,但是部件分割代码变成了对C进行了最大值(平均值)池化,变成了(B,N,1),请问这个怎么理解呢?
image

Serialization / Hilbert ordering.

Hello does the current code-base have code for imposing a specific order and then serializing it? If no, will you be uploading it? If yes, I can't find it; in fact I think

choice = np.random.choice(len(seg), self.npoints, replace=True)
# resample
point_set = point_set[choice, :]
seg = seg[choice]

at line 155 in ./part_segmentation/dataset.py effectively randomizes the order of the points (which I guess might work, but is not what the paper reports).

Thank you!

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.