GithubHelp home page GithubHelp logo

westcityinstitute / fastdvdnet Goto Github PK

View Code? Open in Web Editor NEW

This project forked from m-tassano/fastdvdnet

0.0 1.0 0.0 35.02 MB

FastDVDnet: A Very Fast Deep Video Denoising algorithm

Python 86.90% Shell 13.10%

fastdvdnet's Introduction

FastDVDnet

A state-of-the-art, simple and fast network for Deep Video Denoising which uses no motion compensation.

NEW: Paper to be presented at CVPR2020

Previous deep video denoising algorithm: DVDnet

Overview

This source code provides a PyTorch implementation of the FastDVDnet video denoising algorithm, as in Tassano, Matias and Delon, Julie and Veit, Thomas. "FastDVDnet: Towards Real-Time Deep Video Denoising Without Flow Estimation", arXiv preprint arXiv:1907.01361 (2019).

Video Examples

You can download several denoised sequences with our algorithm and other methods here (more videos coming soon)

Running Times

FastDVDnet is orders of magnitude faster than other state-of-the-art methods

Results

Left: Input noise sigma 40 denoised with FastDVDnet (sorry about the dithering due to gif compression)

Right: PSNRs on the DAVIS testset, Gaussian noise and clipped Gaussian noise

Architecture

Code User Guide

Dependencies

The code runs on Python +3.6. You can create a conda environment with all the dependecies by running (Thanks to Antoine Monod for the .yml file)

conda env create -f requirements.yml -n <env_name>

Note: this project needs the NVIDIA DALI package for training. The tested version of DALI is 0.10.0. If you prefer to install it yourself (supposing you have CUDA 10.0), you need to run

pip install --extra-index-url https://developer.download.nvidia.com/compute/redist/cuda/10.0 nvidia-dali==0.10.0 

Testing

If you want to denoise an image sequence using the pretrained model you can execute

test_fastdvdnet.py \
	--test_path <path_to_input_sequence> \
	--noise_sigma 30 \
	--save_path results

NOTES

  • The image sequence should be stored under <path_to_input_sequence>
  • The model has been trained for values of noise in [5, 55]
  • run with --no_gpu to run on CPU instead of GPU
  • run with --save_noisy to save noisy frames
  • set max_num_fr_per_seq to set the max number of frames to load per sequence
  • to denoise clipped AWGN run with --model_file model_clipped_noise.pth
  • run with --help to see details on all input parameters

Training

If you want to train your own models you can execute

train_fastdvdnet.py \
	--trainset_dir <path_to_input_mp4s> \
	--valset_dir <path_to_val_sequences> \
	--log_dir logs

NOTES

  • As the dataloader in based on the DALI library, the training sequences must be provided as mp4 files, all under <path_to_input_mp4s>
  • The validation sequences must be stored as image sequences in individual folders under <path_to_val_sequences>
  • run with --help to see details on all input parameters

ABOUT

Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. This file is offered as-is, without any warranty.

  • Author : Matias Tassano mtassano at gopro dot com
  • Copyright : (C) 2019 Matias Tassano
  • Licence : GPL v3+, see GPLv3.txt

The sequences are Copyright GoPro 2018

fastdvdnet's People

Contributors

m-tassano avatar

Watchers

James Cloos avatar

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.