Code Monkey home page Code Monkey logo

ddsl's Introduction

DDSL: Deep Differential Simplex Layer for Neural Networks

DDSL_teaser

Introduction

In this project, we present a novel neural network layer that performs differentiable rasterization of arbitrary simplex-mesh-based geometrical signals (e.g., point clouds, line mesh, triangular mesh, tetrahedron mesh, polygon and polyhedron) of arbitrary dimensions. We further provide examples of incorporating the DDSL into neural networks for tasks such as polygonal image segmentation and neural shape optimization (for MNIST digits and airfoils).

Our deep learning code base is written using PyTorch 1.0 in Python 3, in conjunction with standard Python packages such as Numpy. PyTorch version > 1.0 is required.

Using the DDSL layer for your applications

We provide an efficient natively PyTorch-based implementation of the DDSL. Detailed documentation for APIs can be found in ddsl/ddsl.py. For examples on using the DDSL implementation for rasterizing a given input mesh, refer to the jupyter notebooks in the folder examples.

Experiments

To replicate the experiments in our paper, please refer to codes in the experiments folder. Detailed instructions for each experiment can be found in the corresponding directories.

Related Projects

This code base contains code for the two projects below. The DDSL layer is a differentiable version for the one outlined in the ealier paper.

Cite

Please cite our work if you find it helpful.

@InProceedings{Jiang_2019_ICCV,
author = {Jiang, Chiyu "Max" and Lansigan, Dana and Marcus, Philip and Niessner, Matthias},
title = {DDSL: Deep Differentiable Simplex Layer for Learning Geometric Signals},
booktitle = {The IEEE International Conference on Computer Vision (ICCV)},
month = {October},
year = {2019}
}

@inproceedings{jiang2018convolutional,
title={Convolutional Neural Networks on Non-uniform Geometrical Signals Using Euclidean Spectral Transformation},
author={Chiyu Max Jiang and Dequan Wang and Jingwei Huang and Philip Marcus and Matthias Niessner},
booktitle={International Conference on Learning Representations},
year={2019},
url={https://openreview.net/forum?id=B1G5ViAqFm},
}

ddsl's People

Contributors

maxjiang93 avatar marwahaha avatar luna983 avatar

Stargazers

CSuperlei avatar zhiyongzhou avatar Sacha Ichbiah avatar Zexian Huang avatar Hongwei Yi avatar  avatar Zeyu Huang avatar  avatar Ni Lao avatar  avatar Nikita avatar Tzu-Mao Li avatar Jiahui Huang avatar  avatar Yujie Yuan avatar Jie Yang avatar Pratik avatar  avatar  avatar Snow avatar Baihan Lin avatar  avatar Yunfei Fu avatar Pradyumna Reddy Chinthala avatar Elliott Zheng avatar Yu Zhang avatar Qingnan Fan avatar Fei Xia avatar Chenming Wu avatar Fei avatar yscbm avatar  avatar Michael avatar Ishan Khatri avatar Dzmitry Pranchuk avatar  avatar Chin-Yun Yu avatar Li Su avatar  avatar Tong He avatar Gates Bin avatar thinkpoet avatar  avatar ryenchen avatar 爱可可-爱生活 avatar Benjamin Wiberg avatar Jingwei Huang avatar Yiming Xie avatar Mihai Bujanca avatar Charles Yang avatar  avatar Jiaming Sun avatar  avatar Jiancheng avatar

Watchers

James Cloos avatar Jiaming Sun avatar Snow avatar  avatar  avatar  avatar paper2code - bot avatar

ddsl's Issues

How to nest ddsl after the output of one network by batch?

I train one network and the output is a set of points, which are ordered. I want to use DDSL to connnect the points to line and make it differentiable. I read the code in experiments/exp2_mninst/loader.py. The input is one sample. I want to know that how to nest ddsl after the output? Thank very much.

where are the "detailed instructions"?

The main README.md says:

To replicate the experiments in our paper, please refer to codes in the experiments folder. Detailed instructions for each experiment can be found in

But cuts off suddenly! Do you mean the README.md of each experiment folder?

add DDSL to pip

it would be great to depend on this code, like pip install ddsl.

I encouter the nan out

When I use the examples/test.py to test the ddsl_phys with our data, I encounter the nan out. I don't find out the question. I would appreciate him for helping me to point out the question.

The experiment set is as following. I also use one sample of the mnist dataset, it is ok.
t=(1,1)
j=1
the V is [[0.4629, 0.2129],
[0.4512, 0.2090],
[0.4395, 0.2090],
[0.4277, 0.2148],
[0.4160, 0.2188],
[0.4043, 0.2266],
[0.3945, 0.2344],
[0.3867, 0.2441],
[0.3789, 0.2539],
[0.3711, 0.2637],
[0.3652, 0.2754],
[0.3613, 0.2871],
[0.3574, 0.2988],
[0.3535, 0.3125],
[0.3516, 0.3242],
[0.3496, 0.3359],
[0.3477, 0.3496],
[0.3477, 0.3613],
[0.3477, 0.3750],
[0.3477, 0.3867],
[0.3477, 0.4004],
[0.3496, 0.4121],
[0.3516, 0.4258],
[0.3535, 0.4375],
[0.3555, 0.4492],
[0.3555, 0.4629],
[0.3574, 0.4746],
[0.3574, 0.4863],
[0.3574, 0.5000],
[0.3555, 0.5117],
[0.3535, 0.5234],
[0.3496, 0.5352],
[0.3477, 0.5469],
[0.3438, 0.5586],
[0.3398, 0.5703],
[0.3359, 0.5840],
[0.3340, 0.5957],
[0.3301, 0.6074],
[0.3281, 0.6191],
[0.3262, 0.6328],
[0.3242, 0.6445],
[0.3242, 0.6582],
[0.3242, 0.6699],
[0.3262, 0.6836],
[0.3262, 0.6953],
[0.3281, 0.7090],
[0.3281, 0.7207],
[0.3301, 0.7344],
[0.3320, 0.7480],
[0.3340, 0.7617]]

E =[[ 0, 1],
[ 1, 2],
[ 2, 3],
[ 3, 4],
[ 4, 5],
[ 5, 6],
[ 6, 7],
[ 7, 8],
[ 8, 9],
[ 9, 10],
[10, 11],
[11, 12],
[12, 13],
[13, 14],
[14, 15],
[15, 16],
[16, 17],
[17, 18],
[18, 19],
[19, 20],
[20, 21],
[21, 22],
[22, 23],
[23, 24],
[24, 25],
[25, 26],
[26, 27],
[27, 28],
[28, 29],
[29, 30],
[30, 31],
[31, 32],
[32, 33],
[33, 34],
[34, 35],
[35, 36],
[36, 37],
[37, 38],
[38, 39],
[39, 40],
[40, 41],
[41, 42],
[42, 43],
[43, 44],
[44, 45],
[45, 46],
[46, 47],
[47, 48],
[48, 49]]

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.