Code Monkey home page Code Monkey logo

2stagealign's Introduction

TwoStageAlign

The official codes of our CVPR2022 paper: A Differentiable Two-stage Alignment Scheme for Burst Image Reconstruction with Large Shift

Paper | Supp

Abstract

Denoising and demosaicking are two essential steps to reconstruct a clean full-color image from the raw data. Recently, joint denoising and demosaicking (JDD) for burst images, namely JDD-B, has attracted much attention by using multiple raw images captured in a short time to reconstruct a single high-quality image. One key challenge of JDD-B lies in the robust alignment of image frames. State-of-the-art alignment methods in feature domain cannot effectively utilize the temporal information of burst images, where large shifts commonly exist due to camera and object motion. In addition, the higher resolution (e.g., 4K) of modern imaging devices results in larger displacement between frames. To address these challenges, we design a differentiable two-stage alignment scheme sequentially in patch and pixel level for effective JDD-B. The input burst images are firstly aligned in the patch level by using a differentiable progressive block matching method, which can estimate the offset between distant frames with small computational cost. Then we perform implicit pixel-wise alignment in full-resolution feature domain to refine the alignment results. The two stages are jointly trained in an end-to-end manner. Extensive experiments demonstrate the significant improvement of our method over existing JDD-B methods.

Framework

Framework of 2 Stage Align

Test

Pretrain models

REDS4

  • we only put an example of REDS4 in dataset folder, please download the full testset in official website, RED.
  • More detail can refer to data preparation
python /codes/test_Vid4_REDS4_joint_2stage_REDS4.py

Videezy

  • To evaluate the performance on 4K burst images/video, we collect several clips from website.
  • Dataset: Google Drive
python /codes/test_Vid4_REDS4_joint_2stage_Videezy4K.py

SC_burst (Smartphone burst) Dataset

python /codes/test_Vid4_REDS4_joint_2stage_RealCaptured.py

Train

python -m torch.distributed.launch --nproc_per_node=2 --master_port=4540 train_joint_2stage.py -opt options/train/train_burst_JDD_2stage.yml --launcher pytorch

Environment

  • Refer to the requirement.txt
  • We utilize pytorch 1.2 and the deformable version does not support pytorch > 1.3. Thus when you use newest pytorch, please replace deformable version to newest (refer to BasicSR).

Citation

@article{guo2022differentiable,
  title={A Differentiable Two-stage Alignment Scheme for Burst Image Reconstruction with Large Shift},
  author={Guo, Shi and Yang, Xi and Ma, Jianqi and Ren, Gaofeng and Zhang, Lei},
  booktitle={Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition},
  year={2022}
}

Acknowledgement

This repo is built upon the framework of EDVR, and we borrow some code from Unprocessing denoising, thanks for their excellent work!

2stagealign's People

Contributors

guoshi28 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

Watchers

 avatar  avatar  avatar  avatar  avatar

2stagealign's Issues

Questions regarding the paper

Dear authors,

Thank you for sharing the implementation of your work. It would be nice, if you answer following questions:

  1. In section 3.5 Eq. 5, the one-hot loss is designed to make the sum of weights equal to 1 and variance equal to 1/M. However, acc. to Eq. 2, such requirement is already enforced by the softmax. Can you please explain this part?
  2. The reconstruction loss in Eq. 8 utilizes function ะ“(x), which is an ISP post-processing function. Usually such processing performs clamping, rounding, etc. So, how did you make ะ“(x) differentiable?
  3. Have you tried to not initialize the search region with the previous offset estimation? It definitely increases the complexity, but also we can see the "upper-bound" performance of the proposed model.

Best regards

Reproduce the results

Thanks for publishing the source code.
I want to train a model from scratch and reproduce the results reported in the paper.

  • Does the batch_size refer to the total amount of samples in one iteration? In other words, is it the batch size in one GPU multiplied by the number of GPUs?
  • I am using one GPU at the moment. It appears that the batch_size must be set to 1 in this case. Does the existing code support using a larger batch size?

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.