Giter Site home page Giter Site logo

astaka-pe / dual-dmp Goto Github PK

View Code? Open in Web Editor NEW
31.0 2.0 3.0 107.26 MB

Learning Self-prior for Mesh Denoising using Dual Graph Convolutional Networks [ECCV 2022]

Home Page: https://doi.org/10.1007/978-3-031-20062-5_21

Python 100.00%
deep-learning eccv2022 graph-convolutional-network mesh-denoising 3d-models geometry-processing graph-convolutional-networks graph-neural-networks mesh-processing

dual-dmp's Introduction

๐Ÿ”ญ My Interest

  • Computer Vision & Graphics
  • Deep Learning
  • Geometry Processing

For more details, please visit my website.

dual-dmp's People

Contributors

astaka-pe 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

Watchers

 avatar  avatar

dual-dmp's Issues

RuntimeError: cuDNN error: CUDNN_STATUS_EXECUTION_FAILED

Hi, I've run into this error:

Traceback (most recent call last):
  File "main.py", line 112, in <module>
    main()
  File "main.py", line 64, in main
    pos = posnet(dataset)
  File "/opt/conda/envs/ddmp/lib/python3.7/site-packages/torch/nn/modules/module.py", line 727, in _call_impl
    result = self.forward(*input, **kwargs)
  File "/home/jovyan/Dual-DMP/util/networks.py", line 51, in forward
    dx = self.l_relu(self.bn1(self.conv1(z1, edge_index)))
  File "/opt/conda/envs/ddmp/lib/python3.7/site-packages/torch/nn/modules/module.py", line 727, in _call_impl
    result = self.forward(*input, **kwargs)
  File "/opt/conda/envs/ddmp/lib/python3.7/site-packages/torch/nn/modules/batchnorm.py", line 136, in forward
    self.weight, self.bias, bn_training, exponential_average_factor, self.eps)
  File "/opt/conda/envs/ddmp/lib/python3.7/site-packages/torch/nn/functional.py", line 2058, in batch_norm
    training, momentum, eps, torch.backends.cudnn.enabled
RuntimeError: cuDNN error: CUDNN_STATUS_EXECUTION_FAILED

I was wondering if anyone else had a similar issue and if so, what they did to resolve it. Thank you

OOM error when running on own meshes?

Hi, I'm running into a Killed error while training on my own meshes.
For reference, I'm using an A100 80GB nvidia GPU and 64 GB of ram.
My meshes are roughly 50 mb or more, in obj format.
Any ideas why this would be happening? would this code be able to work with a batched dataset loader?

Execution error

This error appears to be a library version issue, however I am using miniconda for administration in a Linux environment. I ran "conda env create -f environment.yml" and "conda activate ddmp" to make sure the ddmp environment was in. Then I executed "python main.py -i . /data/fandisk --k1 3 --k2 0 --k3 3 --k4 4 --k5 2 --bnfloop 5", the following error occurred:

Traceback (most recent call last):
File "./main.py", line 9, in
import util.datamaker as Datamaker
File "/home/ltr/Nworkspace/DeepLearning/Dual-DMP/util/datamaker.py", line 5, in
from torch_geometric.data import Data
File "/home/ltr/miniconda3/envs/ddmp/lib/python3.7/site-packages/torch_geometric/init.py", line 5, in
import torch_geometric.data
File "/home/ltr/miniconda3/envs/ddmp/lib/python3.7/site-packages/torch_geometric/data/init.py", line 1, in
from .data import Data
File "/home/ltr/miniconda3/envs/ddmp/lib/python3.7/site-packages/torch_geometric/data/data.py", line 8, in
from torch_sparse import coalesce, SparseTensor
File "/home/ltr/miniconda3/envs/ddmp/lib/python3.7/site-packages/torch_sparse/init.py", line 15, in
f'{library}_{suffix}', [osp.dirname(file)]).origin)
AttributeError: 'NoneType' object has no attribute 'origin'

Hope you can provide some help, thanks!

Errors. Seems like torch-geometric?

I was running windows10 and torch_sparse was only available in 0.6.8 and 0.6.9 when I was using environment.yml. I didn't know if this had anything to do with it. Then when I was using torch_geometric 1.7.1, Running any command in readme results in the following error:

