/bayesian-inverse-graphics

Bayesian Inverse Graphics for Few-Shot Concept Learning

Primary LanguagePythonMIT LicenseMIT

Bayesian Inverse Graphics (BIG)

This repository contains the code for the paper "Bayesian Inverse Graphics for Few-Shot Concept Learning"

TLDR: probabilistic programming + differentiable rendering = minimal-data learning

Modules

All modules are implemented in jax

  • jaynes Probabilistic Programming Library (Automatic Bayesian Inference).
  • tamayo Differentiable Rendering Library.
  • lecun Convnets.

Run

Setup

  1. Install requirements e.g. pip install -r requirements.txt
  2. Download the datasets (fscvlr.zip) and weights (VGG16.eqx) from here.
  3. Move fsclvr.zip inside repository bayesian-inverse-graphics/.
  4. Move VGG16.eqx inside repository bayesian-inverse-graphics/.
  5. Extract datasets unzip fsclvr.zip

Training

  1. Run python optimize_scene.py
  2. Run python extract_features.py
  3. Run python optimize_bijectors.py

Test

  1. Run python learn_concept.py --concept 0

Funding

This project was developed in the Robotics Group of the University of Bremen, together with the Robotics Innovation Center of the German Research Center for Artificial Intelligence (DFKI) in Bremen. It has been funded by the German Federal Ministry for Economic Affairs and Energy and the German Aerospace Center (DLR), in the PhysWM project.