Skip to content

Latest commit

 

History

History
68 lines (44 loc) · 3.84 KB

README.md

File metadata and controls

68 lines (44 loc) · 3.84 KB

Deep Decomposition Network (DDN) for inverse imaging problems

This is the PyTorch implementation of ECCV'20 paper:

Deep Decomposition Network for Inverse Imaging Problems.

By Dongdong Chen, Mike E. Davies.

The University of Edinburgh, UK.

Table of Contents

  1. Keywords
  2. Abstract
  3. Motivation
  4. Requirement
  5. Usage
  6. Citation

Keywords

Inverse problem, Deep learning, Physics consistence, Range-Nullspace decomposition

Abstract

Deep learning is emerging as a new paradigm for solving inverse imaging problems. However, the deep learning methods often lack the assurance of traditional physics-based methods due to the lack of physical information considerations in neural network training and deploying. The appropriate supervision and explicit calibration by the information of the physic model can enhance the neural network learning and its practical performance. In this paper, inspired by the geometry that data can be decomposed by two components from the null-space of the forward operator and the range space of its pseudo-inverse, we train neural networks to learn the two components and therefore learn the decomposition, i.e., we explicitly reformulate the neural network layers as learning range-nullspace decomposition functions with reference to the layer inputs, instead of learning unreferenced functions. We empirically show that the proposed framework demonstrates superior performance over recent deep residual learning, unrolled learning and nullspace learning on tasks including compressed sensing medical imaging and natural image super-resolution.

Motivation

Inverse problem:

equation

range-nullspace decomposition of data:

equation

illustration:

alt text

deep decomposition network (DDN) using cascade architecture

alt text

performance (psnr) in the super-resolution (SR, 2x noise_sigma=0.1) task

alt text

Requirement

  1. PyTorch >=1.0
  2. CUDA >=8.5

Usage

  1. download trained model used in the SR examples.
  2. run sr_test.py to test a pre-trained DDN for the SR task by which predict the reconstruction of x, recovered range component Pr(x) and nullspace component Pn(x).
  3. run sr_train.py to train a new DDN for the SR task. The dataset needs to be specified manually.
  4. the neura network architecture of DDN is defined in network_arch.py
  5. the forward and pseudo-inverse operators are implemented in operators.py
  6. note: the Magnetic Resonance Fingerprinting (MRF) data was from a partner company and we are restricted from sharing. Users need to specify their own dataset. Our code can be flexibly transferred or directly used on other customized MRF dataset. Please refer the forward/adjoint operators for MRF dataset in another project.

Citation

@inproceedings{chen2020decomposition,
	author = {Chen, Dongdong and Davies, Mike E},
	title = {Deep Decomposition Learning for Inverse Imaging Problems},
	booktitle={Proceedings of the European Conference on Computer Vision (ECCV)},
	year = {2020}
}