Traceback (most recent call last):
  File "C:\Ddrive\Papers\Code\3Dual-DMP-main\main4real.py", line 89, in <module>
    main()
  File "C:\Ddrive\Papers\Code\3Dual-DMP-main\main4real.py", line 62, in main
    norm = normnet(dataset)
  File "C:\Ddrive\Programs\Anaconda3\envs\torch191\lib\site-packages\torch\nn\modules\module.py", line 1051, in _call_impl
    return forward_call(*input, **kwargs)
  File "C:\Ddrive\Papers\Code\3Dual-DMP-main\util\networks.py", line 112, in forward
    dx = self.l_relu(self.bn1(self.conv1(z2, edge_index)))
  File "C:\Ddrive\Programs\Anaconda3\envs\torch191\lib\site-packages\torch\nn\modules\module.py", line 1051, in _call_impl
    return forward_call(*input, **kwargs)
  File "C:\Ddrive\Programs\Anaconda3\envs\torch191\lib\site-packages\torch_geometric\nn\conv\gcn_conv.py", line 160, in forward
    edge_index, edge_weight = gcn_norm(  # yapf: disable
  File "C:\Ddrive\Programs\Anaconda3\envs\torch191\lib\site-packages\torch_geometric\nn\conv\gcn_conv.py", line 62, in gcn_norm
    deg = scatter_add(edge_weight, col, dim=0, dim_size=num_nodes)
  File "C:\Ddrive\Programs\Anaconda3\envs\torch191\lib\site-packages\torch_scatter\scatter.py", line 29, in scatter_add
    return scatter_sum(src, index, dim, out, dim_size)
  File "C:\Ddrive\Programs\Anaconda3\envs\torch191\lib\site-packages\torch_scatter\scatter.py", line 21, in scatter_sum
    return out.scatter_add_(dim, index, src)
IndexError: scatter_(): Expected dtype int64 for index.

And the following error was generated when I changed torch_geometirc version to 2.2.0:

Traceback (most recent call last):
  File "C:\Ddrive\Papers\Code\3Dual-DMP-main\main4real.py", line 89, in <module>
    main()
  File "C:\Ddrive\Papers\Code\3Dual-DMP-main\main4real.py", line 62, in main
    norm = normnet(dataset)
  File "C:\Ddrive\Programs\Anaconda3\envs\torch191\lib\site-packages\torch\nn\modules\module.py", line 1051, in _call_impl
    return forward_call(*input, **kwargs)
  File "C:\Ddrive\Papers\Code\3Dual-DMP-main\util\networks.py", line 112, in forward
    dx = self.l_relu(self.bn1(self.conv1(z2, edge_index)))
  File "C:\Ddrive\Programs\Anaconda3\envs\torch191\lib\site-packages\torch\nn\modules\module.py", line 1051, in _call_impl
    return forward_call(*input, **kwargs)
  File "C:\Ddrive\Programs\Anaconda3\envs\torch191\lib\site-packages\torch_geometric\nn\conv\gcn_conv.py", line 176, in forward
    edge_index, edge_weight = gcn_norm(  # yapf: disable
  File "C:\Ddrive\Programs\Anaconda3\envs\torch191\lib\site-packages\torch_geometric\nn\conv\gcn_conv.py", line 61, in gcn_norm
    edge_index, tmp_edge_weight = add_remaining_self_loops(
  File "C:\Ddrive\Programs\Anaconda3\envs\torch191\lib\site-packages\torch_geometric\utils\loop.py", line 298, in add_remaining_self_loops
    loop_attr[edge_index[0][inv_mask]] = edge_attr[inv_mask]
IndexError: tensors used as indices must be long, byte or bool tensors

Real scanned meshes are having trouble with preserving sharp features

Hi,
when I'm using a real scanned mesh, it's becoming very over smoothed. All sharp lines and features are getting removed.
I tried setting the noise level to 0.1 and the step to 5.
I also tried setting number of iterations to 10.
What is the best suggested weights (k1, k2... k5) and bnfloop for a real mesh object, not a synthetic mesh? since these are real they dont have a ground truth.
Thank you

Not able to run on different obj than examples

input : datasets/spec2
pos_lr : 0.01
norm_lr : 0.01
iter : 50
k1 : 3
k2 : 0
k3 : 3
k4 : 4
k5 : 2
grad_crip : 0.8
bnfloop : 5
gpu : 0
Traceback (most recent call last):
File "main4real.py", line 89, in
main()
File "main4real.py", line 37, in main
mesh_dic, dataset = Datamaker.create_dataset(args.input)
File "/content/drive/MyDrive/Colab Notebooks/mesh_denoise/Dual-DMP/util/datamaker.py", line 37, in create_dataset
n_mesh = Mesh(n_file)
File "/content/drive/MyDrive/Colab Notebooks/mesh_denoise/Dual-DMP/util/mesh.py", line 15, in init
self.build_gemm() #self.edges, self.ve
File "/content/drive/MyDrive/Colab Notebooks/mesh_denoise/Dual-DMP/util/mesh.py", line 75, in build_gemm
edge_nb[edge_key][nb_count[edge_key]] = edge2key[faces_edges[(idx + 1) % 3]]
IndexError: list assignment index out of range

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.