diviswen / pmp-net Goto Github PK
View Code? Open in Web Editor NEWLicense: MIT License
License: MIT License
Hello, thank you for sharing the code, I would like to ask what code should be run in the sampling task on the point cloud, is there any special operation
Hi has anyone been able to train PMP-Net on their own custom dataset? If so, which categories and how well did it perform? Which part of the code needs to be modified? I want to train it to do reconstruction of dense pointclouds of individual trees. Do you think it will work well?
Hi, i do not understand how is generated a 16384 point cloud in output during the inference. The input point cloud is repeated 8 times and then fed into the network as [8, 2048,3] and then obtaining 8 different outputs they are reshaped to obtain a 16384 point cloud, if i have understood correctly. By running the line partial = random_subsample(partial.repeat((1, 8, 1)).reshape(-1, 16384, 3)) i get a partial point cloud of size [1,2048,3] instead of [b*8, 2048,3]. So, the output of the network is still 2048. Can you give me further explanation about this?
Thank you in advance.
Does anybody encounter the problem mentioned above while running this commans: python main_c3d.py
thank you for your amazing work!
Could you please tell me your net's metrics on the PCN of CDL2 ?
thank you very much
Hello, the paper is excellent but there is a problem. When i run 'python main_c3d.py' in PMPplus-Jittor, it shows:
Traceback (most recent call last):
File "main_c3d.py", line 59, in
main()
File "main_c3d.py", line 43, in main
train_net(cfg)
File "/home/lzs/ssd_1t/huzijian/PMP-Net/PMPPlus-Jittor/core/train_c3d.py", line 102, in train_net
loss_item = loss.item()
RuntimeError: Wrong inputs arguments, Please refer to examples(help(jt.item)).
Types of your inputs are:
self = Var,
args = (),
The function declarations are:
ItemData item()
Failed reason:[f 0530 21:48:53.942659 88 helper_cuda.h:128] CUDA error at /home/lzs/anaconda3/envs/pmp/lib/python3.7/site-packages/jittor/src/mem/allocator.cc:111 code=77( cudaErrorIllegalAddress ) cudaMemcpy(a.ptr, var->mem_ptr, var->size, cudaMemcpyDeviceToHost)
[e 0530 21:48:54.275588 88 helper_cuda.h:117] Peek CUDA error at /home/lzs/anaconda3/envs/pmp/lib/python3.7/site-packages/jittor/src/mem/allocator/cuda_dual_allocator.h:101 code=77( cudaErrorIllegalAddress ) _cudaLaunchHostFunc(0, &to_free_allocation, 0)
what should i do?
Hello author, when I tried to run Python main_pcn.py, there were several files in the dataset that couldn't be opened, and I have the following code:
[Open3D WARNING] Read PCD failed: unable to open file: /home/XD/python_workspace/hgr/PMP-Net main/datasets/train/partial/03636649/ea235afbbaa6fcccf32735686fcd8ec8/00.pcd
[Open3D WARNING] Read PCD failed: unable to open file: /home/XD/python_workspace/hgr/PMP-Net-main/datasets/train/partial/02958343/193c40d30b237b2e6a34aa94ca8a3355/06.pcd
[Open3D WARNING] Read PCD failed: unable to open file: /home/XD/python_workspace/hgr/PMP-Net-main/datasets/train/partial/02691156/d2412f19d33572dc4c3a35cee92bb95b/05.pcd
I do not understand why, please give some pointers, thanks!
I recently find the proposed PMP-Net is an interesting and pioneering work to perform progressive point cloud generation for the cloud completion task. I'd like to conduct the comparison on another dataset, so I've rewritten the dataset, I don't think the code will change much.
However, I encounter a problem when I want to load a saved checkpoint model to perform inference. My training script is based on PMP-Net/core/train_pcn.py
and the inference script is based on PMP-Net/core/inference_pcn.py
.
To reproduce the error, I tried to save the model immediately before starting the training for loop. Then I ran the script with python main_pcn.py --inference
, it could load the checkpoint file but was not able to load the state_dict to the model. The error messages are as follows.
RuntimeError: Error(s) in loading state_dict for DataParallel:
size mismatch for module.step_1.sa_module_1.mlp_conv.0.conv.weight: copying a param with shape torch.Size([64, 6, 1, 1]) from checkpoint, the shape in current model is torch.Size([64, 9, 1, 1]).
size mismatch for module.step_1.fp_module_1.mlp_conv.0.conv.weight: copying a param with shape torch.Size([128, 134, 1]) from checkpoint, the shape in current model is torch.Size([128, 137, 1]).
Any suggestions for this? Many thanks in advance!
Hello, thanks for sharing your code. I want to follow up your work but may not have enough equipment. What is the GPU you are using, and how long is the training time on the two data sets?
Thanks for the great work, I think there is a typo in train_pcn, should use test_pcn.
Traceback (most recent call last):
File "runner.py", line 130, in <module>
CandiModel("PMPNet", loadParallelModel(PMPNet(),"checkpoint/pmpnet.pth") ),
File "runner.py", line 39, in loadParallelModel
print(model.load_state_dict(checkpoint[keyname]))
File "/home/chriskafka/anaconda3/envs/ML/lib/python3.7/site-packages/torch/nn/modules/module.py", line 1483, in load_state_dict
self.__class__.__name__, "\n\t".join(error_msgs)))
RuntimeError: Error(s) in loading state_dict for DataParallel:
size mismatch for module.step_1.sa_module_1.mlp_conv.0.conv.weight: copying a param with shape torch.Size([64, 9, 1, 1]) from checkpoint, the shape in current model is torch.Size([64, 6, 1, 1]).
size mismatch for module.step_1.fp_module_1.mlp_conv.0.conv.weight: copying a param with shape torch.Size([128, 137, 1]) from checkpoint, the shape in current model is torch.Size([128, 134, 1]).
I only test pretrained-model of pcn, and turns out failure. Would you mind checking out if the model you provide on Google drive is right? thanks a lot.
You said in section 3.4 "In experiments, we follow the simplified algorithm in [48] to estimate an approximation of φ.", but you did not use EMD as the loss function, but used PMD to minimize the total moving distance. I don't quite understand the role of this bijective function φ, I hope you can explain it, thanks.
Hi, It's a great paper and I'm inspired a lot. But I am confused that why the bijection is unique when the sum of point displayment reaches the minimum value. I don't kown why the correspondence between input and targrt point clouds is unique, and I find it is not unique. Like the following picture, a cube, x1 x2 move to x1' x2' , there are midpoint of one line, a) x1 to x1' and x2 to x2' b) x1 to x2' and x2 to x1' are both the minimum. Maybe I do not understand the EMD, Thank you very much.
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.