Git Product home page Git Product logo

deblur-by-fitting's Introduction

Video Deblurring by Fitting to Test Data

Paper | Dataset | Supplement Material

Project Page | Video

Tensorflow implementation for this paper by Xuanchi Ren*, Zian Qian*, Qifeng Chen

* indicates equal contribution

The dataset and the code for training will be released. A pytorch implementation will also be provided soon.

Overview

We present a novel approach to video deblurring by fitting a deep network to the test video. One key observation is that some frames in a video with motion blur are much sharper than others, and thus we can transfer the texture information in those sharp frames to blurry frames. Our approach heuristically selects sharp frames from a video and then trains a convolutional neural network on these sharp frames. The trained network often absorbs enough details in the scene to perform deblurring on all the video frames. As an internal learning method, our approach has no domain gap between training and test data, which is a problematic issue for existing video deblurring approaches. The conducted experiments on real-world video data show that our model can reconstruct clearer and sharper videos than state-of-the-art video deblurring approaches.

Results on GoPro dataset:

Requirement:

Tensorflow 1.x

Set up:

  • $ mkdir VGG_Model
  • Download VGG-19. Search imagenet-vgg-verydeep-19 in this page and download imagenet-vgg-verydeep-19.mat. We need the pre-trained VGG-19 model for our hypercolumn input and feature loss
  • move the downloaded vgg model to folder VGG_Model

Training

  1. Download the dataset and put it under ./dataset

  2. Run

python train.py

Testing

  1. Run
python test.py --output the_output_path

Meta-learning

Dataset

Citation

If you use this code for your research, please cite our paper.

@InProceedings{ren_deblur,
author = {Xuanchi Ren, Zian Qian, Qifeng Chen},
title = {Video Deblurring by Fitting to Test Data},
booktitle = {arxiv},
year = {2020}
}

deblur-by-fitting's People

Contributors

xrenaa avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

deblur-by-fitting's Issues

How to perform sub-pixel interpolation

Hi Xuanchi,
Thanks for your work. I notice that you applying sub-pixel interpolation to the motion vector. Could you tell more details about this?Or could you tell me which paper you are referring to?
I am also confused about the blur kernel generation. You mentioned in the paper ‘The scales of kernels we
choose are 21×21, 31×31, 41×41', does this mean the length of the motion vetcor l∈(0, 21), l∈(0, 31), l∈(0, 41)? And the orientation of the motion vetcor o∈[0, 180). If it is ture, there is kernel overlap here?
I also wonder the dataset you used to train your model, could you please provide the dataset you used for train?

Thanks!

How to perform the (reversed) gamma correction

Hi Xuanchi,

I notice that you performed reversed gamma correction before convolution with blur kernel. And you demonstrated it works a lot. I wonder how did you perform the reversed gamma correction and gamma correction. Because it may be hard to get a general inverse camera response function for different cameras.

Thanks!

Laplacian map

Hi Xuanchi,

Could you please share the code for computing the Laplacian map for my reference? Many thanks!

Best

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.