luczeng / MotionBlur

Blind deconvolution of motion blur
30 stars 2 forks source link
blind-deconvolution convolutional-neural-networks deblurring deconvolution deep-learning inverse-problems linear-blurs motion-blur motion-blur-elimination motion-estimation wiener-filter

Actions Status

Description

This project aims at removing motion blur originating from the motion or shake of hand-held cameras. It aims to work blindly, ie no knowledge of the blur is required. The motion blur is estimated using a convolutional neural network, and is later used to calibrate a deconvolution algorithm.

The project consists of two distinct parts:

See the wiki for some visual insights.

The library is coded in Python3.

Contributions are more than welcome, either on on the image processing (modeling of complex blurs) or the blur estimation.

alt text

News

Progress

Installation

In your favorite conda environment, type:

    pip install -e .

For development, install the test libraries as follow:

    pip install -e ".[TEST_SUITE,DEVELOP]"

Content details

Forward model

Learning

Implementation details

Usage

    python driver_scripts/main_inference.py -i path_to_config.yml

Nota bene: I plan to upload the weights soon.

Datasets

We currently use the REDS (or GOPRO) dataset for training. If you know any dataset consisting of sharp images, please let me know!

Contributing

I use Black with line length 120. Please write unit tests (pytest) for your code. Please use the git-flow development process.

Performance

alt text alt text