Giter Club home page Giter Club logo

pnf's Introduction

Polynomial Neural Fields for Subband Decomposition and Manipulation

Pytorch implementation for the NeurIPS 2022 paper:

Polynomial Neural Fields for Subband Decomposition and Manipulation

Guandao Yang*, Sagie Benaim*, Varun Jampani, Kyle Genova, Jonathan T. Barron, Thomas Funkhouser, Bharath Hariharan, Serge Belongie (* Equal contribution.)

Teaser

Introduction

Neural fields have emerged as a new paradigm for representing signals, thanks to their ability to do it compactly while being easy to optimize. In most applications, however, neural fields are treated like a black box, which precludes many signal manipulation tasks. In this paper, we propose a new class of neural fields called basis-encoded polynomial neural fields (PNFs). The key advantage of a PNF is that it can represent a signal as a composition of a number of manipulable and interpretable components without losing the merits of neural fields representation. We develop a general theoretical framework to analyze and design PNFs. We use this framework to design Fourier PNFs, which match state-of-the-art performance in signal representation tasks that use neural fields. In addition, we empirically demonstrate that Fourier PNFs enable signal manipulation applications such as texture transfer and scale-space interpolation.

Installation

This repository provides a Anaconda environment, and requires NVIDIA GPU to run the optimization routine. The environment can be set-up using the following commands:

conda env create -f environment.yml
conda activate PNF

Try Fitting PNF on Camera Men!

python train.py configs/camera_PNF_FF.yaml

Citation

If you find our paper or code useful, please cite us:

@inproceedings{yang2022pnf,
  title={Polynomial Neural Fields for Subband Decomposition and Manipulation},
  author={Yang, Guandao and Benaim, Sagie and Jampani, Varun and Genova, Kyle and Barron, Jonathan and Funkhouser, Thomas and Hariharan, Bharath and Belongie, Serge},
  booktitle={Thirty-Sixth Conference on Neural Information Processing Systems},
  year={2022}
}

Acknowledgement

This research was supported by the Pioneer Centre for AI, DNRF grant number P1. Guandao’s PhD was supported in part by research gifts from Google, Intel, and Magic Leap. Experiments are supported in part by Google clouds platform and GPUs donated by NVIDIA.

pnf's People

Contributors

stevenygd 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

Watchers

 avatar  avatar  avatar  avatar

pnf's Issues

Missing code.

Hello dear authors,

Thank you for open sourcing your implementation.
I am in the process or trying to run your code. I however discovered that there are many imports of packages that are not present in the code. in some instances the import is being made in the same file.
Below are a few examples:

file: ./trainers/overfit_img.py

from trainers.base_trainer import BaseTrainer from trainers.utils.utils import get_opt, set_random_seed from trainers.utils.vis_utils import make_2d_grid, compute_psnr, compute_ssim, compute_fft from nerf_utils import clip_styler_utils from nerf_utils.loss_functions import CLIPLoss from CLIP import clip from nerf_utils.loss_functions import get_style_model_and_losses, image_loader

file: ./datasets/bacon_single_image_datasets.py

from datasets.single_img_datasets import init_np_seed

In both cases, imports are being attempted from packages that are non-existent in the code.

Could you please guide me on how i might go about solving this issue ?
Thank you.

Obtaining all subbands

Hello Dear Authors.

Thanks for the Amazing work !!!.

I am interested in obtaining all the subbands for all the scales.
For example for 8 subbands and 4 scales. I am interested in obtaining the corresponding 32 images (8x4)

Could you guide me on how I might get to do this?

Thank you.
@stevenygd
@sagiebenaim

Are radius and angles trainable?

First of all, thank you for sharing the code!
I read through the OpenReivew posts and I noticed that only the network weights should be optimized. All other parameters such as the initialization schema of the basis encoding function are considered hyper-parameters. However, I see in your code

self.radius = nn.Parameter(

that the angles and radius are configured as trainable parameters. Will them be optimized during training? If so, how can you guarantee band limits?

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.