Giter Club home page Giter Club logo

faig's Introduction

FAIG (NIPS 2021 Spotlight)

This paper aims at investigating the mechanism underlying the unified one-branch blind SR network.
We propose a new diagnostic tool โ€“ Filter Attribution method based on Integral Gradient (FAIG) that utilizes paths in the parameter space in attributing network functional alterations to filter changes.


๐Ÿ“– Finding Discriminative Filters for Specific Degradations in Blind Super-Resolution

[Paper] โ€ƒ [Project Page] โ€ƒ [Video] โ€ƒ [B็ซ™] โ€ƒ [Poster] โ€ƒ [PPT slides]
Liangbin Xie, Xintao Wang, Chao Dong, Zhongang Qi, Ying Shan
Tencent ARC Lab; Shenzhen Institutes of Advanced Technology, Chinese Academy of Sciences

For a blurry input (โž€) and noisy input (โž„), the one-branch SRResNet for blind SR could remove blur (โž) and noise (โž…), respectively. When we mask the 1% deblurring filters (discovered by the proposed FAIG), the corresponding network function of deblurring is eliminated (โž‚) while the function of denoising is maintained (โž†). Similar phenomenon happens (โžƒ and โž‡) when we mask the 1% denoising filters in the same network.


๐Ÿ”ง Dependencies and Installation

Installation

  1. Clone repo

    git clone https://github.com/xinntao/FAIG.git
    cd FAIG
  2. Install dependent packages

    # Install basicsr - https://github.com/xinntao/BasicSR
    # We use BasicSR for both training and inference
    pip install basicsr
    pip install -r requirements.txt
    python setup.py develop

๐Ÿฐ Model Zoo

For both SRCNN_Style network and SRResNet network, we provide baseline model and target model. Download them from the link below and put them to the experiments folder.

You can also find all models here: [Tencent Cloud ่…พ่ฎฏๅพฎไบ‘]

โšก Quick Inference

Download the neuron-search folder that contains the discovered filters (in descending order) by four different methods (FAIG, IG, and random). Put it to the results folder. For each method, we provide the discovered filters for blur and noise degradation, respectively.

Before inference, please run the script to generate the degraded images.

python scripts/generate_lr.py

Inference!

For SRCNN_Style network

python analysis/Tools/srcnn_style/mask_neurons.py

For SRResNet network

python analysis/Tools/srresnet/mask_neurons.py

Then you can find the results (saved in results/Interpret/masking) of masking discovered specific filters with four proportions(1%, 3%, 5% and 10%) by four methods.
The directory structure (maskdenoiseFilter/Blur2_LRbicx2) means that the blurry input image is inferenced by the model that is masked deblurring filters (we hope this model loses deblur function while contains denoise function).

Description/Usage of all the provided scripts can be found in analysis.md.

๐Ÿ’ป Training

We provide the training codes for SRCNN_Style and SRResNet (used in our paper).
Other simple combination of degradations (scale ratio, different blur type, different noise type) with different levels are also verified. You can try them by yourself~

Procedures

Take SRResNet as an example.

  1. Download the dataset: DIV2K
  2. Crop to sub-images.
    python scripts/extract_subimages.py
  3. [Optional] Create LMDB files.
    python scripts/create_lmdb.py --dataset DIV2K
  4. Modify the configuration file options/train_srresnet_baseline.yml accordingly.
  5. Training the baseline model.

python train.py -opt options/train_srresnet_baseline.yml

  1. After finishing the training of baseline model, training the target model.

python train.py -opt options/train_srresnet_target.yml

๐Ÿ“œ License and Acknowledgement

FAIG is released under Apache License Version 2.0.

BibTeX

@inproceedings{xie2021finding,
    title={Finding Discriminative Filters for Specific Degradations in Blind Super-Resolution},
    author={Liangbin Xie and Xintao Wang and Chao Dong and Zhongang Qi and Ying Shan},
    booktitle={{Advances in Neural Information Processing Systems (NeurIPS)}},
    volume={34},
    year={2021},
}

๐Ÿ“ง Contact

If you have any question, please email [email protected].

faig's People

Contributors

liangbinxie avatar xinntao 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  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  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  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  avatar  avatar  avatar  avatar  avatar  avatar

faig's Issues

Code

Hi, Thanks for the great work! When will the code released?

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.