Learned Initializations for Optimizing Coordinate-Based Neural Representations

Overview

Learned Initializations for Optimizing Coordinate-Based Neural Representations

Project Page | Paper

Open Demo in Colab

Matthew Tancik*1, Ben Mildenhall*1, Terrance Wang1, Divi Schmidt1, Pratul P. Srinivasan2, Jonathan T. Barron2, Ren Ng1

1UC Berkeley, 2Google Research *denotes equal contribution

Abstract

Teaser Image

Coordinate-based neural representations have shown significant promise as an alternative to discrete, array-based representations for complex low dimensional signals. However, optimizing a coordinate-based network from randomly initialized weights for each new signal is inefficient. We propose applying standard meta-learning algorithms to learn the initial weight parameters for these fully-connected networks based on the underlying class of signals being represented (e.g., images of faces or 3D models of chairs). Despite requiring only a minor change in implementation, using these learned initial weights enables faster convergence during optimization and can serve as a strong prior over the signal class being modeled, resulting in better generalization when only partial observations of a given signal are available.

Code

We provide a demo IPython notebook as a simple reference for the core idea. Scripts for the different tasks are located in the Experiments directory.

Comments
  • cannot import name 'pytree' from 'jaxlib'

    cannot import name 'pytree' from 'jaxlib'

    Hello everyone, thank you for sharing this experiments for this wonderfull project! Which version of Jax did you use? and could you share the requirements? I am trying to replicate the experiments and, when I download the Jax and jaxlibrary as mentioned on the readme I get this error :/

    opened by danperazzo 8
  • Does original NeRF work in your experiment?

    Does original NeRF work in your experiment?

    Thanks for releasing the JAX based code! I am trying to use your NeRF implementation as a base to implement DietNeRF (in JAX and Haiku). But I noticed your implementation has 2 differences with the original one, as stated in your paper:

    In our view synthesis experiments, we use a simplified NeRF model (simple-NeRF) that maintains the same image supervision and volume render-ing context. Unlike the original NeRF model, we do not feed in the viewing direction and we use a single model in-stead of the two “coarse” and “fine” models used by NeRF.

    Would you mind telling me the motivation behind this simplification?
    (e.g. Is it because the original NeRF didnt work in your setting? or because its easier to implement this in JAX?) Knowing this may help me to debug my DietNeRF implementation in the future. Many thanks!

    opened by riven314 2
  • A bug in phototourism.ipynb

    A bug in phototourism.ipynb

    in function get_example, you have:

        if 'train' in split:
            img_idx + 25
        if 'val' in split:
            img_idx + 20
    

    assignment operations are missing. it should be:

        if 'train' in split:
            img_idx += 25
        if 'val' in split:
            img_idx += 20
    
    opened by riven314 2
  • final dists value: small vs large

    final dists value: small vs large

    The phototourism experiment sets the final dists vaule to a very big number, like 1e10: dists = np.concatenate([z_vals[..., 1:] - z_vals[..., :-1], np.broadcast_to([1e10], z_vals[...,:1].shape)], -1)

    On the other hand, the shapenet experiment uses a small number 1e-3 for the final dists: dists = np.concatenate([z_vals[..., 1:] - z_vals[..., :-1], np.broadcast_to([1e-3], z_vals[...,:1].shape)], -1)

    What does it mean to have a very small or large value for the final dists? As I understand, the scene contents are expected to be bounded between near and far plane. So does it matter what value I set for the final dists?

    Sorry if this is a silly question. I couldn't find an answer after searching through other nerf repos.

    opened by sanowar-raihan 2
  • How to split the dataset for phototoursim experiments?

    How to split the dataset for phototoursim experiments?

    Hi, thanks for the great work! It is really cool to see how simple meta-learning algorithms can be useful for phototourism.

    But I couldn't find any splits file mentioning which images to use for test and validation. How do you make the split for different landmark scenes?

    opened by sanowar-raihan 2
  • issue about Single image view synthesis for ShapeNet

    issue about Single image view synthesis for ShapeNet

    I would like to ask about your experimental part in Single image view synthesis for ShapeNet, you are using only one image in the meta-learning stage under the setting of SV Meta, which means that only one image is used for the whole training process to generate the class(car or chair) 360 degree reconstruction effect for all instances?

    opened by LiXinghui-666 1
  • issue about shapenet data

    issue about shapenet data

    I want to know how some parameters, such as the camera's internal parameters, external parameters, etc., are obtained when processing shapenet datasets

    opened by LiXinghui-666 2
  • PyTorch implementation of NeRF experiments

    PyTorch implementation of NeRF experiments

    opened by sanowar-raihan 0
  • accessible colab for loading learnit weights in official siren pytorch

    accessible colab for loading learnit weights in official siren pytorch

    I created an accessible colab notebook for fitting SIREN on image/video + option to load your learned initializations for image regression, including using them to initialize video fitting. please find here: colab.research.google.com/gist/eyaler/20a9037a3619378b276b2303dadb558d

    opened by eyaler 1
Owner
Matthew Tancik
Matthew Tancik
Code for our CVPR2021 paper coordinate attention

