gdma96 / deepinv

PyTorch library for solving imaging inverse problems using deep learning

Home Page:https://deepinv.github.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

deepinv logo

Test Status Docs Status codecov Black

Introduction

Deep Inverse is an open-source pytorch library for solving imaging inverse problems using deep learning. The goal of deepinv is to accelerate the development of deep learning based methods for imaging inverse problems, by combining popular learning-based reconstruction approaches in a common and simplified framework, standarizing forward imaging models and simplifying the creation of imaging datasets.

With deepinv you can:

deepinv schematic

Documentation

Read the documentation and examples at https://deepinv.github.io.

Install

To install the latest stable release of deepinv, you can simply do:

pip install deepinv

You can also install the latest version of deepinv directly from github:

pip install git+https://github.com/deepinv/deepinv.git#egg=deepinv

Getting Started

Try out the following plug-and-play image inpainting example:

import deepinv as dinv
from deepinv.utils import load_url_image

url = ("https://mycore.core-cloud.net/index.php/s/9EzDqcJxQUJKYul/"
        "download?path=%2Fdatasets&files=cameraman.png")
x = load_url_image(url=url, img_size=512, grayscale=True, device='cpu')

physics = dinv.physics.Inpainting((1, 512, 512), mask = 0.5, \
                                   noise_model=dinv.physics.GaussianNoise(sigma=0.01))

data_fidelity = dinv.optim.data_fidelity.L2()
prior = dinv.optim.prior.PnP(denoiser=dinv.models.MedianFilter())
model = dinv.optim.optim_builder(iteration="HQS", prior=prior, data_fidelity=data_fidelity, \
                                 params_algo={"stepsize": 1.0, "g_param": 0.1, "lambda": 2.})
y = physics(x)
x_hat = model(y, physics)
dinv.utils.plot([x, y, x_hat], ["signal", "measurement", "estimate"], rescale_mode='clip')

Also try out one of the examples to get started.

Contributing

DeepInverse is a community-driven project and welcomes contributions of all forms. We are ultimately aiming for a comprehensive library of inverse problems and deep learning, and we need your help to get there! The preferred way to contribute to deepinv is to fork the main repository on GitHub, then submit a "Pull Request" (PR). See our contributing guide for more details.

Finding help

The recommended way to get in touch with the developers is to open an issue on the issue tracker.

About

PyTorch library for solving imaging inverse problems using deep learning

https://deepinv.github.io

License:BSD 3-Clause "New" or "Revised" License


Languages

Language:Python 100.0%