Coordinate Attention for Efficient Mobile Network Design (preprint) This repository is a PyTorch implementation of our coordinate attention (will appe

Qibin (Andrew) Hou 726 Jan 5, 2023
This repository implements and evaluates convolutional networks on the Möbius strip as toy model instantiations of Coordinate Independent Convolutional Networks.

Orientation independent Möbius CNNs This repository implements and evaluates convolutional networks on the Möbius strip as toy model instantiations of

Maurice Weiler 59 Dec 9, 2022
Implementation of Invariant Point Attention, used for coordinate refinement in the structure module of Alphafold2, as a standalone Pytorch module

Invariant Point Attention - Pytorch Implementation of Invariant Point Attention as a standalone module, which was used in the structure module of Alph

Phil Wang 113 Jan 5, 2023
Progressive Coordinate Transforms for Monocular 3D Object Detection

Progressive Coordinate Transforms for Monocular 3D Object Detection This repository is the official implementation of PCT. Introduction In this paper,

null 58 Nov 6, 2022
Image morphing without reference points by applying warp maps and optimizing over them.

Differentiable Morphing Image morphing without reference points by applying warp maps and optimizing over them. Differentiable Morphing is machine lea

Alex K 380 Dec 19, 2022
Adversarial Color Enhancement: Generating Unrestricted Adversarial Images by Optimizing a Color Filter

ACE Please find the preliminary version published at BMVC 2020 in the folder BMVC_version, and its extended journal version in Journal_version. Datase

null 28 Dec 25, 2022
Optimizing DR with hard negatives and achieving SOTA first-stage retrieval performance on TREC DL Track (SIGIR 2021 Full Paper).

Optimizing Dense Retrieval Model Training with Hard Negatives Jingtao Zhan, Jiaxin Mao, Yiqun Liu, Jiafeng Guo, Min Zhang, Shaoping Ma This repo provi

Jingtao Zhan 99 Dec 27, 2022
Minimal PyTorch implementation of Generative Latent Optimization from the paper "Optimizing the Latent Space of Generative Networks"

Minimal PyTorch implementation of Generative Latent Optimization This is a reimplementation of the paper Piotr Bojanowski, Armand Joulin, David Lopez-

Thomas Neumann 117 Nov 27, 2022
Feed forward VQGAN-CLIP model, where the goal is to eliminate the need for optimizing the latent space of VQGAN for each input prompt

Feed forward VQGAN-CLIP model, where the goal is to eliminate the need for optimizing the latent space of VQGAN for each input prompt. This is done by

Mehdi Cherti 135 Dec 30, 2022
⚡️Optimizing einsum functions in NumPy, Tensorflow, Dask, and more with contraction order optimization.

Optimized Einsum Optimized Einsum: A tensor contraction order optimizer Optimized einsum can significantly reduce the overall execution time of einsum

Daniel Smith 653 Dec 30, 2022
PHOTONAI is a high level python API for designing and optimizing machine learning pipelines.

PHOTONAI is a high level python API for designing and optimizing machine learning pipelines. We've created a system in which you can easily select and

Medical Machine Learning Lab - University of Münster 57 Nov 12, 2022
The implementation of "Optimizing Shoulder to Shoulder: A Coordinated Sub-Band Fusion Model for Real-Time Full-Band Speech Enhancement"

SF-Net for fullband SE This is the repo of the manuscript "Optimizing Shoulder to Shoulder: A Coordinated Sub-Band Fusion Model for Real-Time Full-Ban

Guochen Yu 36 Dec 2, 2022
Object detection on multiple datasets with an automatically learned unified label space.

Simple multi-dataset detection An object detector trained on multiple large-scale datasets with a unified label space; Winning solution of E

Xingyi Zhou 407 Dec 30, 2022
Code for Mesh Convolution Using a Learned Kernel Basis

Mesh Convolution This repository contains the implementation (in PyTorch) of the paper FULLY CONVOLUTIONAL MESH AUTOENCODER USING EFFICIENT SPATIALLY

Yi_Zhou 35 Jan 3, 2023
Official implementation of "Accelerating Reinforcement Learning with Learned Skill Priors", Pertsch et al., CoRL 2020

Accelerating Reinforcement Learning with Learned Skill Priors [Project Website] [Paper] Karl Pertsch1, Youngwoon Lee1, Joseph Lim1 1CLVR Lab, Universi

Cognitive Learning for Vision and Robotics (CLVR) lab @ USC 134 Dec 6, 2022
Self-Learned Video Rain Streak Removal: When Cyclic Consistency Meets Temporal Correspondence

In this paper, we address the problem of rain streaks removal in video by developing a self-learned rain streak removal method, which does not require any clean groundtruth images in the training process.

Yang Wenhan 44 Dec 6, 2022
Learned image compression

Overview Pytorch code of our recent work A Unified End-to-End Framework for Efficient Deep Image Compression. We first release the code for Variationa

Jiaheng Liu 163 Dec 4, 2022
Learned Token Pruning for Transformers

LTP: Learned Token Pruning for Transformers Check our paper for more details. Installation We follow the same installation procedure as the original H

Sehoon Kim 52 Dec 29, 2022
[ACMMM 2021 Oral] Enhanced Invertible Encoding for Learned Image Compression

InvCompress Official Pytorch Implementation for "Enhanced Invertible Encoding for Learned Image Compression", ACMMM 2021 (Oral) Figure: Our framework

null 96 Nov 30, 2022